CH5关系数据理论及求精分析.ppt

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

第5章 关系数据理论及求精 相关知识回顾 数据的定义 记录现实世界中各种信息并可以识别的物理符号 文本、图形、图像、音频、视频、学生的档案记录 数据模型 用户通过数据库管理系统看到的现实世界 按计算机系统的观点对数据建模,即数据的计算机实现形式 主要是关系模型 候选码 表中的某个属性或属性组A,它可以唯一地确定关系中的一个元组 A的取值不允许为空(NOT NULL),且必须唯一 学生表 数据冗余关系举例 学习目的 学会分析一个设计“不好”的数据库可能带来的问题及解决方法。 掌握设计一个“好”的关系模式的基本原则。 数据冗余导致的问题 插入异常:只有当一些信息事先已经存放在数据库中时,另外一些信息才能存入数据库中。 例如:如果某学生没有选修课程,则该学生不能存入数据库,因为候选码值不能为空。 数据冗余导致的问题 删除异常:删除某些信息时可能丢失其它信息。 例如:当一学生的所有被删除时,则他选修的课程信息将被丢失。 数据冗余产生的原因 SCE产生问题的原因 关系模式中描述一个实体属性时同时关联其他实体属性,如:定义学生信息时也定义了课程信息。 该模式中某些属性之间存在依赖关系 studentNo→studentName(即学号决定姓名) courseNo→courseName(即课程编号决定课程名称) {studentNo, courseNo}→score 解决数据冗余问题的方法 解决方法 将原有的关系模式进行分解,方法如下: 不同实体的属性应分解在不同的关系模式中 应保持原有的依赖关系 分解为三个关系模式 S(studentNo, studentName) C(courseNo, courseName) E (studentNo, courseNo, score) 重点、难点 重点:数据冗余引起的问题及其解决方法。 难点:插入异常、删除异常问题的分析。 小 结 (1)数据冗余引起的问题:冗余存储、更新异常、插入异常、 删除异常。 (2)解决数据冗余问题的方法是将原关系模式进行分解。 (3)一个“好”的关系模式应该是: 数据冗余应尽可能少。 不发生插入异常、删除异常、更新异常等问题。 思考与创新 (1)一个好的关系模式有什么基本特点? (2)结合大作业的逻辑设计部分,判断自己设计的关系模式是否存在大量数据冗余问题。 (3)如果有,请设计出合理的关系模式。 模式分解导致的问题 将一个关系模式分解为较小关系模式集可解决冗余问题。但可能产生两个新问题: 什么样的关系模式需要进一步分解为较小的关系模式集? 根据范式要求决定(后面讨论) 是否所有的模式分解都是有益的? 实例 模式分解问题举例 [例5.2] 设一关系模式STU (studentNo, studentName, sex, birthday, native, classNo),其中studentNo为主码。 假设将STU分解为以下两个子模式: STU1 (studentNo, studentName) STU2 (studentName, sex, birthday, native, classNo) 模式分解问题举例 模式分解问题举例 模式分解存在的问题(1): 有损分解:两个分解后的关系通过连接运算还原得到的信息与原来关系的信息不一致。 无损分解:如果通过连接分解后所得到的较小关系完全还原被分解关系的所有实例,称之为无损分解也称该分解具有无损连接特性。 模式分解问题举例 [例5.2]设一关系模式STU (studentNo, studentName, sex, birthday, native, classNo),其中studentNo为主码。假设将STU分解为以下两个子模式: STU1 (studentNo, studentName) STU2 (studentName, sex, birthday, native, classNo) 分析: (1)对于STU有: {studentNo→(studentName, sex, birthday, native, classNo)} (2)对于STU1、STU2:由于studentNo与sex, birthday, native, classNo存在于两个不同的关系模式中,从而丢失了依赖关系: {studentNo→( sex, birthday, native, classNo)} 模式分解问题举例 模式分解有两个结果: 依赖关系丢失 如果被分解关系模式上的所有依赖关系在分解得到的关系模式上找不到,则称不保持函数依赖关系。 如:sex、birthday、age、native、classNo等与属性studentNo依赖关

文档评论(0)

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

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

1亿VIP精品文档

相关文档