05章_数据库设计.ppt

  1. 1、本文档共98页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
05章_数据库设计

5.4.2 逻辑模式的优化 数据库逻辑设计的结果不是唯一的。 得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化。 关系数据模型的优化通常以规范化理论为指导。 优化数据模型的方法 (1)确定数据依赖 按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖。 (2) 对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 (3)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。 并不是规范化程度越高的关系就越优 (4)按照需求分析阶段得到的数据处理要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。  (5)对关系模式进行必要的分解或合并,以提高数据操作的效率和存储空间的利用率 常用分解方法 水平分解 垂直分解 水平分解 什么是水平分解 把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。 水平分解的适用范围 满足“80/20原则”的应用 并发事务经常存取不相交的数据 垂直分解 什么是垂直分解 把关系模式R的属性分解为若干子集合,形成若干子关系模式。 垂直分解的原则 经常在一起使用的属性从R中分解出来形成一个子关系模式。 垂直分解的优缺点 可以提高某些事务的效率 可能使另一些事务不得不执行连接操作,从而降低了效率。 5.4.3 设计用户子模式 定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。 定义用户外模式时应该更注重考虑用户的习惯与方便。 集成局部E-R图的步骤 (1) 视图合并 冲突的种类 命名冲突 属性冲突 结构冲突 命名冲突 同名异义:不同意义的对象在不同的局部应用中具有相同的名字 例,局部应用A中将教室称为房间;局部应用B中将学生宿舍称为房间 异名同义:同一意义的对象在不同的局部应用中具有不同的名字 例,有的部门把教科书称为课本;有的部门则把教科书称为教材 命名冲突可能发生在属性级、实体级、联系级上。其中属性的命名冲突更为常见。 属性冲突 属性域冲突:属性值的类型、取值范围或取值集合不同。 例1, 某些部门(即局部应用)将教师编号定义为整数形式,另一些部门(即局部应用)则定义为字符型形式。 例2, 某些部门(即局部应用)以出生日期形式表示学生的年龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。 属性取值单位冲突。 例:如零件的重量,有的以公斤为单位,有的以斤为单位,有的以克为单位。 命名冲突和属性冲突的解决方法 通常用讨论、协商等行政手段加以解决。 满足整体需求基础上的方便原则 结构冲突 同一对象在不同应用中具有不同的抽象 例,“课程”在某一局部应用中被当作实体;在另一局部应用中则被当作属性 解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。变换时要遵循两个准则。 同一实体在不同局部视图中所包含的属性不完全相同,或者属性的排列次序不完全相同。 产生原因:不同的局部应用关心的是该实体的不同侧面。 解决方法:使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。 另一种情况是实体间的联系在不同的局部E-R图中为不同的类型,如实体E1与E2在一个局部E-R图中是多对多联系,在另一个局部E-R图中是一对多联系。 解决方法: 根据语义对实体和联系的类型进行综合或调整。 【例5.1】 【例5.2】 局部视图(一) 【例5.2】 局部视图(二) 【例5.2】 合并后的E-R图 (2) 修改和重构生成基本E-R图 在初步E-R图中,可能存在一些冗余的数据和实体间冗余的联系。 修改和重构消除不必要的冗余,生成基本E-R图 冗余的数据是指可由基本数据导出的数据, 冗余的联系是指可由其他联系导出的联系。 冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难 并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高某些应用的效率,不得不以冗余信息作为代价。 消除冗余的方法 以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。 如果是为了提高效率,人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件。 3. 验证整体概念结构 整体概念结构内部必须具有一致性,不存在互相矛盾的表达。 整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。 整体概念结构能满足需求分析阶段所确定的所有要求。 5.4 逻辑结构设计 逻辑设计分为如下几步 (1) 将概念模型

文档评论(0)

gz2018gz + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档