5 视图集成 各子系统的分E-R图设计好以后,下一步就是要将所有的分E-R图综合成一个系统的总E-R图。一般说,视图集成可以有两种方式: ● 多个分E-R图一次集成。 ● 逐步集成,用累加的方式一次集成两个分E-R图。 无论采用哪种方式,每次集成局部E-R图都需要分两步骤: (1) 视图合并 视图合并要解决各分E-R图之间的冲突,将各分E-R图合并起来生成初步E-R图。 消除各分E-R图的冲突是合并分E-R图的主要工作与关键所在。各分E-R图之间的冲突主要有三类:命名冲突、属性冲突、结构冲突。 ・ 命名冲突 (a)同名异义冲突。例如:"学生"和"课程"这两个实体名在图5-20和图5-21中的含义是不同的,即它们的描述属性各不相同,分别表示不同的实体类型。 (b)异名同义冲突。例如:图5-20中的"何时入学"和图5-21中的"入学时间"是异名同义,它们都表示学生的入学时间,用了不同的属性名。 ・ 属性冲突 (a)属性域冲突。例:学号在一个视图中可能当作字符串,在另一个视图中可能当作整数。 (b)属性取值单位冲突。 ・ 结构冲突 (a)同一对象在一个实体中可能作为实体,在另一个视图中可能作为属性或联系。 (b)同一实体在不同的分E-R图中所包含的属性个数和属性排列次序不完全相同。 (c)不同的视图可能有不同的约束。例如,对?quot;选课"这个联系,大学生和研究生对选课的最少门数和最多门数要求可能不一样。 (2) 修改和重构生成基本E-R图 修改和重构消除不必要的冗余,生成基本E-R图。 冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其它联系导出的联系。 消除了冗余后的初步E-R图称为基本E-R图。 例如,在下面的图5-22中,Q3可由Q1、Q2导出,Q4可由Q5导出,产品和材料之间的使用联系是冗余联系。 图5-22 具有冗余联系和联系属性的示例 |