第6章 关系模式的规范化理论.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第6章 关系模式的规范化理论.ppt》由会员分享,可在线阅读,更多相关《第6章 关系模式的规范化理论.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 关系模式的规范化理论 本章主要内容关系数据库的规范化设计是指面对一个现实问题,如何选择一个比较好的关系模式集合。规范化设计理论对关系数据库结构的设计起着重要的作用。本章主要内容(1)关系模式的冗余及相关的异常问题。(插入、删除、更新异常)(2)函数依赖(FD)的定义、(非)平凡函数依赖、完全(部分)函数依赖、(非)传递函数依赖。(3)关系模式的范式的概念:1NF,2NF,3NF,BCNF。(理解概念并能够判断一个关系模式的范式级别)关系模式的规范化理论 6.1关系模式设计中的问题6.2函数依赖6.3函数依赖的公理系统6.4关系模式的分解及其问题6.5关系模式的规范化6.6多值函数依赖与
2、4NF本章小结6.1关系模式设计中的问题假设需要设计一个学生学习情况数据库StuDB。下面我们以模式S_C_G(S#,SN,SD,SA,C,CN,G,PC)为例来说明该模式存在的问题。下表是其一个实例。S#SNSDSACCNPCG0001张华张华计算机计算机1717C101C101离散数学离散数学C110C1105 50001张华张华计算机计算机1717C102C102数据结构数据结构C101C1015 50001张华张华计算机计算机1717C105C105数据库原理数据库原理C102C1023 30002李明李明信息管理信息管理1919C103C103操作系统操作系统C102C1023 30
3、002李明李明信息管理信息管理1919C105C105数据库原理数据库原理C102C1023 30003刘强刘强计算机计算机1818C107C107汇编语言汇编语言C110C1104 4(1)冗余度大:同样的数据被多次重复存储。(2)操作异常由于数据的冗余,在对数据操作时会引起多种异常:插入异常:应该能插入的数据,但无法插入删除异常:不该被删除的数据,却被删掉修改异常:修改数据,很困难,容易造成遗漏或出错。关系模式的分解我们采用分解的方法,将上述S_C_G分解成以下三个模式:S(S,SN,SD,SA)C(C,CN,PC)S_C(S,C,G)(让每个模式表达单一的概念信息)关系关系SS#SNSD
4、SA0001张华张华计算机计算机17170002李明李明信息管理信息管理19190003刘强刘强计算机计算机1818关系关系CCCNPCC101C101离散数学离散数学C110C110C102C102数据结构数据结构C101C101C103C103操作系统操作系统C102C102C105C105数据库原理数据库原理C102C102C107C107汇编语言汇编语言C110C110关系关系S_CS#CG0001C101C1015 50001C102C1025 50001C105C1053 30002C103C1033 30002C105C1053 30003C107C1074 4 这三个模式,冗余
5、度小,也消除了各类异常6.2函数依赖1)函数依赖(FunctionalDependency,简称FD)在上述的关系模式S和SC,存在以下函数依赖:S#SDSSNSSA(S,C)G定义6.1(函数依赖):设有关系模式R(U),其中U=A1,A2,An是关系的属性全集,X、Y是U的属性子集,设t和u是关系R上的任任意意两个元组,如果t和u在X的投影tX=uX推出tY=uY,即:tXuX=tYuY则称X函数决定Y,或Y函数依赖于X。记为XY。2)几种类型的函数依赖例如X,XX,XZX等都是平凡函数依赖。定义6.2(非平凡函数依赖、平凡函数依赖):一个函数依赖XY如果满足Y X,则称此函数依赖为非平凡
6、函数依赖,否则称为平凡函数依赖。定义6.3(完全函数依赖、部分函数依赖):设X、Y是关系R的不不同同属性集,若XY(Y函数依赖于X),且且不不存存在在X X,使使XY,则称Y完全函数依赖于X,记为 ;否则称Y部分函数依赖于X,记为 。例如,在上例关系S中,是完全函数依赖;、是部分函数依赖。几种类型的函数依赖在属性Y与X之间,除了完全函数依赖和部分函数依赖关系等直接函数依赖,还存在间接函数依赖关系。如果在关系S中增加系的电话号码DT,从而有S#SD,SDDT,于是S#DT。在这个函数依赖中,DT并不直接依赖于S#,是通过中间属性SD间接依赖于S#。这就是传递函数依赖。定义6.4(传递函数依赖):
7、设X、Y、Z是关系模式R(U)中的不同的属性集,如果XY,YX,YZ,则称Z传递依赖于X,否则,称为非传递函数依赖。3)关系的关健字和超关键字一个包含了关键字的属性集合也能够函数决定(但不是完全函数决定,而是部分决定)属性全集,我们把这种包含了关键字的属性集合称为超关键字(SuperKey)。例如,在上例的S(S,SN,SD,SA)、C(C,CN,PC)、S_C(S,C,G)三个关系模式中,存在以下关键字:所以,S#、C#和(S#,C#)分别是关系模式S、C和S_C的关键字。所以,(S#,SN)和(S#,SD)都不是关键字,而是超关键字。定义6.5(关键字):在关系模式R(U)中,若KU,且满
8、足,则称K为R的关键字。6.3函数依赖的公理系统6.3.1函数依赖的逻辑蕴涵6.3.2Armstrong公理系统6.3.3函数依赖集的等价与覆盖6.3.1函数依赖的逻辑蕴涵例如在上述的传递函数依赖中,由XY,YZ,推导出XZ,这可以表示为:XY,YZXZ其中:表示逻辑蕴涵。一般地讲,函数依赖的逻辑蕴涵定义如下:定义6.6(逻辑蕴涵):设F是由关系模式R(U)满足的一个函数依赖集,XY是R的一个函数依赖,且不包含在F,如果满足F中所有函数依赖的任一具体关系r,也满足XY,则称函数依赖集F逻辑地蕴涵函数依赖XY,或称XY可从F推出。可表示为:FXY函数依赖集F的闭包F+定义6.7:函数依赖集F所逻
9、辑蕴涵的函数依赖的全体称为为F的闭包(Closure),记为F+,即F+XYFXY例如,有关系R(X,Y,Z),它的函数依赖集FXY,YZ,则其闭包F+为:6.3.2Armstrong公理系统1)独立推理规则即下面给出的Armstrong公理的三条推理规则是彼此独立的。(3)A3:传递律(Transitivity)如果XY且YZ,则XZ成立。(2)A2:增广律(Augmentation)如果XY,且ZW,则XWYZ成立。根据A2可以推出XWY、XZYZ或XWYW、XXY、XYX等。(1)A1:自反律(Reflexivity)如果Y X,则XY成立,这是一个平凡函数依赖。根据A1可以推出X、UX
10、等平凡函数依赖(因为XU)。2)其他推理规则推论1:合并规则(TheUnionRule)XY,XZXYZ推论3:伪传递规则(ThePseudoTransitivityRule)XY,WYZXWZ证:(1)XYXXY(A2增广律)XZXYYZ(A2增广律)由上可得XYZ(A3传递律)(3)XYWXWY(A2增广律)WYZ(给定条件)由上可得XWZ(A3传递律)(2)Z YYZ(A1自反律)XY(给定条件)由上可得XZ(A3传递律)推论2:分解规则(TheDecompositionRule)如果XY,ZY,则XZ成立一个重要定理例 6.2:设 有 关 系 模 式 R(A,B,C,D,E)及 其 上
11、 的 函 数 依 赖 集F=ABCD,AB,DE,求证F必蕴涵AE。定理6.1:若Ai(i=1,2,,n)是关系模式R的属性,则X(A1,A2,,An)成立的充分必要条件是XAi均成立。证明:AB(给定条件)AAB(A2增广律)ABCD(给定条件)ACD(A3传递律)AC,AD(分解规则)DE(给定条件)AE(A3传递律)证毕。属性集闭包定义6.8(属性集闭包):设有关系模式R(U),U=A1,A2,,An,X是U的子集,F是U上的一个函数依赖集,则属性集X关于函数依赖集F的闭包定义为:AiAiU,且XAi可用阿氏公理从F推出例:设关系模式R(A,B,C)的函数依赖集为F=AB,BC,分别求A
12、、B、C的闭包。解:若XA,AB,BC(给定条件)AC(A2传递律)AA(A1自反律)=A,B,C(据定义)若X=B BB(A1自反律)BC(给定条件)=B,C(据定义)若X=C,CC(自反律)=C(据定义)定理定理6.2:设F是关系模式R(U)上的函数依赖集,U是属性全集,X,Y U,则函数依赖XY是用阿氏公理从F推出的,充分必要条件是Y ;反之,能用阿氏公理从F推出的所有XY的Y都在中。这个定理告诉我们,只要Y ,则必有XY。于是,一个函数依赖XY能否用阿氏公理从F推出的问题,就变成判断Y是否为子集的问题。下面介绍一下计算的算法。属性集的闭包计算方法:根据下列步骤计算一系列属性集合X(0)
13、,X(1),(1)令X(0)=X,i0;(2)求属性集/*在F中寻找满足条件VX(i)的所有函数依赖VW,并记属性W的并集为B*/(3)X(i+1)X(i)B(4)判断X(i+1)=X(i)吗?(4)若X(i+1)X(i),则用i+1取代i,返回(2);(5)若X(i+1)=X(i),则=X(i),结束。算法6.1:求属性集X(XU)关于U上的函数依赖集F的闭包。输入:属性全集U,U上的函数依赖集F,以及属性集XU。输出:X关于F的闭包。算法6.1的求解过程例:设 F AHC,CA,EHC,CHD,DEG,CGDH,CEAG,ACDH,令XDH,求。最后,(DH)+=ACDEGH。解:X(0)
14、=X=DH在F中找所有满足条件V X(0)=DH的函数依赖VW,结果只有DEG,则B=EG,于是X(1)X(0)B=DEGH。判断是否X(i+1)=X(i),显然X(1)X(0)。在F中找所有满足条件V X(1)=DEGH的函数依赖VW,结果为EHC,于是B=C,则X(2)X(1)B=CDEGH。判断是否X(i+1)=X(i),显然X(2)X(1)。在F中找所有满足条件V X(2)=CDEGH的函数依赖VW,结果为CA,CHD,CGDH,CEAG,则B=ADGH,于是X(3)X(2)B=CDEGHB=ACDEGH。判断是否X(i+1)=X(i),这时虽然X(3)X(2)。但X(3)已经包含了全
15、部属性,所以不必再继续计算下去。属性集闭包计算结束判断方法在判断计算何时结束时,可用下面四种方法:(1)X(i+1)=X(i)。(2)X(i+1)已包含了全部属性。(3)在F中再也找不到函数依赖的右部属性是X(i)中未出现过的属性。(4)在F中再也找不到满足条件V X(i)的函数依赖VW。6.3.3函数依赖集的等价和覆盖定义6.9(函数依赖集的等价、覆盖):设F和G是关系R(U)上的两个依赖集,若F+=G+,则称F与G等价,记为F=G。也可以称F覆盖G,或G覆盖F;也可说F与G相互覆盖。检查两个函数依赖集F和G是否等价的方法是:第一步:检查F中的每个函数依赖是否属于G+,若全部满足,则F G+
16、。如若有XYF,则计算,如果Y ,则XYG+;第二步:同第一步,检查是否G F+;第三步:如果F G+,且G F+,则F与G等价。由此可见,F和G等价的充分必要条件是:F G+,且G F+。引理6.1:设G是一个函数依赖集,且其中所有依赖的右部都只有一个属性,则G覆盖任一左部与G(左部)相同的函数依赖集。一个函数依赖集F可能有若干个与其等价的函数依赖集,我们可以从中选择一个较好以便应用的函数依赖集。标准至少是:所有函数依赖均独立,即该函数依赖集中不存在这样的函数依赖,它可由这个集合中的别的函数依赖推导出来。表示最简单,即每个函数依赖的右部为单个属性,左部最简单。证明:构造GXAXYF且AY由A
17、Y,XYF根据分解规则导出,从而等到G F+。反之,如果YA1A2An,而且XA1,XA2,XAn在G中可根据合并律等到F G+。由此可见,F与G等价,即F被G覆盖。最小函数依赖集 定义6.10(最小函数依赖集):函数依赖集F如果满足下列条件,则称F为最小函数覆盖,记为Fmin:(1)F中每一个函数依赖的右部都是单个属性。(2)对F中任一函数依赖XA,FXA都不与F等价。(3)对 于 F中 的 任 一 函 数 依 赖 XA,FXAZA都不与F等价,其中Z为X的任一子集。求函数依赖集F的最小覆盖的方法是:(1)检查F中的每个函数依赖XA,若A=A1,A2,Ak,则根据分解规则,用XAi(i=1,
18、2,k)取代XA。(2)检查F中的每个函数依赖XA,令G=FXA,若有A,则从F中去掉此函数依赖。(3)检查F中各函数依赖XA,设X=B1,B2,Bm,检查Bi,当A时,即以XBi替换X。最小覆盖的求解事例例6.5:求下列函数依赖集的最小覆盖:FAHC,CA,CHD,CEG,EHC,CGDH,CEAG,ACDH。解解:(1)用用分分解解规规则则将将F中中的的所所有有依依赖赖的的右右部部变变成成单单个个属属性性,可可以以得得到到以以下下11个函数依赖:个函数依赖:AHC,CA,CHD,ACDH(给定)(给定)CE,CG(由(由CEG分解得到)分解得到)EHC(给定)(给定)CGH,CGD(由(由
19、CGDH分解得到)分解得到)CEA,CEG(由(由CEAG分解得到)分解得到)(2)根据阿氏公理去掉根据阿氏公理去掉F中的冗余依赖中的冗余依赖由由于于从从CA可可推推出出CEA,从从CA、CGD、ACDH推推出出CGH,因因此此CEA和和CGH是冗余,可从是冗余,可从F删除删除。(3)用所含属性较少的依赖代替所含属性较多的依赖。用所含属性较少的依赖代替所含属性较多的依赖。由由于于CA,ACDH中中A是是冗冗余余属属性性,因因此此,可可用用CDH代代替替ACDH,故故删除删除ACDH。最后得到最后得到F的最小覆盖为:的最小覆盖为:F AHC,CA,CHD,CDH,CE,CG,EHC,CGD,CE
20、G 6.4关系模式的分解及其问题6.4.1什么叫模式分解6.4.2分解的无损连接性6.4.3保持函数依赖性6.4.1什么叫模式分解例6.6:设在模式R(U,F)中USNO,SNAME,DNAME,DADDRFSNOSNAME,SNODNAME,DNAMEDADDR如果对R作如下分解(方法1):=R1(SNO,SNAME,SNOSNAME),R2(DNAME,DADDR,DNAMEDADDR)定义6.11(模式分解):关系模式R(U,F)的一个分解是若干个关系模式的一个集合:=R1(U1,F1),R2(U2,F2),Rn(Un,Fn)式中:(1)。(2)对每个i,j(1i,jn)有。(3)Fi(
21、i=1,2,,n)是F在Ui上的投影,即(1)连接不失真问题(a a)原关系)原关系R RSNOSNAMEDNAMEDADDR0001张华张华计算机计算机D1D10002李明李明信息管理信息管理D2D20003刘强刘强计算机计算机D1D1(b b)方法)方法1 1:关系:关系R1SNOSNAME0001张华张华0002李明李明0003刘强刘强(c c)方法)方法1 1:关系:关系R2DNAMEDADDR计算机计算机D1D1信息管理信息管理D2D2(d d)方法)方法1 1:关系:关系R1R2SNOSNAMEDNAMEDADDR0001张华张华计算机计算机D1D10001张华张华信息管理信息管理
22、D2D20002李明李明计算机计算机D1D10002李明李明信息管理信息管理D2D20003刘强刘强计算机计算机D1D10003刘强刘强信息管理信息管理D2D2方法2:假设按下列方法对R进行分解=R1(SNO,SNAME,DNAME,SNOSNAME,SNODNAME),R2(DNAME,DADDR),DNAMEDADDR)(a a)原关系)原关系R RSNOSNAMEDNAMEDADDR0001张华张华计算机计算机D1D10002李明李明信息管理信息管理D2D20003刘强刘强计算机计算机D1D1(e e)方法)方法2 2:关系:关系R1(f f)方法)方法2 2:关系:关系R2DNAMED
23、ADDR计算机计算机D1D1信息管理信息管理D2D2SNOSNAMEDNAME0001张华张华计算机计算机0002李明李明信息管理信息管理0003刘强刘强计算机计算机(g g)方法)方法2 2:R1R2SNOSNAMEDNAMEDADDR0001张华张华计算机计算机D1D10002李明李明信息管理信息管理D2D20003刘强刘强计算机计算机D1D1(2)依赖保持问题上例方法1:FSNOSNAME,SNODNAME,DNAMEDADDRF1F2SNOSNAME,DNAMEDADDR F+SNOSNAME,SNODNAME,DNAMEDADDR,SNODADDR(F1F2)+SNOSNAME,DN
24、AMEDADDR一个关系模式经分解后,其函数依赖集F也随之被分解,则分解后的依赖集Fi并集是否能保持原有的函数依赖关系?即?若出现,说明分解后有些函数依赖被丢失了。上例方法2:FSNOSNAME,SNODNAME,DNAMEDADDRF1F2SNOSNAME,SNODNAME,DNAMEDADDR F+SNOSNAME,SNODNAME,DNAMEDADDR,SNODADDR(F1F2)+SNOSNAME,SNODNAME,DNAMEDADDR,SNODADDR 6.4.2分解的无损连接性1)无损连接分解的定义定义6.12(无损连接分解,即连接不失真分解):设关系模式R(U,F)上 的 一 个
25、 分 解 为=R1(U1,F1),R2(U2,F2),Rk(Uk,Fk),F是R(U,F)上的一个函数依赖集。如果对R中满足F的任一关系r都有则称这个分解相对于F的是连接不失真分解或称无损连接分解。对于关系模式R关于F的无损连接条件是:任何满足F的关系r有r=m(r)。r和m(r)之间的联系定理6.4:设R是一关系模式,=R1(U1,F1),R2(U2,F2),Rk(Uk,Fk)是关系模式R的一个分解,r是R的任一关系,(1ik),那么有:;如果s=m(r),则,或mm(r)=m(r)定理6.4证明 由定理由定理6-5可知可知 ,可得到,可得到 ,即,即 (因为(因为s=m(r))(也就是两边
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 关系模式的规范化理论 关系 模式 规范化 理论
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内