zoukankan      html  css  js  c++  java
  • 修改与重构,去除实体间冗余联系,生成基本ER图

    修改与重构,生成基本E-R图

     

    一、

    合并分E-R图,生成初步E-R图 。

     

    各分E-R图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。

    1. 属性冲突
      (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。
      (2) 属性取值单位冲突。
    2. 命名冲突
      (1) 同名异义。
      (2) 异名同义(一义多名)。
    3. 结构冲突
      (1) 同一对象在不同应用中具有不同的抽象。例如“课程”在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
      (2) 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。
      (3) 实体之间的联系在不同局部视图中呈现不同的类型。例如实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系;又如在局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。

    解决方法是根据应用的语义对实体联系的类型进行综合或调整。

     

    详细信息...

     

    下面我们来看看如何生成学校管理系统的初步E-R图。我们着重介绍学籍管理局部视图与课程管理局部视图的合并。这两个分E-R图存在着多方面的冲突:

    (1) 班主任实际上也属于教师,也就是说学籍管理中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义,可以应将学籍管理中的班主任实体与课程管理中的教师实体统一称为教师,统一后教师实体的属性构成为:
      教师:{职工号,姓名,性别,职称,是否为优秀班主任}
    (2) 将班主任改为教师后,教师与学生之间的联系在两个局部视图中呈现两种不同的类型,一种是学籍管理中教师与学生之间的指导联系,一种是课程管理中教师与学生之间的教学联系,由于指导联系实际上可以包含在教学联系之中,因此可以将这两种联系综合为教学联系。
    (3) 在两个局部E-R图中,学生实体属性组成及次序都存在差异,应将所有属性综合,并重新调整次序。假设调整结果为:
      学生:{学号,姓名,出生日期,年龄,所在系,年级,平均成绩}

    解决上述冲突后,学籍管理分E-R图与课程管理分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图。

     

    视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:

    • 整体概念结构内部必须具有一致性,即不能存在互相矛盾的表达。
    • 整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。
    • 整体概念结构能满足需要分析阶段所确定的所有要求。

    整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,作为数据库的概念结构,作为进一步设计数据库的依据。

     

     

  • 相关阅读:
    Android Studio 开发
    Jsp编写的页面如何适应手机浏览器页面
    电影
    Oracle 拆分列为多行 Splitting string into multiple rows in Oracle
    sql server 2008 自动备份
    WINGIDE 激活失败
    python安装 错误 “User installations are disabled via policy on the machine”
    ble编程-外设发送数据到中心
    iOS开发-NSString去掉所有换行及空格
    ios9 字符串与UTF-8 互相转换
  • 原文地址:https://www.cnblogs.com/dirichlet/p/1897759.html
Copyright © 2011-2022 走看看