1、第4章 关系数据库理论,北京林业大学 软件教研室,2,4.1 规范化问题的提出 4.2 函数依赖 4.3 关系模式的分解* 4.4 关系模式的范式 4.5 关系模式的规范化,北京林业大学 软件教研室,3,4.1 规范化问题的提出,4.1.1 规范化理论的主要内容关系数据库的规范化理论 函数依赖范式(Normal Form)模式设计,核心,是模式分解和设计的基础,模式分解的标准,北京林业大学 软件教研室,4,4.1.2 不合理的关系模式存在的存储异常问题,教学管理数据库SCD(SNo,SN,Age,Dept,MN,CNo,Score) 在此关系模式中填入一部分具体的数据,北京林业大学 软件教研室
2、,5,该表出现的问题,数据冗余 插入异常 删除异常 更新异常,根本原因:属性间存 在着数据依赖关系,包罗万象,北京林业大学 软件教研室,6,一个好的关系模式应该具备以下四个条件: (1)尽可能少的数据冗余; (2)没有插入异常; (3)没有删除异常; (4)没有更新异常。,SCD (SNo,SN,Age, Dept,MN,CNo,Score),S(SNo,SN,Age,Dept),SC(SNo,CNo,Score),D(Dept,MN),关系模式分解:,北京林业大学 软件教研室,7,4.2 函数依赖,4.2.1 函数依赖的定义 定义4.1 SNo决定函数(SN,Age,Dept) (SN,Ag
3、e,Dept)函数依赖于SNo,SCD (SNo,SN,Age,Dept,MN,CNo,Score),SNo,一个学生,SN,Age,Dept,惟一确定,惟一确定,北京林业大学 软件教研室,8,4.2.2 函数依赖的逻辑蕴涵定义,定义4.2 设F是在关系模式R(U)上成立的函数依赖集合,X,Y是属性集U的子集,XY是一个函数依赖。如果从F中能够推导出XY,即如果对于R的每个满足F的关系r也满足XY,则称XY为F的逻辑蕴涵(或F逻辑蕴涵XY),记为F|=XY 。 定义4.3 设F是函数依赖集,被F逻辑蕴涵的函数依赖的全体构成的集合,称为函数依赖集F的闭包(Closure),记为F +。即:F +
4、= XY | F|=XY,北京林业大学 软件教研室,9,4.2.3函数依赖的推理规则,Armstrong公理 自反律:如果YXU,则XY在R上成立如果YXU,则XY在R上成立增广律 :若XY在R上成立,且ZU,则XZYZ在R上也成立 传递律 :若XY和YZ在R上成立,则XZ在R上也成立,北京林业大学 软件教研室,10,Armstrong公理推论 合并律(Union rule) 若XY和XZ在R上成立,则XYZ在R上也成立 伪传递律(Pseudotransitivity rule) 若XY和YWZ在R上成立,则XWZ在R上也成立 分解律(Decomposition rule) 若XY和ZY在R上
5、成立,则XZ在R上也成立复合律(Composition) 若XY和WZ在R上成立,则XWYZ在R上也成立,北京林业大学 软件教研室,11,4.2.4 完全函数依赖与部分函数依赖,设有关系模式R(U),U是属性全集,X和Y是U的子集:如果XY,并且对于X的任何一个真子集X,都有X Y,则称Y对X完全函数依赖,记作X Y。如果XY,并且对于X的某个真子集X ,有XY,则称Y对X部分函数依赖,记作X Y。 在关系模式SCD中,因为SNo Score,且CNo Score,所以有:(SNo,CNo) Score。而SNoAge,所以(SNo,CNo) Age,f,p,f,f,p,北京林业大学 软件教研
6、室,12,4.2.5 传递函数依赖,设有关系模式R(U),U是属性全集,X,Y,Z是U的子集 若XY,但Y X,而YZ(Y X,Z Y),则称Z对X传递函数依赖 ,记作:X Z 。如果YX,则X Y,这时称Z对X直接函数依赖,而不是传递函数依赖。,t,函数依赖,完全函数依赖,部分函数依赖,传递函数依赖,北京林业大学 软件教研室,13,4.2.6 属性集的闭包及其算法,X +=属性A|XA在F +中 定理4.3 XY能用函数依赖推理规则推出的充分必要条件是Y X +中 算法4.1 result=Xdoif F中有某个函数依赖YZ满足Y resultthen result=result Zwhil
7、e (result有所改变);,北京林业大学 软件教研室,14,4.2.7 候选键的求解理论和算法,关键码的定义 如果XU在R上成立(即XU在F +中),那么称X是R的一个超键。 如果XU在R上成立,但对X的任一真子集X都有XU不成立(即XU不在F+中,或者X U),那么称X是R上的一个候选键。快速求解候选键的一个充分条件 对于给定的关系模式R(A1,An)和函数依赖集F,可将其属性分为以下四类:,f,L类,R类,N类,LR类,北京林业大学 软件教研室,15,定理4.4 对于给定的关系模式R及其函数依赖集F(1)若X(XR)是L类属性,则X必为R的任一候选键的成员。(2)若X(XR)是L类属性
8、,且X +包含了R的全部属性,则X必为R的惟一候选键。(3)若X(XR)是R类属性,则X不在任何候选键中。(4)若X(XR)是N类属性,则X包含在R的任一候选键中。(5)若X(XR)是R的N类和L类属性组成的属性集,且X +包含了R的全部属性,则X是R的惟一候选键。,北京林业大学 软件教研室,16,多属性函数依赖集候选键的求解算法(1)属性分类(L、R、N和LR) (2)若X +包含了R的全部属性,转(5);否则,转(3)。 (3)在Y中取一个属性A,求(XA) +,若它包含了R的全部属性,则转(4);否则,调换一属性反复进行这一过程,直到试完所有Y中的属性。 (4)如果已找出所有候选键,则转
9、(5);否则在Y中依次取两个、三个、,求它们的属性集的闭包,直到其闭包包含R的全部属性。 (5)停止,输出结果。,令X代表L和N类,Y代表LR类,北京林业大学 软件教研室,17,4.2.8 函数依赖推理规则的完备性,定理4.5 函数依赖推理规则A1,A2,A3是完备的 (1)证明F中每个函数依赖VW在r上成立。 (2)证明XY在关系r上不成立。 综合(1)和(2)可知,只要XY不能用推理规则推出,那么F就不逻辑蕴涵XY,也就是推理规则是完备的。,从函数依赖集F使用推理规则推出的函数依赖必定在F +中,F +中的函数依赖都能从F集使用推理规则集推出,正确性:,完备性:,北京林业大学 软件教研室,
10、18,4.2.9 函数依赖集的等价、覆盖和最小函数依赖集,等价定义4.8 关系模式R(U)的两个函数依赖集F和G,如果满足F += G + ,则称F和G是等价的函数依赖集。记作:FG。如果F和G等价,就说F覆盖G,或G覆盖F。 无关定义4.9 设F是属性集U上的函数依赖集,XY是F中的函数依赖。函数依赖中无关属性: (1)如果AX,且F逻辑蕴涵(F-XY) (X-A) Y,则称属性A是XY左部的无关属性。 (2)如果AX,且(F-XY) X(Y-A)逻辑蕴涵F,则称属性A是XY右部的无关属性。 (3)如果XY的左右两边的属性都是无关属性,则函数依赖XY称为无关函数依赖。,北京林业大学 软件教研
11、室,19,定义4.10 设F是属性集U上的函数依赖集。如果Fmin是F的一个最小函数依赖集,那么Fmin应满足下列四个条件:(1)Fmin+=F +; (2)每个函数依赖的右边都是单属性; (3)Fmin中没有冗余的函数依赖(即在Fmin中不存在这样的函数依赖XY,使得Fmin与Fmin-XY等价),即减少任何一个函数依赖都将与原来的F不等价; (4)每个函数依赖的左边没有冗余的属性(即Fmin中不存在这样的函数依赖XY,X有真子集W使得Fmin-XY WY与Fmin等价),减少任何一个函数依赖左部的属性后,都将与原来的F不等价。,北京林业大学 软件教研室,20,算法4.3 计算函数依赖集F的
12、最小函数依赖集G(1)对F中的任一函数依赖XY,如果Y=Y1,Y2,,Yk(k2)多于一个属性,就用分解律,分解为XY1,XY2,XYk,替换XY,得到一个与F等价的函数依赖集G,G中每个函数依赖的右边均为单属性。 (2)去掉G中各函数依赖左部多余的属性。 (3)在G中消除冗余的函数依赖。,北京林业大学 软件教研室,21,4.4 关系模式的范式,各种范式之间的关系,北京林业大学 软件教研室,22,4.3.1 第一范式,定义4.14 如果关系模式R所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。 1NF是关系模式应具备的最起码的条件。 第一范式可能
13、具有大量的数据冗余,具有插入异常、删除异常和更新异常等弊端。 如关系模式SCD属于1NF,它既存在完全函数依赖,又存在部分函数依赖和传递函数依赖 。 克服这些弊端的方法是用投影运算将关系分解,去掉过于复杂的函数依赖关系,向更高一级的范式进行转换。,北京林业大学 软件教研室,23,4.3.2 第二范式,第二范式的定义 如果关系模式R1NF,且每个非主属性都完全函数依赖于R的主关系键,则称R属于第二范式,简称2NF,记作R2NF 。 如:关系模式TCS(T,C,S) 关系键 (T,C,S) ;主属性 T、C、S 不存在非主属性对主关系键的部分函数依赖,因此属于2NF。,从1NF关系中消除非主属性对
14、主关系键的部分函数依赖,则可得到2NF,如果R的关系键为单属性,或R的全体属性均为主属性,则R2NF,北京林业大学 软件教研室,24,2NF规范化 2NF规范化是指把1NF关系模式通过投影分解,转换成2NF关系模式的集合。 例4-15 将SCD(SNo,SN,Age,Dept,MN,CNo,Score)规范为2NF。,学生 SD(SNo,SN,Age,Dept,MN ),学生与课程联系 SC( SNo,CNo,Score),SCD,非主属性对主键完全函数依赖。因此,SD2NF,SC2NF。,北京林业大学 软件教研室,25,2NF的缺点,数据冗余,插入异常,删除异常,更新异常,每个系名和系主任的
15、名字存储的次数等于该系的学生人数,当一个新系没有招生时,有关该系的信息无法插入,某系学生全部毕业而没有招生时,删除全部学生的记录也 随之删除了该系的有关信息,更换系主任时,仍需改动较多的学生记录,北京林业大学 软件教研室,26,4.3.3 第三范式,第三范式的定义 如果关系模式R2NF,且每个非主属性都不传递函数依赖于R的主关系键,则称R属于第三范式,简称3NF,记作R3NF。如:SC(SNo,CNo,Score) 函数依赖为(SNo,CNo)Score,非主属性Score不传递函数依赖于主关系键(SNo,CNo),因此,SC3NF。又如:SD(SNo,SN,Age,Dept,MN) SNoD
16、ep和DeptMN SNo MN 非主属性MN与主关系键SNo间存在着传递函数依赖,所以SD 3NF。,主关系键,非主属性,t,非主属性,主关系键,北京林业大学 软件教研室,27,3NF规范化 算法4.6 把一个关系模式分解为3NF,使它具有保持函数依赖性。(1)如果Fmin中有一函数依赖XA,且XA=R,则输出=R,转(4)。 (2)如果R中某些属性与Fmin中所有依赖的左部和右部都无关,则将它们构成关系模式,从R中将它们分出去,单独构成一个模式。 (3)对于Fmin中的每一个函数依赖XA,都单独构成一个关系子模式XA。若Fmin中有XA1,XA2,XAn,则可以用模式XA1A2An取代n个
17、模式XA1,XA2,XAn。 (4)停止分解,输出。,北京林业大学 软件教研室,28,算法4.7 把一个关系模式分解为3NF,使它既具有无损连接性又具有保持函数依赖性。 (1)根据算法4.6求出保持函数依赖的分解:=R1,R2,Rk。 (2)判定是否具有无损连接性,若是,转(4)。 (3)令=X=R1,R2,Rk,X,其中X是R的候选键。 (4)输出。例4-17 将SD(SNo,SN,Age,Dept,MN)规范到3NF。 (1)根据算法4.6求出保持函数依赖的分解:=S(SNo,SN,Age,Dept),D(Dept,MN)。,北京林业大学 软件教研室,29,(2)判定是否具有无损连接性SD
18、分解为=S(SNo,SN,Age,Dept),D(Dept,MN)时,S、D都属于3NF,且既具有无损连接性又具有保持函数依赖性。3NF解决了2NF中存在的四个问题:,DeptMN,a5,a1a2a3a4a5 ,相对于F是无损连接分解,数据冗余降低了,不存在删除异常,不存在更新异常,不存在插入异常,北京林业大学 软件教研室,30,4.3.4 BC范式,BC范式的定义 如果关系模式R1NF,且所有的函数依赖XY(YX),决定因素X都包含了R的一个候选键,则称R属于BC范式,记作RBCNF。BCNF具有如下性质 : 如果RBCNF,则R也是3NF 。 如果R3NF,则R不一定是BCNF 。 例4-
19、18 设有关系模式SNC(SNo,SN,CNo,Score) SNo SN。 存在着主属性对键的部分函数依赖:(SNo,CNo) SN,(SN,CNo) SNo,所以SNC不是BCNF。,无部分函数依赖和传递函数依赖,SNC3NF,北京林业大学 软件教研室,31,BCNF规范化 算法4.8 把一个关系模式分解为BCNF (1)令=R。 (2)如果中所有模式都是BCNF,则转(4)。 (3)如果中有一个关系模式S不是BCNF,则S中必能找到一个函数依赖XA且X不是S的候选键,且A不属于X,设S1=XA,S2=S-A,用分解S1,S2代替S,转(2)。 (4)分解结束,输出。例4-19 将SNC(
20、SNo,SN,CNo,Score)规范到BCNF。 候选键:(SNo,CNo)和(SN,CNo)函数依赖:,F=SNoSN,SNSNo,(SNo,CNo)Score,(SN,CNo)Score,北京林业大学 软件教研室,32,(1)令=SNC(SNo,SN,CNo,Score)。 (2)经过前面分析可知,中关系模式不属于BCNF。 (3)用分解S1(SNo,SN),S2(SNo,CNo,Score)代替SNC。 (4)分解结果为:S1(SNo,SN)描述学生实体;S2(SNo,CNo,Score)描述学生与课程的联系。例4-20 设有关系模式TCS(T,C,S) 候选键 :(S,C)和(S,T
21、) 函数依赖是 :F=(S,C)T,(S,T)C,TC 分解TC(T,C),ST(S,T)代替TCS,消除了函数依赖(S,T) C ,STBCNF,TCBCNF,北京林业大学 软件教研室,33,4.3.5 多值依赖与第四范式,多值依赖的定义 假设学校中一门课程可由多名教师讲授,教学中他们使用相同的一套参考书。,关系CTB,北京林业大学 软件教研室,34,CTB转化成规范化的关系如下图所示:C与T间的联系被称为多值依赖 多个T对应一个C 一个确定的C值,与其所对应的一组T值与B值无关,数据冗余大,插入异常,删除异常,北京林业大学 软件教研室,35,定义4.18 设有关系模式R(U),U是属性全集
22、,X、Y、Z是属性集U的子集,且Z=UXY如果对于R的任一关系,对于X的一个确定值,存在Y的一组值与之对应,且Y的这组值仅仅决定于X的值而与Z值无关,此时称Y多值依赖于X,或X多值决定Y,记作XY。若XY且Z=UXY,则称XY是非平凡的多值依赖,否则称为平凡的多值依赖 。,北京林业大学 软件教研室,36,多值依赖公理及其推论 多值依赖公理 增广律:如果XY,VWU,则WXVY。 传递律:如果XY,YZ,则XZ-Y。 补余律:如果XY,则XU-X-Y 。 函数依赖公理与多值依赖混合公理 复制规则:从FD导出MVD,如果XY,则XY。 接合规则:从MVD导出FD:如果XY,ZY,且存在WU有WY=
23、,WZ,则XZ。 多值依赖推论 合并律:如果XY,XZ,则XYZ。 伪传递律:如果XY,WYZ,则XW(Z-W-Y)。 分解律:如果XY,XZ,则X(YZ),X(Y-Z),X(Z-Y) 。 混合伪传递律:如果XY,XYZ,则X(Z-Y) 。,北京林业大学 软件教研室,37,第四范式(4NF)定义 定义4.19 设有一关系模式R(U),U是其属性全集,X、Y是U的子集,D是R上的数据依赖集。如果对于任一多值依赖XY,此多值依赖是平凡的,或者X包含了R的一个候选关键字,则称R是第四范式的关系模式,记为R4NF 。,一个BCNF的关系模式不一定是4NF,4NF的关系模式必定是BCNF的关系模式,4N
24、F是BCNF的推广,北京林业大学 软件教研室,38,第四范式(4NF)的分解 (1)令=R。 (2)如果中所有模式Ri都是4NF,则转(4)。 (3)如果中有一个关系模式S不是4NF,则S中必能找到一个多值依赖XY且X不包含S的候选键,Y-X,XYS,令Z=Y-X,设S1=XZ,S2=S-Z,用分解S1,S2代替S,由于S1S2=X,S1-S2=Z,所以有(S1S2)(S1-S2),分解具有无损连接性,转(2)。 (4)分解结束,输出 。,北京林业大学 软件教研室,39,4.3.6 关系模式的规范化,一个低一级范式的关系模式,通过模式分解转化为若干个高一级范式的关系模式的集合,这种分解过程叫作
25、关系模式的规范化。 关系模式规范化的目的和原则规范化的目的就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。 规范化的基本原则就是遵循“一事一地”的原则。,北京林业大学 软件教研室,40,4.3.7 关系模式规范化的步骤,规范化过程,北京林业大学 软件教研室,41,4.4 数据依赖的公理系统,逻辑蕴含定义4.20 对于满足一组函数依赖 F 的关系模式R ,其任何一个关系r,若函数依赖XY都成立, (即r中任意两元组t,s,若tX=sX,则tY=sY),则称F逻辑蕴含X Y,北京林业大学 软件教研室,42,1. Armstrong公理系统,关系模式R 来说有以下的推理规则:
26、A1.自反律(Reflexivity):若Y X U,则X Y为F所蕴含。 A2.增广律(Augmentation):若XY为F所蕴含,且Z U,则XZYZ为F所蕴含。 A3.传递律(Transitivity):若XY及YZ为F所蕴含,则XZ为F所蕴含。,北京林业大学 软件教研室,43,定理 4.1 Armstrong推理规则是正确的,(l)自反律: 若Y X U,则X Y为F所蕴含证: 设Y X U 对R 的任一关系r中的任意两个元组t,s: 若tX=sX,由于Y X,有ty=sy, 所以XY成立,自反律得证,北京林业大学 软件教研室,44,定理 4.l Armstrong推理规则是正确的(
27、续),(2)增广律: 若XY为F所蕴含,且Z U,则XZYZ 为F所蕴含。证:设XY为F所蕴含,且Z U。设R 的任一关系r中任意的两个元组t,s: 若tXZ=sXZ,则有tX=sX和tZ=sZ; 由XY,于是有tY=sY,所以tYZ=sYZ,所以 XZYZ为F所蕴含,增广律得证。,北京林业大学 软件教研室,45,定理 4.l Armstrong推理规则是正确的(续),(3) 传递律:若XY及YZ为F所蕴含,则 XZ为 F所蕴含。 证:设XY及YZ为F所蕴含。 对R 的任一关系 r中的任意两个元组 t,s: 若tX=sX,由于XY,有 tY=sY; 再由YZ,有tZ=sZ,所以XZ为F所蕴含,
28、传递 律得证。,北京林业大学 软件教研室,46,2. 导出规则,1.根据A1,A2,A3这三条推理规则可以得到下面三条推理规则:合并规则:由XY,XZ,有XYZ。(A2, A3)伪传递规则:由XY,WYZ,有XWZ。(A2, A3)分解规则:由XY及 ZY,有XZ。(A1, A3),北京林业大学 软件教研室,47,导出规则,2.根据合并规则和分解规则,可得引理6.1引理4.l XA1 A2Ak成立的充分必要条件是XAi成立(i=l,2,k),北京林业大学 软件教研室,48,Armstrong公理系统,Armstrong公理系统是有效的、完备的 有效性:由F出发根据Armstrong公理推导出来
29、的每一个函数依赖一定在F+中; 完备性:F+中的每一个函数依赖,必定可以由F出发根据Armstrong公理推导出来,北京林业大学 软件教研室,49,3. 函数依赖闭包,定义4.21 在关系模式R中为F所逻辑蕴含的函数依赖的全体叫作 F的闭包,记为F+。 定义6.13 设F为属性集U上的一组函数依赖,X U, XF+ = A|XA能由F 根据Armstrong公理导出,XF+称为属性集X关于函数依赖集F 的闭包,北京林业大学 软件教研室,50,F的闭包,F=XY, YZ F+= X, Y, Z, XY, XZ, YZ, XYZ, XX, YY, ZZ, XYX, XZX, YZY, XYZX,
30、XY, Y Z, XYY, XZY, YZZ, XYZY, XZ, YYZ, XYZ, XZZ, YZYZ,XYZZ, XXY, XYXY,XZXY, XYZXY, XXZ, XYYZ,XZXZ, XYZYZ, XYZ, XYXZ,XZXY, XYZXZ, XZYZ, XYXYZ,XZXYZ, XYZXYZ F=XA1, , XAn的闭包F+计算是一个NP完全问题,北京林业大学 软件教研室,51,关于闭包的引理,引理4.2 设F为属性集U上的一组函数依赖,X,Y U,XY能 由F 根据Armstrong公理导出的充分必要条件是Y XF+ 用途将判定XY是否能由F根据Armstrong公理导出的
31、问题,转化为求出XF+ 、判定Y是否为XF+的子集的问题,北京林业大学 软件教研室,52,求闭包的算法,算法4.1 求属性集X(X U)关于U上的函数依赖集F 的闭包XF+ 输入:X,F 输出:XF+ 步骤: (1)令X(0)=X,i=0 (2)求B,这里B = A |( V)( W)(VWFV X(i)A W); (3)X(i+1)=BX(i) (4)判断X(i+1)= X (i)吗? (5)若相等或X(i)=U , 则X(i)就是XF+ , 算法终止。 (6)若否,则 i=i+l,返回第(2)步。,北京林业大学 软件教研室,53,算法4.1,对于算法4.1, 令ai =|X(i)|,ai
32、形成一个步长大于1的严格递增的序列,序列的上界是 | U |,因此该算法最多 |U| - |X| 次循环就会终止。,北京林业大学 软件教研室,54,函数依赖闭包,例1 已知关系模式R,其中 U=A,B,C,D,E; F=ABC,BD,CE,ECB,ACB。 求(AB)F+ 。 解 设X(0)=AB; (1) X(1)=ABCD=ABCD。(2) X(0) X(1)X(2)=X(1)BE=ABCDE。 (3) X(2)=U,算法终止(AB)F+ =ABCDE。,北京林业大学 软件教研室,55,4. Armstrong公理系统的有效性与完备性,定理4.2 Armstrong公理系统是有效的、完备的
33、 证明: 1. 有效性可由定理6.1得证2. 完备性只需证明逆否命题: 若函数依赖XY不能由F从Armstrong公理导出,那么它必然不为F所蕴含,北京林业大学 软件教研室,56,Armstrong公理系统完备性证明,(1) 引理: 若VW成立,且V XF+,则W XF+ (2) 构造一张二维表r,它由下列两个元组构成,可以证明r必是R(U,F)的一个关系,即F+中的全部函数依赖在 r上成立。XF+ U-XF+111 000 111 111 (3) 若XY 不能由F从Armstrong公理导出,则Y 不是XF+ 的子集。,北京林业大学 软件教研室,57,5. 函数依赖集等价,定义4.22 如果
34、G+=F+,就说函数依赖集F覆盖G(F是G的覆盖,或G是F的覆盖),或F与G等价。 引理6.3 F+ = G+ 的充分必要条件是F G+ ,和G F+ 证: 必要性显然,只证充分性。 (1)若FG+ ,则XF+ XG+ 。 (2)任取XYF+ 则有 Y XF+ XG+ 。所以XY (G+)+= G+。即F+ G+。 (3)同理可证G+ F+ ,所以F+ = G+。,北京林业大学 软件教研室,58,6. 最小依赖集,定义6.23 如果函数依赖集F满足下列条件,则称F为一个极小函数依赖集。亦称为最小依赖集或最小覆盖。(1) F中任一函数依赖的右部仅含有一个属性。(2) F中不存在这样的函数依赖XA
35、,使得F与F-XA等价。(3) F中不存在这样的函数依赖XA, X有真子集Z使得F-XAZA与F等价。,北京林业大学 软件教研室,59,最小依赖集,例2 关系模式S,其中:U= Sno,Sdept,Mname,Cno,Grade ,F= SnoSdept,SdeptMname,(Sno,Cno)Grade 设F=SnoSdept,SnoMname,SdeptMname,(Sno,Cno)Grade,(Sno,Sdept)Sdept F是最小覆盖,而F不是。 因为:F - SnoMname与F 等价F - (Sno,Sdept)Sdept也与F 等价,北京林业大学 软件教研室,60,7. 极小化
36、过程,定理4.3 每一个函数依赖集F均等价于一个极小函数依赖集Fm。此Fm称为F的最小依赖集。 证明: 构造性证明,找出F的一个最小依赖集。,北京林业大学 软件教研室,61,极小化过程(续),(1)逐一检查F中各函数依赖FDi:XY,若Y=A1A2 Ak,k 2,则用 XAj |j=1,2, k 来取代XY。 (2)逐一检查F中各函数依赖FDi:XA,令G=F-XA,若AXG+, 则从F中去掉此函数依赖。 (3)逐一取出F中各函数依赖FDi:XA,设X=B1B2Bm,逐一考查Bi (i=l,2,m),若A (X-Bi )F+ ,则以X-Bi 取代X。,北京林业大学 软件教研室,62,极小化过程
37、(续),例3 F = AB,BA,BC,AC,CAFm1、Fm2都是F的最小依赖集:Fm1= AB,BC,CA Fm2= AB,BA,AC,CA F的最小依赖集Fm不唯一 极小化过程( 定理4.3的证明 )也是检验F是否为极小依赖集的一个算法,北京林业大学 软件教研室,63,4.5 关系模式的分解*,4.5.1 模式分解问题 定义4.24 设有关系模式R(U),R=R1R2Rk,=R1,R2,Rk。这里称为R的一个分解,也称为数据库模式。,泛关系模式,泛关系,数据库模式,数据库实例,R,r,=R1,R2,Rk,=,模式分解示意图,衡量关系模式的分解是否可取,分解是否具有无损连接 分解是否保持了
38、函数依赖,北京林业大学 软件教研室,64,4.5.2 无损连接分解,定义4.25 设有R,F是R上的函数依赖集,=R1,R2,Rk。如果对R中满足F的每一个关系r,有r =R1(r)R2(r)Rk(r),那么就称分解相对于F是“无损连接分解” ;否则称为“损失分解”。定理4.6 设=R1,R2,Rk是关系模式R的一个分解,r是R的任一关系,ri=Ri(r)(1ik),那么有下列性质:(1)r m(r);(2)若s=m(r),则Ri(s)=ri;(3)m(m(r)=m(r),这个性质称为幂等性。,北京林业大学 软件教研室,65,4.5.3 无损分解的测试算法,(1)构造一个k行n列的表格R,表中
39、每一列对应一个属性Aj(1jn),每一行对应一个模式Ri(1ik)。如果Aj在Ri中,则在表中的第i行第j列处填上符号aj,否则填上bij。(2)把表格看成模式R的一个关系,根据F中的每个函数依赖,在表中寻找X分量上相等的行,分别对Y分量上的每一列做修改: 如果列中有一个是aj,那么这一列上(X相同的行)的元素都改成aj; 如果列中没有aj,那么这一列上(X相同的行)的元素都改成bij(下标ij取i最小的那个)。 对F中所有的函数依赖,反复地执行上述的修改操作,一直到表格不能再修改为止(这个过程称为“追踪” 过程)。(3)若修改到最后,表中有一行全为a,即a1a2an,那么称相对于F是无损连接
40、分解。,北京林业大学 软件教研室,66,例4-11 设有关系模式R(A,B,C,D),R分解成=AB,BC,CD,如果R上成立的函数依赖集F=BA,CD,那么相对于F是否为无损连接分解?,BA,a1,CD,a4,修改后的表格中的第二行为a1a2a3a4, 因此,相对于F是无损连接分解 。,北京林业大学 软件教研室,67,定理4.7 设=R1,R2是关系模式R的一个分解,F是R上成立的函数依赖集,那么分解相对于F是无损分解的充分必要条件是:(R1R2)(R1-R2)或(R1R2)(R2-R1) 当模式R分解成两个模式R1和R2时,若两个模式的公共属性(除外)能够函数决定R1(或R2)中的其他属性
41、,这样的分解具有无损连接性。,北京林业大学 软件教研室,68,4.5.4 保持函数依赖的分解,定义4.13 设有关系模式R(U),F是R(U)上的函数依赖集,Z是属性集U上的一个子集,=R1,R2,Rk是R的一个分解。 F在Z上的一个投影用Z(F)表示:Z(F)=XY | XYF +XYZ; F在Ri上的一个投影用Ri(F)表示:=R1(r)R2(r)Rk(r);如果有F +=( )+,则称是保持函数依赖集F的分解。,一个无损连接分解不一定是保持函数依赖的,一个保持函数依赖的分解也不一定是无损连接的,北京林业大学 软件教研室,69,4.5.5 关系模式规范化的要求,保证分解后的关系模式与原关系模式是等价的等价的三种标准: 分解要具有无损连接性; 分解要具有函数依赖保持性; 分解既要具有无损连接性,又要具有函数依赖保持性。,保证不丢失信息,减轻或解决各种异常情况,