版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第 7 章 数据库技术计算机与人类相比的最大优势就是能够迅速准确地处理大量数据。 因此,自从计算机发 明以来,数据处理就是它的基本功能和关键技术。数据处理的中心问题是数据管理,数 据管理是指对数据的分类、组织、编码、存储、检索和维护。而数据库技术正是数据处理技术发展到比较 成熟后的产物。电子商务以电子计算机及其网络技术取代传统方式来进行生产经营活动,离不开数据库技术的支持。数据库技术对电子商务的支持主要表现在两方面:存储和管理各种商务数据。这是数据库技术的基本功能。决策支持。近几年,随着数据仓库和数据挖掘技术的产生和发展,使企业可以科学 地对数据库中海量的商务数据进行科学地组织、 分析和统计,
2、 从而更好地服务于企业的决 策支持。可以说,数据库技术是电子商务的一项支撑技术, 在电子商务的建设中占有重要的地位。7.1 数据库技术的产生与发展数据库技术是应数据管理任务的需要而产生的,是数据管理技术发展到一定阶段的产 物。数据管理技术的发展, 是随着计算机硬件和软件技术的发展而不断发展的。 到目前为止, 数据管理技术主要经历了以下几个阶段:手工管理阶段、文件系统阶段、数据库系统阶段、 数据仓库阶段。7.1.1 手工管理阶段20 世纪 50 年代中期以前,计算机主要用于科学计算。硬件存储设备主要有磁带、卡片 机、纸带机等, 还没有磁盘等直接存取的存储设备;软件上也处于初级的阶段,没有操作系
3、统和管理数据的工具。 数据的组织和管理完全靠程序员手工完成, 因此称为“手工管理阶段” 这个阶段数据的管理效率很低。手工管理方式的特点是: 数据不保存。 程序与数据合在一起,因而数据没有独立性,程序没有弹性,要修改数据必须修改 程序。 程序员必须自己编程实现数据的存储结构、存取方法和输入输出,迫使程序员直接 与物理设备打交道,加大了程序设计难度,编程效率低。 数据面向应用,这意味着即使多个不同程序用到相同数据,也得各自定义,数据不 仅高度冗余,而且不能共享。7.1.2 文件系统阶段进入 20 世纪 60 年代, 数据管理方式发生了很大的变化。 计算机在这个阶段不仅用于科 学计算,还大量用于管理
4、。外存储设备也出现了存取效率高得多的直接存储设备,如磁盘、 磁鼓等;在软件方面,不仅有了操作系统,而且还出现了专门的数据管理软件,一般称之为 文件系统。有了文件系统,数据的增、删、改等操作都变得轻松了。更重要的是数据的复制 变得相当容易, 使数据可以反复使用。 程序员在免除了数据管理工作以后, 不仅可以专心从 事其他更有意义的工作,而且减少了错误。文件管理方式本质上是把数据组织成文件形式存储在磁盘上。文件是操作系统管理数据 的基本单位。 文件可以命名, 通过文件名以记录为单位存取数据, 不必关心数据的存储位置。由于文件是根据数据所代表的意义组织的,所以文件能反映现实世界事物。在文件中常涉及下列
5、术语:数据项:描述事物性质的最小数据单位;记录:若干数据项的集合称记录,一个记录能表达一个具体事物;文件:若干记录的集会就叫做文件。显然,数据组织成文件, 逻辑关系非常明确,使数据处理真正体现了信息处理,按名存取数据,既形象,又方便。由于有了直接存取存储设备,所以文件可以组织成多种形式,如顺序文件、索引文件等,从而对文件中的记录可顺序访问,也可随机访问。文件方式管理数据是数据管理的一大进步,即使是数据库方式也是在文件系统基础上发展起来的。这一阶段的特点如下:数据可长期保存在磁盘上。 数据的物理结构与逻辑结构有了区别,两者之间由文件管理系统进行转换,因而程序与数据之间有物理上的独立性,即数据在存
6、储上的改变不一定会影响到程序,这可使程序员不必过多地考虑数据存放地址,而把精力放在算法上。 文件系统提供了数据存取方法,但当数据的物理结构改变时,仍需修改程序。数据不再属于某个特定程序,在一定程度上可以共享。上述特点可用图7- I表示程序1程序2程序n件管理文统系图7 I文件系统阶段数据管理示意图然而,文件方式管理数据还是有很多缺陷的,主要表现在以下几个方面:1. 文件是面向特定用途设计的:这意味着有一个应用,就有一个文件相对应。而程序是基于文件编制的,导致程序仍然与文件相互依存。因为文件有所变动, 程序就得相应修改,而文件离开了使用它的程序便全部失去存在的价值。2. 数据冗余大:因为文件之间
7、缺乏联系,有可能造成同样数据在不同文件中重复存储。3. 数据可能发生矛盾:因为同一数据出现在不同文件中,稍有不慎就可能造成同一数据在不同文件中不一样,这将导致数据的冗余。4. 数据联系弱:不同文件缺乏联系就不能反映现实世界中事物之间的自然联系,这是文件方式最大的弊端。7.1.3 数据库系统阶段到了 20世纪60年代后期,计算机被越来越多地应用于管理领域,而且规模也越来越大,因此数据量也急剧增长。同时,人们对数据共享的要求也越来越强烈。在这种情况下,“数据库”的概念应运而生了。用数据库管理数据有如下的特点:1. 数据结构化数据库是存储在磁盘等外部直接存取存储设备上的数据集合,是按一定的数据结构组
8、织起来的。与文件系统相比,文件系统中的文件之间不存在联系,因而从总体上看数据是没有结构的;而数据库中的文件是相互联系着的,并在总体上遵从一定的结构形式。这是文件系统与数据库系统的最大区别。数据库正是通过文件之间的联系反映现实世界事物间的自然联系。2. 数据共享数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的。因此数据库中包含了所有用户的数据成分, 但每个用户通常只用到其中一部分数据。 不同用户所使用的数据可 以重叠,同一部分数据也可为多用户共享,如图 7-2所示。程丿予n应用程序图7-2数据共享示意图远程终端用户3. 减少了数据冗余在数据库方式下,用户不是自建文件,而是取自数据库中的
9、某个子集, 它并非独立存在, 而是靠数据库管理系统从数据库中映射出来的,所以叫做逻辑文件。如图 7-3所示,用户 使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中, 但实际上的物理存储 只可能出现一次,这就减少了数据冗余。图7-3应用程序使用从数据库中导岀的逻辑文件4. 有较高的数据独立性数据独立是数据库技术努力追求的目标,其好处是数据存储方式的改变不会影响到应 用程序。数据独立又有两个含义,即物理数据独立性和逻辑数据独立性。所谓物理数据独 立性是指数据库物理结构(包括数据的组织和存储、存取方法沙十部存储设备等)发生改 变时,不会影响到逻辑结构,而用户使用的是逻辑数据,所以不必改动
10、程序;所谓逻辑数 据独立性是指数据库全局逻辑发生改变时,用户也不需改动程序,就像数据库并没发生变 化一样。这是因为用户仅使用数据库的一个子集,全局变化与否与具体用户无关,只要能 从数据库中导出他所用到的数据就行。5. 用户接口在数据库系统中,数据库管理系统作为用户与数据库的接口,提供了数据库定义、数 据库运行。数据库维护和数据安全性、完整性等控制功能;此外还支持某种程序设计语言, 并设有专门的数据操作语言,为用户编程提供了方便。数据库系统的出现, 使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的 数据库来进行。 这既便于数据的集中管理, 也有利于应用程序的研制和维护, 提高了数据的
11、利用率和相容性, 从而提高了做出决策的可靠性。 因此大型复杂的信息系统大多以数据库为 核心。数据库是一个通用化的综合性数据集合。 它可以供各种用户共享且具有最小的冗余度和 较高的数据与程序的独立性。 由于多种程序并发地使用数据库, 为了能有效、 及时地处理数 据,并提供安全性和完整性, 就需要一个软件系统数据库管理系统( DBMS ),在建立、运用和维护时对数据库进行统一控制。在这个阶段,企业的管理一般采用管理信息系统( MIS )。管理信息系统可以有效地管 理企业内部的信息和信息流, 是企业向管理现代化迈出的第一步。 而企业管理信息系统可以 说是数据库管理系统在功能上的一种扩展, 因为数据管
12、理仍是它的核心内容。 电子数据交换 (EDI )也渐渐发展起来。数据库管理系统对企业从事电子交易起到很大的支持作用。我们 都知道 EDI 的一大特点(同时也是优点)就是把各种贸易单证的电子化和标准化。而数据库 系统也是把数据管理规范化和标准化了。 因此, 就可以比较容易地实现数据库系统的业务数 据与 EDI 的单证之间的自动转换。与手工制作电子单证相比,提高了效率、减少了错误、降 低了成本。更高层次的、帮助企业决策的决策支持系统(DSS)也慢慢发展起来。但直到 20世纪80年代末,决策支持系统的应用还不是很广泛。原因在于:那时的决策支持系统在理论和方法 上过于复杂,过于偏重高级而抽象的理论,而
13、且过于偏重结论,在一定程度上忽视了对业务 数据的分析,而且,成本高昂,因此实际产生的应用效果远远比不上管理信息系统。在人们 眼里,决策支持系统是一个高高在上的东西。事实上,企业对于决策支持并不要求大而全, 也并不要求一套系统代替决策者去思考,他们所需要的往往是对简单却十分重要的业务数据 的反复挖掘,为决策提供一定的依据。科学的决策必须以大量可靠的数据为基础, 这些数据应包括企业的内部数据、 与企业的 经营和生产相关的外部数据,还应包括综合数据和历史数据。否则,决策就没有根据, 就会成为主观的猜想。当时, 数据库技术虽然已经成熟,但应用还不广泛, 所以普遍存在一个数 据量不足的问题。此外, 分析
14、工具的缺乏也是一大问题。 没有充足的数据, 分析工具也不得 力,分析的结果当然不能切中要害。 由此可以看出,在这个阶段, 用于决策支持的技术还不 完备,时机也还不成熟,决策支持系统的失败也是可以理解的。7.1.4 数据仓库阶段进入20世纪90年代,计算机得到空前广泛的应用,使得企业的生产效率进一步提高,商 业竞争也越来越激烈了。一个企业要想在市场上生存下去,不仅要建立完善的计算机管理信 息系统来提高效率,而且要先于对手获得至关重要的决策信息。这样,企业才能在未来的竞 争中适应潮流、把握正确的发展方向。企业对迅速而准确地获得决策信息的需求比以前大大 增强了。对企业来说,决策支持系统已不是可有可无
15、的东西,企业需要实用而且成本低廉的 决策支持系统。系统开发人员由于企业的需求,也渐渐认识到了决策支持系统开发的方向。 决策支持系统的建设更应该把注意力放在对数据的挖掘上,放在满足业务主管们各种各样的 查询要求上,由他们自己做决定,系统只是提供一些用来辅助决策的参考意见,应该帮助而 不是代替高级业务人员的思考。在这一时期, 计算机及其网络技术的应用更为广泛, 企业管理信息系统逐渐由以内部 管理为主转变为对整个供应链的管理。 企业之间的商务活动也从以前简单的电子数据传输转 变为全方位的合作, 电子商务蓬勃兴起。 企业之间的相互合作不仅可以提高企业的生产效率、 降低生产成本, 也为企业获取大量的外部
16、数据带来了方便。 这就为决策支持分析奠定了基础。 另外,由于数据库技术的发展和日益成熟,决策支持分析工具也渐渐丰富起来。企业的需求和技术的成熟最终导致了数据仓库的产生。数据仓库作为决策支持系统的一 种有效、可行的体系化解决方案,包括三个方面的内容:数据仓库技术( DW )、联机分析 处理技术( OLAP )和数据挖掘技术( DM )。数据库技术的发展为解决决策支持问题提供了可能, 而激烈的市场竞争产生了对决策支 持的巨大需求,由此人们找到了以数据仓库为基础、以 OLAP 和 DMI 具为手段的一整套可 操作、可实施的解决方案。7.2 数据库技术的基本理论电子商务是指利用电子网络进行的商务活动,
17、 这里的电子网络主要是指 Internet 和基于In ternet技术的Intran et (企业内部网)及Extra net (企业外部网)。其进行的商务活动不仅包含电子数据交换所涉及的电子交易,还包括电子邮件交流、网上站点宣传和利用lnternet技术改造的其他传统应用。 但电子商务应用的前提是企业管理信息系统的广泛应用。数据库技术是企业管理信息系统的核心技术之一, 所以,想深入地理解电子商务就应该先了解数据 库的一些基本理论。7.2.1 数据模型1. 数据模型的要素数据库是某个企业、 组织或部门所涉及的数据的一个综合, 它不仅要反映数据本身的内 容,而且还要反映数据之间的联系。 由于计
18、算机不可能直接处理现实世界中的具体事物, 所 以人们必须事先把具体事物转换成计算机能够处理的数据。 在数据库中用数据模型这个工具 来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求;一是能比较真实地模拟现实世界;二是容易为人所理解; 三是便于在计算机上实现。一种数据模型要很好地满足这三方面的要求,在目前尚很困难。 在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类, 它们分属于两个不同的层次。 第一类模型是概念模型, 也称
19、信息模型, 它是按用户的观点对数据和信息建模。 另一类模型是数据模型, 主要包括网 状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。一般地讲, 任何一种数据模型都是严格定义的概念的集合。 这些概念必须能够精确地描 述系统的静态特性、 动态特性和完整性约束条件。 因此数据模型通常都是由数据结构、 数据 操作和完整性约束三个要素组成。 数据结构 数据结构用于描述系统的静态特性,它包括数据对象及其相互联系,即数据结构是所 研究的对象类型(object type)的集合。这些对象是数据库的组成成分,它们包括两类,一 类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关
20、系模型中 的域、属性、关系等;一类是与数据之间联系有关的对象, 例如网状模型中的系型 (set type)。数据结构是刻画一个数据模型性质最重要的方面。 因此在数据库系统中, 人们通常按照 其数据结构的类型来命名数据模型。 例如, 层次结构、 网状结构和关系结构的数据模型分别 命名为层次模型、网状模型和关系模型。 数据操作数据操作用于描述系统的动态特性, 主要是对数据的检索和更新, 即数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。 数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操 作的确切含义、操作符号、操作规则
21、(如优先级)以及实现操作的语言。数据的约束条件数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如, 在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学校的数据库中规定大学生年龄不得超过29岁,硕士研究生不得超过38岁,学生累计成绩不得有 3门以上不及格等。2.数据模型
22、的种类不同的数据模型具有不同的数据结构形式。目前最常用的数据模型有层次模型(hierarchical model)、网状模型(network model)和关系模型(relational model)。其中层次 模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代与80年代初非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代, 但在美国等一些国家里,由于历史遗留下来的原因,目前网状数据库系统的用户数仍很多。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影
23、响,也促进了数据库中面向对象数据模型的研究和发展。层次模型层次模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间 的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。层次模型数据库系统的典型代表是IBM公司的IMS (In formation Ma nageme ntSystems)数据库管理系统,这是一个曾经广泛使用的数据库管理系统。 层次模型的数据结构层次模型用树结构表示数据之间的层次关系。按照树的定义,在层次模型中,数据之间的关系满足;有且仅有一个结点无双亲,这个结点称为根结点。其他结点有且仅有一个双亲结点。因此,层次模型职
24、能描述数据之间一对一或多对多的关系。层次模型就像一棵倒立的树,如图7 4所示。在层次模型的数据库中查找某一结点,必须指定存取路径。 所谓存取路径是指从根结点开始沿途所经过的路径。以图74为例。存取不同结点的存取路径如表7 1所示。存取结点存取路径AABA BCA BCDA D表71存取路径图74 层次模型 层次模型的操纵与完整性检查层次模型的操纵主要有:查询、插入、删除和更新。进行查询、插入、删除和更新时要 满足层次模型的完整性约束条件。进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。进行删除操作 时,如果删除双亲结点值,则相应的子女结点值也被同时删除。进行更新时,应更新所有 相
25、应记录,以保证数据的一致性。 层次模型的优缺点层次模型的优点主要有:层次模型本身比较简单,只需很少几条命令就能操纵数据库,比较容易使用。对于实体间联系是固定的,且预先定义好的应用系统,采用此模型来实现,其性能优于关系模型,不次于网状模型。层次模型提供了良好的完整性支持。层次模型的缺点主要有:现实世界中很多联系是非层次性的,如多对多联系,一个结点具有多个双亲,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(以产生不一致性)或创建非自然的数据组织(引入续借点)来解决。对插入和删除操作的限制比较多。查询子女结点必须通过双亲结点。由于结构严密,层次命令趋于程序化。网状数据模型自然界中实体型间的
26、联系更多的是非层次关系,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。网状模型的典型代表是 DBTG系统,也称CODASYL系统。这是20世纪70年代数据系统预言研究会 CODASYL (Conference On Data Systems Language) 下属的数据库任务组(Data Base Tase Group简称DBTG )提出的一个系统方案。 网状模型的数据结构网状模型描述了数据之间的网状关系,是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,数据之间允许:有一个以上的节点无双亲。结点可以有多个双亲结点。因此,网状模型可以更直接地描述现实世界。而层
27、次结构实际上是网状结构的一个特例。图7 5时网状模型的例子。图75 网状模型 网状模型的操纵与完整性约束网状模型的操纵主要包括查询、插入、删除和更新数据。插入操作允许插入尚未确定双亲结点值的子女结点值。删除操作允许只删除双亲结点 值。由于网状模型可以直接表示非树形结构,而无需像层次模型那样增加冗余结点,因此 做更新操作时只需更新指定记录即可。查询操作可以有多种方法,可根据具体情况选用。可见,网状模型没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统 (如DBTG )对数据操纵还是加了一些限制,提供了一定的完整性约束。 网状模型的优缺点网状模型的优点主要有:能够更为直接地描述现实世界,
28、如一个结点可以有多个双亲、允许结点之间为多对多的联系等。具有良好的性能,存取效率较高。网状模型的缺点主要有:其DDL语言极其复杂。数据独立性较差。由于实体间的联系本质上是通过存取路径指示的,因此应用程序 在访问数据时要指定存取路径。关系模型关系模型是目前最重要的一种模型。美国IBM公司的研究员E. F. Codd于1970年发表题为“大型共享系统的关系数据库的关系模型”的论文,文中首次提出了数据库系统的关 系模型。20世纪80年代以来,计算机厂商新推出的数据库管理系统( DBMS )几乎都支持关 系模型,非关系系统的产品也大都加上了关系接口。数据库领域当前的研究工作都是以关 系方法为基础。 关
29、系模型的数据结构关系模型在三种模型中是最重要的。虽然它的数据关系是几种模型中最简单的,但其 定义却比较复杂。可以把关系模型理解为一张二维表,表格中的每一行代表一个实体,称为记录;每一列代表实体的一个属性,称为数据项。记录的集合称为关系。关系具有如 下性质:数据项不可再分(即不可表中套表)。关系中的列是同性质的,称为属性。属性之间不能重名。关系中不能出现相同的记录,记录的顺序免所谓。每个关系都有一个主键,它能唯一地标识关系中的一个记录。关系中列的顺序不重要。学号姓名性别岀生日期入学总分专业号9901张三男82/10/02625J001图7 - 6关系模型 关系模型的操纵与完整性约束关系数据模型的
30、操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系 的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户 定义的完整性。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集 合,而不像非关系模型中那样是单记录的操作方式。另一方面,关系模型把存取路径向用 户隐蔽起来,用户只需指出“干什么”或“找什么”,不必详细说明“怎么干”或“怎么找” 从而大大地提高了数据的独立性,提高了用户的生产率。 关系模型的优缺点关系模型具有下列优点:关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。关系模型的概念单一。 无论实体还是实体之间的联系都用
31、关系来表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性, 也简化了程序员的工作和数据库开发建立的工作。”所以关系数据模型诞生以后发展迅速,深受用户的喜爱。关系模型的缺点主要是:由于存取路径对用户透明,查询效率不如非关系模型。因此, 必须对用户的查询请求进行优化,增加了开发数据库管理系统的负担。7.2.2 关系数据库关系数据库是以关系模型为基础的数据库, 它利用关系来描述现实世界, 应用数学方法 来处理数据库中的数据。关系数据库目前是各类数据库中最重要、最流行的数据库。1. 概述关系数据库系统
32、是支持关系模型的数据库系统。 关系模型由关系数据结构、 关系操作集 合和完整性约束三部分组成。 关系数据结构关系模型的数据结构非常单一, 在用户看来, 关系模型中数据的逻辑结构是一张扁平的 二维表。 但关系模型的这种简单的数据结构能够表达丰富的语义, 描述出现实世界的实体以 及实体间的各种联系。 关系操作关系操作采用集合操作方式, 即操作的对象和结果都是集合。 关系模型中常用的关系操 作包括:选择、投影、连接、除、并、交、差等查询操作和增、删、改操作两大部分。查询 的表达能力是其中最主要的部分。关系模型中的关系操作能力早期通常是用代数方式或逻辑方式来表示, 分别称为关系代 数和关系演算。 关系
33、代数是用对关系的运算来表达查询要求的方式。 关系演算是用谓词来表 达查询要求的方式。 关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关 系演算和域关系演算。 关系代数、 元组关系演算和域关系演算三种语言在表达能力上是完全 等价的。关系代数、元组关系演算和城关系演算均是抽象的查询语言,这些抽象的语言与具体 的数据库管理系统 (DBMS )中实现的实际语言并不完全一样。 但它们能用作评估实际系统 中查询语言能力的标准或基础。实际的查询语言除了提供关系代数或关系演算的功能外, 还提供了许多附加功能, 例如 集函数、关系赋值、 算术运算等。关系语言是一种高度非过程化的语言,用户不必请求数
34、据 库管理员( DBA )为他建立特殊的存取路径,存取路径的选择由数据库管理系统( DBMS ) 的优化机制来完成,另外,用户不必求助于循环结构就可以完成数据操作。对于关系数据库而言, 有一种介于关系代数和关系演算之间的语言SQL( structured queryIanguage,结构化查询语言),它不仅具有丰富的查询功能,而且具有数据定义和数据控制 功能,是集查询、数据定义语言(DDL )、数据操纵语言(DML )和数据控制语言(DCL)于一体的关系数据语言, 它充分体现了关系数据语言的特点和优点, 是关系数据库的标准语 言。因此,关系数据语言可分成以下三类: 关系代数语言,如ISBL ;
35、 关系演算语言,其中包括:元组关系演算语言,如 APLHAQUEL ;域关系演算语言,如 QBE ; 具有关系代数和关系演算双重特点的语言,例如SQL。这些关系数据语言的共同特点是, 语言具有完备的表达能力, 是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 完整性约束在关系型数据库中, 完整性约束用于确保数据的准确性和一致性。 关系模型提供了丰富 的完整性控制机制, 允许定义三类完整性:实体完整性、 参照完整性和用户定义完整性。其 中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系统自动支持。 实体完整性(entity integrty )一个基本关系通常对应
36、现实世界的一个实体集。 例如,“学生” 关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义” 的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。实体完整性规则: 若属性A是基本关系R的主属性,则属性 A不能取空值。例如,在关系学生(学号,姓名,性别,出生日期,入学总分,专业号)中,学生的学 号属性为主码,则学生的学号不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空
37、值,而不仅是主码整体不能取空值。例如,学生选课关系“选修(学号,课程号,成绩)”中,(学号,课程号)为主码, 则学号和课程号两属性都不能取空值。 参照完整性(referential integrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用 关系来描述的。这样就自然存在着关系与关系间的引用。先看下面的3个例子。例1:学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识:学生(学号,姓名,性别,出生日期,入学总分,专业号,)专业(专业号,专业名)这两个关系之间存在着属性的引用,即“学生”关系引用了“专业”关系的主码“专 业号”。显然,“学生”关系中的专
38、业号值必须是确实存在的专业的专业号,即“专业”关 系中有该专业的记录。这也就是说,“学生”关系中的某个属性的取值需要参照“专业”关系的属性取值。例2:学生、课程、学生与课程之间的多对多联系可以用以下三个关系来表示:学生(学号,姓名,性别,出生日期,入学总分,专业号)课程(课程号,课程名,学分)选修(学号,课程号,成绩)这三个关系之间也存在着属性的引用,即“选修”关系引用了“学生”关系的主码“学 号”和“课程”关系的主码“课程号”。同样,“选修”关系中的学号值必须是确实存在 的学生的学号,即“学生”关系中一定有该学生的记录;“选修”关系中的课程号值也必 须是确实存在的课程的课程号,即“课程”关系
39、中一定有该课程的记录。换句话说“选修” 关系中某些属性的取值需要参照其他关系的属性取值。不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。例3:关系学生1如下所示:学生1 (学号,姓名,性别,出生日期,专业号,班长)其中,“学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号,它引 用了本关系中的“学号属性,即“班长”必须是确实存在的学生的学号。定义:设A是基本关系 R的一个或一组属性,但不是关系 R的主码,如果A与基本关 系S的主码Ks相对应,则称 A是基本关系 R的外码(foreign key),并称基本关系 R为 参照关系(referencing
40、relation),基本关系 S为被参照关系(referenced relation)或目标 关系(target relation )。关系R和S不一定是不同的关系。显然,目标关系 S的主码Ks和参照关系的外码 A必须定义在同一个(或一组)域上。在例1中,“学生”关系的“专业号”属性与“专业”关系的主码“专业号”相对应, 因此“专业号”属性是“学生”关系的外码。这里“专业”关系为被参照关系,“学生”关 系为参照关系。如图 7- 7 (a)所示。在例2中,“选修”关系的“学号”属性与“学生”关系的主码“学号”相对应,“课程号”属性与“课程”关系的主码“课程号”相对应,因此“学号”和“课程号”属性
41、是“选 修”关系的外码。这里“学生”关系和“课程”关系均为被参照关系,“选修”关系为参照 关系。如图7 7 (b)所示。学生关系专业号:”专业关系学生关系、学_选修关系课程号"课程关系(a)(b)图7 7关系的参照图在例3中,“班长”属性与本关系主码“学号”属性相对应,因此“班长”是外码。这 里“学生1”关系既是参照关系也是被参照关系。需要指出的是,外码并不一定要与相应的主码同名(如例3)。不过,在实际应用当中,为了便于识别,当外码与相应的主码属于不同关系时,往往给它们取相同的名字。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则: 若属性(或属性组)A是基本关系R的外
42、码,它与基本关系 S的主码 Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在A上的值必须为: 或者取空值(A的每个属性值均为空值); 或者等于S中某个元组的主码值。例如,对于例1,“学生”关系中每个元组的专业号属性只能取下面两类值;空值,表示尚未给该学生分配专业;非空值,这时该值必须是“专业”关系中某个元组的专业号值,表示该学生不可能分 配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。对于例2,按照参照完整性规则,学号和课程号属性也可以取两类值:空值或目标关系 中已经存在的值。但由于学号和课程号是“选修”关系中的主
43、属性,按照实体完整性规则, 它们均不能取空值。所以“选修”关系中的学号和课程号属性实际上只能取相应被参照关系 中已经存在的主码值。参照完整性规则中,R与S可以是同一个关系。 例如,对于例3,按照参照完整性规则, 班长属性值可以取两类值空值,表示该学生所在班级尚未选出班长;非空值,这时该值必须是本关系中某个元组的学号值。 用户定义的完整性(user-defined integrity )实体完整性和参照完整性适用于任何关系数据库系统。用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法
44、来处理它们而不是由应用程序承担这一功能。2. 结构化查询语言(SQL )结构化查询语言(structured query Ianguage,简称 SQL )的理论是 1974年由Boyce 和Chamberlin提出的,并于 1975年至1979年在IBM公司的System R上实现。由于它具 有功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中倍受青睐,很 快被广泛推广。后来,美国国家标准局(ANSI )和国际标准化组织(ISO)先后批准 SQL作为关系数据库语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句。所以,尽管当今不
45、同品牌的关系数据库有这样或那 样的差异,但是人们却都可以通过标准 SQL 语句对数据库进行操作,因此,大大减轻了用 户的负担。 SQL 语言的特点SQL 语言之所以能够被用户和业界所接受并成为国际标准,是因为它是一个综合的、 通用的、功能极强同时又简洁易学的语言。 SQL 语言充分体现了关系数据语言的特点和优 点。其重要特点包括; SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等功能,可以完成数据库活动中的全部工作。以前的非关系模型(层次模型、网状模型)的数据 语言一般都分为存储模式描述语言、 概念模式描述语言、 外部模式描述语言和数据操纵语言 等,这种模型的数据语言
46、,一是内容多;二是掌握和使用起来都不像SQL那样简单和实用。另外, 在关系模型中, 实体和实体间的联系均用关系来表示, 这种数据结构的单一性带 来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作方式,从 而避免了非关系系统由于信息表示方式的多样性带来的操作复杂性。 SQL语言是一种高度非过程化的语言,用户只需提出“做什么”,而不必指明“怎 么做”, SQL 语言就可以将要求交给系统,由系统自动完成全部工作。 SQL语言用一种语法结构提供两种使用方式:直接以命令方式交互使用,也可以嵌入到程序设计语言中(例如 C、 Cobol 、 Fortran 、 PL/SQL )以程序方
47、式使用。这一种做法为 用户提供了极大的灵活性与方便性。现在有很多数据库应用开发工具都将SQL 语言直接溶到自身的语言中, 如 Delphi 、 Powerbuilder 等。这种使用方式为用户提供了更多的选择余地。 SQL语言的命令简洁,易学易用。虽然SQL语言功能极强,但由于设计巧妙,所以只用了为数不多的几条命令就完成了所有的核心功能。 另外, 它的语法也很简单, 很接近自 然语言(英语),因此,容易学习和掌握。 SQL语言支持数据库的三层模式结构;与概念模式的概念文件对应的是基本表(Table),与存储模式对应的是存储文件以及与外部模式对应的是视图和部分基本表。用 户看到的可以是基本表或视
48、图, 基本表和视图都是关系, 用户可以在其上进行查询操作。 而 存储文件对用户来说是透明的。 SQL 语言的功能SQL 语言是结构化的查询语言。是一种综合的、通用的、功能极强的关系数据库语言。 它的功能包括: 创建数据库对象、操纵对象、 往数据库表中填充数据、 在数据表中更新已存 在的数据、 删除数据、执行数据库查询、 控制数据库访问权限和数据库总体管理。 主要分以 下几类: 数据定义语言 DDL 数据定义语言( DDL )是 SQL 的一部分,是 SQL 中用来生成、修改、删除关系数据库 的表、 窗口、模式、目录等基本要素的语言成分。它允许数据库用户创建或重新构造数据库 对象,如创建或删除一
49、个数据库表。DDL 所包含的要点是:标识所有的表定义每一个表中所含的列给每一个表一个保证唯一的主关键字确认在数据库每一个表中至少有一个列是与其他表中的列相同。这些共享的列提供了逻辑上的连接,允许一个表中的信息与另一表中的相应信息相关联。将每一个表都用第三范式(3NF)或更好的方法来检验,以确保防止插入、删除、更 新非法。数据定义语言的功能包括数据库的定义、 基本表的定义、 视图的定义、 存储过程的定义、 规则的定义和索引的定义等部分,这些命令包括: CREATE DATABASE 定义数据库 ALTER DATABASE修改数据库 DROP DATABASE 删除数据库 CREATE TABA
50、LE 定义基本表 ALTER TABAL 修改基本表 DROP TABAL 删除基本表 CREATE VIEW 定义视图 DROP VIEW 删除视图 CREATE INDEX 定义存储模式中的索引 DROP INDEX 删除存储模式中的索引 CREATE PROCEDURE 定义存储过程 DROP PROCEDURE 删除存储过程 CREATE RULE 定义数据库用户角色 DROP RULE 删除数据库用户角色 数据操纵语言 DML数据操纵语言( DML )是 SQL 的一部分,在 SQL 中用来生成、修改、删除关系数据库 结构,但它并不涉及数据。 DML 用于在关系型数据库对象中操纵数据
51、,主要包括数据的插 入、更新和删除三方面的内容。主要的 DML 命令包括: INSERT 数据的插入 UPDATE 数据的更新 DELETE 数据的删除 数据查询语言 DQL查询是对数据库中的信息的寻找和定位。数据查询语言(DQL )尽管值包含了一条命令,但它是数据库的核心操作,是关系型数据库用户使用SQL 的焦点。 SQL 语言提供了SELECT 语句进行数据库的查询, 它包含有许多选项合子句, 具有灵活的使用方法和丰富的 功能。不论是简单的还是复杂的查询, 也不论是模糊的还是精确的查询, 都是很容易创建的。 事务控制命令事务控制命令允许用户管理数据库的事务。 以防止数据库的表或元素不被破坏
52、。 主要的 命令包括: COMMIT 保存数据库中由事务引起的改变; ROLLBACK 撤销没保存到数据库中的事务的事务控制命令; GRANT 授权 REVOKE 收回授权 SAVEPOINT 创建彝族事务中的撤销点; SET TRANSACTION 给事务命名。3. 关系数据的规范化理论为了使数据库设计的方法走向完备, 人们提出了规范化理论。 规范化可以使关系的结 构简化, 更加有规律, 存储尽量减少冗余, 使数据库设计得更为合理。 规范化的目的可以 概括为以下几点:保证库中每一个分量都不可再分;消除冗余存储,简化检索操作; 消除插入异常和删除异常。 数据依赖 规范化问题考虑的基本出发点在于
53、一个关系的数据项之间存在数据依赖问题。它是 现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。关系中数据项之 间存在两种依赖关系:函数依赖和多值依赖。函数依赖:设R( U是属性集U上的关系模式。X, 丫是U勺子集。若对于R (U)的任 意一个可能的关系r,r中不可能存在两个元组在 X上的属性值相等,而在 Y上的属性值不 等,则称X函数确定Y或Y函数依赖于X,记为Xt Y。函数依赖普遍存在于现实生活中,如:对一个学生的描述,描述的属性有学号、姓 名等,在给定学号的情况下,就可以唯一地确定其姓名,不能出现一个学号对应两个以上 姓名的情况,就称“姓名”函数依赖“学号”。函数依赖描述的是属
54、性之间的单值对应关系,即给定一个关键字, 就能确定关系模式中的所有属性,且属性值是唯一的。 在关系模式中函数依赖可以描述一对一和多对一的关系,但无法描述一对多和多对多的关系。多值依赖:若结定X,有一组属性值丫与之对应,则称X多值决定Y或 丫多值依赖于X, 记为Xtt Y。如学生选课,一个学生可以选多门课程,则给定一个学号,就可以找出多 门课程与之对应,就称“课程”多值依赖于“学号”。在设计数据库时,首先应该根据一个关系所具有的属性间依赖情况来判定它是否具 有某些不合适的性质。然后将具有不合适性质的关系转换为更合适的形式。范式范式是衡量数据库规范的层次或深度,数据库规范化层次由范式来决定。根据关
55、系模式满足的不同性质和规范化的程度,把关系模式分为第一范式、第二范式、第三范式、BC范式和第四范式等。 第一范式(1NF)如果关系R的所有属性都是不可再分的数据项,则称该关系属于第一范式,记作:R 1NF在任何一个关系数据库系统中,第一范式是对关系模式的一个起码的要求。不满足第一范式的数据库模式不能成为关系数据库。 第二范式(2NF)若关系R 1NF,且它的每一非主属性都完全依赖于主键,则称R属于第二范式,记作:R 2NF 第三范式(3NF)若关系R 2NF,且它的每一非主属性都不传递依赖于任何一个键,则称R属于第三范式,记作:R 3NF BC范式(BCNF )通常认为BCNF是修正的第三范式
56、,它比 3NF又进了一步。在关系R中,若每一个决定因素都包含键,则称R属于BC范式,记作:R BCNF 第四范式(1NF)若关系R 1NF,如果XY (Y不是X的子集)是非平凡的多值依赖,且X含有键,则称R属于第四范式,记作:R 4NF范式之间的天系如图7 8所示:1NF消除决定 J消除非主属性对键的部分函数依赖2NF属性集消除非主属性对键的传递函数依赖非键的3NF非平凡 J消除主属性对键的部分和传递函数依赖函数依赖1BCNF J消除非平凡且非函数依赖的多值依赖4NF图78范式之间的关系7.2.3 面向对象数据库面向对象技术经过 20几年的发展,现己为众多的软件开发者和用户所接受,许多软件 都使用了面向对象的技术,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石河子大学《水资源规划及利用》2023-2024学年第一学期期末试卷
- 石河子大学《流行病学》2023-2024学年第一学期期末试卷
- 石河子大学《教育电视节目编导与制作》2022-2023学年第一学期期末试卷
- 沈阳理工大学《陶瓷》2022-2023学年第一学期期末试卷
- 沈阳理工大学《面向对象程序设计及应用》2022-2023学年期末试卷
- 沈阳理工大学《机械工程控制基础》2023-2024学年期末试卷
- 沈阳理工大学《编译原理》2022-2023学年第一学期期末试卷
- 国企合同工工资标准
- 合同 确认书 备忘录
- 合同法案例教程
- 中国铁路国际有限公司招聘考试试卷2022
- 电子政务概论-形考任务5(在线测试权重20%)-国开-参考资料
- 古代小说戏曲专题-形考任务2-国开-参考资料
- 构美-空间形态设计学习通课后章节答案期末考试题库2023年
- 产万吨高密度聚乙烯聚合工段工艺设计
- (完整版)小学第三人称单数练习题及答案
- 农民合作社成员帐户计算表
- 机械制图CAD_(教案)全部
- 串并联电路说课稿
- 上海市重点建设项目社会稳定风险评估咨询收费办法
- 画法几何习题集第六章答案大连理工大学版
评论
0/150
提交评论