数据库:概念结构设计

概念结构设计是将需求分析得到的用户需求抽象为信息结构即概念模型的过程,它是整个数据库设计的关键。只有将需求分析阶段得到的系统应用需求抽象为信息世界的结构,才能更好、更准确地转化为机器世界中的数据模型,并用适当的DBMS实现这些需求。

概念结构设计的方法和步骤

概念结构设计的方法通常有以下4种:

  • 自顶向下。首先定义全局概念结构的框架,然后逐步细化。

  • 自底向上。首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。

  • 逐步扩张。首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。

  • 混合策略。将自顶向下和自底向上的方法相结合,用自顶向下策略设计一个全局概念结构的框架,以它为框架自底向上设计各局部概念结构。

其中最常采用的策略是混合策略,即自顶向下进行需求分析,然后再自底向上设计概念结构。

按照自顶向下分析需求与自底向上设计概念结构的方法,概念结构的设计可分为以下两步:

  • 进行数据抽象,设计局部E-R模型。

  • 集成各局部E-R模型,形成全局E-R模型。

局部E-R模型设计

设计局部E-R图首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中的每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分E-R图。将各局部应用设计的数据分别从数据字典中抽取出来,参照数据流图,确定各局部应用中的实体、实体的属性、标识实体的码、实体之间的联系及其类型(1:1、1:n、m:n)。

实际上实体和属性是相对而言的。同一事物在一种应用环境中作为“属性”,在另一种应用环境中就有可能作为“实体”。为了解决这个问题,应当遵循两条基本准则:

  • 属性不能再具有需要描述的性质,即属性必须是不可分的数据项,不能再由另一些属性组成。

  • 属性不能与其他实体具有联系。联系只发生在实体之间。

符合上述两条特性的事物一般作为属性对待。为了简化E-R图的处理,现实世界中的事物凡能够作为属性对待的,应尽量作为属性。

全局E-R模型设计

各个局部E-R图建立好后,还需要将它们合并,集成为一个整体的概念数据结构,即全局E-R图。局部E-R图的集成有两种方法:

  • 多元集成法,也叫作一次集成,是指一次性将多个局部E-R图合并为一个全局E-R图。

  • 二元集成法,也叫做逐步集成,首先集成两个重要的局部E-R图,然后用累加的方法逐步将一个新的E-R图集成起来。

在实际应用中,可以根据系统复杂性选择这两种方案。如果局部图比较简单,可以采用一次集成法。在一般情况下,采用逐步集成法,即每次只综合两个图,这样可降低难度。无论使用哪一种方法,E-R图集成均分为两个步骤:

  • 合并。消除各局部E-R图之间的冲突,生成初步E-R图。

  • 优化。消除不必要的冗余,生成基本E-R图。

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

将所有的局部E-R图综合成全局概念结构。全局概念结构不仅要支持所有的局部E-R模型,而且必须合理地标识一个完整、一致的数据库概念结构。

由于各个局部应用面向的问题不同,并且通常由不同的设计人员设计局部E-R图,因此各局部E-R图不可避免地会有许多不一致的地方,通常把这种现象称为冲突。因此当合并局部E-R图时,并不是简单地将各个E-R图画到一起,而是必须消除各个局部E-R图中的不一致,使合并后的全局概念结构不仅支持所有的局部E-R模型,而且必须是一个能为全系统中所有用户共同理解和接受的统一的概念模型。

合并局部E-R图的关键就是合理消除各局部E-R图中的冲突。E-R图中的冲突有3种:属性冲突、命名冲突和结构冲突。

属性冲突又分为:

  • 属性值域冲突,即属性值的类型、取值范围或取值集合不同。

  • 属性的取值单位冲突

命名冲突:命名不一致可能发生在实体名、属性名或联系名之间,其中属性的命名冲突最常见。一般表现为:

  • 同名异义,即同一名字的对象在不同的局部应用中具有不同的意义。

  • 异名同义,即同一意义的对象在不同的局部应用中具有不同的名称。

结构冲突的三种情况:

  • 同一对象在不同应用中有不同的抽象,可能为实体,也可能为属性。在解决这类冲突时,就是使同一对象在不同应用中具有相同的抽象,或把实体转换为属性,或把属性转换为实体。

  • 同一实体在不同局部应用中的属性组成不同,可能是属性个数或属性的排列次序不同。解决办法是,合并后的实体的属性组成为各局部E-R图中同名实体属性的并集,然后再适当调整属性的排列次序。

  • 实体之间的联系在不同局部应用中呈现不同的类型。解决办法是,根据应用语义对实体联系的类型进行综合或调整。

消除不必要的冗余,生成基本E-R图。

在初步E-R图中,可能存在冗余的数据和冗余的实体之间的联系。冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他的联系导出的联系。冗余的存在容易破坏数据库的完整性,给数据库的维护增加困难,应该消除。当然,不是所有的冗余数据和冗余联系都必须消除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。设计数据库概念模型时,哪些冗余信息必须消除,哪些冗余信息允许存在,需要根据用户的整体需求来确定。把消除了冗余的初步E-R图称为基本E-R图

通常采用分析的方法消除冗余。数据字典是分析冗余数据的依据,还可以通过数据流图分析出冗余的联系。

(最近更新:2019年09月03日)

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值