问题 单项选择题

在数据库设计中,当合并局部E-R图时,“职工”在某一局部应用中被当作实体,而在另一局部应用中被当作属性,这种冲突称为()冲突。

A.属性

B.命名

C.结构

D.联系

答案

参考答案:C

解析:

由于各个局部应用所面向的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个分E-R图之间必定会存在许多不一致的地方,这种不一致称为冲突。各分E-R图之间的冲突主要可以分为3类:属性冲突、命名冲突和结构冲突。

1)属性冲突。属性冲突分为两种,一种是属性域冲突,另一种是属性取值单位冲突。属性域冲突,即属性值的类型、取值范围或取值集合不同。例如,零件号,有的部门把它定义为整数,有的部门把它定义为字符型,而且不同部门对零件号的编码也不同。例如,零件的重量有以公斤为单位的,有以斤为单位的,还有以克为单位的,这都称为属性取值单位冲突。属性冲突理论上好解决,但实际上需要各部门讨论协商,解决起来并非易事。

2)命名冲突。命名冲突包括同名异义和异名同义两种。同名异义就是指不同意义的对象在不同的局部应用中具有相同的名称。异名同义也称为一义多名,即同一意义的对象在不同的局部应用中具有不同的名称。命名冲突可能发生在实体、联系一级上,也可能发生在属性一级上。其中属性的命名冲突更为常见。处理命名冲突通常也像处理属性冲突一样,通过讨论、协商等手段加以解决。

3)结构冲突。结构冲突也有3种。第一种是同一对象在不同应用中具有不同的抽象。例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。解决方案通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。

第二种是同一实体在不同分E-R图中所包含的属性数和属性排列次序不完全相同。这是很常见的一类冲突,原因是不同的局部应用关心的是该实体的不同侧面。解决方案是使该实体的属性取各分E-R图中属性的并集,再适当调整属性的次序。

第三种是实体间的联系在不同的分E—R图中为不同的类型。例如,实体E1与E2在一个分E-R图中是多对多联系,在另一个分E-R图中是一对多联系;又例如,在一个分E-R图中,E1和E2发生联系,而在另一个分E-R图中,E1、E2和E3三者之间有联系。解决方案是根据应用的语义对实体的联系进行综合或调整。

解答题
单项选择题