![第4章+關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第1頁](http://file1.renrendoc.com/fileroot2/2020-1/7/2ce25f20-8e61-4bc2-be7d-6ca0b764666e/2ce25f20-8e61-4bc2-be7d-6ca0b764666e1.gif)
![第4章+關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第2頁](http://file1.renrendoc.com/fileroot2/2020-1/7/2ce25f20-8e61-4bc2-be7d-6ca0b764666e/2ce25f20-8e61-4bc2-be7d-6ca0b764666e2.gif)
![第4章+關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第3頁](http://file1.renrendoc.com/fileroot2/2020-1/7/2ce25f20-8e61-4bc2-be7d-6ca0b764666e/2ce25f20-8e61-4bc2-be7d-6ca0b764666e3.gif)
![第4章+關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第4頁](http://file1.renrendoc.com/fileroot2/2020-1/7/2ce25f20-8e61-4bc2-be7d-6ca0b764666e/2ce25f20-8e61-4bc2-be7d-6ca0b764666e4.gif)
![第4章+關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì).ppt_第5頁](http://file1.renrendoc.com/fileroot2/2020-1/7/2ce25f20-8e61-4bc2-be7d-6ca0b764666e/2ce25f20-8e61-4bc2-be7d-6ca0b764666e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4章 關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì),本章重要概念,(1)關(guān)系模式的冗余和異常問題。 (2)FD的定義、邏輯蘊(yùn)涵、閉包、推理規(guī)則、與關(guān)鍵碼的聯(lián)系;平凡的FD;屬性集 的閉包;推理規(guī)則的正確性和完備性;FD集的等價(jià);最小依賴集。 (3)無損分解的定義、性質(zhì)、測(cè)試;保持依賴集的分解。 (4)關(guān)系模式的范式:1NF,2NF,3NF,BCNF。分解成2NF、3NF模式集的算法。 (5)MVD、4NF、JD和5NF的定義。,前言,關(guān)系數(shù)據(jù)庫的規(guī)范化設(shè)計(jì)是指面對(duì)一個(gè)現(xiàn)實(shí)問題,如何選擇一個(gè)比較好的關(guān)系模式集合。規(guī)范化設(shè)計(jì)理論主要包括三個(gè)方面的內(nèi)容:數(shù)據(jù)依賴、范式和模式設(shè)計(jì)方法。其中數(shù)據(jù)依賴起著核心的作用。數(shù)據(jù)依賴
2、研究數(shù)據(jù)之間的聯(lián)系,范式是關(guān)系模式的標(biāo)準(zhǔn),模式設(shè)計(jì)方法是自動(dòng)化設(shè)計(jì)的基礎(chǔ)。規(guī)范化設(shè)計(jì)理論對(duì)關(guān)系數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)起著重要的作用。,4.1.1 關(guān)系模型的外延和內(nèi)涵,外延就是通常所說的關(guān)系、表或當(dāng)前值,它的基本性質(zhì)已在第2章介紹過。由于用戶經(jīng)常對(duì)關(guān)系進(jìn)行插入、刪除和修改操作,因此外延是與時(shí)間有關(guān)的,隨著時(shí)間的推移在不斷變化。 內(nèi)涵是與時(shí)間獨(dú)立的,是對(duì)數(shù)據(jù)的定義以及數(shù)據(jù)完整性約束的定義。對(duì)數(shù)據(jù)的定義包括對(duì)關(guān)系、屬性、域的定義和說明。對(duì)數(shù)據(jù)完整性約束的定義涉及面較廣,主要包括以下幾個(gè)方面: 靜態(tài)約束,涉及到數(shù)據(jù)之間聯(lián)系(稱為“數(shù)據(jù)依賴,data dependences)、主鍵和值域的設(shè)計(jì)。 動(dòng)態(tài)約束,
3、定義各種操作(插入、刪除、修改)對(duì)關(guān)系值的影響。,4.1.2 關(guān)系模式的冗余和異常問題(一),例4.1,4.1.2 關(guān)系模式的冗余和異常問題(二),數(shù)據(jù)冗余。如果一個(gè)教師教幾門課程,那么這個(gè)教師的地址就要重復(fù)幾次存儲(chǔ)。 操作異常。由于數(shù)據(jù)的冗余,在對(duì)數(shù)據(jù)操作時(shí)會(huì)引起各種異常: 修改異常。譬如教師t1教三門課程,在關(guān)系中就會(huì)有三個(gè)元組。如果他的地址變了,這三個(gè)元組中的地址都要改變。若有一個(gè)元組中的地址未更改,就會(huì)造成這個(gè)教師的地址不惟一,產(chǎn)生不一致現(xiàn)象。 插入異常。如果一個(gè)教師剛調(diào)來,尚未分派教學(xué)任務(wù),那么要將教師的姓名和地址存儲(chǔ)到關(guān)系中去時(shí),在屬性C#和CNAME上就沒有值(空值)。在數(shù)據(jù)庫技
4、術(shù)中空值的語義是非常復(fù)雜的,對(duì)帶空值元組的檢索和操作也十分麻煩。 刪除異常。如果在圖4.1中要取消教師t3的教學(xué)任務(wù),那么就要把這個(gè)教師的元組刪去,同時(shí)也把t3的地址信息從表中刪去了。這是一種不合適的現(xiàn)象。,4.1.2 關(guān)系模式的冗余和異常問題(三),4.2.1 函數(shù)依賴的定義(一),定義4.1 設(shè)有關(guān)系模式R(U),X和Y是屬性集U的子集,函數(shù)依賴(functional dependency,簡(jiǎn)記為FD)是形為XY的一個(gè)命題,只要r是R的當(dāng)前關(guān)系,對(duì)r中任意兩個(gè)元組t和s,都有tX=sX蘊(yùn)涵tY=sY,那么稱FD XY在關(guān)系模式R(U)中成立。,4.2.1 函數(shù)依賴的定義(二),例4.2,4
5、.2.1 函數(shù)依賴的定義(三),例4.3 有一個(gè)關(guān)于學(xué)生選課、教師任課的關(guān)系模式: R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 屬性分別表示學(xué)生學(xué)號(hào)、姓名、選修課程的課程號(hào)、成績(jī)、課程名、任課教師姓名和年齡等意義。 如果規(guī)定,每個(gè)學(xué)號(hào)只能有一個(gè)學(xué)生姓名,每個(gè)課程號(hào)只能決定一門課程,那么可寫成下列FD形式: S#SNAME C#CNAME 每個(gè)學(xué)生每學(xué)一門課程,有一個(gè)成績(jī),那么可寫出下列FD: (S#,C#)GRADE 還可以寫出其他一些FD: C#(CNAME,TNAME,TAGE) TNAMETAGE,4.2.2 FD的邏輯蘊(yùn)涵,定義4.2 設(shè)F是在關(guān)系模式R
6、上成立的函數(shù)依賴的集合,XY是一個(gè)函數(shù)依賴。如果對(duì)于R的每個(gè)滿足F的關(guān)系r也滿足XY,那么稱F邏輯蘊(yùn)涵XY,記為F XY。 定義4.3 設(shè)F是函數(shù)依賴集,被F邏輯蘊(yùn)涵的函數(shù)依賴全體構(gòu)成的集合,稱為函數(shù)依賴集F的閉包(closure),記為F+。即 F+= XY |記為FXY。 ,4.2.3 FD的推理規(guī)則(一),設(shè)U是關(guān)系模式R的屬性集,F(xiàn)是R上成立的只涉及到U中屬性的函數(shù)依賴集。FD的推理規(guī)則有以下三條: A1(自反性,reflexivity):若YXU,則XY在R上成立。 A2(增廣性,augmentation):若XY在R上成立,且ZU,則XZYZ在R上成立。 A3(傳遞性,transi
7、tivity):若XY和YZ在R上成立,則XZ在R上成立。,4.2.3 FD的推理規(guī)則(二),定理4.1 FD推理規(guī)則A1、A2和A3是正確的。也就是,如果XY是從F用推理規(guī)則導(dǎo)出,那么XY在F+中。 定理4.2 FD的其他五條推理規(guī)則: (1) A4(合并性,union): XY,XZ XYZ。 (2) A5(分解性,decomposition): XY,ZY XZ。 (3) A6(偽傳遞性): XY,WYZ WXZ。 (4) A7(復(fù)合性,composition): XY,WZ XWYZ。 (5) A8 XY,WZ X(WY)YZ。,4.2.3 FD的推理規(guī)則(三),例4.5 已知關(guān)系模式
8、R(ABC),F(xiàn)= AB,BC ,求F+。 根據(jù)FD的推理規(guī)則,可推出F的F+有43個(gè)FD。 譬如,據(jù)規(guī)則A1可推出A(表示空屬性集),AA,。據(jù)已知的AB及規(guī)則A2可推出ACBC,ABB,AAB,。據(jù)已知條件及規(guī)則A3可推出AC等。作為習(xí)題,讀者可自行推出這43個(gè)FD。,4.2.3 FD的推理規(guī)則(四),定義4.4 對(duì)于FD XY,如果YX,那么稱XY是一個(gè)“平凡的FD”,否則稱為“非平凡的FD”。 定理4.3 如果A1An是關(guān)系模式R的屬性集,那么XA1An成立的充分必要條件是XAi(i=1,n)成立。,4.2.4 FD和關(guān)鍵碼的聯(lián)系,定義4.5 設(shè)關(guān)系模式R的屬性集是U,X是U的一個(gè)子集
9、。如果XU在R上成立,那么稱X是R的一個(gè)超鍵。如果XU在R上成立,但對(duì)于X的任一真子集X1都有X1U不成立,那么稱X是R上的一個(gè)候選鍵。本章的鍵都是指候選鍵。 例4.6 在學(xué)生選課、教師任課的關(guān)系模式中: R(S#,SNAME,C#,GRADE,CNAME,TNAME,TAGE) 如果規(guī)定:每個(gè)學(xué)生每學(xué)一門課只有一個(gè)成績(jī);每個(gè)學(xué)生只有一個(gè)姓名;每個(gè)課程號(hào)只有一個(gè)課程名;每門課程只有一個(gè)任課教師。 根據(jù)這些規(guī)則,可以知道(S#,C#)能函數(shù)決定R的全部屬性,并且是一個(gè)候選鍵。雖然(S#,SNAME,C#,TNAME)也能函數(shù)決定R的全部屬性,但相比之下,只能說是一個(gè)超鍵,而不能說是候選鍵,因?yàn)槠?/p>
10、中含有多余屬性。,4.2.5 屬性集的閉包,定義4.6 設(shè)F是屬性集U上的FD集,X是U的子集,那么(相對(duì)于F)屬性集X的閉包用X+表示,它是一個(gè)從F集使用FD推理規(guī)則推出的所有滿足XA的屬性A的集合:X+= 屬性A | XA在F+中 定理4.4 XY能用FD推理規(guī)則推出的充分必要條件是YX+。 例4.7 屬性集U為ABCD,F(xiàn)D集為 AB,BC,DB 。則用上述算法,可求出A+=ABC,(AD)+=ABCD,(BD)+=BCD,等等。,4.2.5 FD推理規(guī)則的完備性,推理規(guī)則的正確性是指“從FD集F使用推理規(guī)則集推出的FD必定在F+中”,完備性是指“F+中的FD都能從F集使用推理規(guī)則集導(dǎo)出
11、”。也就是正確性保證了推出的所有FD是正確的,完備性保證了可以推出所有被蘊(yùn)涵的FD。這就保證了推導(dǎo)的有效性和可靠性。 定理4.5 FD推理規(guī)則A1,A2,A3是完備的。,4.2.6 FD集的最小依賴集(一),定義4.7 如果關(guān)系模式R(U)上的兩個(gè)函數(shù)依賴集F和G,有F+=G+,則稱F和G是等價(jià)的函數(shù)依賴集。 定義4.8 設(shè)F是屬性集U上的FD集。如果Fmin是F的一個(gè)最小依賴集,那么Fmin應(yīng)滿足下列四個(gè)條件: F+min =F+; 每個(gè)FD的右邊都是單屬性; Fmin中沒有冗余的FD(即F中不存在這樣的函數(shù)依賴XY,使得F與F XY 等價(jià)); 每個(gè)FD的左邊沒有冗余的屬性(即F中不存在這樣
12、的函數(shù)依賴XY,X有真子集W使得F XY WY 與F等價(jià))。,4.2.6 FD集的最小依賴集(二),例4.8 設(shè)F是關(guān)系模式R(ABC)的FD集,F(xiàn)= ABC,BC,AB,ABC ,試求Fmin。 先把F中的FD寫成右邊是單屬性形式: F= AB,AC,BC,AB,ABC 顯然多了一個(gè)AB,可刪去。得F= AB,AC,BC,ABC F中AC可從AB和BC推出,因此AC是冗余的,可刪去。得F= AB,BC,ABC F中ABC可從AB和BC推出,因此ABC也可刪去。最后得F= AB,BC ,即所求的Fmin。,4.3.1 模式分解問題 (一),定義4.9 設(shè)有關(guān)系模式R(U),屬性集為U,R1、R
13、k都是U的子集,并且有R1R2RkU。關(guān)系模式R1、Rk的集合用表示,=R1,Rk。用代替R的過程稱為關(guān)系模式的分解。這里稱為R的一個(gè)分解,也稱為數(shù)據(jù)庫模式。,4.3.1 模式分解問題 (二),4.3.2 無損分解(一),例4.9,4.3.2 無損分解(二),定義4.10 設(shè)R是一個(gè)關(guān)系模式,F(xiàn)是R上的一個(gè)FD集。R分解成數(shù)據(jù)庫模式= R1,Rk 。如果對(duì)R中滿足F的每一個(gè)關(guān)系r,都有 r=R1(r)R2(r) Rk(r) 那么稱分解相對(duì)于F是“無損聯(lián)接分解”(lossless join decomposition),簡(jiǎn)稱為“無損分解”,否則稱為“損失分解”(lossy decompositi
14、on)。,4.3.2 無損分解(三),定理4.6 設(shè)= R1,Rk 是關(guān)系模式R的一個(gè)分解,r是R的任一關(guān)系,ri=Ri(r)(1ik),那么有下列性質(zhì): rm(r); 若s= m(r),則Ri(s)=ri; m(m(r)= m(r),這個(gè)性質(zhì)稱為冪等性(idempotent)。,4.3.2 無損分解(四),4.3.2 無損分解(五),4.3.2 無損分解(六),例4.10 設(shè)關(guān)系模式R(ABC)分解成= AB,BC 。(a)和(b)分別是模式AB和BC上的值r1和r2,(c)是r1r2的值。顯然BC(r1r2)r2。這里r2中元組(b2c2)就是一個(gè)懸掛元組,由于它的存在,使得r1和r2不存
15、在泛關(guān)系r。,4.3.3 無損分解的測(cè)試方法(一),算法4.3 無損分解的測(cè)試 構(gòu)造一張k行n列的表格,每列對(duì)應(yīng)一個(gè)屬性Aj(1jn),每行對(duì)應(yīng)一個(gè)模式Ri(1ik)。如果Aj在Ri中,那么在表格的第i行第j列處填上符號(hào)aj,否則填上bij。 把表格看成模式R的一個(gè)關(guān)系,反復(fù)檢查F中每個(gè)FD在表格中是否成立,若不成立,則修改表格中的值。修改方法如下:對(duì)于F中一個(gè)FD XY,如果表格中有兩行在X值上相等,在Y值上不相等,那么把這兩行在Y值上也改成相等的值。如果Y值中有一個(gè)是aj,那么另一個(gè)也改成aj;如果沒有aj,那么用其中一個(gè)bij替換另一個(gè)值(盡量把下標(biāo)ij改成較小的數(shù))。一直到表格不能修改
16、為止。(這個(gè)過程稱為chase過程) 若修改的最后一張表格中有一行是全a,即a1a2an,那么稱相對(duì)于F是無損分解,否則稱損失分解。,4.3.3 無損分解的測(cè)試方法(二),4.3.3 無損分解的測(cè)試方法(三),定理4.7 設(shè)= R1,R2 是關(guān)系模式R的一個(gè)分解,F(xiàn)是R上成立的FD集,那么分解相對(duì)于F是無損分解的充分必要條件是(R1R2)(R1R2)或(R1R2)(R2R1)。 定理4.8 如果FD XY在模式R上成立,且XY=,那么R分解成=RY,XY 是無損分解。,4.3.4 保持函數(shù)依賴的分解(一),定義4.11 設(shè)F是屬性集U上的FD集,Z是U的子集,F(xiàn)在Z上的投影用Z(F)表示,定義
17、為Z(F)= XY | XYF+,且XYZ 定義4.12 設(shè)= R1,Rk 是R的一個(gè)分解,F(xiàn)是R上的FD集,如果有 Ri(F)F,那么稱分解保持函數(shù)依賴集F。,4.3.4 保持函數(shù)依賴的分解(二),(a)關(guān)系r1 (b)關(guān)系r2(c) r1r2,例4.12,4.3.5 模式分解與模式等價(jià)問題(一),本節(jié)討論的關(guān)系模式分解的兩個(gè)特性實(shí)際上涉及到兩個(gè)數(shù)據(jù)庫模式的等價(jià)問題,這種等價(jià)包括數(shù)據(jù)等價(jià)和依賴等價(jià)兩個(gè)方面。數(shù)據(jù)等價(jià)是指兩個(gè)數(shù)據(jù)庫實(shí)例應(yīng)表示同樣的信息內(nèi)容,用“無損分解”衡量。如果是無損分解,那么對(duì)泛關(guān)系反復(fù)的投影和聯(lián)接都不會(huì)丟失信息。依賴等價(jià)是指兩個(gè)數(shù)據(jù)庫模式應(yīng)有相同的依賴集閉包。在依賴集閉包
18、相等情況下,數(shù)據(jù)的語義是不會(huì)出差錯(cuò)的。違反數(shù)據(jù)等價(jià)或依賴等價(jià)的分解很難說是一個(gè)好的模式設(shè)計(jì)。,4.3.5 模式分解與模式等價(jià)問題(二),例4.13 設(shè)關(guān)系模式R(ABC),= AB,AC 是R的一個(gè)分解。試分析分別在F1= AB ,F(xiàn)2= AC,BC ,F(xiàn)3= BA ,F(xiàn)4= CB,BA 情況下,是否具有無損分解和保持FD的分解特性。 相對(duì)于F1= AB ,分解是無損分解且保持FD的分解。 相對(duì)于F2= AC,BC ,分解是無損分解,但不保持FD集。因?yàn)锽C丟失了。 相對(duì)于F3= BA ,分解是損失分解但保持FD集的分解。 相對(duì)于F4= CB,BA ,分解是損失分解且不保持FD集的分解(丟失了
19、CB),4.4 關(guān)系模式的范式,關(guān)系模式的好與壞,用什么標(biāo)準(zhǔn)衡量?這個(gè)標(biāo)準(zhǔn)就是模式的范式(Normal Forms,簡(jiǎn)記為NF)。范式的種類與數(shù)據(jù)依賴有著直接的聯(lián)系,基于FD的范式有1NF、2NF、3NF、BCNF等多種。 在不提及FD時(shí),關(guān)系中是不可能有冗余的問題,但是當(dāng)存在FD時(shí),關(guān)系中就有可能存在數(shù)據(jù)冗余問題。 1NF是關(guān)系模式的基礎(chǔ);2NF已成為歷史,一般不再提及;在數(shù)據(jù)庫設(shè)計(jì)中最常用的是3NF和BCNF。為了敘述的方便,我們還是從1NF、2NF、3NF、BCNF順序來介紹。,4.4.1 第一范式(1NF),定義4.13 如果關(guān)系模式R的每個(gè)關(guān)系r的屬性值都是不可分的原子值,那么稱R是
20、第一范式(first normal form,簡(jiǎn)記為1NF)的模式。 滿足1NF的關(guān)系稱為規(guī)范化的關(guān)系,否則稱為非規(guī)范化的關(guān)系。關(guān)系數(shù)據(jù)庫研究的關(guān)系都是規(guī)范化的關(guān)系。例如關(guān)系模式R(NAME,ADDRESS,PHONE),如果一個(gè)人有兩個(gè)電話號(hào)碼(PHONE),那么在關(guān)系中至少要出現(xiàn)兩個(gè)元組,以便存儲(chǔ)這兩個(gè)號(hào)碼。 1NF是關(guān)系模式應(yīng)具備的最起碼的條件。,4.4.2 第二范式(2NF)(一),定義4.14 對(duì)于FD WA,如果存在XW有XA成立,那么稱WA是局部依賴(A局部依賴于W);否則稱WA是完全依賴。完全依賴也稱為“左部不可約依賴”。 定義4.15 如果A是關(guān)系模式R的候選鍵中屬性,那么稱
21、A是R的主屬性;否則稱A是R的非主屬性。 定義4.16 如果關(guān)系模式R是1NF,且每個(gè)非主屬性完全函數(shù)依賴于候選鍵,那么稱R是第二范式(2NF)的模式。如果數(shù)據(jù)庫模式中每個(gè)關(guān)系模式都是2NF,則稱數(shù)據(jù)庫模式為2NF的數(shù)據(jù)庫模式。,4.4.2 第二范式(2NF)(二),例4.14 設(shè)關(guān)系模式R(S#,C#,GRADE,TNAME,TADDR)的屬性分別表示學(xué)生學(xué)號(hào)、選修課程的編號(hào)、成績(jī)、任課教師姓名和教師地址等意義。(S#,C#)是R的候選鍵。 R上有兩個(gè)FD:(S#,C#)(TNAME,TADDR)和C#(TNAME,TADDR),因此前一個(gè)FD是局部依賴,R不是2NF模式。此時(shí)R的關(guān)系就會(huì)出
22、現(xiàn)冗余和異?,F(xiàn)象。譬如某一門課程有100個(gè)學(xué)生選修,那么在關(guān)系中就會(huì)存在100個(gè)元組,因而教師的姓名和地址就會(huì)重復(fù)100次。 如果把R分解成R1(C#,TNAME,TADDR)和R2(S#,C#,GRADE)后,局部依賴(S#,C#)(TNAME,TADDR)就消失了。R1和R2都是2NF模式。,4.4.2 第二范式(2NF)(三),算法4.4 分解成2NF模式集的算法 設(shè)關(guān)系模式R(U),主鍵是W,R上還存在FD XZ,并且Z是非主屬性和XW,那么WZ就是一個(gè)局部依賴。此時(shí)應(yīng)把R分解成兩個(gè)模式 R1(XZ),主鍵是X; R2(Y),其中Y=U-Z,主鍵仍是W,外鍵是X(REFERENCES
23、R1)。 利用外鍵和主鍵的聯(lián)接可以從R1和R2重新得到R。 如果R1和R2還不是2NF,則重復(fù)上述過程,一直到數(shù)據(jù)庫模式中每一個(gè)關(guān)系模式都是2NF為止。,4.4.3 第三范式(3NF)(一),定義4.17 如果XY,YA,且YX和 AY,那么稱XA是傳遞依賴(A傳遞依賴于X)。 定義4.18 如果關(guān)系模式R是1NF,且每個(gè)非主屬性都不傳遞依賴于R的候選鍵,那么稱R是第三范式(3NF)的模式。如果數(shù)據(jù)庫模式中每個(gè)關(guān)系模式都是3NF,則稱其為3NF的數(shù)據(jù)庫模式,4.4.3 第三范式(3NF)(二),例4.15 在例4.14中,R2是2NF模式,而且也已是3NF模式。但R1(C#,TNAME,TAD
24、DR)是2NF模式,卻不一定是3NF模式。如果R1中存在函數(shù)依賴C#TNAME和TNAMETADDR,那么C#TADDR就是一個(gè)傳遞依賴,即R1不是3NF模式。此時(shí)R1的關(guān)系中也會(huì)出現(xiàn)冗余和異常操作。譬如一個(gè)教師開設(shè)五門課程,那么關(guān)系中就會(huì)出現(xiàn)五個(gè)元組,教師的地址就會(huì)重復(fù)五次。 如果把R2分解成R21(TNAME,TADDR)和R22(C#,TNAME)后,C#TADDR就不會(huì)出現(xiàn)在R21和R22中。這樣R21和R22都是3NF模式。,4.4.3 第三范式(3NF)(三),算法4.5 分解成3NF模式集的算法 設(shè)關(guān)系模式R(U),主鍵是W,R上還存在FD XZ。并且Z是非主屬性,ZX,X不是候
25、選鍵,這樣WZ就是一個(gè)傳遞依賴。此時(shí)應(yīng)把R分解成兩個(gè)模式: R1(XZ),主鍵是X; R2(Y),其中Y=U-Z,主鍵仍是W,外鍵是X(REFERENCES R1)。 利用外鍵和主鍵相匹配機(jī)制,R1和R2通過聯(lián)接可以重新得到R。 如果R1和R2還不是3NF,則重復(fù)上述過程,一直到數(shù)據(jù)庫模式中每一個(gè)關(guān)系模式都是3NF為止。,4.4.3 第三范式(3NF)(四),定理4.9如果R是3NF模式,那么R也是2NF模式。 定理4.10 設(shè)關(guān)系模式R,當(dāng)R上每一個(gè)FD XA滿足下列三個(gè)條件之一時(shí):AX(即XA是一個(gè)平凡的FD);X是R的超鍵;A是主屬性。關(guān)系模式R就是3NF模式。,4.4.3 第三范式(3
26、NF)(五),4.4.4 BCNF(BoyceCodd NF)(一),4.4.4 BCNF(BoyceCodd NF)(二),定義4.19 如果關(guān)系模式R是1NF,且每個(gè)屬性都不傳遞依賴于R的候選鍵,那么稱R是BCNF的模式。如果數(shù)據(jù)庫模式中每個(gè)關(guān)系模式都是BCNF,則稱為BCNF的數(shù)據(jù)庫模式。 定理4.11 如果R是BCNF模式,那么R也是3NF模式。 定義4.19 設(shè)F是關(guān)系模式R的FD集,如果對(duì)F中每個(gè)非平凡的FD XY,都有X是R的超鍵,那么稱R是BCNF的模式。,4.4.5 分解成BCNF模式集的算法,算法4.6 無損分解成BCNF模式集 對(duì)于關(guān)系模式R的分解(初始時(shí)=R),如果中有
27、一個(gè)關(guān)系模式Ri相對(duì)于 Ri(F)不是BCNF。據(jù)定義4-20可知,Ri中存在一個(gè)非平凡FD XY,有X不包含超鍵。此時(shí)把Ri分解成XY和RiY兩個(gè)模式。重復(fù)上述過程,一直到中每一個(gè)模式都是BCNF。,4.4.6 分解成3NF模式集的算法,算法4.7 無損分解且保持依賴地分解成3NF模式集 對(duì)于關(guān)系模式R和R上成立的FD集F,先求出F的最小依賴集,然后再把最小依賴集中哪些左部相同的FD用合并性合并起來。 對(duì)最小依賴集中,每個(gè)FD XY去構(gòu)成一個(gè)模式XY。 在構(gòu)成的模式集中,如果每個(gè)模式都不包含R的候選鍵,那么把候選鍵作為一個(gè)模式放入模式集中。 這樣得到的模式集是關(guān)系模式R的一個(gè)分解,并且這個(gè)分
28、解既是無損分解,又能保持FD。,4.4.7 模式設(shè)計(jì)方法的原則,數(shù)據(jù)庫設(shè)計(jì)者在進(jìn)行關(guān)系數(shù)據(jù)庫設(shè)計(jì)時(shí),應(yīng)作權(quán)衡,盡可能使數(shù)據(jù)庫模式保持最好的特性。一般盡可能設(shè)計(jì)成BCNF模式集。如果設(shè)計(jì)成BCNF模式集時(shí)達(dá)不到保持FD的特點(diǎn),那么只能降低要求,設(shè)計(jì)成3NF模式集,以求達(dá)到保持FD和無損分解的特點(diǎn)。 模式分解并不單指把泛關(guān)系模式分解成數(shù)據(jù)庫模式,也可以把數(shù)據(jù)庫模式轉(zhuǎn)換成另一個(gè)數(shù)據(jù)庫模式,分解和轉(zhuǎn)換的關(guān)鍵是要“等價(jià)”地分解。一個(gè)好的模式設(shè)計(jì)方法應(yīng)符合三條原則:表達(dá)性、分離性和最小冗余性。,4.5 模式的進(jìn)一步規(guī)范化處理,前面提到的函數(shù)依賴揭示了數(shù)據(jù)之間的一種聯(lián)系。我們通過對(duì)函數(shù)依賴的觀察、分析,可以
29、消除關(guān)系模式中的冗余現(xiàn)象。但是函數(shù)依賴還不足以描繪現(xiàn)實(shí)世界中數(shù)據(jù)之間的全部聯(lián)系,有些聯(lián)系就要用其他數(shù)據(jù)依賴來刻畫,例如多值依賴或聯(lián)接依賴,本節(jié)就是介紹這兩種依賴及其模式應(yīng)達(dá)到的范式標(biāo)準(zhǔn)。,4.5.1 多值依賴的定義,定義4.20 設(shè)U是關(guān)系模式R的屬性集,X和Y是U的子集,Z=RXY,小寫的xyz表示屬性集XYZ的值。對(duì)于R的關(guān)系r,在r中存在元組(x,y1,z1)和(x,y2,z2)時(shí),就也存在元組(x,y2,z1)和(x,y1,z2),那么稱多值依賴(multivalued dependency,簡(jiǎn)記為MVD)XY在模式R上成立。,4.5.2 關(guān)于FD和MVD的推理規(guī)則集,A1(FD的自反
30、性):若YX,則XY。 A2(FD的增廣性):若XY,且ZU,則XZYZ。 A3(FD的傳遞性):若XY,YZ則XZ。 A4(MVD的補(bǔ)規(guī)則,complementation):若XY,則X(UXY)。 A5(MVD的增廣性):若XY,且VWU,則WXVY。 A6(MVD的傳遞性):若XY,YZ,則X(ZY)。 A7(復(fù)制性,replication):若XY,則XY。 A8(接合性,coalescence rule):若XY,WZ,并且ZY,WY=,那么XZ。 A9(MVD的并規(guī)則):若XY,XZ,則XYZ。 A10(MVD的交規(guī)則):若XY,XZ,則XYZ。 A11(MVD的差規(guī)則):若XY,XZ,則XYZ,XZY。 A12(MVD的偽傳遞):若XY,WYZ,則WXZWY。 A13(混合偽傳遞):若XY,XYZ,則XZY。,4.5.3 第四范式(4NF),定義4.23 設(shè)D是關(guān)系模式R上成立的FD和MVD集合。如果D中每個(gè)非平凡的MVD XY的左部X都是R的超鍵,那么稱R是4NF的模式。,4.5.4 嵌入多值依賴,定義4.24 設(shè)關(guān)系模式R(U),X和Y是屬性集U的子集,W是U的真子集,并且XYW。MVD XY在模式R上不成立,但在模式W上成立。那么XY在R上稱為嵌入多值依賴(Embedded MVD,簡(jiǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年重慶貨運(yùn)從業(yè)資格證模擬試題答案大全及答案
- 2025年貴州貨運(yùn)從業(yè)資格證500道題目答案
- 2025年池州道路貨運(yùn)駕駛員從業(yè)資格證考試
- 2025年巴彥淖爾貨運(yùn)從業(yè)資格證考試模擬考試
- 病人護(hù)理服務(wù)合同(2篇)
- 北京課改版歷史七年級(jí)下冊(cè)第2課《貞觀之治》聽課評(píng)課記錄
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)上冊(cè)第十三章軸對(duì)稱13.1軸對(duì)稱教案新版新人教版
- 2024-2025學(xué)年高中數(shù)學(xué)課時(shí)分層作業(yè)13向量的概念含解析新人教B版必修4
- 2024-2025學(xué)年七年級(jí)數(shù)學(xué)上冊(cè)第1章有理數(shù)1.5有理數(shù)的乘法和除法作業(yè)設(shè)計(jì)新版湘教版
- 英語七年級(jí)聽評(píng)課記錄
- 西門子starter軟件簡(jiǎn)易使用手冊(cè)
- 暢捷通g6財(cái)務(wù)管理系統(tǒng)專業(yè)版使用手冊(cè)
- 化工儀表及自動(dòng)化ppt課件匯總?cè)譸pt完整版課件最全教學(xué)教程整套課件全書電子教案全套電子講義
- 2022注冊(cè)電氣工程師專業(yè)考試規(guī)范清單匯總
- 桂花-作文ppt-PPT課件(共14張)
- 高一數(shù)學(xué)概率部分知識(shí)點(diǎn)總結(jié)及典型例題解析 新課標(biāo) 人教版 必修
- 鐵路運(yùn)費(fèi)計(jì)算方法
- 《小腦梗死護(hù)理查房》
- 免疫及炎癥相關(guān)信號(hào)通路
- 某風(fēng)電場(chǎng)設(shè)備材料設(shè)備清單
- —橋梁專業(yè)施工圖設(shè)計(jì)審查要(終)
評(píng)論
0/150
提交評(píng)論