分享

2-2-5

 昵称233866 2009-11-07


2.2.5 采用ER模型的数据库概念设计步骤

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图

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多