一个实体在ER图中可以出现2次么
比如说一个学生实体可不可以在ER图中出现2次,或者一个“持有”属性可不可以在ER图中出现2次 展开
各个局部应用所面向的问题不同,由不同的设计人员进行设计,各个分E-R图之间必定会存在许多不一致的地方,合并分E-R图的主要工作与关键所在:合理消除各分E-R图的冲突。
各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。
1.属性冲突
(1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。
例: 由于学号是数字,因此某些部门(即局部应用)将学号定义为整数形式,而由于学号不用参与运算,因此另一些部门(即局部应用)将学号定义为字符型形式。
(2) 属性取值单位冲突。
例:学生的身高,有的以米为单位,有的以厘米为单位,有的以尺为单位。
解决方法:通常用讨论、协商等行政手段加以解决
2.命名冲突
(1) 同名异义。不同意义的对象在不同的局部应用中具有相同的名字
(2) 异名同义(一义多名)。例,有的部门把教科书称为课本,有的部门则把教科书称为教材
命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。
命名冲突的解决方法:通过讨论、协商等行政手段加以解决
3.结构冲突
(1) 同一对象在不同应用中具有不同的抽象。例如“课程”在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。
(2) 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同
产生原因:不同的局部应用关心的是该实体的不同侧面。
解决方法:使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。。
(3) 实体之间的联系在不同局部视图中呈现不同的类型。例如实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。
解决方法是根据应用的语义对实体联系的类型进行综合或调整
例如:
这两个分E-R图存在着多方面的冲突:
(1) 班主任实际上也属于教师,也就是说学籍管理中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义,可以应将学籍管理中的班主任实体与课程管理中的教师实体统一称为教师,统一后教师实体的属性构成为:
教师:{职工号,姓名,性别,职称,是否为优秀班主任}
(2) 将班主任改为教师后,教师与学生之间的联系在两个局部视图中呈现两种不同的类型,一种是学籍管理中教师与学生之间的指导联系,一种是课程管理中教师与学生之间的教学联系,由于指导联系实际上可以包含在教学联系之中,因此可以将这两种联系综合为教学联系。
(3) 在两个局部E-R图中,学生实体属性组成及次序都存在差异,应将所有属性综合,并重新调整次序。假设调整结果为:
学生:{学号,姓名,出生日期,年龄,所在系,年级,平均成绩}
解决上述冲突后,学籍管理分E-R图与课程管理分E-R图合并为初步E-R图。
2.实体-联系的线无所谓交叉不交叉,只看线的两头