修改与重构,生成基本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图。之所以称其为初步E-R图,是因为其中可能存在冗余的数据和冗余的实体间联系,即存在可由基本数据导出的数据和可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步E-R图后,还应当进一步检查E-R图中是否存在冗余,如果存在则一般应设法予以消除。 除分析方法外,还可以用规范化理论来消除冗余。 |
|
详细信息... |
|
在前面初步E-R图中存在着冗余数据和冗余联系: (1) 学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。这样不仅可以节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了产生数据不一致的机会。 (2) 教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联系、课程与学生之间的选修联系、学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去。 (3) 学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来,但如果应用中需要经常查询某个学生的平均成绩,每次都进行这种计算效率就会太低,因此为提高效率,可以考虑保留该冗余数据,但是为了维护数据一致性应该定义一个触发器来保证学生的平均成绩等于该学生各科成绩的平均值。任何一科成绩修改后,或该学生学了新的科目并有成绩后,就要触发该触发器去修改该学生的平均成绩属性值。否则会出现数据的不一致。 图6-17是进行修改和重构后生成的基本E-R图。 学生管理子系统的基本E-R图还必须进一步和教师管理子系统以及后勤管理子系统的基本E-R图合并,生成整个学校管理系统的基本E-R图。 |
|
视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:
整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。 |