安庆师范学院计算机与信息学院.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
An Introduction to Database System 安庆师范学院计算机与信息学院 第四章 关系数据理论 4.1 规范化问题的提出 4.2 函数依赖 4.3 范式 4.4 关系模式的规范化 4.1 规范化问题的提出 例:描述教学管理的数据库: 学生的学号(Sno)、所在系(Sdept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade) 单一的关系模式SCD: U ={ Sno, Sdept, Mname, Cname, Grade } 数据依赖对关系模式的影响(续) 语义: ⒈ 一个系有若干学生, 一个学生只属于一个系; ⒉ 一个系只有一名主任; ⒊ 一个学生可以选修多门课程, 每门课程有若干学生选修; ⒋ 每个学生所学的每门课程都有一个成绩。 根据上述的语义规定,并分析以上关系中的数据,我们可以看出:(Sno,Cname)属性的组合能唯一标识一个元组,所以(Sno,Cname)是该关系模式的主码。在进行数据库的操作时,会出现以下几方面的问题: 关系模式Student中存在的问题 1 数据冗余太大 浪费大量的存储空间 例:每一个系主任的姓名重复出现 2 插入异常(Insertion Anomalies) 该插的数据插不进去 例,如果一个系刚成立,尚无学生,或有了学生但未选修课程,我们就无法把这个系及其系主任的信息存入数据库。 3 修改异常(Update Anomalies) 修改数据时,维护数据完整性代价大。 例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组 4 删除异常(Deletion Anomalies) 不该删除的数据不得不删 例,如果某个系的学生全部毕业了, 我们在删除该系学生信息的同时,把这个系及其系主任的信息也丢掉了。 将单一的关系模式分解成三个关系模式: S(Sno,Sdept) SC(Sno,Cname,Grade) D(Sdept,Mname) 在以上三个关系模式中,实现了信息的某种程度的分离, S中存储学生基本信息,与所选课程及系主任无关; D中存储系的有关信息,与学生无关; SC中存储学生选课的信息,而与系的有关信息无关。 与单一的Student关系模式相比: 数据的冗余度明显降低 避免了插入异常 不会引起删除异常 不会引起更新异常 规范化理论正是用来改造关系模式,通过分解关系模式将“不好”的关系模式转化为“好”的关系模式,以解决插入异常、删除异常、更新异常和数据冗余问题。 4.2 函数依赖 关系模式由五部分组成,即它是一个五元组: R(U, D, DOM, F) R: 关系名 U: 组成该关系的属性名集合 D: 属性组U中属性所来自的域 DOM:属性向域的映象集合 F: 属性间数据的依赖关系集合 4.2.1 函数依赖 一、函数依赖 二、平凡函数依赖与非平凡函数依赖 三、完全函数依赖与部分函数依赖 四、传递函数依赖 关系模式中的各属性之间相互依赖、相互制约的联系称为数据依赖。 数据依赖一般分为函数依赖、多值依赖和连接依赖。 其中,函数依赖是最重要的数据依赖。 一、函数依赖 比如描述一个学生的关系,可以有学号(Sno),姓名(Sname),系名(Sdept)等几个属性。由于一个学号只对应一个学生,一个学生只在一个系学习。因而当“学号”值确定之后,姓名和该生所在系的值也就被唯一地确定了。就象自变量x确定之后,函数值f(x)也就唯一地确定一样,称Sno函数决定Sname和Sdept或者说Sname,Sdept函数依赖于Sno,记为: Sno → Sname, Sno → Sdept 说明: 1. 函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。 例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立 2. 数据库设计者可以对现实世界作强制的规定。例如规定不允许同名人出现,函数依赖“姓名→年龄”成立。所插入的元组必须满足规定的函数依赖,若发现有同名人存在, 则拒绝装入该元组。 函数依赖(续) 例: Student(Sno, Sname, Ssex, Sage, Sdept) 假设不允许重名,则有: Sno → Ssex, Sno → Sage , Sno → Sdept, Sno ←→ Sname, Sname → Ssex, Sname → Sage Sname → Sdept 但Ssex →Sage 若X→Y,并且Y→X, 则记为X←→Y。 若Y不函数依赖于X, 则记为X─→Y。 二、平凡函数依赖与非平凡函数依赖

文档评论(0)

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

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

1亿VIP精品文档

相关文档