|
1.设计局部ER模型 (1)确定局部结构范围 ①划分的两种方式: a.一种是依据系统的当前用户进行自然划分。 ·例如,对一个企业的综合数据库,用户有企业决策集团、销售部门、生产部门、技术部门和供应部门等,各部门对信息内容和处理的要求明显不同。 ·因此,应为他们分别设计各自的局部ER模型。 b.另一种是按用户要求数据库提供的服务归纳成几类,使每一类应用访问的数据显著地不同于其它类,然后为每类应用设计一个局部ER模型。 ②局部结构范围的确定要考虑下述因素: a.范围的划分要自然,易于管理。 b.范围之间的界面要清晰,相互影响要小。 c.范围的大小要适度。 ·太小了,会造成局部结构过多,设计过程繁琐,综合困难。 ·太大了,则容易造成内部结构复杂,不便分析。 |
(2)定义实体 ①每一个局部结构都包括一些实体类型,实体定义的任务就是从信息需求和局部范围定义出发,确定每一个实体类型的属性和键。 ②划分实体、属性和联系的三条依据。 a.采用人们习惯的划分。 b.避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复。 c.依据用户的信息处理需求。 ③实体类型确定之后,它的属性也随之确定。 ④为一个实体类型命名并确定其键也是很重要的工作。 a.命名应反映实体的语义性质,在一个局部结构中应是唯一的。 b.键可以是单个属性,也可以是属性的组合。 |
(3)定义联系 ①确定联系。 a.对局部结构中任意两个实体类型,依据需求分析的结果,考察是否存在联系。 b.若有联系,进一步确定是1:N,M:N,还是1:1等。 c.还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系。 ②防止出现冗余的联系。 a.即可从其他联系导出的联系。 b.如果存在,要尽可能地识别并消除这些冗余联系,以免将这些问题遗留给综合全局的ER模式阶段。 c.冗余联系的例子。
③命名联系和确定键。 a.命名应反映联系的语义性质,通常采用某个动词命名,如“选修”、“讲授”、“辅导”等。 b.与实体类型不同,联系类型没有标识符概念。 |
(4)分配属性 ①确定属性的原则。 a.属性应该是不可再分解的语义单位。 b.实体与属性之间的关系只能是N:1的。 c.不同实体类型的属性之间应无直接关联关系。 ②把属性分配到有关实体和联系中去。 a.当多个实体类型用到同一属性时,一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。 b.有些属性不宜归属于任一实体类型,只说明实体之间联系的特性。例如,某个学生选修某门课的成绩,既不能归为学生实体类型的属性,也不能归为课程实体类型的属性,应作为“选修”联系类型的属性。 |
2.设计全局ER模型 (1)确定公共实体类型 ①有的作为实体类型,有的又作为联系类型或属性。 ②即使都表示成实体类型,实体类型名和键也可能不同。 ③在这一步中,我们仅根据实体类型名和键来认定公共实体类型。 ④一般把同名实体类型作为公共实体类型的一类候选,把具有相同键的实体类型作为公共实体类型的另一类候选。 |
(2)合并局部ER模型 ①首先进行两两合并。 ②先合并那些现实世界中有联系的局部结构。 ③合并从公共实体类型开始,最后再加入独立的局部结构。 |
(3)消除冲突 ①冲突的三种类型。 a.属性冲突,包括:属性域的冲突,即属性值的类型、取值范围或取值集合不同。例如,重量单位有的用公斤,有的用克。 b.结构冲突。 ·同一对象在不同应用中的不同抽象。如职工,在某个应用中为实体,而在另一应用中为属性。 ·同一实体在不同局部ER图中属性组成不同,包括属性个数、次序。 ·实体之间的联系在不同的局部ER图中呈现不同的类型。如,E1与E2在某一应用中是多对多联系,而在另一应用中是一对多联系;在某一应用中E1与E2发生联系,而在另一应用中,E1、E2与E3三者之间有联系。 c.命名冲突,包括属性名、实体名、联系名之间的冲突。 ·同名异义,即不同意义的对象具有相同的名字。 ·异名同义,即同一意义的对象具有不同的名字。 ②冲突的解决方法。 a.属性冲突和命名冲突通常采用讨论、协商等行政手段解决。 b.结构冲突则要认真分析后才能解决。 |
3.全局ER模型的优化 (1)一个好的全局ER模型应满足下列条件 ①实体类型的个数尽可能少。 ②实体类型所含属性个数尽可能少。 ③实体类型间联系无冗余。 |
(2)全局ER模型的优化原则 ①合并实体类型。 a.减少实体类型个数,可减少联接的开销,提高处理效率。 b.一般在权衡利弊后,可以把1:1联系的两个实体类型合并。 c.具有相同键的实体类型有必要合并成一个实体类型。但这时可能产生大量空值,因此,要对存储代价、查询效率进行权衡。 ②消除冗余属性。 a.通常在各个局部结构中是不允许冗余属性存在的。但在综合成全局ER模型后,可能产生全局范围内的冗余属性。 b.一般同一非键的属性出现在几个实体类型中,或者一个属性值可从其它属性的值导出,此时,应把冗余的属性从全局模型中去掉。 c.冗余属性消除与否,也取决于它对存储空间、访问效率和维护代价的影响。有时为了兼顾访问效率,有意保留冗余属性。这当然会造成存储空间的浪费和维护代价的提高。 ③消除冗余联系。 在全局模式中可能存在有冗余的联系,通常利用规范化理论中函数依赖的概念消除冗余联系。 |
4.实例 (1)学籍管理子系统的局部ER图
|
(2)课程管理子系统的局部ER图
|
(3)教师管理子系统的局部ER图
|
(4)合并后的教学管理全局ER图
|