数据库技术理论与电子商务介绍harm.docx

上传人:jix****n11 文档编号:62644372 上传时间:2022-11-22 格式:DOCX 页数:34 大小:297.38KB
返回 下载 相关 举报
数据库技术理论与电子商务介绍harm.docx_第1页
第1页 / 共34页
数据库技术理论与电子商务介绍harm.docx_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《数据库技术理论与电子商务介绍harm.docx》由会员分享,可在线阅读,更多相关《数据库技术理论与电子商务介绍harm.docx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第7章 数据库技术计算机与人类相比的最大优势就是能够迅速准确地处理大量数据。因此,自从计算机发明以来,数据处理就是它的基本功能和关键技术。数据处理的中心问题是数据管理,数据管理是指对数据的分类、组织、编码、存储、检索和维护。而数据库技术正是数据处理技术发展到比较成熟后的产物。电子商务以电子计算机及其网络技术取代传统方式来进行生产经营活动,离不开数据库技术的支持。数据库技术对电子商务的支持主要表现在两方面:存储和管理各种商务数据。这是数据库技术的基本功能。决策支持。近几年,随着数据仓库和数据挖掘技术的产生和发展,使企业可以科学地对数据库中海量的商务数据进行科学地组织、分析和统计,从而更好地服务于

2、企业的决策支持。可以说,数据库技术是电子商务的一项支撑技术,在电子商务的建设中占有重要的地位。7.1 数据库技术的产生与发展数据库技术是应数据管理任务的需要而产生的,是数据管理技术发展到一定阶段的产物。数据管理技术的发展,是随着计算机硬件和软件技术的发展而不断发展的。到目前为止,数据管理技术主要经历了以下几个阶段:手工管理阶段、文件系统阶段、数据库系统阶段、数据仓库阶段。7.1.1 手工管理阶段20世纪50年代中期以前,计算机主要用于科学计算。硬件存储设备主要有磁带、卡片机、纸带机等,还没有磁盘等直接存取的存储设备;软件上也处于初级的阶段,没有操作系统和管理数据的工具。数据的组织和管理完全靠程

3、序员手工完成,因此称为“手工管理阶段”。这个阶段数据的管理效率很低。手工管理方式的特点是: 数据不保存。 程序与数据合在一起,因而数据没有独立性,程序没有弹性,要修改数据必须修改程序。 程序员必须自己编程实现数据的存储结构、存取方法和输入输出,迫使程序员直接与物理设备打交道,加大了程序设计难度,编程效率低。 数据面向应用,这意味着即使多个不同程序用到相同数据,也得各自定义,数据不仅高度冗余,而且不能共享。7.1.2 文件系统阶段进入20世纪60年代,数据管理方式发生了很大的变化。计算机在这个阶段不仅用于科学计算,还大量用于管理。外存储设备也出现了存取效率高得多的直接存储设备,如磁盘、磁鼓等;在

4、软件方面,不仅有了操作系统,而且还出现了专门的数据管理软件,一般称之为文件系统。有了文件系统,数据的增、删、改等操作都变得轻松了。更重要的是数据的复制变得相当容易,使数据可以反复使用。程序员在免除了数据管理工作以后,不仅可以专心从事其他更有意义的工作,而且减少了错误。文件管理方式本质上是把数据组织成文件形式存储在磁盘上。文件是操作系统管理数据的基本单位。文件可以命名,通过文件名以记录为单位存取数据,不必关心数据的存储位置。由于文件是根据数据所代表的意义组织的,所以文件能反映现实世界事物。在文件中常涉及下列术语:数据项:描述事物性质的最小数据单位;记录:若干数据项的集合称记录,一个记录能表达一个

5、具体事物;文件:若干记录的集会就叫做文件。显然,数据组织成文件,逻辑关系非常明确,使数据处理真正体现了信息处理,按名存取数据,既形象,又方便。由于有了直接存取存储设备,所以文件可以组织成多种形式,如顺序文件、索引文件等,从而对文件中的记录可顺序访问,也可随机访问。文件方式管理数据是数据管理的一大进步,即使是数据库方式也是在文件系统基础上发展起来的。这一阶段的特点如下: 数据可长期保存在磁盘上。 数据的物理结构与逻辑结构有了区别,两者之间由文件管理系统进行转换,因而程序与数据之间有物理上的独立性,即数据在存储上的改变不一定会影响到程序,这可使程序员不必过多地考虑数据存放地址,而把精力放在算法上。

6、 文件系统提供了数据存取方法,但当数据的物理结构改变时,仍需修改程序。 数据不再属于某个特定程序,在一定程度上可以共享。上述特点可用图7l表示文件管理系统程序1程序2程序n文件n文件2文件1图7l 文件系统阶段数据管理示意图然而,文件方式管理数据还是有很多缺陷的,主要表现在以下几个方面:1. 文件是面向特定用途设计的:这意味着有一个应用,就有一个文件相对应。而程序是基于文件编制的,导致程序仍然与文件相互依存。因为文件有所变动,程序就得相应修改,而文件离开了使用它的程序便全部失去存在的价值。2. 数据冗余大:因为文件之间缺乏联系,有可能造成同样数据在不同文件中重复存储。3. 数据可能发生矛盾:因

7、为同一数据出现在不同文件中,稍有不慎就可能造成同一数据在不同文件中不一样,这将导致数据的冗余。4. 数据联系弱:不同文件缺乏联系就不能反映现实世界中事物之间的自然联系,这是文件方式最大的弊端。7.1.3 数据库系统阶段到了20世纪60年代后期,计算机被越来越多地应用于管理领域,而且规模也越来越大,因此数据量也急剧增长。同时,人们对数据共享的要求也越来越强烈。在这种情况下,“数据库”的概念应运而生了。用数据库管理数据有如下的特点:1. 数据结构化数据库是存储在磁盘等外部直接存取存储设备上的数据集合,是按一定的数据结构组织起来的。与文件系统相比,文件系统中的文件之间不存在联系,因而从总体上看数据是

8、没有结构的;而数据库中的文件是相互联系着的,并在总体上遵从一定的结构形式。这是文件系统与数据库系统的最大区别。数据库正是通过文件之间的联系反映现实世界事物间的自然联系。2. 数据共享数据库中的数据是考虑所有用户的数据需求、面向整个系统组织的。因此数据库中包含了所有用户的数据成分,但每个用户通常只用到其中一部分数据。不同用户所使用的数据可以重叠,同一部分数据也可为多用户共享,如图72所示。程序1程序2程序n数据库应用程序远程终端用户图72 数据共享示意图3. 减少了数据冗余在数据库方式下,用户不是自建文件,而是取自数据库中的某个子集,它并非独立存在,而是靠数据库管理系统从数据库中映射出来的,所以

9、叫做逻辑文件。如图73所示,用户使用的是逻辑文件,因此尽管一个数据可能出现在不同的逻辑文件中,但实际上的物理存储只可能出现一次,这就减少了数据冗余。DBMS程序A程序B程序C逻辑文件C逻辑文件B逻辑文件A数据库图73 应用程序使用从数据库中导出的逻辑文件4. 有较高的数据独立性数据独立是数据库技术努力追求的目标,其好处是数据存储方式的改变不会影响到应用程序。数据独立又有两个含义,即物理数据独立性和逻辑数据独立性。所谓物理数据独立性是指数据库物理结构(包括数据的组织和存储、存取方法沙十部存储设备等)发生改变时,不会影响到逻辑结构,而用户使用的是逻辑数据,所以不必改动程序;所谓逻辑数据独立性是指数

10、据库全局逻辑发生改变时,用户也不需改动程序,就像数据库并没发生变化一样。这是因为用户仅使用数据库的一个子集,全局变化与否与具体用户无关,只要能从数据库中导出他所用到的数据就行。5. 用户接口在数据库系统中,数据库管理系统作为用户与数据库的接口,提供了数据库定义、数据库运行。数据库维护和数据安全性、完整性等控制功能;此外还支持某种程序设计语言,并设有专门的数据操作语言,为用户编程提供了方便。数据库系统的出现,使信息系统的研制从围绕加工数据的程序为中心转变到围绕共享的数据库来进行。这既便于数据的集中管理,也有利于应用程序的研制和维护,提高了数据的利用率和相容性,从而提高了做出决策的可靠性。因此大型

11、复杂的信息系统大多以数据库为核心。数据库是一个通用化的综合性数据集合。它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性。由于多种程序并发地使用数据库,为了能有效、及时地处理数据,并提供安全性和完整性,就需要一个软件系统数据库管理系统(DBMS),在建立、运用和维护时对数据库进行统一控制。在这个阶段,企业的管理一般采用管理信息系统(MIS)。管理信息系统可以有效地管理企业内部的信息和信息流,是企业向管理现代化迈出的第一步。而企业管理信息系统可以说是数据库管理系统在功能上的一种扩展,因为数据管理仍是它的核心内容。电子数据交换(EDI)也渐渐发展起来。数据库管理系统对企业从事电子交易

12、起到很大的支持作用。我们都知道EDI的一大特点(同时也是优点)就是把各种贸易单证的电子化和标准化。而数据库系统也是把数据管理规范化和标准化了。因此,就可以比较容易地实现数据库系统的业务数据与EDI的单证之间的自动转换。与手工制作电子单证相比,提高了效率、减少了错误、降低了成本。更高层次的、帮助企业决策的决策支持系统(DSS)也慢慢发展起来。但直到20世纪80年代末,决策支持系统的应用还不是很广泛。原因在于:那时的决策支持系统在理论和方法上过于复杂,过于偏重高级而抽象的理论,而且过于偏重结论,在一定程度上忽视了对业务数据的分析,而且,成本高昂,因此实际产生的应用效果远远比不上管理信息系统。在人们

13、眼里,决策支持系统是一个高高在上的东西。事实上,企业对于决策支持并不要求大而全,也并不要求一套系统代替决策者去思考,他们所需要的往往是对简单却十分重要的业务数据的反复挖掘,为决策提供一定的依据。科学的决策必须以大量可靠的数据为基础,这些数据应包括企业的内部数据、与企业的经营和生产相关的外部数据,还应包括综合数据和历史数据。否则,决策就没有根据,就会成为主观的猜想。当时,数据库技术虽然已经成熟,但应用还不广泛,所以普遍存在一个数据量不足的问题。此外,分析工具的缺乏也是一大问题。没有充足的数据,分析工具也不得力,分析的结果当然不能切中要害。由此可以看出,在这个阶段,用于决策支持的技术还不完备,时机

14、也还不成熟,决策支持系统的失败也是可以理解的。7.1.4 数据仓库阶段进入20世纪90年代,计算机得到空前广泛的应用,使得企业的生产效率进一步提高,商业竞争也越来越激烈了。一个企业要想在市场上生存下去,不仅要建立完善的计算机管理信息系统来提高效率,而且要先于对手获得至关重要的决策信息。这样,企业才能在未来的竞争中适应潮流、把握正确的发展方向。企业对迅速而准确地获得决策信息的需求比以前大大增强了。对企业来说,决策支持系统已不是可有可无的东西,企业需要实用而且成本低廉的决策支持系统。系统开发人员由于企业的需求,也渐渐认识到了决策支持系统开发的方向。决策支持系统的建设更应该把注意力放在对数据的挖掘上

15、,放在满足业务主管们各种各样的查询要求上,由他们自己做决定,系统只是提供一些用来辅助决策的参考意见,应该帮助而不是代替高级业务人员的思考。在这一时期,计算机及其网络技术的应用更为广泛,企业管理信息系统逐渐由以内部管理为主转变为对整个供应链的管理。企业之间的商务活动也从以前简单的电子数据传输转变为全方位的合作,电子商务蓬勃兴起。企业之间的相互合作不仅可以提高企业的生产效率、降低生产成本,也为企业获取大量的外部数据带来了方便。这就为决策支持分析奠定了基础。另外,由于数据库技术的发展和日益成熟,决策支持分析工具也渐渐丰富起来。企业的需求和技术的成熟最终导致了数据仓库的产生。数据仓库作为决策支持系统的

16、一种有效、可行的体系化解决方案,包括三个方面的内容:数据仓库技术(DW)、联机分析处理技术(OLAP)和数据挖掘技术(DM)。数据库技术的发展为解决决策支持问题提供了可能,而激烈的市场竞争产生了对决策支持的巨大需求,由此人们找到了以数据仓库为基础、以OLAP和DMI具为手段的一整套可操作、可实施的解决方案。7.2 数据库技术的基本理论 电子商务是指利用电子网络进行的商务活动,这里的电子网络主要是指Internet和基于 Internet技术的Intranet(企业内部网)及Extranet(企业外部网)。其进行的商务活动不仅包含电子数据交换所涉及的电子交易,还包括电子邮件交流、网上站点宣传和利

17、用lnternet技术改造的其他传统应用。但电子商务应用的前提是企业管理信息系统的广泛应用。数据库技术是企业管理信息系统的核心技术之一,所以,想深入地理解电子商务就应该先了解数据库的一些基本理论。7.2.1 数据模型1. 数据模型的要素数据库是某个企业、组织或部门所涉及的数据的一个综合,它不仅要反映数据本身的内容,而且还要反映数据之间的联系。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须事先把具体事物转换成计算机能够处理的数据。在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲数据模型就是现实世界的模拟。数据模型应满足三方面要求;一是能比较真实地模拟现实

18、世界;二是容易为人所理解;三是便于在计算机上实现。一种数据模型要很好地满足这三方面的要求,在目前尚很困难。在数据库系统中针对不同的使用对象和应用目的,采用不同的数据模型。不同的数据模型实际上是提供给我们模型化数据和信息的不同工具。根据模型应用的不同目的,可以将这些模型划分为两类,它们分属于两个不同的层次。第一类模型是概念模型,也称信息模型,它是按用户的观点对数据和信息建模。另一类模型是数据模型,主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。一般地讲,任何一种数据模型都是严格定义的概念的集合。这些概念必须能够精确地描述系统的静态特性、动态特性和完整性约束条件。因此数据

19、模型通常都是由数据结构、数据操作和完整性约束三个要素组成。 数据结构数据结构用于描述系统的静态特性,它包括数据对象及其相互联系,即数据结构是所研究的对象类型(object type)的集合。这些对象是数据库的组成成分,它们包括两类,一类是与数据类型、内容、性质有关的对象,例如网状模型中的数据项、记录,关系模型中的域、属性、关系等;一类是与数据之间联系有关的对象,例如网状模型中的系型(set type)。数据结构是刻画一个数据模型性质最重要的方面。因此在数据库系统中,人们通常按照其数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的数据模型分别命名为层次模型、网状模型和关系模型。

20、数据操作数据操作用于描述系统的动态特性,主要是对数据的检索和更新,即数据操作是指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有检索和更新(包括插入、删除、修改)两大类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。 数据的约束条件数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型应该反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如,在关系模型中,任何关

21、系必须满足实体完整性和参照完整性两个条件。此外,数据模型还应该提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。例如,在学校的数据库中规定大学生年龄不得超过29岁,硕士研究生不得超过38岁,学生累计成绩不得有3门以上不及格等。2. 数据模型的种类不同的数据模型具有不同的数据结构形式。目前最常用的数据模型有层次模型(hierarchical model)、网状模型(network model)和关系模型(relational model)。其中层次模型和网状模型统称为非关系模型。非关系模型的数据库系统在20世纪70年代与80年代初非常流行,在数据库系统产品中占

22、据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家里,由于历史遗留下来的原因,目前网状数据库系统的用户数仍很多。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进了数据库中面向对象数据模型的研究和发展。 层次模型层次模型是数据库系统中最早出现的数据模型,它用树形结构表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。层次模型数据库系统的典型代表是IBM公司的IMS(Information Management S

23、ystems)数据库管理系统,这是一个曾经广泛使用的数据库管理系统。 层次模型的数据结构层次模型用树结构表示数据之间的层次关系。按照树的定义,在层次模型中,数据之间的关系满足;有且仅有一个结点无双亲,这个结点称为根结点。其他结点有且仅有一个双亲结点。因此,层次模型职能描述数据之间一对一或多对多的关系。层次模型就像一棵倒立的树,如图74所示。在层次模型的数据库中查找某一结点,必须指定存取路径。所谓存取路径是指从根结点开始沿途所经过的路径。以图74为例。存取不同结点的存取路径如表71所示。n An Dn Cn B表71 存取路径 存取结点存取路径ABCDAABABCAD图74 层次模型 层次模型的

24、操纵与完整性检查层次模型的操纵主要有:查询、插入、删除和更新。进行查询、插入、删除和更新时要满足层次模型的完整性约束条件。进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值。进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除。进行更新时,应更新所有相应记录,以保证数据的一致性。 层次模型的优缺点层次模型的优点主要有:层次模型本身比较简单,只需很少几条命令就能操纵数据库,比较容易使用。对于实体间联系是固定的,且预先定义好的应用系统,采用此模型来实现,其性能优于关系模型,不次于网状模型。层次模型提供了良好的完整性支持。层次模型的缺点主要有:现实世界中很多联系是非层次性的,

25、如多对多联系,一个结点具有多个双亲,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(以产生不一致性)或创建非自然的数据组织(引入续借点)来解决。对插入和删除操作的限制比较多。查询子女结点必须通过双亲结点。由于结构严密,层次命令趋于程序化。 网状数据模型自然界中实体型间的联系更多的是非层次关系,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。网状模型的典型代表是DBTG系统,也称CODASYL系统。这是20世纪70年代数据系统预言研究会CODASYL(Conference On Data Systems Language)下属的数据库任务组(Data Base Tase

26、 Group简称DBTG)提出的一个系统方案。网状模型的数据结构网状模型描述了数据之间的网状关系,是一种比层次模型更具普遍性的结构,它去掉了层次模型的两个限制,数据之间允许:有一个以上的节点无双亲。结点可以有多个双亲结点。因此,网状模型可以更直接地描述现实世界。而层次结构实际上是网状结构的一个特例。图75时网状模型的例子。图75 网状模型网状模型的操纵与完整性约束网状模型的操纵主要包括查询、插入、删除和更新数据。插入操作允许插入尚未确定双亲结点值的子女结点值。删除操作允许只删除双亲结点值。由于网状模型可以直接表示非树形结构,而无需像层次模型那样增加冗余结点,因此做更新操作时只需更新指定记录即可

27、。查询操作可以有多种方法,可根据具体情况选用。可见,网状模型没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统(如DBTG)对数据操纵还是加了一些限制,提供了一定的完整性约束。网状模型的优缺点网状模型的优点主要有:能够更为直接地描述现实世界,如一个结点可以有多个双亲、允许结点之间为多对多的联系等。具有良好的性能,存取效率较高。网状模型的缺点主要有:其DDL语言极其复杂。数据独立性较差。由于实体间的联系本质上是通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。 关系模型关系模型是目前最重要的一种模型。美国IBM公司的研究员EFCodd于1970年发表题为“大型共享系统的关系数

28、据库的关系模型”的论文,文中首次提出了数据库系统的关系模型。20世纪80年代以来,计算机厂商新推出的数据库管理系统(DBMS)几乎都支持关系模型,非关系系统的产品也大都加上了关系接口。数据库领域当前的研究工作都是以关系方法为基础。关系模型的数据结构关系模型在三种模型中是最重要的。虽然它的数据关系是几种模型中最简单的,但其定义却比较复杂。可以把关系模型理解为一张二维表,表格中的每一行代表一个实体,称为记录;每一列代表实体的一个属性,称为数据项。记录的集合称为关系。关系具有如下性质:数据项不可再分(即不可表中套表)。关系中的列是同性质的,称为属性。属性之间不能重名。关系中不能出现相同的记录,记录的

29、顺序免所谓。每个关系都有一个主键,它能唯一地标识关系中的一个记录。关系中列的顺序不重要。学号姓名性别出生日期入学总分专业号9901张三男82/10/02625J001图76 关系模型关系模型的操纵与完整性约束关系数据模型的操纵主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不像非关系模型中那样是单记录的操作方式。另一方面,关系模型把存取路径向用户隐蔽起来,用户只需指出“干什么”或“找什么”,不必详细说明“怎么干”或“

30、怎么找”,从而大大地提高了数据的独立性,提高了用户的生产率。关系模型的优缺点关系模型具有下列优点:关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。关系模型的概念单一。无论实体还是实体之间的联系都用关系来表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。”所以关系数据模型诞生以后发展迅速,深受用户的喜爱。关系模型的缺点主要是:由于存取路径对用户透明,查询效率不如非关系模型。因此,必须对用户的查询请求进行优化,增加了开发数据库管理系统的负

31、担。7.2.2 关系数据库关系数据库是以关系模型为基础的数据库,它利用关系来描述现实世界,应用数学方法来处理数据库中的数据。关系数据库目前是各类数据库中最重要、最流行的数据库。1. 概述关系数据库系统是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。 关系数据结构关系模型的数据结构非常单一,在用户看来,关系模型中数据的逻辑结构是一张扁平的二维表。但关系模型的这种简单的数据结构能够表达丰富的语义,描述出现实世界的实体以及实体间的各种联系。 关系操作 关系操作采用集合操作方式,即操作的对象和结果都是集合。关系模型中常用的关系操作包括:选择、投影、连接、除、并、

32、交、差等查询操作和增、删、改操作两大部分。查询的表达能力是其中最主要的部分。关系模型中的关系操作能力早期通常是用代数方式或逻辑方式来表示,分别称为关系代数和关系演算。关系代数是用对关系的运算来表达查询要求的方式。关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。关系代数、元组关系演算和城关系演算均是抽象的查询语言,这些抽象的语言与具体的数据库管理系统(DBMS)中实现的实际语言并不完全一样。但它们能用作评估实际系统中查询语言能力的标准或基础。实际的查询语言除

33、了提供关系代数或关系演算的功能外,还提供了许多附加功能,例如集函数、关系赋值、算术运算等。关系语言是一种高度非过程化的语言,用户不必请求数据库管理员(DBA)为他建立特殊的存取路径,存取路径的选择由数据库管理系统(DBMS)的优化机制来完成,另外,用户不必求助于循环结构就可以完成数据操作。对于关系数据库而言,有一种介于关系代数和关系演算之间的语言SQL(structured query language,结构化查询语言),它不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询、数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)于一体的关系数据语言,它充分体现了关

34、系数据语言的特点和优点,是关系数据库的标准语言。因此,关系数据语言可分成以下三类:关系代数语言,如ISBL;关系演算语言,其中包括:元组关系演算语言,如APLHAQUEL;域关系演算语言,如QBE;具有关系代数和关系演算双重特点的语言,例如SQL。这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。 完整性约束在关系型数据库中,完整性约束用于确保数据的准确性和一致性。关系模型提供了丰富的完整性控制机制,允许定义三类完整性:实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,应该由关系系

35、统自动支持。实体完整性(entity integrty)一个基本关系通常对应现实世界的一个实体集。例如,“学生”关系对应于学生的集合。现实世界中的实体是可区分的,即它们具有某种唯一性标识。相应地,关系模型中以主码作为唯一性标识。主码中的属性即主属性不能取空值。所谓空值就是“不知道”或“无意义”的值。如果主属性取空值,就说明存在某个不可标识的实体,即存在不可区分的实体,这与现实世界的应用环境相矛盾,因此这个实体一定不是一个完整的实体。实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。例如,在关系学生(学号,姓名,性别,出生日期,入学总分,专业号)中,学生的学号属性为主码,则学生的

36、学号不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。例如,学生选课关系“选修(学号,课程号,成绩)”中,(学号,课程号)为主码,则学号和课程号两属性都不能取空值。参照完整性(referential integrity)现实世界中的实体之间往往存在某种联系,在关系模型中实体及实体间的联系都是用关系来描述的。这样就自然存在着关系与关系间的引用。先看下面的3个例子。例1:学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识:学生(学号,姓名,性别,出生日期,入学总分,专业号,)专业(专业号,专业名)这两个关系之间存在着属性的引用,即“学生”关系引用

37、了“专业”关系的主码“专业号”。显然,“学生”关系中的专业号值必须是确实存在的专业的专业号,即“专业”关系中有该专业的记录。这也就是说,“学生”关系中的某个属性的取值需要参照“专业”关系的属性取值。例2:学生、课程、学生与课程之间的多对多联系可以用以下三个关系来表示:学生(学号,姓名,性别,出生日期,入学总分,专业号)课程(课程号,课程名,学分)选修(学号,课程号,成绩)这三个关系之间也存在着属性的引用,即“选修”关系引用了“学生”关系的主码“学号”和“课程”关系的主码“课程号”。同样,“选修”关系中的学号值必须是确实存在的学生的学号,即“学生”关系中一定有该学生的记录;“选修”关系中的课程号

38、值也必须是确实存在的课程的课程号,即“课程”关系中一定有该课程的记录。换句话说“选修”关系中某些属性的取值需要参照其他关系的属性取值。不仅两个或两个以上的关系间可以存在引用关系,同一关系内部属性间也可能存在引用关系。例3:关系学生1如下所示:学生1(学号,姓名,性别,出生日期,专业号,班长)其中,“学号”属性是主码,“班长”属性表示该学生所在班级的班长的学号,它引用了本关系中的“学号属性,即“班长”必须是确实存在的学生的学号。定义:设A是基本关系R的一个或一组属性,但不是关系R的主码,如果A与基本关系S的主码Ks相对应,则称A是基本关系R的外码(foreign key),并称基本关系R为参照关

39、系(referencing relation),基本关系S为被参照关系(referenced relation)或目标关系(target relation)。关系R和S不一定是不同的关系。显然,目标关系S的主码Ks和参照关系的外码A必须定义在同一个(或一组)域上。在例1中,“学生”关系的“专业号”属性与“专业”关系的主码“专业号”相对应,因此“专业号”属性是“学生”关系的外码。这里“专业”关系为被参照关系,“学生”关系为参照关系。如图77(a)所示。在例2中,“选修”关系的“学号”属性与“学生”关系的主码“学号”相对应,“课程号”属性与“课程”关系的主码“课程号”相对应,因此“学号”和“课程号

40、”属性是“选修”关系的外码。这里“学生”关系和“课程”关系均为被参照关系,“选修”关系为参照关系。如图77(b)所示。学生关系专业号专业关系学生关系选修关系课程关系学号课程号(a)(b)图77 关系的参照图在例3中,“班长”属性与本关系主码“学号”属性相对应,因此“班长”是外码。这里“学生1”关系既是参照关系也是被参照关系。需要指出的是,外码并不一定要与相应的主码同名(如例3)。不过,在实际应用当中,为了便于识别,当外码与相应的主码属于不同关系时,往往给它们取相同的名字。参照完整性规则就是定义外码与主码之间的引用规则。参照完整性规则:若属性(或属性组)A是基本关系R的外码,它与基本关系S的主码

41、Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在A上的值必须为:或者取空值(A的每个属性值均为空值);或者等于S中某个元组的主码值。例如,对于例1,“学生”关系中每个元组的专业号属性只能取下面两类值;空值,表示尚未给该学生分配专业;非空值,这时该值必须是“专业”关系中某个元组的专业号值,表示该学生不可能分配到一个不存在的专业中。即被参照关系“专业”中一定存在一个元组,它的主码值等于该参照关系“学生”中的外码值。对于例2,按照参照完整性规则,学号和课程号属性也可以取两类值:空值或目标关系中已经存在的值。但由于学号和课程号是“选修”关系中的主属性,按照实体完整性规则,它们均不能

42、取空值。所以“选修”关系中的学号和课程号属性实际上只能取相应被参照关系中已经存在的主码值。参照完整性规则中,R与S可以是同一个关系。例如,对于例3,按照参照完整性规则,班长属性值可以取两类值空值,表示该学生所在班级尚未选出班长;非空值,这时该值必须是本关系中某个元组的学号值。用户定义的完整性(user-defined integrity)实体完整性和参照完整性适用于任何关系数据库系统。用户定义的完整性是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统方法来处理它们而不是由应用程序承担这一功能。2. 结

43、构化查询语言(SQL)结构化查询语言(structured query language,简称SQL)的理论是1974年由Boyce和Chamberlin提出的,并于1975年至1979年在IBM公司的System R上实现。由于它具有功能丰富、使用方式灵活、语言简洁易学等优点,在计算机工业界和用户中倍受青睐,很快被广泛推广。后来,美国国家标准局(ANSI)和国际标准化组织(ISO)先后批准SQL作为关系数据库语言的美国及国际标准。至此,SQL就成为关系数据库的标准语言,关系数据库系统一般都支持标准SQL语句。所以,尽管当今不同品牌的关系数据库有这样或那样的差异,但是人们却都可以通过标准SQL

44、语句对数据库进行操作,因此,大大减轻了用户的负担。 SQL语言的特点SQL语言之所以能够被用户和业界所接受并成为国际标准,是因为它是一个综合的、通用的、功能极强同时又简洁易学的语言。SQL语言充分体现了关系数据语言的特点和优点。其重要特点包括;SQL是一种一体化的语言,它包括了数据定义、数据查询、数据操纵和数据控制等功能,可以完成数据库活动中的全部工作。以前的非关系模型(层次模型、网状模型)的数据语言一般都分为存储模式描述语言、概念模式描述语言、外部模式描述语言和数据操纵语言等,这种模型的数据语言,一是内容多;二是掌握和使用起来都不像SQL那样简单和实用。另外,在关系模型中,实体和实体间的联系

45、均用关系来表示,这种数据结构的单一性带来了数据操作符的统一性,查找、插入、删除、更新等每一种操作都只需一种操作方式,从而避免了非关系系统由于信息表示方式的多样性带来的操作复杂性。SQL语言是一种高度非过程化的语言,用户只需提出“做什么”,而不必指明“怎么做”,SQL语言就可以将要求交给系统,由系统自动完成全部工作。SQL语言用一种语法结构提供两种使用方式:直接以命令方式交互使用,也可以嵌入到程序设计语言中(例如C、Cobol、Fortran、PL/SQL)以程序方式使用。这一种做法为用户提供了极大的灵活性与方便性。现在有很多数据库应用开发工具都将SQL语言直接溶到自身的语言中,如Delphi、

46、Powerbuilder等。这种使用方式为用户提供了更多的选择余地。SQL语言的命令简洁,易学易用。虽然SQL语言功能极强,但由于设计巧妙,所以只用了为数不多的几条命令就完成了所有的核心功能。另外,它的语法也很简单,很接近自然语言(英语),因此,容易学习和掌握。SQL语言支持数据库的三层模式结构;与概念模式的概念文件对应的是基本表(Table),与存储模式对应的是存储文件以及与外部模式对应的是视图和部分基本表。用户看到的可以是基本表或视图,基本表和视图都是关系,用户可以在其上进行查询操作。而存储文件对用户来说是透明的。 SQL语言的功能SQL语言是结构化的查询语言。是一种综合的、通用的、功能极

47、强的关系数据库语言。它的功能包括:创建数据库对象、操纵对象、往数据库表中填充数据、在数据表中更新已存在的数据、删除数据、执行数据库查询、控制数据库访问权限和数据库总体管理。主要分以下几类:数据定义语言DDL数据定义语言(DDL)是SQL的一部分,是SQL中用来生成、修改、删除关系数据库的表、窗口、模式、目录等基本要素的语言成分。它允许数据库用户创建或重新构造数据库对象,如创建或删除一个数据库表。DDL所包含的要点是:标识所有的表定义每一个表中所含的列给每一个表一个保证唯一的主关键字确认在数据库每一个表中至少有一个列是与其他表中的列相同。这些共享的列提供了逻辑上的连接,允许一个表中的信息与另一表中的相应信息相关联。将每一个表都用第三范式(3NF)或更好的方法来

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁