您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 实体关系模型(E-R图)
11E—R模型2E—R图的设计方法3E—R模型到关系模型的转换实体关系模型(E-R模型)21E—R模型E-R模型是由P.P.Chen于1976提出的,现已广泛应用于数据库设计中,该模型通过E-R图表示实体集及实体集之间的联系,用于实现数据的第一次抽象,即把现实世界转换为信息世界。在设计数据库时,人们往往把E-R图作为中间步骤,用E-R图准确地反映出信息,再从E-R图构造出实施数据模型,从而使问题变得简单,不易犯错。31E—R模型1.1E-R图的组成要素及其画法1.E-R图要素:实体集、联系、属性、主关键字2.绘制方法把相互联系的实体集(方框)通过联系(菱形框)连接起来,注明联系方式,再把实体集的属性(椭圆框)连到相应实体集上。41E—R模型1.2两实体集间不同联系情况的E-R图表示法另外,辅导员和班级之间是一个管理联系,这种管理用一个属性任职时间来描述,请根据描述画出能够反映实体集之间的信息关系的E-R图。【例1】两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个班级,每个班级只有一个辅导员,每个辅导员只管理一个班级。则辅导员和班级之间是一对一的联系。班级和辅导员的属性分别如下:辅导员——工号,姓名,性别,年龄,学历班级——班号,班级名56【例2】两个实体集之间的一对多的联系的绘制方法。假设在某出版管理系统中,有两个实体集:出版社和图书。出版社用来出版图书,且规定一本图书只能由一个出版社出版,一个出版社可以出版多本图书。出版社和图书之间是一对多的联系。出版社和图书的属性分别如下:出版社——社号,地点,电话图书——书号,书名,价格另外,在出版联系中要反映出出版图书的数量。请根据描述画出能够反映实体集之间的信息关系的E-R图。78【例3】两个实体集之间的多对多的联系的绘制方法。假设在某图书管理系统中,一名作者可以创作多本书,一本书也可以由多名作者共同创作。图书和作者之间是多对多的联系。作者和图书可用以下属性来描述:作者——编号,姓名,职称图书——书号,书名,出版日期另外,在“创作”联系中应能反映出该书的合同时间和完成时间。请根据描述画出能够反映实体之间的信息关系的E-R图。910111.3同一实体集内部不同联系情况的E-R图表示法【例4】同一实体集内部的一对多联系的绘制方法。假设在某单位里,职工实体集中的实体可分成两类:领导者和被领导者。领导者可以领导多个被领导者,而被领导者只有一个顶头上司,从而实现层层负责制。而对于一个具体职工而言,他既可能是其他职工的领导者,又可能被别的职工领导。职工实体集的属性描述如下。职工——工号,姓名,性别,出生日期,工作日期,职称,工资另:在“领导”联系中有个“民意测验”属性,用来存放职工对领导的满意度。1213【例5】同一实体集内部的多对多联系的绘制方法。假设在某组装车间中,零部件之间存在着多对多的组装联系,即一个零部件能组装多种其它零部件,反之该零部件也可以由其他零部件组装。零部件实体集的属性描述如下。零部件——部件号,名称,价格零部件之间的组装联系有一个属性“数量”,用来指出组装该零部件需要其它零部件各多少个。14151.4两个以上实体集之间多对多多元联系的E-R图表示法【例6】两个以上实体集之间多对多多元联系的E-R图表示法。在某校教务处信息管理系统中,假设同一学期中一名教师可以教多门课,一门课可以由多名教师教,一名学生可以选多名不同教师的课,一名教师教的课可以被多名不同学生选修。那么教师、课程、学生实体集之间就存在着多对多的多元联系。各实体集的属性描述如下。教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片课程:课程编号,课程名称,学时,学分,备注学生:学号,姓名,身份证号,性别,出生日期,专业,年级,电话号码,备注,照片另外,学生选修某教师教的某门课程有一个成绩。1617182E—R图的设计方法1.设计E-R图的两个阶段(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体(2)综合局部E—R图,生成总体E—R图。同名实体只能出现一次,去掉不必要的联系,以消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。注意:一个系统的总体E—R图不是惟一的,强调不同的侧面画出的E—R图可能有很大不同。总体E—R图所表示的实体联系模型,只能说明实体间的联系,还需要把它转换成数据模型才能被实际的DBMS所接受。19【例7】某学校管理系统中有三个部门:教务处、人事处和财务处。教务处职能是管理学生选课和教师任课;人事处职能是管理人员的隶属关系;财务处职能是发放教师的工资。教务处涉及到的实体集及实体集之间的联系如例6所述。人事处涉及到的实体集及实体集之间的联系如下:系:属性有系号,系名,系主任,电话号码,办公地点教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片班级:班号,班级名称,辅导员学生:学号,姓名,身份证号,性别,出生日期,专业,年级,电话号码,备注,照片实体集之间的联系可描述为:一个系拥有多名教师,一名教师只从属于一个系;一个系管理多个班级,每个班级只属于一个系;一个班级由多名学生组成,每个学生只属于一个班级。20财务处涉及到的实体集及实体集之间的联系如下:教师:教师号,姓名,身份证号,性别,职称,出生日期,电话号码,备注,照片工资:属性有基本工资、加班工资、扣税、工资编号教师和工资的联系是:一个教师只能领一份工资,一份工资只能由一个教师领,领工资时应注明是某月工资。请根据要求设计出该学校管理系统的全局E-R图。212223243E—R模型到关系模型的转换E-R图转换为关系模型可遵循如下原则(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体集的全部属性,并应根据关系所表达的语义确定哪个属性或属性组作为“主关键字”,主关键字用来标识实体。(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。253.1两实体集间联系的转换1.两实体集间1:n联系两实体集间1:n联系,可将“一方”实体集的主关键字纳入“n方”实体集对应的关系中作为“外关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。例如,图3所示的一对多的联系,可转换成下面的两个关系模式。262.两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。例如,图4所示的多对多的联系,可转换成下面的三个关系模式。273.两实体集间的1:1的联系假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。28293.2同一实体集内部联系的转换1.同一实体集内部的一对多联系的转换同一个实体集内部个体间的1:n联系,可在这个实体集对应的关系中多设一个属性,用来作为与该实体相联系的另一实体的“主关键字”,如果联系有属性,也一并归入到关系中。例如图6所示的职工实体集内部1:n的联系,就可以转换为如下关系模式。302.同一实体集内部的多对多联系的转换如果同一实体集内存在m:n的联系,也需为这个联系单独建立一个关系,该关系中至少应包含被它联系的双方实体的主关键字,如果联系有属性,也要归入这个关系中。例如图7所示的零部件实体集内部m:n组装联系,就可以转换为如下两个关系模式。313.3多个实体集之间多对多多元联系的转换对于两个以上实体集之间m:n的多元联系,必须为联系单独建立一个关系,该关系中至少应包含被它联系的各个实体集的主关键字,如果联系有属性,也要归入这个关系中。例如图8所示的教师、学生、课程实体集之间“教—学—课”多元联系可转化为以下关系模式。32【例5】把图10所示的E-R图转换为关系模式。解:第一步把每个实体集转换成一个关系模式,如下:33第二步转换关系,分三步,如下:(1)把教师、课程和学生三个实体集的m:n的多元联系反映出来,需建立一个新的关系,关系中包含联系涉及到的各实体集的主关键字及联系的属性。转换的关系如下。(2)把系与教师、系与班级及班级与学生之间的1:n的联系反映出来,只需把相应的1方的主关键字放入到多方中使之成为外关键字即可。转换的关系如下。34(3)把教师和工资间的一对一的关系反映出来,可把教师号和月份属性放到工资关系中。35最后形成的关系模式为:36
本文标题:实体关系模型(E-R图)
链接地址:https://www.777doc.com/doc-3204038 .html