J第11章关系数据理论.ppt

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

An Introduction to Database System 数据库系统概论 An Introduction to Database System 第十一章 关系数据库设计理论 第11章 关系数据库设计理论 11.1 数据依赖对关系模式的影响 11.2 函数依赖 11.3 范式 11.4 多值依赖与第四范式 11.5 关系模式的规范化 第11章 关系数据库设计理论 数据库的逻辑结构设计的任务是: 根据得到的概念模型,以及所选择的DBMS产品, 构造一个优化的关系数据库模式 如何评价一个数据库设计得是否合理? 人们总结出衡量数据库的理论标准——就是关系数据库的规范化理论,它也是指导数据库设计的理论依据 本章讨论的关系数据库理论,是关系数据库的规范化理论,是逻辑设计的工具,帮助我们设计一个好的关系数据库模式.。 11.1数据依赖对关系模式的影响 关系数据库规范化理论中的一个重要概念是数据依赖. 什么是数据依赖? 数据依赖是一个关系内部,属性之间的一种约束关系,体现数据间的相关联系. 数据依赖中最重要的是 函数依赖(Functional Dependency,简记为FD) 多值依赖(Multivalued Dependency,简记为MVD) 在客观世界中,数据依赖非常普遍. 如描述学生的关系,可以有学号Sno,姓名Sname,所在院系Sdept等属性. 一个学号对应一个学生,一个学生只在一个院系.因此当学号值确定后,学生的姓名及其所在院系的值也就确定了. 属性之间的这种依赖关系,类似于数学中的函数y=f(x), 当x确定之后,函数值y也就确定了. 类似有:Sname=f(Sno) 称为Sno函数决定Sname Sdept=f(Sno) 称为Sno函数决定Sdept 或者说:Sname和Sdept函数依赖于Sno 记作: Sno ? Sname, Sno ? Sdept 例1:描述学校教务的数据库 有: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 用单一的关系模式Student表示 : 该关系的属性集合为: U ={ Sno, Sdept, Mname, Cname, Grade } 数据依赖对关系模式的影响(续) 学校数据库的语义: ⒈ 一个系有若干学生, 一个学生只属于一个系; ⒉ 一个系只有一名主任; ⒊ 一个学生可以选修多门课程, 每门课程有多名学生选修; ⒋ 每个学生所学的每门课程都有一个成绩。 数据依赖对关系模式的影响(续) 属性组U上的一组函数依赖F: F ={ Sno → Sdept, Sdept → Mname, (Sno, Cname) → Grade } 得到一个描述学生的关系模式: Student U, F 其中 U ={ Sno, Sdept, Mname, Cname, Grade } F ={ Sno → Sdept, Sdept → Mname, (Sno, Cname) → Grade } 某一时刻,Student关系的一个实例: 关系模式StudentU, F中存在的问题 ⒈ 数据冗余太大 浪费大量的存储空间 例:每一个系主任的姓名重复出现, ⒉ 更新异常(Update Anomalies) 由于数据冗余 ,更新数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改每一个元组 关系模式StudentU, F中存在的问题 ⒊ 插入异常(Insertion Anomalies) 有时该插的数据插不进去 例,如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。 ⒋ 删除异常(Deletion Anomalies) 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 数据依赖对关系模式的影响(续) 结论: Student关系模式不是一个好的模式。 一个“好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少。 出现问题的原因:由模式中的某些数据依赖引起的 解决问题方法:通过分解关系模式来消除其中不合适 的数据依赖。 例如:将Student关系模式分解为以下三个关系模式: S(Sno, Sdept, Sno?Sdept) SC(Sno,Cname,Grade, (Sno,Cname) ? Grade) DEPT( Sdept,Mname, Sdept ? Mname)

文档评论(0)

整理王 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档