实体联系模型E-R模型--补充资料

上传人:f****u 文档编号:112949903 上传时间:2019-11-07 格式:PPT 页数:42 大小:450KB
返回 下载 相关 举报
实体联系模型E-R模型--补充资料_第1页
第1页 / 共42页
实体联系模型E-R模型--补充资料_第2页
第2页 / 共42页
实体联系模型E-R模型--补充资料_第3页
第3页 / 共42页
实体联系模型E-R模型--补充资料_第4页
第4页 / 共42页
实体联系模型E-R模型--补充资料_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《实体联系模型E-R模型--补充资料》由会员分享,可在线阅读,更多相关《实体联系模型E-R模型--补充资料(42页珍藏版)》请在金锄头文库上搜索。

1、第 3 章,第3章 实体联系模型(E-R模型),数据库应用教程,3.1 ER模型,3.2 ER图的设计方法,3.3 ER模型到关系模型的转换,第3章 实体联系模型(E-R模型),3.1 ER模型,E-R模型是由P.P.Chen于1976提出的,现已广泛应用于数据库设计中,该模型通过E-R图表示实体集及实体集之间的联系,用于实现数据的第一次抽象,即把现实世界转换为信息世界。在设计数据库时,人们往往把E-R图作为中间步骤,用E-R图准确地反映出信息,再从E-R图构造出实施数据模型,从而使问题变得简单,不易犯错。,3.1 ER模型,3.1.1 E-R图的组成要素及其画法,1E-R图要素,E-R图的基

2、本要素有四个:实体集、联系、属性、主关键字。,2绘制方法,把相互联系的实体集(方框)通过联系(菱形框)连接起来,注明联系方式,再把实体集的属性(椭圆框)连到相应实体集上。,3.1 ER模型,3.1.2 两实体集间不同联系情况的E-R图表示法,【例3-1】两个实体集之间的一对一的联系的绘制方法。 假设某学院有若干个班级,每个班级只有一个辅导员,每个辅导员只管理一个班级。则辅导员和班级之间是一对一的联系。班级和辅导员的属性分别如下: 辅导员工号,姓名,性别,年龄,学历 班级班号,班级名 另外,辅导员和班级之间是一个管理联系,这种管理用一个属性任职时间来描述,请根据描述画出能够反映实体集之间的信息关

3、系的E-R图。,3.1 ER模型,3.1.2 两实体集间不同联系情况的E-R图表示法,【例3-2】 两个实体集之间的一对多的联系的绘制方法。 假设在某出版管理系统中,有两个实体集:出版社和图书。出版社用来出版图书,且规定一本图书只能由一个出版社出版,一个出版社可以出版多本图书。出版社和图书之间是一对多的联系。出版社和图书的属性分别如下: 出版社社号,地点,电话 图书书号,书名,价格 另外,在出版联系中要反映出出版图书的数量。请根据描述画出能够反映实体集之间的信息关系的E-R图。,3.1 ER模型,3.1.2 两实体集间不同联系情况的E-R图表示法,【例3-3】两个实体集之间的多对多的联系的绘制

4、方法。 假设在某图书管理系统中,一名作者可以创作多本书,一本书也可以由多名作者共同创作。图书和作者之间是多对多的联系。作者和图书可用以下属性来描述: 作者编号,姓名,职称图书书号,书名,出版日期 另外,在“创作”联系中应能反映出该书的合同时间和完成时间。请根据描述画出能够反映实体之间的信息关系的E-R图。,3.1 ER模型,3.1.3 同一实体集内部不同联系情况的E-R图表示法,【例3-4】同一实体集内部的一对多联系的绘制方法。 假设在某单位里,职工实体集中的实体可分成两类:领导者和被领导者。领导者可以领导多个被领导者,而被领导者只有一个顶头上司,从而实现层层负责制。而对于一个具体职工而言,他

5、既可能是其他职工的领导者,又可能被别的职工领导。职工实体集的属性描述如下。 职工工号,姓名,性别,出生日期,工作日期,职称,工资 另:在“领导”联系中有个“民意测验”属性,用来存放职工对领导的满意度。,3.1 ER模型,3.1.3 同一实体集内部不同联系情况的E-R图表示法,【例3-5】同一实体集内部的多对多联系的绘制方法。 假设在某组装车间中,零部件之间存在着多对多的组装联系,即一个零部件能组装多种其它零部件,反之该零部件也可以由其他零部件组装。零部件实体集的属性描述如下。 零部件部件号,名称,价格 零部件之间的组装联系有一个属性“数量”,用来指出组装该零部件需要其它零部件各多少个。,3.1

6、 ER模型,3.1.4 两个以上实体集之间多对多多元联系的E-R图表示法,【例3-6】两个以上实体集之间多对多多元联系的E-R图表示法。 在某校教务处信息管理系统中,假设在同一学期中,一名教师可以教多门课,一门课可以由多名教师教,一名学生可以选多名不同教师都的课,一名教师教的课可以被多名不同的学生选修。那么教师、课程、学生实体集之间就存在着多对多的多元联系。各实体集的属性描述如下。 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片 课程:课程编号,课程名称,学时,学分,备注 学生:学号,姓名,身份证号,性别,出生日期,专业,年级,电话号码,备注,照片 另外,学生选修某教

7、师教的某门课程有一个成绩。,3.2 ER图的设计方法,1.设计E-R图的两个阶段,(1)针对每一用户画出该用户信息的局部ER图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于ER图的简化。,(2)综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体ER图必须能导出原来的所有局部视图,包括实体、属性和联系。,注意:一个系统的总体ER图不是惟一的,强调不同的侧面画出的ER图可能有很大不同。总体ER图所表示的实体联系模型,只能说明实体间的联系,还需要把它转换成数据模型才能被实际的DBMS所接受 。

8、,3.2 ER图的设计方法实例,【例3-7】某学校管理系统中有三个部门:教务处、人事处和财务处。教务处职能是管理学生选课和教师任课;人事处职能是管理人员的隶属关系;财务处职能是发放教师的工资。 教务处涉及到的实体集及实体集之间的联系如例3-6所述。 人事处涉及到的实体集及实体集之间的联系如下: 系:属性有系号,系名,系主任,电话号码,办公地点 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片 班级:班号,班级名称,辅导员 学生:学号,姓名,身份证号,性别,出生日期,专业,年级,电话号码,备注,照片 实体集之间的联系可描述为:一个系拥有多名教师,一名教师只从属于一个系;一

9、个系管理多个班级,每个班级只属于一个系;一个班级由多名学生组成,每个学生只属于一个班级。 财务处涉及到的实体集及实体集之间的联系如下: 教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片 工资:属性有基本工资、加班工资、扣税、工资编号 教师和工资的联系是:一个教师只能领一份工资,一份工资只能由一个教师领,领工资时应注明是某月工资。 请根据要求设计出该学校管理系统的全局E-R图。,3.3 ER模型到关系模型的转换,E-R图转换为关系模型可遵循如下原则,(1)对于ER图中每个实体集,都应转换为一个关系,该关系应包括对应实体集的全部属性,并应根据关系所表达的语义确定哪个属性或属

10、性组作为“主关键字”,主关键字用来标识实体。,(2)对于ER图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。,3.3 ER模型到关系模型的转换,3.3.1 两实体集间联系的转换,1两实体集间1:n联系,两实体集间1:n联系,可将“一方”实体集的主关键字纳入“n方”实体集对应的关系中作为“外关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。 例如,图3-3所示的一对多的联系,可转换成下面的两个关系模式 。,3.3 ER模型到关系模型的转换,3.3.1 两实体集间联系的转换,2两实体集间m:n联系,对于两实体集间m:n联系,必须对“联

11、系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。 例如,图3-4所示的多对多的联系,可转换成下面的三个关系模式 。,3.3 ER模型到关系模型的转换,3.3.1 两实体集间联系的转换,3两实体集间的1:1的联系,假设A实体集与B实体集是1:1的联系,联系的转换有三种方法: 把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入; 把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入; 建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。,3

12、.3 ER模型到关系模型的转换,3.3.2 同一实体集内部联系的转换,1同一实体集内部的一对多联系的转换,同一个实体集内部个体间的1:n联系,可在这个实体集对应的关系中多设一个属性,用来作为与该实体相联系的另一实体的“主关键字”,如果联系有属性,也一并归入到关系中。 例如图3-6所示的职工实体集内部1:n的联系,就可以转换为如下关系模式。,3.3 ER模型到关系模型的转换,3.3.2 同一实体集内部联系的转换,2同一实体集内部的多对多联系的转换,如果同一实体集内存在m:n的联系,也需为这个联系单独建立一个关系,该关系中至少应包含被它联系的双方实体的主关键字,如果联系有属性,也要归入这个关系中。

13、 例如图3-7所示的零部件实体集内部m:n组装联系,就可以转换为如下两个关系模式。,3.3 ER模型到关系模型的转换,3.3.3 多个实体集之间多对多多元联系的转换,对于两个以上实体集之间m:n的多元联系,必须为联系单独建立一个关系,该关系中至少应包含被它联系的各个实体集的主关键字,如果联系有属性,也要归入这个关系中。 例如图3-8所示的教师、学生、课程实体集之间“教学课”多元联系可转化为以下关系模式。,【例3-5】把图3-10所示的E-R图转换为关系模式。 解:第一步把每个实体集转换成一个关系模式,如下:,第二步转换关系,分三步,如下: (1)把教师、课程和学生三个实体集的m:n的多元联系反

14、映出来,需建立一个新的关系,关系中包含联系涉及到的各实体集的主关键字及联系的属性。转换的关系如下。,(2)把系与教师、系与班级及班级与学生之间的1:n的联系反映出来,只需把相应的1方的主关键字放入到多方中使之成为外关键字即可。转换的关系如下。,第二步转换关系,分三步,如下: (3)把教师和工资间的一对一的关系反映出来,可把教师号和月份属性放到工资关系中。,最后形成的关系模式为:,2.5 关系模型,4.关系规范化 关系规范化的前三个范式原则如下: (1)第一范式:若一个关系模式R的所有属性都是不可再分的基本数据项,则该关系模式属于第一范式(1NF)。 (2)第二范式:若关系模式R属于1NF,且每

15、个非主属性都完全函数依赖于码,则该关系模式属于2NF,2NF不允许关系模式中的非主属性部分函数依赖于码。 (3)第三范式:若关系模式R属于1NF,且每个非主属性都不传递依赖于码,则该关系模式属于3NF。,2.5 关系的规范化-前三个范式的实例(图1),前三个范式的实例-1,1)项目号希望是主键,或者是主键的一部分,但是包含Null值. 2)该表有数据冗余,这些冗余产生了如下异常. 更新异常:当重复信息的一个拷贝被修改,所有的拷贝都必须进行同样的修改,否则就会造成不一致性. 例如:修改员工号为102的员工”工作类型”将潜在的要求许多的修改,对每个”员工号”=102的记录都需要修改. 插入异常:只

16、有当一些信息事先已经存储在数据库中时,另外一些信息才能存入到数据库中. 例如:为了满足行的定义,新员工必须被分配到某个项目.如果员工没有被分配到某一个项目中,就必须创建一个虚拟的项目,以完成员工数据录入. 删除异常:在删除某些信息时可能会丢失其他信息. 例如:如果员工104辞职了,必须删除所有”员工号”=104的记录,而一旦这些记录被删除,将会丢失许多别的重要数据. 注意:每次把员工分配到某个项目时,没有必要重复记录某些数据如(项目名,员工名等),前三个范式的实例(图2),前三个范式的实例第一范式1,因为关系模型将数据看作表的一部分或者表的集合的一部分,这些表中所有的码值必须确定,所以图1中的数据不能够按照所显示的格式存储. 由上所述,可将图1改成图2即可. 图3所示的依赖图来标识依赖.,前三个范式的实例第一范式2,分析图3的时候,注意下面几点. 1)主码属性是下划线表示 2)实体上方的箭头指出了所有必须的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号