您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第2章 关系数据库系统
第2章关系数据库系统本章要点1.掌握概念模型,并可以通过E/R图进行数据库的建模。2.理解三种常用的数据模型中的层次模型和网状模型,并对关系模型重点理解掌握。3.关系模型是关系数据库的基础,理解和掌握关系模型是学习关系数据库的基础。4.关系数据库系统有三种关系完整性,即实体完整性、参照完整性和用户定义的完整性。理解掌握三种完整性,对于实际应用当中建立数据库是非常必要的。2.1概念模型与数据库的建模由图1.6可以看出,概念模型是现实世界到机器世界的一个中间层次。所谓概念模型,是指抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有价值的信息结构。概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库涉及人员进行数据库设计的工具,也是数据库设计人员和用户之间进行交流的工具,因此该模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中各种语义知识;另一方面它还应该简单、清晰、易于被用户理解。概念模型是面向用户、面向现实世界的数据模型,它与具体的DBMS无关。在数据库的设计阶段,采用概念模型,其主要是把主要精力放在了解现实世界的客观事物以及事物的联系上,而把涉及DBMS的一些问题放在设计的后面阶段考虑。常用的概念模型是实体-联系(Entity-Relationship)模型,也称E/R图。2.2.1实体-联系模型1976年,P.P.S.Chen提出了实体-联系方法。该方法用E/R图来描述现实世界的概念模型,E/R方法也称为E/R模型。由于该方法简单、实用,因此得到了广泛的应用,也是目前描述信息结构最常用的方法。在实体-联系模型中,主要涉及以下概念:1.实体客观存在,可以相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。例如:可以触及的客观对象仓库、器件、职工┄等是实体,客观存在的抽象事件订货、演出、足球赛……等也是实体,老师与系存在工作关系也是实体。实体集:性质相同的同类实体的集合,称为实体集。例如:全体教师实体集。2.属性每个实体都具有一定的特征和性质,这样我们才能根据实体的特征来区分一个个实体。属性就是实体所具有的某一个特性,或者说描述实体或者联系的性质或特征的数据项。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。3.联系现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指实体与实体之间不同实体之间的联系。与一个联系有关的实体集个数,称为联系的元数。二元联系即两个实体之间有以下三种类型:⑴一对一联系:如果实体集E1中每个实体至多和实体集E2中的一个实体有联系,反之亦然,那么实体集E1和E2的联系称为“一对一联系”,记为“1:1”。在关系数据库中,一对一的联系表现为一个表中的每一个记录只与相关表中的一个记录相关联。⑵一对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体间有联系,而E2中每个实体至多和E1中一个实体有联系,那么称E1对E2的联系是“一对多联系”,记为“1:N”。在关系数据库中,一对多的联系表现为一个表中的每一个记录与相关表中的多个记录相关联。⑶多对多联系:如果实体集E1中每个实体可以与实体集E2中任意个(零个或多个)实体有联系,反之亦然,那么称E1和E2的联系是“多对多联系”,记为“M:N”。在关系数据库中,多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录与其匹配。即表A的一个记录在表B中可以对应多个记录,而表B的一条记录在表A中也可以对应多个记录。一对多是最普遍的联系。可以把一对一的联系看作一对多联系的一个特殊情况。同样一对多又是多对多联系的特例。实体之间的联系类型并不取决于实体本身,而是取决于现实世界的管理方法,或者说取决于语义,即同样两个实体,如果有不同的语义则可以得到不同的联系类型。以仓库和器件两个实体之间的关联为例:如果规定一个仓库只能存放一种器件,并且一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对一的。如果规定一个仓库可以存放多种器件,但是一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对多的。如果规定一个仓库可以存放多种器件,同时一种器件可以存放在多个仓库,这时仓库和器件之间的联系是多对多的。2.2.2实体-联系模型的表示方法E/R模型提供了表示实体型、属性和联系的方法。实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1∶1,1∶n,n∶m)。需要注意的是:联系本身也可能有属性。如果一个联系有属性,则这些属性也要用无向边与该联系连接起来。设计E/R图的过程如下:⑴首先确定实体类型。⑵确定实体类型的属性。⑶确定联系类型,及其属性。⑷把实体类型和联系类型组合成E/R图。⑸加上实体和联系的属性,并确定实体类型的码。下面以一个例子说明E/R图的表示方法。在物资管理中,一个供应商为多个项目供应多种零件,一种零件只能保存在一个仓库中,一个仓库中可保存多种零件,一个仓库有多名员工值班,由一个员工负责管理。画出该物资管理系统的E/R图。图2.1物资管理E/R图2.2.3数据库建模要设计一个数据库,首先要分析数据库中将要存放什么信息,这些信息彼此之间有什么联系,从而确定数据库的结构。数据库的结构,也成数据库模式,因此这个过程就称为数据库建模。数据库模式通常用某种表示方法加以说明。在实际的应用过程中,我们常用E/R模型进行数据库的建供应商仓库员工项目零件保管工作领导供应库存量mn11m数量11nmp模。即对事物进行需求分析收集到的数据进行分类、组织,形成实体、实体的属性,确定实体之间的联系类型,设计E/R图。具体内容在第八章讲述。2.2常用的数据模型目前,数据库领域中常用的数据模型有三种,它们是:层次模型网状模型关系模型一般将层次模型和网状模型通称为非关系模型。非关系模型的数据库系统在20世纪70年代至80年代非常流行。现在已逐步被关系模型的数据库所取代。关系模型对数据库的理论和实践产生很大的影响,成为当今最流行的数据库模型。本书重点介绍关系数据库的基本概念和使用,为了使读者对数据模型有一个全面的认识,进而深刻地理解关系模型,这里先对层次模型和网状模型作一简单的介绍,在比较详细地介绍关系数据模型。2.2.1层次数据模型用树状结构表示实体及实体间的联系的模型称为层次模型。在这种模型中,数据被组织成由“根”开始的“树”,每个实体由根开始沿着不同的分支放在不同的层次上,如果不再向下分支,那么此分支序列中最后的结点称为“叶”。上级结点与下级结点之间为一对多的联系。树的每一个结点代表一个实体。层次模型实际上是由若干个代表实体之间一对多联系的基本层次联系组成的一棵树,层次模型可以直接、方便地表示一对多的联系,但有以下两点限制:⑴有且仅有一个结点无父结点,这个结点即为树的根。⑵其它结点有且仅有一个父结点。在插入时,不能插入无双亲的子结点,如新来的教师未分配教研室则无法插入到数据库中,没有一个子女记录值能够脱离双亲记录值而独立存在。在删除时,如删除双亲结点,则其子女结点也会被一起删除。如删除某个教研室则它的所有教师也会被删除。在更新时,应更新所有相应的记录,以保证数据的一致性。图2.2教学院系的数据模型D#DNDLS#SSSNT#TNTDR#RN系DTS学生S教研室R教师TS63876WBD02CS0BS63871ALJDTS学生SS63871CYACR03DBR01R02AIIMSE1101HRCPE3102ZPE3501LJJE2101DBTWSE1709LBDBSDBSESRTE图2.3教学院系数据库的一个实例在插入时,不能插入无双亲的子结点,如新来的教师未分配教研室则无法插入到数据库中,没有一个子女记录值能够脱离双亲记录值而独立存在。在删除时,如删除双亲结点,则其子女结点也会被一起删除。如删除某个教研室则它的所有教师也会被删除。在更新时,应更新所有相应的记录,以保证数据的一致性。支持层次数据模型的DBMS称为层次数据库管理系统。层次模型有两个缺点:一是只能表示1:N联系,虽然系统有多种辅助手段实现M:N联系但较复杂,用户不易掌握;二是由于层次顺序的严格和复杂,引起数据的查询和更新操作很复杂,因此应用程序的编写也比较复杂。2.2.2网状数据模型现实世界中实体间的联系更多的是非层次关系。用有向图结构表示实体类型及实体间联系的数据模型称为网状模型。网中的每一个结点代表一个实体类型。网中的每一个结点代表一个实体。网状模型突破了层次模型的两点限制:允许结点有多于一个的父结点;可以有一个以上的结点没有父结点。因此,网状模型可以方便地表示类型间的联系。图2.4给出了一个简单的网状模型。每一个联系都代表实体之间一对多的联系,系统用单向或双向环形链接指针来具体实现这种联系。如果课程和选课人数较多,链接将变的相当复杂。网状模型的主要优点是表示多对多的联系有很大的灵活性,这种灵活性是以数据结构复杂为代价的。图2.4网状模型示例专业系教研室课程教员学生选课任课支持网状数据模型的DBMS称为网状数据库管理系统,在这种系统中建立网状数据库。网状模型和层次模型在本质上是一致的。从逻辑上看,它们都是用结点表示实体,用有向边(箭头)表示实体间的联系,实体和联系用不同的方法来表示;从物理上看,每一个结点都是一个存储记录,用链接指针来实现记录之间的联系。这种用指针将所有数据记录都“捆绑”在一起的特点,使得层次模型和网状模型存在难以实现系统修改与扩充等缺陷。2.3.3关系数据模型关系模型是三种模型中最重要的一种数据模型。关系数据库系统采用了关系模型作为数据的组织方式,现在流行的数据库系统大都是基于关系模型的关系数据库系统。1970年IBM公司E.F.Codd的多篇论文提出关系数据库理论。自20世纪80年代以来,计算机厂商新推出的数据库管理系统几乎都是支持关系模型的,数据库领域当前的研究工作都是以关系方法为基础的。关系模型由关系数据库、关系操作集合和关系完整性约束三部分组成。1.关系数据结构关系模型源于数学,它用二维表来组织数据,而这个二维表在关系数据库中就称为关系。关系数据库就是表或者说是关系的集合。关系模型就是用二维表格结构来表示实体及实体之间联系的模型。在关系模型中,用户感觉数据库就是一张张表。在关系系统中,表是逻辑结构而不是物理结构。表2.1所示的是学生基本信息的关系模型。表2.1学生基本信息表我们再来看一个例子,有三个二维表。下表仅显示的是数据库表的结构,表中的数据未给出。学号姓名性别年龄籍贯996210王耀男19陕西996211李娟女18上海996212王超男19北京我们再来看一个例子,有三个二维表。下表仅显示的是数据库表的结构,表中的数据未给出。表2.2教师授课信息表表2.2中,我们可以很容易看出表之间有联系。教师关系和授课关系有公共的属性“教师号”,则表明这两个关系有联系。而课程关系和授课关系有公共的属性“课程号”,则表明这两个关系也有联系。至于元组之间的联系,则与具体的数据有关。只有在公共属性上具有相同属性值的元教师号姓名性别年龄职称教师信息课程号课程名称课时数教师号课程号课程信息授课信息组之间才有联系。由以上可以看出,在一个关系中可以存放两类信息:⑴描述实体本身的信息⑵描述实体(关系)之间的联系的信息在层次模型和网状模型中,把有联系的实体(元组)用指针链接起来,实体之间的联系是通过指针来实现的。而关系模型则采用不同的思想,即用二维表来表示实体与实体之间的联系,这就是关系模型的本质所在。所以,在建立关系模型时,只要把的所有的实体及其属性用表来表示,同时把实体之间的联系也用表来表示,就可以得到一个关系模型。2.关系操作系操作就关系模型而言,给出了关系操作的能力。关系数据模型中的操作包括:●传统的集合运算并(Union)交(Intersect
本文标题:第2章 关系数据库系统
链接地址:https://www.777doc.com/doc-3152101 .html