1、第七章 关系数据理论,本章重点 : 完全函数依赖、部分函数依赖、传递函数依赖的概念 1NF、2NF、3NF、BCNF的定义 属性集的闭包 候选键求解 判断范式最高等级 本章难点 : 函数依赖、范式等相关概念的理解,问题的提出,基础知识,函数依赖,属性的闭包,关键字(Key)的概念,范式,关键字(Key)的求法,主要内容,Armstrong公理及其推论,一、问题的提出,1、关系数据库的设计主要是,2、不好的关系模式可能产生的问题,(1)数据冗余大每个学生的每次考试,都要重复存放学生的Sname值 (2)插入异常无法插入没有参加任何考试的学生信息。,关系模式的设计。,St(Sno,Same,Sde
2、pt,Sage,Cno,Cname, Cpno,Grade,Deputy) 对于此关系模式的一个可能的具体关系: 存在如下问题,针对一个具体问题,如何构造适合它的关系模式。,3、规范化的主要方法:,模式分解,(3)删除异常删去一个学生所学的课程,将删去该学生的信息 (4)更新复杂及异常系主任更改,必须修改所有记录的值,否则会出现数据不一致。产生上述问题的原因,直观说是因为关系中“包罗万象”,内容太杂;从属性间函数依赖的关系看,是由于属性间存在着“不恰当”的依赖关系。 解决问题的方法:将关系模式分解如下四个关系,S(Sno,Sname,Sdept,Sage)、,D(Sdept,Deputy)、,
3、C(Cno,Cname,Cpno)、,SC(Sno,Cno,Grade),St(Sno, Sname,Sdept,Sage,Cno,Cname, Cpno,Grade,Deputy),F=SnoSname,SnoSdept,SnoSage,SdeptDeputy, CnoCname,CnoCpno,(Sno,Cno) G ,二、基础知识,2、数据依赖中最重要、最常见的有:,函数依赖、多值依赖。,3、1NF:,1、数据依赖,关系的每一个分量不可再分的关系模式。,是一个关系内部属性与属性之间的一种约束关系。是语义的体现。,4、关系模式的简化表示:R(U,F),三、函数依赖,1、函数依赖的定义:,设
4、R(U)是属性集U上的关系模式,X、Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y,或Y函数依赖于X。记作:XY。其中,X是函数依赖的决定因素。,2、几个与函数依赖相关的概念,(1)若Y包含于X,称XY是平凡的函数依赖,若Y不包含于X,称XY是非平凡的函数依赖。,(2)若XY,YX,则X Y,(3)若Y不函数依赖于X,记作:X-Y,假设X、Y均代表元组中的任意属性组、X为X的任意非空真子集,且Y 不包含于X中,则分别定义如下三类函数依赖:,(4)完全函数依赖(Full FD)若XY,XY,则Y完全函数依赖于X
5、,记XfY。其中f表示完全函数依赖。CnofCname,(5)部分函数依赖(Partial FD)若XY,XY,则Y部分函数依赖于X,记YpX。其中p表示部分函数依赖。 (Sno,Cno)pSdept只有当X为复合属性时,才有可能发生部分依赖的情况。 (6)传递函数依赖(Transitive FD)若XY,YZ,但Y一X,则Z传递函数依赖于X,记XtZ。其中t表示传递函数依赖。SnotDeputy,四、关键字(Key),1、候选键:,设K为R(U)中的属性(集),若KU ,且对于任意K真包含于K,K-U,则K是R的候选键。,2、主键:若有多个候选键,则选定一个为主键。,3、主属性:包含在任何一
6、个候选键中的属性称为主属性。 4、非主属性:不包含在所有候选键中的属性称为非主属性。 5、全键:主键由整个属性组构成。 例如,关系R(课程,教师),一门课程可以由不同的教师来讲授;一个教师也可以讲授多门功课 。,五、Armstrong公理及其推论,1、公理 自反律:若Y包含于X,则XY(属平凡函数依赖) 增广律:若XY,则XZYZ 传递律:若XY,且YZ,则XZ 2、推论 合并规则:若XY,XZ,则XYZ 伪传递规则:若XY,WYZ,则XWZ 分解规则:若XY,且Z包含于Y,则XZ,六、属性集的闭包,1、属性集X关于F的闭包的定义:,设F为属性集U上的一组函数依赖,X包含于U,XF+=A|X-
7、A能由F根据阿氏公理导出,称XF+为属性集X关于F的闭包。( XF+也可简记成X+),2、X+的求解法:,result=X; Do for (; F中的每个FD:Y-Z ; )if (Y包含于result) result=resultZ; while (result有改变或结果为属性全集);,例:R(A,B,C,D,E,G),F=A-BC,E-CG,B-E,CD-EG,求(AB)+ 初始化:(AB)+=AB,第一遍:(AB)+= ABBCE=ABCE,第二遍:(AB)+= ABCEBCEG=ABCEG,第三遍:(AB)+= ABCEG BCEG=ABCEG结束 练习: R(A,B,C,D,E,
8、G), F=AB-C,C-A,BC-D,ACD-B,D-EG,BE-C,CG-BD,CE-AG,求D+,C+,A+,(CD)+,(AD)+,(AC)+,(ACD)+,七、候选键的快速求解法(补充),1、属性分类对于给定的R(A1,A2,An)和函数依赖集F,属性可分成四类: L类:只出现在函数依赖的左部 N类:函数依赖的两边均未出现 R类:只出现在函数依赖的右部 R类 LR类:函数依赖的两边均出现,RNOT类,0、候选键:设K为R(U)中的属性(集),若K+=U ,且对于任意K真包含于K,K+ U,则K是R的候选键。,2、定理 定理:RNOT(L、N)类属性必为主属性,且每一个候选键均包含它们
9、。R类属性必为非主属性。 3、结论 结论:若 RNOT+ = U,则RNOT为唯一候选键。 4、例 (1)R(A,B,C,D), F=A-B,D-B (2)R(A,B,C,D), F=A-B,B-C,C-D (3)R(A,B,C,D),F=AB-C,AC-D,D-B (4)R(U,F);U= A,B,C ,F= B-C, B-A, A-B ,规范化:一个低一级范式的关系模式,通过模式分解可以转换为高一级范式的关系模式的集合。,八、范式,1NF:若一个关系R的每一分量都是不可分的数据项,则称R是第一范式的,记作R1NF 。,1NF是在关系的基本性质中提出来的,任何关系都必须遵守。,2NF:若R1
10、NF,且它的每一非主属性完全依赖于(任何)候选键,则R2NF。,结论:R的key为单属性,则R必是2NF。 SCD(Sno,Sdept,Cno,G,Mn) 2NF可从1NF关系消除非主属性对候选键的部分函数依赖后得到。,3NF:若R的每一非主属性不传递依赖于(任何)候选键,则R3NF。,SD(Sno,Sdept,Mn)、 SC (Sno,Cno,G) 结论: R无非主属性,则R必是3NF。 3NF可从2NF消除非主属性对候选键的传递函数依赖后获得。,BCNF:若R1NF,对于任意的XY,X必是候选键之一,则RBCNF。,也就是说,若关系R中的每一个函数依赖的决定因素都是候选键之一,那么RBCN
11、F。,结论:二目关系必是BCNF;全键关系必为BCNF。 SCT(Sno, Cno, Tno,G) 语义:每一门课程允许有多个教师,每个教师只能上一门课,但同一学生的同一门课只能由一个教师来上课。 BCNF 可从3NF关系消除主属性对候选键的部分函数依赖与传递函数依赖后获得。,规范化小结,规范化的过程就是通过关系的投影分解逐步提高关系范式等级的过程。从1NF到BCNF,其过程可以表示为,判断范式最高等级(函数依赖范围内):1、R(A,B,C,D,E); F=A-D, E-D, D-B, BC-D,DC - A2、R=(A,B,C,D,E);F=AB-C,B-D,D-E,C-B3、R(U,F);
12、U= A, B, C,D,E ;F= CDE,EA,BD,ABC 4、R(U,F);U= A,B,C,D ;F= BCD, ABC, ADB,CDA 5、R(U,F);U= A,B,C,D,E ;F= AB,CDA,BCD,CED ,练习:课本P238239, 1、4 书上作业:课本P241开始除第39、41、44、45、50外的选择题 书面作业: 一、在函数依赖范围内判断下列范式等级: 1、R(U,F);U=A,B,C,D;F=AD-B,AB-C,BC-D,CD-A 2、R(U,F);U=A,B,C,D,E;F=AC-E,CE-D,AC-B 3、R(U,F);U=A,B,C,D,E;F=A-D,E-D,D-B,BC-D,DC-A 4、R(U,F);U=A,B,C,D,E;F=D-B,BC-D,CDE-A二、证明:满足BCNF的关系模式必定满足3NF。,