E-R图合并时的三种冲突
属性冲突
属性冲突指的是在合并两个实体时,相同属性的数据类型、取值范围或约束条件不一致。例如,一个实体中的“年龄”属性定义为整数类型,而另一个实体中的“年龄”属性定义为字符串类型,这就产生了属性冲突。
命名冲突
命名冲突分为两种情况:同义异名和同名异义。同义异名指的是不同实体中相同含义的属性使用了不同的名称。例如,一个实体中使用“姓名”作为属性名,而另一个实体中使用“名字”作为属性名。同名异义指的是不同实体中相同名称的属性具有不同的含义。例如,一个实体中的“地址”属性表示家庭住址,而另一个实体中的“地址”属性表示工作地址。
结构冲突
结构冲突指的是在合并两个实体时,实体的结构不一致。例如,一个实体中包含“地址”属性,而另一个实体中将“地址”属性拆分为“街道”、“城市”和“邮编”三个子属性。这种结构上的不一致会导致合并时的冲突。
通过以上区分,可以更好地识别和处理ER模型合并过程中可能出现的冲突。
举例1
某企业开发信息管理系统平台进行E-R体验设计,人力部门定义的是员工实体具有属性:员工号、姓名、性别、出生日期、联系方式和部门,培训部门定义的培训师实体具有属性:培训师号、姓名和职称,其中职称={初级培训师,中级培训师,高级培训师},这种情况属于(),在合并E-R图时,解决这一冲突的方法是()
(1)A、属性冲突 B、结构冲突 C、命名冲突 D、实体冲突
(2)A、员工实体和培训师实体均保持不变
B、保留员工实体、删除培训师实体
C、员工实体中加入职称属性,删除培训师实体
D、将培训师实体所有属性并入员工实体,删除培训师实体
这里可以通过第(2)题进行区分,因为员工号与培训师号可以合并、姓名可以合并,合并之后的实体要求保留两个实体共有的,去掉冗余的属性,因此,应该将培训师的职称加入员工实体,删除培训师实体。选C
反推第一题应该是结构冲突,员工(员工号、姓名、性别、出生日期、联系方式、部门),培训师(培训师号、姓名、职称),可以看到员工实体定义了更详细的员工属性,培训师只是多了一个职称,因此(1)选择B