关系规范化理论

上传人:ji****72 文档编号:50946430 上传时间:2018-08-11 格式:PPT 页数:71 大小:1.75MB
返回 下载 相关 举报
关系规范化理论_第1页
第1页 / 共71页
关系规范化理论_第2页
第2页 / 共71页
关系规范化理论_第3页
第3页 / 共71页
关系规范化理论_第4页
第4页 / 共71页
关系规范化理论_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《关系规范化理论》由会员分享,可在线阅读,更多相关《关系规范化理论(71页珍藏版)》请在金锄头文库上搜索。

1、第四章 关系规范化理论本章内容函数依赖4.2范式和规范化方法4.3数据依赖的公理系统4.4关系模式的分解4.5规范问题的提出4.1小结4.6教学目的 掌握函数依赖的概念 掌握1NF、2NF、3NF和BCNF范式 掌握模式分解的方法教学要求牢记有关概念,掌握关系模式规范化的方法教学重点 规范化问题的存在的原因 函数依赖、完全函数依赖、传递依赖 规范化过程 4.1.1 规范化理论的主要内容关系数据库的规范化理论 函数依赖范式(Normal Form)模式设计 核心,是模式分解和设计的基础 模式分解的标准 规范化问题的提出4.1【例4-1】 学生选课数据库在此关系模式中填入一部分具体的数据4.1.2

2、 不合理的关系模式存在的数据冗余和异常现象 SCS(Sno, Sname, Ssex, Sdept, Cno, Cname, Sorce)SnoSnameSsexSdeptCnoCnameScore100101姜 珊女信电电学院C150110离散数学78100101姜 珊女信电电学院C150101数据结结构70100101姜 珊女信电电学院C150103数据库库85 120102陈陈 默女管理学院C150102操作系统统68 120102陈陈 默女管理学院C150103数据库库82 130103孙孙 浩男外语语学院C150100计计算机基础础72SnoSnameSsexSdeptCnoCnam

3、eScore100101姜 珊女信电电学 院C15 0110离散数 学78100101姜 珊女信电电学 院C15 0101数据结结 构70100101姜 珊女信电电学 院C15 0103数据库库85120102陈陈 默女管理学 院C15 0102操作系 统统68120102陈陈 默女管理学 院C15 0103数据库库82130103孙孙 浩男外语语学 院C15 0100计计算机 基础础72数据冗余 插入异常 删除异常 修改异常 该表出现的问题 关系模式SCS存在以下问题:(1)数据冗余当一个学生选修多门课程时,就会导致姓 名、性别院名等多次重复存储;每一门课程名均对选修该门 课程的学生重复存储

4、,因而造成数据冗余。(2)操作异常 插入异常如果某个学生还没有选课,学生的有关信息就 不能插入。 同样,没有被学生选修的课程信息也无法存入数据 库。关系模式SCS存在以下问题: 删除异常当学生毕业离校时,要把他们的信息从数据库中 删除,如果此时他们所选修的某些课程尚无其他年级的学生 选修,那么这些课程的基本信息就会丢失,一旦查询所开课 程信息时,就不会出现被删除课程的信息,就会认为该课程 没有开过,可实际上不是这种情况。 修改异常若某个学生从信电学院转到管理学院,那么与该学生相关的所有记录都需要逐一修改属性Sdept的 值,如有遗漏,就会造成SCS中数据的不一致。结论n SCS关系模式不是一个

5、好的模式。n“好”的模式:不会发生插入异常、删除异常、更新异常,数据冗余应尽可能少根本原因:属性间存在着数据依赖引起的解决方法:通过分解关系模式来消除其中不合适的数据依赖S(Sno, Sname, Ssex, Sdept)C(Cno, Cname)SC(Sno, Cno, Score) SCS(Sno, Sname, Ssex, Sdept, Cno, Cname, Sorce)就不会出现上述异常,数据冗余也得到较好控制。关系模式分解函数依赖(Functional Dependency)是数据依赖的一种。数据依赖是指一个关系中属性值之间的相互联系,它是现实世界属性间相互联系的体现,是数据之间的

6、内在性质,是语义的体现。现在已经提出了多种类型的数据依赖,其中最重要的是函数依赖和多值依赖。函数依赖是关系规范化的理论基础。函数依赖4.24.2.1 函数依赖的定义 定义4.1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函数Y,或Y函数依赖于X,记作XY。例如:姓名年龄”这个函数依赖只有在没有重名的学生情况下成立。如果有重名的学生,则“年龄”就不再依赖于“姓名”了。 (1)如果XY,且YX,则称XY是平凡的函数依赖。(2)如果XY,但 ,则称XY是非平凡的函数依赖。(3)如果

7、XY,则称X为决定因素(Determinant),称Y 为依赖因素(Dependent)。(4)如果XY且YX,则记作XY。(5)如果Y不函数依赖于X,则记作XY 。 一般都是4.2.2 完全函数依赖和部分函数依赖 定义4.2 在关系模式R(U)中,U是R的属性集合,X 和Y是U的子集。如果XY,并且对于X的任何一个真子集X,都 有X Y,则称Y完全函数依赖(Full Functional Dependency)于X,记作X Y;如果对的某个真子集X,有XY,则称Y部 分函数依赖(Partial Functional Dependency)于X,记作 X Y。【例4-2】 在关系SC(Sno,

8、 Cno, Cname, Score)中, 因为Sno Score且Cno Score,所以(Sno, Cno) Score。而CnoCname,所以(Sno, Cno) Cname。4.2.3 传递函数依赖 定义4.3:在关系模式R(U)中,U是R的属性集合,X和Y是U的子集。如果XY,YZ,且Y X,Y X,则称Z传递函数依赖(Transitive Functional Dependency)于X,记作X Z;否则称Z非传递函数依赖于X。【例4-3】 在关系S(Sno,Sname, Ssex, Sdept, Dean)中,有函数依赖关系Sno Sname,由于Sno Sdept,Sdept

9、 Dean,有Sno Dean。 范式和规范化方法4.3范式(Normal Forms,NF)的概念是E.F.Codd在1971年提出的。19711972年,E.F.Codd提出了1NF、2NF与3NF。1974年,Codd与Boyce又共同提出了BCNF。1976年,Fagin提出了4NF,后来又有人提出了5NF。在这些范式中,最重要的是3NF和BCNF,它们是进行规范化的主要目标,基本保证了防止冗余问题和异常情况的发生。范式和规范化方法4.3关系数据库中的关系必须满足一定的规范化要 求,对于不同的规范化程度可用范式来衡量。范式是满足一定要求的关系模式的集合,是衡 量关系模式规范化程度的标准

10、,满足不同程度要求的为 不同范式。目前主要有6种范式: n第一范式(1NF) n第二范式(2NF) n第三范式(3NF) n BC范式(BCNF) n 第四范式(4NF) n 第五范式(5NF)范式的级别越高,条件越严格。满足基本规范 化要求的关系模式称为第一范式,简称为1NF;在第一范式基础上进一步满足一定要求的范式为第二范式,简称 为2NF;其余以此类推。 各种范式之间存在联系:1NF2NF3NFBCNF4NF5NF通常把某一关系模式R为第n范式简记为 RnNF。通过模式分解可以将低级范式的关系模式转换为若干个高级范式的关系模式的集合,这个过程称为关 系模式的规范化。4.3.1 第一范式(

11、1NF) 定义4.4:如果关系模式R的每个属性都是不可分解的基本数据项,则称R属于第一范式,记为R1NF。n第一范式是对关系模式的最起码的要求。不满足第一 范式的数据库模式不能称为关系数据库。n但是满足第一范式的关系模式并不一定是一个好的关 系模式4.3.2 第二范式(2NF) 定义4.5:如果关系模式R1NF,且每个非主属性都完全函数依赖于主键,则称R属于第二范式,记为R2NF。由定义可知,如果某个1NF的关系的主键只由一个属性组成或关系的全体属性均为主属性,那么这个关系就是2NF。如果主键是由多个属性列共同构成的复合主键,并且存在非主属性对主属性的部分函数依赖,则这个关系就不是2NF。【例

12、4-4】 对于关系S(Sno, Sname, Ssex, Sdept, Dean, Cno, Cname, Sorce),主键为(Sno, Cno)。 由于存在非主属性姓名(Sname)、性别(Ssex)、课程 名(Cname)部分函数依赖于(Sno, Cno),因此不属于 2NF。可以通过模式分解将非2NF的关系模式分解为多 个满足2NF的关系模式。分解步骤如下:(1)首先用组成主键的属性集合的每个子集作为 主键构成若干关系,对于关系S分解为如下3个子关系:S1(Sno, ),Sno为主键S2(Cno, ),Cno为主键S3(Sno, Cno, ),(Sno, Cno)为主键(2)对于每个子

13、关系,将依赖于此主键的属性放置到此关系中,则有:S1(Sno, Sname, Ssex, Sdept, Dean),Sno为主键S2(Cno, Cname),Cno为主键S3(Sno, Cno, Sorce),(Sno, Cno)为主键 模式分解后,消除了原关系S中的部分函数依赖 ,即S1、S2、S3 3个关系模式都不存在部分函数依赖,S1 、S2、S3都属于2NF。分析一下S1存在的问题:(1)数据冗余。 (2)插入异常。 (3)删除异常。 (4)修改复杂。由此可见,满足第二范式的关系模式仍然可能出 现数据冗余和操作异常。这是因为第二范式没有排除传 递函数依赖。因此,还需要对满足第二范式的关

14、系模式 进行进一步分解。4.3.3 第三范式(3NF) 定义4.6:如果关系模式R2NF,且所有非主属性都不传递函数依赖于任何候选键,则R3NF。【例4-5】 分解例4-4中的关系S1,使其满足3NF的要求。解:在关系S1中,院长(Dean)传递函数依赖于学号(Sno) ,即Sno Dean,所以S1不属于3NF。将关系S1(Sno, Sname, Ssex, Sdept, Dean)进一步分解,消除传递依赖。分解步骤如下:(1)对于不是候选键的每个决定因素,从关系中删除依赖它的所有属性。在关系S1中,学院(Sdept)不是候选键,但却是决定因素,从 关系S1中删除依赖它的属性院长(Dean)

15、,得到新的关系S11(Sno, Sname, Ssex, Sdept)。(2)新建一个关系,该关系中包含原关系中不是候选键的决定因素以及所有依赖该决定因素的属性,并将决定因素作为该关系的主键 。对于关系S1,新建的关系为S12(Sdept, Dean),主键为Sdept。关系S1分解后消除了传递函数依赖,因此S11和S12都满足3NF。4.3.4 BCNF 定义4.7:设关系模式R1NF,如果对于R的任意一 个函数依赖XY,X必为候选键,则RBCNF。n 等价于:每个决定属性集(因素)都包含(候选)码。BCNF的关系模式都具有如下3个性质。(1)所有非主属性都完全函数依赖于每个候选键。(2)所

16、有主属性都完全函数依赖于每个不包含它的候选键。(3)没有任何属性完全函数依赖于非候选键的任何一组属性。4.3.4 BCNF 若RBCNF 所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性R BCNF R 3NF4.3.4 BCNF 【例4-7】 分析关系模式T(Tno, Tname, Tsex)中,各属性分别代表教师号、教师姓名、性别。解:T只有一个主键Tno,没有任何属性对Tno部分依赖或传递依赖,所以T3NF。同时Tno是T中唯一的决定因素,所以TBCNF。4.3.4 BCNF 【例4-8】 分析关系模式STC(S, T, C)中,S表示学生,T表示教师,C表示课

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号