资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,第 7章 关系数据库规范化理论,7.1,函数依赖,7.2,关系规范化,第一页,编辑于星期五:九点 八分。,7.1 函数依赖,7.1.1函数依赖基本概念,公式:,Y,=,f,(,X,),自变量,因变量,把,X,函数决定,Y,,或,Y,函数依赖于,X,表示为:,X,Y,关系数据库中的函数依赖注重,语义,上的关系,比如:省=f(城市),第二页,编辑于星期五:九点 八分。,定义:如果有一个关系模式,R,(,A1,A2,An,),,X,和,Y,为,A1,A2,An,的子集,那么对于关系,R,中的任意一个,X,值,都只有一个,Y,值与之对应,则称,X,函数决定,Y,,或,Y,函数依赖于,X,。,例如:对学生关系模式:Student(Sno,SName,Sdept,Sage),有:,SnoSName,SnoSdept,SnoSage,对学生修课关系模式:SC(Sno,Cno,Grade),有:,(Sno,Cno)Grade,第三页,编辑于星期五:九点 八分。,形式化定义:,设有关系模式,R,(,A1,A2,An,),,X,和,Y,均为,A1,A2,An,的子集,,r,是,R,的任一具体关系,,t1,、,t2,是,r,中的任意两个元组;如果,t1,X,=,t2,X,t1,Y,=,t2,Y,,则称,X,函数决定,Y,,或,Y,函数依赖于,X,,记为,X,Y,。,第四页,编辑于星期五:九点 八分。,7.1.2一些术语和符号,设有关系模式,R,(,A1,A2,An,),,X,和,Y,均为,A1,A2,An,的子集,如果,X,Y,,但,Y,不包含于,X,,则称,X,Y,是,非平凡的函数依赖。,如果,Y,不函数依赖于,X,,则记作,X Y,。,如果,X,Y,,则称,X,为决定因子。,如果,X,Y,,并且,Y,X,,则记作,X Y,。,如果,X,Y,,并且对于,X,的一个任意真子集,X,都有,X,Y,,则称,Y,完全函数依赖于,X,,记作,X Y,;如果,X,Y,成立,则称,Y,部分函数依赖于,X,,记作,X Y,。,如果,X,Y,(非平凡函数依赖,并且,Y X,)、,Y,Z,,则称,Z,传递函数依赖于,X,。,第五页,编辑于星期五:九点 八分。,例1:有关系模式:,SC(Sno,Sname,Cno,Credit,Grade),主码为(Sno,Cno),函数依赖关系有:,SnoSname,(Sno,Cno)Sname,(Sno,Cno)Grade,第六页,编辑于星期五:九点 八分。,例2:有关系模式:,S(Sno,Sname,Dept,Dept_master),假设一个系只有一个主任,主码为Sno。,函数依赖关系有:,Sno Sname,由于:,Sno Dept,Dept Dept_master,所以有:,Sno Dept_master,第七页,编辑于星期五:九点 八分。,三、为什么要讨论函数依赖,设有描述学生修课及住宿情况的关系模式:,S-L-C(,Sno,Sdept,Sloc,Cno,Grade),Sno,Sdept,SLOC,Cno,Grade,9812101,计算机,2公寓,DB,80,9812101,计算机,2公寓,OS,85,9821101,信息,1公寓,C,90,9821101,信息,1公寓,DS,84,9821102,信息,1公寓,OS,78,存在问题,数据冗余问题,数据更新问题,数据插入问题,数据删除问题,第八页,编辑于星期五:九点 八分。,7.2 关系规范化,7.2.1关系模式中的码,1、候选码,设K为,R,(,U,F,)中的属性或属性组,若K fU,则,K,为R,候选码,。(K为决定R全部属性值的最小属性组)。,主码,:关系,R,(,U,F,)中可能有多个候选码,则选其中一个作为主码,全码,:候选码为整个属性组。,主属性,与,非主属性,:,在,R,(,U,F,)中,包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性。,第九页,编辑于星期五:九点 八分。,例:SC(Sno,Cno,Grade),其,候选码为,:(Sno,Cno),也为主码,则,主属性为,:Sno,Cno,Grade为非主属性,2、外码,定义:若R(U,F)的属性(组)X(X属于U),是另一个关系S的主码,则称X为R的外码。,例:S(,Sno,Sname,Ssex,Sdept,Sage),SC(,Sno,Cno,Grade),第十页,编辑于星期五:九点 八分。,7.2.2范式,关系数据库中的关系要满足一定的要求,,满足不同程度要求的为不同的,范式,。满足最低,要求的为,第一范式,,简称,1NF,(First Normal,Form)。在第一范式中进一步满足一些要求的,为,第二范式,,简称,2NF,,依此类推,还有3NF,,BCNF,4NF,5NF。,第十一页,编辑于星期五:九点 八分。,1、第一范式,定义:,不包含重复组的关系(即不包含非,原子项的属性)是第一范式的关系,。,系名称,高级职称人数,教授,副教授,计算机系,6,10,信息管理系,3,5,电子与通讯系,4,8,系名称,教授,副教授,计算机系,6,10,信息管理系,3,5,电子与通讯系,4,8,第十二页,编辑于星期五:九点 八分。,2、第二范式,定义:,如果,R,(,U,F,)1NF,并且,R,中的每个,非主属性都完全函数依赖于主码,则,R,(,U,F,)2NF。,例:S-L-C(Sno,Sdept,Sloc,Cno,Grade),就不是2NF的。,因为(Sno,Cno)是主码,,而又有:,SnoSdept,因此有:,(Sno,Cno),Sdept,第十三页,编辑于星期五:九点 八分。,分解过程为:,用组成主码的属性集合的每一个子集作为主码构成一个表,将依赖于这些主码的属性放置到相应的表中,去掉只由主码的子集构成的表,S-L-C关系模式分解后的形式为:,S-L(,Sno,Sdept,Sloc),S-C(,Sno,Cno,Grade),S-L有:Sno,Sdept,Sno,SLOC:是2NF,S-C有:(Sno,Cno),Grade:是2NF,数据冗余,插入异常,第十四页,编辑于星期五:九点 八分。,3、第三范式,定义:,如果,R,(,U,F,)2NF,并且所有非主属,性都不传递依赖于主码,则,R,(,U,F,)3NF,。,关系模式S-L(,Sno,Sdept,Sloc),因为有:,SnoSdept,SdeptSloc,因此有:,Sno,Sloc,因此,不是3NF的关系模式。,第十五页,编辑于星期五:九点 八分。,分解过程:,(1)对于不是候选码的每个决定因子,从表中,删去依赖于它的所有属性;,(2)新建一个表,新表中包含在原表中所有依,赖于该决定因子的属性;,(3)将决定因子作为新表的主码。,S-L分解后的关系模式为:,S-D(,Sno,Sdept),S-L(,Sdept,Sloc),对S-D,有:Sno Sdept,因此S-D是3NF的,对S-L,有:Sdept Sloc,因此S-L也是3NF的,第十六页,编辑于星期五:九点 八分。,4、BCNF,BCNF也叫Boyce-Codd范式,它是3NF的进一,步规范化,即限制条件更严格。,例如:设关系模式TCS(T,C,S),T表示教师,C表示课程,S表示学生。语义假设是,每一位教师只讲授一门课程;每门课程由多个教师讲授;某一学生选定某门课程,就对应于一确定的教师。,根据语义假设,TCS的函数依赖是:,(S,C)T,(S,T)C,TC,。,第十七页,编辑于星期五:九点 八分。,对于TCS,(S,C)和(S,T)都是候选键,两个候选键相交,有公共的属性S。TCS中不存在非主属性,也就不可能存在非主属性对键的部分依赖或传递依赖,所以TCS,3NF。,但从TCS的一个关系实例分析,仍存在一些问题。,T,C,S,T1,C1,S1,T1,C1,S2,T2,C1,S3,T2,C1,S4,T3,C2,S2,T4,C2,S2,T4,C3,S2,第十八页,编辑于星期五:九点 八分。,A、,数据冗余,。虽然每个教师只开一门课,但每个选修该教师该门课程的学生元组都要记录这一信息。,B、,插入异常,。当某门课程本学期不开,自然就没有学生选修。没有学生选修,因为主属性不能为空,教师上该门课程的信息就无法插入。,C、,删除异常,。如果选修某门课程的学生全部毕业,删除学生记录的同时,随之也删除了教师开设该门课程的信息。,D、,更新异常,。当某个教师开设的某门课程改名后,所有选修该教师该门课程的学生元组都要进行修改,如果漏改某个数据,则破坏了数据的完整性。,第十九页,编辑于星期五:九点 八分。,定义:,若关系模式R1NF,且能决定其它属性取,值的属性(组)必定包含码,则RBCNF,。,或者,我们也可以说:,如果一个关系的每个,决定因子都是候选码,则其是BCNF,。,或者:,如果R3NF,并且不存在主属性对非,码的函数依赖,则其是BCNF,。,BCNF规范化:把3NF关系模式通过投影分解转换成BCNF关系模式的集合。,将TCS分解为两个关系模式ST(S,T)和TC(T,C)。其中ST的键为S,TC的键为T;,ST,,,TC,。ST,BCNF,TC,BCNF。,第二十页,编辑于星期五:九点 八分。,1NF,2NF,3NF,BCNF,消除决定属性不是候选键的非平凡的函数依赖,消除非主属性对键的部分函数依赖,消除非主属性对键的传递函数依赖,消除主属性对键的部分和传递函数依赖,关系规范化步骤,第二十一页,编辑于星期五:九点 八分。,7.3 关系模式的分解准则,模式分解要满足:,模式分解具有,无损连接性,;,模式分解能够,保持函数依赖,。,无损连接是指分解后的关系通过自然连接,可以恢复成原来的关系,,即通过自然连接得到,的关系与原来的关系相比,既不多出信息、又,不丢失信息。,保持函数依赖分解是指在模式的分解过程,中,函数依赖不能丢失的特性,,即模式分解不,能破坏原来的语义。,第二十二页,编辑于星期五:九点 八分。,例:S-D-L(Sno,Dept,Sloc)有函数依赖:,Sno Dept,Dept Loc,不是第三范式的。,三种分解方案,分别为:,方案1:S-L(Sno,Sloc),D-L(Dept,Sloc),方案2:S-D(Sno,Dept),S-L(Sno,Sloc),方案3:S-D(Sno,Dept),D-L(Dept,Sloc),这三种分解方案得到的关系模式都是第三范,式的,那么如何比较这三种方案的好坏呢?由此,在将一个关系模式分解为多个关系模式时除了提,高规范化程度之外,还需要考虑,其他的一些因,素,。,第二十三页,编辑于星期五:九点 八分。,S_D_L关系模式某时刻的数据(r),Sno,Dept,Sloc,S01,D1,L1,S02,D2,L2,S03,D2,L2,S04,D3,L1,Sno,Sloc,S01,L1,S02,L2,S03,L2,S04,L1,Dept,Sloc,D1,L1,D2,L2,D3,L1,Sno,Dept,Sloc,S01,D1,L1,S01,D3,L1,S02,D2,L2,S03,D2,L2,S04,D1,L1,S04,D3,L1,S_L(r,11,)D_L(r,12,),r,1,1*,r,12,(r),方案一,第二十四页,编辑于星期五:九点 八分。,无损连接性,将关系模式,R,分解为关系模式,R,1,,,R,2,,,R,n,,若对于,R,中的任何一个可能的,r,,都有,r,r,1*,r,2*,*,r,n,即,r,在,R,1,,R,2,,R,n,上的投影的自然连接等于,r,,则称关系模式,R,的这个分解具有,无损连接性,。,第二十五页,编辑于星期五:九点 八分。,Sno,Sloc,S01,L1
展开阅读全文