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