关系规范化理论1

上传人:san****019 文档编号:71406311 上传时间:2019-01-20 格式:PPT 页数:72 大小:1.94MB
返回 下载 相关 举报
关系规范化理论1_第1页
第1页 / 共72页
关系规范化理论1_第2页
第2页 / 共72页
关系规范化理论1_第3页
第3页 / 共72页
关系规范化理论1_第4页
第4页 / 共72页
关系规范化理论1_第5页
第5页 / 共72页
点击查看更多>>
资源描述

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

1、第四章 关系规范化理论,本章内容,教学目的,掌握函数依赖的概念 掌握1NF、2NF、3NF和BCNF范式 掌握模式分解的方法,教学要求 牢记有关概念,掌握关系模式规范化的方法 教学重点 规范化问题的存在的原因 函数依赖、完全函数依赖、传递依赖 规范化过程,4.1.1 规范化理论的主要内容 关系数据库的规范化理论 函数依赖 范式(Normal Form) 模式设计,核心,是模式分解和设计的基础,模式分解的标准,【例4-1】 学生选课数据库 在此关系模式中填入一部分具体的数据,4.1.2 不合理的关系模式存在的数据冗余和异常现象,SCS(Sno, Sname, Ssex, Sdept, Cno,

2、Cname, Sorce),数据冗余 插入异常 删除异常 修改异常,该表出现的问题,关系模式SCS存在以下问题: (1)数据冗余 当一个学生选修多门课程时,就会导致姓名、性别院名等多次重复存储;每一门课程名均对选修该门课程的学生重复存储,因而造成数据冗余。 (2)操作异常 插入异常 如果某个学生还没有选课,学生的有关信息就不能插入。 同样,没有被学生选修的课程信息也无法存入数据库。,关系模式SCS存在以下问题: 删除异常 当学生毕业离校时,要把他们的信息从数据库中删除,如果此时他们所选修的某些课程尚无其他年级的学生选修,那么这些课程的基本信息就会丢失,一旦查询所开课程信息时,就不会出现被删除课

3、程的信息,就会认为该课程没有开过,可实际上不是这种情况。 修改异常 若某个学生从信电学院转到管理学院,那么与该学生相关的所有记录都需要逐一修改属性Sdept的值,如有遗漏,就会造成SCS中数据的不一致。,结论 SCS关系模式不是一个好的模式。 “好”的模式: 不会发生插入异常、删除异常、更新异常, 数据冗余应尽可能少 根本原因:属性间存在着数据依赖引起的 解决方法:通过分解关系模式来消除其中不合适的数据依赖,S(Sno, Sname, Ssex, Sdept) C(Cno, Cname) SC(Sno, Cno, Score),SCS(Sno, Sname, Ssex, Sdept, Cno,

4、 Cname, Sorce),就不会出现上述异常,数据冗余也得到较好控制。,关系模式分解,函数依赖(Functional Dependency)是数据依赖的一种。数据依赖是指一个关系中属性值之间的相互联系,它是现实世界属性间相互联系的体现,是数据之间的内在性质,是语义的体现。现在已经提出了多种类型的数据依赖,其中最重要的是函数依赖和多值依赖。函数依赖是关系规范化的理论基础。,函数依赖,4.2,4.2.1 函数依赖的定义,定义4.1 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集,如果对于R(U)的任意一个可能的关系r,对于X的每一个具体值,Y都有唯一的具体值与之对应,则称X决定函

5、数Y,或Y函数依赖于X,记作XY。 例如:姓名年龄”这个函数依赖只有在没有重名的学生情况下成立。如果有重名的学生,则“年龄”就不再依赖于“姓名”了。,(1)如果XY,且YX,则称XY是平凡的函数依赖。 (2)如果XY,但 ,则称XY是非平凡的函数依赖。 (3)如果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,都

6、有X Y,则称Y完全函数依赖(Full Functional Dependency)于X,记作X Y; 如果对的某个真子集X,有XY,则称Y部分函数依赖(Partial Functional Dependency)于X,记作X Y。 【例4-2】 在关系SC(Sno, 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传递函数依赖

7、(Transitive Functional Dependency)于X,记作X Z;否则称Z非传递函数依赖于X。 【例4-3】 在关系S(Sno,Sname, Ssex, Sdept, Dean)中,有函数依赖关系Sno Sname,由于Sno Sdept,Sdept Dean,有Sno Dean。,范式(Normal Forms,NF)的概念是E.F.Codd在1971年提出的。19711972年,E.F.Codd提出了1NF、2NF与3NF。1974年,Codd与Boyce又共同提出了BCNF。1976年,Fagin提出了4NF,后来又有人提出了5NF。在这些范式中,最重要的是3NF和B

8、CNF,它们是进行规范化的主要目标,基本保证了防止冗余问题和异常情况的发生。,关系数据库中的关系必须满足一定的规范化要求,对于不同的规范化程度可用范式来衡量。 范式是满足一定要求的关系模式的集合,是衡量关系模式规范化程度的标准,满足不同程度要求的为不同范式。 目前主要有6种范式: 第一范式(1NF) 第二范式(2NF) 第三范式(3NF) BC范式(BCNF) 第四范式(4NF) 第五范式(5NF),范式的级别越高,条件越严格。满足基本规范化要求的关系模式称为第一范式,简称为1NF;在第一范式基础上进一步满足一定要求的范式为第二范式,简称为2NF;其余以此类推。 各种范式之间存在联系: 1NF

9、2NF3NFBCNF4NF5NF 通常把某一关系模式R为第n范式简记为RnNF。 通过模式分解可以将低级范式的关系模式转换为若干个高级范式的关系模式的集合,这个过程称为关系模式的规范化。,4.3.1 第一范式(1NF),定义4.4:如果关系模式R的每个属性都是不可分解的基本数据项,则称R属于第一范式,记为R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式 的数据库模式不能称为关系数据库。 但是满足第一范式的关系模式并不一定是一个好的关系模式,4.3.2 第二范式(2NF),定义4.5:如果关系模式R1NF,且每个非主属性都完全函数依赖于主键,则称R属于第二范式,记为R2NF。 由定

10、义可知,如果某个1NF的关系的主键只由一个属性组成或关系的全体属性均为主属性,那么这个关系就是2NF。如果主键是由多个属性列共同构成的复合主键,并且存在非主属性对主属性的部分函数依赖,则这个关系就不是2NF。,【例4-4】 对于关系S(Sno, Sname, Ssex, Sdept, Dean, Cno, Cname, Sorce),主键为(Sno, Cno)。由于存在非主属性姓名(Sname)、性别(Ssex)、课程名(Cname)部分函数依赖于(Sno, Cno),因此不属于2NF。 可以通过模式分解将非2NF的关系模式分解为多个满足2NF的关系模式。分解步骤如下: (1)首先用组成主键的

11、属性集合的每个子集作为主键构成若干关系,对于关系S分解为如下3个子关系: S1(Sno, ),Sno为主键 S2(Cno, ),Cno为主键 S3(Sno, Cno, ),(Sno, Cno)为主键,(2)对于每个子关系,将依赖于此主键的属性放置到此关系中,则有: 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。,分析一下S

12、1存在的问题:,(1)数据冗余。 (2)插入异常。 (3)删除异常。 (4)修改复杂。 由此可见,满足第二范式的关系模式仍然可能出现数据冗余和操作异常。这是因为第二范式没有排除传递函数依赖。因此,还需要对满足第二范式的关系模式进行进一步分解。,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,

13、 Dean)进一步分解,消除传递依赖。分解步骤如下: (1)对于不是候选键的每个决定因素,从关系中删除依赖它的所有属性。 在关系S1中,学院(Sdept)不是候选键,但却是决定因素,从关系S1中删除依赖它的属性院长(Dean),得到新的关系S11(Sno, Sname, Ssex, Sdept)。 (2)新建一个关系,该关系中包含原关系中不是候选键的决定因素以及所有依赖该决定因素的属性,并将决定因素作为该关系的主键。对于关系S1,新建的关系为S12(Sdept, Dean),主键为Sdept。 关系S1分解后消除了传递函数依赖,因此S11和S12都满足3NF。,4.3.4 BCNF,定义4.7

14、:设关系模式R1NF,如果对于R的任意一个函数依赖XY,X必为候选键,则RBCNF。 等价于:每个决定属性集(因素)都包含(候选)码。 BCNF的关系模式都具有如下3个性质。 (1)所有非主属性都完全函数依赖于每个候选键。 (2)所有主属性都完全函数依赖于每个不包含它的候选键。 (3)没有任何属性完全函数依赖于非候选键的任何一组属性。,4.3.4 BCNF,若RBCNF 所有非主属性对每一个码都是完全函数依赖 所有的主属性对每一个不包含它的码,也是完全函数依赖 没有任何属性完全函数依赖于非码的任何一组属性 R BCNF R 3NF,4.3.4 BCNF,【例4-7】 分析关系模式T(Tno,

15、Tname, Tsex)中,各属性分别代表教师号、教师姓名、性别。 解:T只有一个主键Tno,没有任何属性对Tno部分依赖或传递依赖,所以T3NF。同时Tno是T中唯一的决定因素,所以TBCNF。,4.3.4 BCNF,【例4-8】 分析关系模式STC(S, T, C)中,S表示学生,T表示教师,C表示课程。每一教师只教一门课。 解:每门课程有若干教师,某一学生选定某门课程,就对应一个固定的教师。由语义可得到函数依赖,如图4-1所示: (S,C)T, (S,T)C, TC,4.3.4 BCNF,该关系模式中,(S,C)和(S,T)都是候选键。 因为没有任何非主属性部分依赖和传递依赖于候选键所以

16、STC3NF。但STC不是BCNF关系,因为T是决定因素,但它不是候选键(不满足第三条)。 STC可以分解为ST(S,T)与TC(T,C),它们都是BCNF。 3NF和BCNF是对以函数依赖为基础的关系模式规范化程度的衡量标准。,3NF与BCNF的关系,R BCNF R 3NF 如果R3NF,且R只有一个候选码 R BCNF R 3NF,4.3.5 多值依赖与第四范式,1多值依赖 定义4.8:设有关系模式R(U),X、Y、Z是U的子集,且Z=UXY。当且仅当R的任一关系r在(X、Z)上的每一个值对应一组Y的值,这组值仅仅决定于X值而与Z值无关时,称Y多值依赖于X,记作XY。 如果XY,但Z=UXY=,则称XY为平凡的多值依赖,否则为非平凡的多值依赖。,4.3.5 多值依赖与第

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

当前位置:首页 > 高等教育 > 大学课件

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