数据库原理及应用---第2章关系数据库理论.ppt

数据库原理及应用---第2章关系数据库理论.ppt

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

2.3规范化小结 把一个非规范化的数据结构转换成第三范式,一般经过以下几步: (1) 把该结构分解成若干个属于第一范式的关系。 (2) 对那些存在组合码,且有非主属性部分函数依赖的关系必须继续分解,使所得关系都是属于第二范式。 (3) 若关系中有非主属性传递依赖于码,则继续分解之,使得关系都属于第三范式。 * * * 2.2.2函数依赖概念 函数依赖也有类型 完全 部分 传递 2.2.2函数依赖概念 完全函数依赖 定义:在R(U)中,如果X-Y,对于X的任意一个真子集X’,都有X’不能决定Y,则称Y对X完全函数依赖,记为XY 。 例3:对于例2中有(S#,CN)G 2.2.2函数依赖概念 部分函数依赖 定义:在R(U)中,如果X- Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记为XY 。 例4:对于例2中(S#,CN)G,但(S#,CN)SD 2.2.2函数依赖概念 传递函数依赖 定义:在R(U)中,当且仅当X- Y,Y-Z时,称Z对X传递函数依赖。 例5:描述学生(S#)、班级(SB)、辅导员(TN)的关系U(S#,SB,TN)。一个班有若干学生,一个学生只属于一个班,一个班只有一个辅导员,但一个辅导员负责几个班。根据现实世界可得到一组函数依赖: F={S#-SB,SB-TN} 学生学号决定了所在班级,所在班级决定了辅导员,所以辅导员TN传递函数依赖于学生学号S#。 2.2.2函数依赖概念 关键字(码) 定义:设K为R(U)中的属性或属性组合,若KU,则称K为R的(侯选)关键字,也称为码。若(候选)关键字多于一个,则选定其中的一个作为主关键字。 2.2.3规范化 为了使数据库设计的方法走向完备,人们研究了规范化理论,指导我们设计规范的数据库模式。按属性间依赖情况来区分,关系规范化的程度为第一范式,第二范式,第三范式和第四范式等。在这些定义中,高级范式根据定义属于所有低级的范式。第三范式中的关系属于第二范式,第二范式中的关系属于第一范式。 2.2.3规范化 第一范式 如果关系模式R中的所有属性值都是不可再分解的原子值,那么就称此关系R是第一范式(First Normal Form,简称1NF)的关系模式。 2.2.3规范化 第一范式包括下列指导原则 : 数据组的每个属性只可以包含一个值 关系中的每个数组必须包含相同数量的值 关系中的每个数组一定不能相同 2.2.3规范化 而这样的数据库表是不符合第一范式的 字段1 字段2 字段3 字段4 ? ? 字段3.1 字段3.2 ? 2.2.3规范化 第二范式 :数据库表中不存在非关键字段对任意候选关键字段的部分函数依赖(部分函数依赖指的是存在组合关键字中的某些字段决定非关键字段的情况),也即所有非关键字段都完全依赖于任意一组候选关键字。 2.2.3规范化 假定选课关系表为SelectCourse(学号, 姓名, 年龄, 课程名称, 成绩, 学分),关键字为组合关键字(学号, 课程名称) (学号, 课程名称) → (姓名, 年龄, 成绩, 学分) 这个数据库中的表不满足第二范式,因为存在如下决定关系:  (课程名称) → (学分)  (学号) → (姓名, 年龄)  即存在组合关键字中的字段决定非关键字的情况。 2.2.3规范化 讨论由于不符合2NF,这个选课关系表会存在什么问题:? 数据冗余:同一门课程由n个学生选修,“学分”就重复n-1次;同一个学生选修了m门课程,姓名和年龄就重复了m-1次。 更新异常:若调整了某门课程的学分,数据表中所有行的“学分”值都要更新,否则会出现同一门课程学分不同的情况。 插入异常:假设要开设一门新的课程,暂时还没有人选修。这样,由于还没有“学号”关键字,课程名称和学分也无法记录入数据库。 删除异常:假设一批学生已经完成课程的选修,这些选修记录就应该从数据库表中删除。 2.2.3规范化 解决方法: 分解: 学生:Student(学号, 姓名, 年龄); 课程:Course(课程名称, 学分);  选课关系:SelectCourse(学号, 课程名称, 成绩)。  2.2.3规范化 第三范式 :在第二范式的基础上,数据表中如果不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式。 2.2.3规范化 假定学生关系表为Student(学号, 姓名, 年龄, 所在学院, 学院地点, 学院电话),关键字为单一关键字学号,因为存在如下决定关系: (学号) → (姓名, 年龄, 所在学院, 学院地点, 学院电话)   这个数据库是符合2NF的,但是不符合3NF,因为存在如下决定关系: (学号) → (所在学院) → (学院地点, 学院电话) 2.2.3规范化 它

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档