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