第三章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第1頁
第三章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第2頁
第三章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第3頁
第三章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第4頁
第三章關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論_第5頁
已閱讀5頁,還剩56頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第第3 3章章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論第第3 3章章 關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論關(guān)系數(shù)據(jù)庫設(shè)計(jì)理論目的與要求: 理解函數(shù)依賴的概念。會分析屬性間存在的各種函數(shù)依賴。 掌握1NF、2NF、3NF和BCNF的概念,可以根據(jù)定義去判斷關(guān)系模式的規(guī)范化級別。 掌握將一個(gè)關(guān)系規(guī)范化為所要求的級別。 了解為什么要對模式進(jìn)行分解,以及如何分解。v 關(guān)系數(shù)據(jù)庫規(guī)范化理論:關(guān)系數(shù)據(jù)庫規(guī)范化理論: 以關(guān)系模型為背景發(fā)展的數(shù)據(jù)庫邏輯設(shè)計(jì)的有力工具。以關(guān)系模型為背景發(fā)展的數(shù)據(jù)庫邏輯設(shè)計(jì)的有力工具。v關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)問題:關(guān)系數(shù)據(jù)庫邏輯設(shè)計(jì)問題: 針對一個(gè)具體問題,應(yīng)該如何構(gòu)針對一個(gè)具體問題,應(yīng)該如何構(gòu)造一個(gè)適

2、合于它的數(shù)據(jù)模式?造一個(gè)適合于它的數(shù)據(jù)模式? (應(yīng)該構(gòu)造幾個(gè)關(guān)系模式,每個(gè)關(guān)系由哪些屬性組成等。)應(yīng)該構(gòu)造幾個(gè)關(guān)系模式,每個(gè)關(guān)系由哪些屬性組成等。)第一節(jié)第一節(jié) 問題的提出問題的提出 假定有如下的關(guān)系S(NO,NAME,SEX,COUR,DEGR): 其中,S表示學(xué)生表,對應(yīng)的各個(gè)屬性依次為學(xué)號,姓名,性別,課程和成績,(NO,COUR)是主鍵。 我們來分析這樣的關(guān)系模式在實(shí)際使用中會出現(xiàn)什么問題。 1、數(shù)據(jù)冗余 如果一個(gè)學(xué)生選修多門課程,這樣導(dǎo)致NAME和SEX屬性多次重復(fù)存儲,造成數(shù)據(jù)冗余。 2、更新異常 由于數(shù)據(jù)存儲冗余,當(dāng)更新學(xué)生姓名時(shí),該關(guān)系中與之對應(yīng)的所有課程名都要修改。如果不慎漏

3、改了某些記錄,則造成數(shù)據(jù)的不一致,這屬于更新異常。 3、插入異常 如果某個(gè)學(xué)生未選修課程,COUR就為空,而關(guān)系數(shù)據(jù)模式的完整性規(guī)則中規(guī)定主鍵不能為空或部分為空,則其NO,NAME和SEX屬性值無法插入,這便是插入異常。 4、刪除異常 當(dāng)要?jiǎng)h除所有學(xué)生成績時(shí),而與之相關(guān)的所有NO,NAME和SEX屬性值也都刪除了,這便是刪除異常。v為了克服上述異常,將關(guān)系S分解為如下兩個(gè)關(guān)系:v S1(NO,NAME,SEX)v S2(NO,COUR,DEGR)v 為什么關(guān)系模式S一旦分解成S1、S2之后,原來存在的問題就基本解決了呢?問題的實(shí)質(zhì)是什么?如何把一個(gè)不好的關(guān)系模式分解成好的關(guān)系模式?其理論基礎(chǔ)是

4、什么?這就是本章要解決的問題。解決這些問題的辦法就是重新設(shè)計(jì)數(shù)據(jù)庫。 第二節(jié)第二節(jié) 函數(shù)依賴函數(shù)依賴 函數(shù)依賴反映了數(shù)據(jù)之間的內(nèi)在聯(lián)系,是進(jìn)行關(guān)系分解的指導(dǎo)和依據(jù)。 現(xiàn)實(shí)世界中的事物是彼此聯(lián)系,相互制約的。 聯(lián)系: 1、實(shí)體與實(shí)體之間的聯(lián)系。 2、實(shí)體內(nèi)部各屬性之間的聯(lián)系。一、屬性間的聯(lián)系1、一對一聯(lián)系 定義:設(shè)A、B為某個(gè)關(guān)系模式的兩個(gè)屬性的值集,如果對于A中的任意具體值,B中至多有一個(gè)值與之對應(yīng),且對于B中任意具體值,A中至多有一個(gè)值與之對應(yīng),則稱A、B這兩個(gè)屬性之間是一對一聯(lián)系。2、一對多聯(lián)系 定義:設(shè)A、B為某個(gè)關(guān)系模式的兩個(gè)屬性的值集,如果A中的一個(gè)值至多與B中的一個(gè)值有關(guān),而B中的

5、一個(gè)值卻可以和A中得多個(gè)值有關(guān),則稱這兩個(gè)屬性之間的聯(lián)系為從B到A的一對多聯(lián)系。一、屬性間的聯(lián)系一、屬性間的聯(lián)系3、多對多聯(lián)系 定義:設(shè)A、B為某個(gè)關(guān)系模式的兩個(gè)屬性的值集,如果A中的一個(gè)值和B中的多個(gè)值相對應(yīng),B中的一個(gè)值也同樣與A中的多個(gè)值相對應(yīng),則稱這兩個(gè)屬性之間是多對多的聯(lián)系。二、函數(shù)依賴 函數(shù)依賴是關(guān)系模式中屬性之間的一種依賴關(guān)系。1、函數(shù)依賴的概念 定義 設(shè)R(U)是屬性集U上的關(guān)系模式,X,Y是U的子集。若對R(U)的所有具體關(guān)系r都滿足如下約束:對于X的每一個(gè)具體值,Y有唯一的具體值與之對應(yīng),則稱函數(shù)Y依賴于X,或X函數(shù)決定Y,記作X Y,X稱作決定因素。1 1、函數(shù)依賴的概念

6、、函數(shù)依賴的概念 根據(jù)函數(shù)依賴的定義,可以找出下面規(guī)律:(1)在一個(gè)關(guān)系模式中,如果屬性X、Y有1:1聯(lián)系,則存在函數(shù)依賴X Y,Y X, X Y。(2)如果屬性X、Y是1:m聯(lián)系,則存在函數(shù)依賴Y X,但X Y。(3)如果屬性X、Y是m:n的聯(lián)系,則X與Y之間不存在任何函數(shù)依賴。 v非平凡函數(shù)依賴與平凡函數(shù)依賴:非平凡函數(shù)依賴與平凡函數(shù)依賴: 若若X Y,并且,并且 Y X ,稱,稱X Y為為非平凡函數(shù)依賴非平凡函數(shù)依賴。 若若X Y,并且,并且Y X ,稱,稱X Y為為平凡函數(shù)依賴平凡函數(shù)依賴。v完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴: 關(guān)系模式關(guān)系模式R(U)中,若中,若X

7、 Y,并且對,并且對X的任何一個(gè)真子集的任何一個(gè)真子集X,都有,都有 X Y ,則稱,則稱Y完全函數(shù)依賴完全函數(shù)依賴于于X ,記作,記作 X Y fp若若X Y,但,但Y不完全依賴于不完全依賴于X,則稱,則稱Y部分函數(shù)依賴部分函數(shù)依賴于于X,記記作作 X Y 2、完全函數(shù)依賴v定義:在R(U)中,如果X Y,并且對于X的任何一個(gè)真子集X,都有X不能決定Y,則稱Y對X完全函數(shù)依賴,記作:vX Yv 例 給定一個(gè)學(xué)生選課關(guān)系SC(Sno,Cno,G),我們可以得到 F=(Sno,Cno) G,對(Sno,Cno)中的任何一個(gè)真子集Sno或Cno都不能決定G,所以,G完全依賴于Sno,Cno。f2

8、2、完全函數(shù)依賴、完全函數(shù)依賴 由定義可知,當(dāng)由定義可知,當(dāng)X是單屬性時(shí),由于不是單屬性時(shí),由于不存在任何真子集,如果存在任何真子集,如果X Y,則則X Y。fv傳遞函數(shù)依賴傳遞函數(shù)依賴: 關(guān)系模式R(U)中,若X Y,Y Z,并且 Y X ,Y X ,則稱Z傳遞函數(shù)依賴于X 。 例例1 關(guān)系Student(Sno,Sname,Ssex,Sage,Sdept)中,有Sno Ssex ,Sno Sdept ,Sno Sname(無重名)Ssex Sage例例2 關(guān)系Std(Sno, Sdept,Mname)中,有Sno Sdept , Sdept Mname, Sno Mname 傳遞傳遞例例3

9、關(guān)系SC(Sno, Cno,Grade)中,有Sno Grade, Cno Grade, (Sno,Cno) Grade fq 舉例:舉例:3 3、傳遞依賴、傳遞依賴 例3-3 設(shè)關(guān)系模式S(S#,SN,D#,DN,L),其中各屬性的含義為S#代表學(xué)號,SN代表學(xué)生姓名,D#代表學(xué)生所在系號,DN代表系名,L代表系地址。該關(guān)系模式是否存在傳遞函數(shù)依賴。 解:該關(guān)系存在如下函數(shù)依賴: S#D#,但D#S#,D#L,根據(jù)傳遞函數(shù)依賴的定義可知,S#L是傳遞函數(shù)依賴。v碼碼(key): 設(shè)K為關(guān)系模式R(U,F(xiàn))中的屬性或?qū)傩越M合。若K U,則稱K為R的一個(gè)候選碼(candidate key)。fv

10、主屬性(Prime attribute): 包含在任何一個(gè)候選碼中的屬性全碼(All-key)的一個(gè)例子: 關(guān)系模式 R(P,W,A) P:演奏者 W:作品 A:聽眾 v非主屬性(Nonprime attribute): 不包含在任何碼中的屬性,也稱非碼屬性(Non-key attribute)三、關(guān)鍵字碼(續(xù))碼(續(xù))例 關(guān)系模式S(Sno,Sdept,Sage),單個(gè)屬性Sno是碼, SC(Sno,Cno,Grade)中,(Sno,Cno)是碼例 關(guān)系模式R(P,W,A) P:演奏者 W:作品 A:聽眾 一個(gè)演奏者可以演奏多個(gè)作品 某一作品可被多個(gè)演奏者演奏 聽眾可以欣賞不同演奏者的不同作

11、品 碼為(P,W,A),即All-Key v 例例3-4 3-4 考查關(guān)系模式考查關(guān)系模式R(S#, SN, SA, D#, DN)R(S#, SN, SA, D#, DN)的的鍵。其中各屬性的含義為:鍵。其中各屬性的含義為:S#S#代表學(xué)號,代表學(xué)號,SNSN代表代表學(xué)生姓名,學(xué)生姓名,SA SA 代表學(xué)生年齡,代表學(xué)生年齡,D#D#代表學(xué)生所在系代表學(xué)生所在系號,號,DNDN代表系名。代表系名。v在該模式中,在該模式中,S#S#符合以下條件:符合以下條件:v1. S#(S#, SN, SA, D#, DN)1. S#(S#, SN, SA, D#, DN),即,即S#S#可函數(shù)決可函數(shù)決定

12、模式中的每一個(gè)屬性。定模式中的每一個(gè)屬性。v2. S#2. S#不存在任何真子集。不存在任何真子集。v因此,因此,S#S#是鍵。是鍵。v也可證明,屬性集(也可證明,屬性集(S#, SNS#, SN)也可函數(shù)決定)也可函數(shù)決定R R中的中的全部屬性,但(全部屬性,但(S#, SNS#, SN)不是鍵,因?yàn)椋ǎ┎皇擎I,因?yàn)椋⊿#, SNS#, SN)中存在真子集中存在真子集S#S#,可函數(shù)決定,可函數(shù)決定R R中的全部屬性。中的全部屬性。第三節(jié)規(guī)范化理論第三節(jié)規(guī)范化理論 范式范式 在關(guān)系數(shù)據(jù)庫中的一個(gè)非常重要的問在關(guān)系數(shù)據(jù)庫中的一個(gè)非常重要的問題就是如何評價(jià)分解后的各個(gè)關(guān)系模式題就是如何評價(jià)分解后

13、的各個(gè)關(guān)系模式的好壞。通??梢酝ㄟ^判斷分解后的模的好壞。通??梢酝ㄟ^判斷分解后的模式達(dá)到幾范式來評價(jià)模式的好壞式達(dá)到幾范式來評價(jià)模式的好壞。 v第一范式第一范式(1NF) 若關(guān)系模式R的所有屬性都是不可分的基本數(shù)據(jù)項(xiàng),則R1NF。v并非所有滿足1NF的模式都是“好”的關(guān)系模式 。SLC (Sno, Sdept , Sloc, Cno, Grade)SnoGradeCnoSdeptSloc刪除異常刪除異常刪除某學(xué)生的最后一門選修記錄,會刪除該學(xué)生的相關(guān)信息插入異常插入異常無法插入一個(gè)尚未選課的學(xué)生信息數(shù)據(jù)冗余太大數(shù)據(jù)冗余太大某學(xué)生的Sdept和Sloc出現(xiàn)的次數(shù)和該學(xué)生選課總數(shù)相同Why?Sde

14、pt和和Sloc對碼的部分對碼的部分依賴依賴SnoGradeCnoSdeptSloc投影分解SnoGradeCno(a) SC(Sno,Cno,Grade)1NF2NF一定程度上解一定程度上解決了決了“異常異常”問題問題SdeptSlocSno(b) SL(Sno,Sdept,Sloc)SdeptSlocSnov第二范式第二范式(2NF) 若關(guān)系模式若關(guān)系模式R 1NF ,并且每一個(gè),并且每一個(gè)非主屬性非主屬性都都完全函數(shù)完全函數(shù)依賴依賴于于R的的碼碼,則,則R 2NF。v2NF是在是在1NF上消除了可能存在的非主屬性對碼的部分依賴。上消除了可能存在的非主屬性對碼的部分依賴。 如如 投影分解得

15、到的投影分解得到的 SL(Sno,Sdept,Sloc) v若若R 1NF 且(所有候選)碼只有一個(gè)屬性,則且(所有候選)碼只有一個(gè)屬性,則R 2NF 。 解: 根據(jù)語義,R上有兩個(gè)FD:(S#, C#)(TNAME, TADDR, GRADE)和C#(TNAME, TADDR),顯然,前一個(gè)函數(shù)依賴是部分依賴,因此R不是2NF模式。 因此可以把R分解成兩個(gè)關(guān)系模式R1(C#, TNAME, TADDR)和R2(S#, C#, GRADE),消除部分依賴,R1和R2都是2NF模式。 例例3-83-8設(shè)有關(guān)系模式設(shè)有關(guān)系模式R(S#, C#, GRADE, TNAME, TADDR)R(S#,

16、C#, GRADE, TNAME, TADDR),各屬性的含義分別表示學(xué)號、課程號、成績、教師名和各屬性的含義分別表示學(xué)號、課程號、成績、教師名和教師地址。教師地址。(S#, C#)(S#, C#)是是R R的候選鍵。試討論關(guān)系模式的候選鍵。試討論關(guān)系模式R R是是否屬于否屬于2NF2NF?如果不是,如何進(jìn)行分解使之符合?如果不是,如何進(jìn)行分解使之符合2NF2NF的要的要求求。 例例3-93-9設(shè)有關(guān)系模式設(shè)有關(guān)系模式S(S#, SN, SA, SS, SD, DNS(S#, SN, SA, SS, SD, DN, C#, C#, GR)GR),各屬性的含義分別為學(xué)號,姓名,年齡,性別,地,各

17、屬性的含義分別為學(xué)號,姓名,年齡,性別,地址,系名,課程號,成績。將該關(guān)系模式轉(zhuǎn)換成址,系名,課程號,成績。將該關(guān)系模式轉(zhuǎn)換成2NF2NF。 (1)S的主關(guān)鍵字是(S#, C#),對此關(guān)鍵字存在著部分函數(shù)依賴的非主屬性有SN、SA、SS、SD、DN (均依賴于S#),而GR對主關(guān)鍵字是完全函數(shù)依賴。 (2)將S分解成兩個(gè)模式: SR(S#, SN, SA, SS, SD, DN); SC(S#, C#, GR)SnoGradeCno(a) SC(Sno,Cno,Grade)2NFSdeptSlocSno(b) SL(Sno,Sdept,Sloc)Why?存在非主屬性對碼的傳遞函數(shù)依賴傳遞函數(shù)依

18、賴(Sloc傳遞依賴于Sno)插入異常插入異常無法插入一個(gè)尚未招生的系刪除異常刪除異常刪除某系全部學(xué)生,則會刪除該系信息數(shù)據(jù)冗余大數(shù)據(jù)冗余大某系的住處Sloc重復(fù)次數(shù)和該系學(xué)生數(shù)相同投影分解3NFSloc(b) DL(Sdept,Sloc)SdeptSdeptSno(a) SD(Sno,Sdept)v若若R 3NF,則,則R的每個(gè)非主屬性既不部分依賴于候選碼,也的每個(gè)非主屬性既不部分依賴于候選碼,也不傳遞依賴于候選碼。(不傳遞依賴于候選碼。(why?請自證)請自證)v 3NF就是不允許存在這樣的非平凡函數(shù)依賴就是不允許存在這樣的非平凡函數(shù)依賴XY,其中,其中X不包含碼,不包含碼,Y是非主屬性。

19、是非主屬性。v第三范式第三范式(3NF) 若關(guān)系模式若關(guān)系模式R(U,F)中不存在候選碼中不存在候選碼X、屬性組、屬性組Y以及非以及非主屬性主屬性Z(Z Y),使得使得XY,Y Z和和Y X成立,則成立,則R 3NF。在這個(gè)關(guān)系中仍然存在如前所述的數(shù)據(jù)冗余,插入異常、在這個(gè)關(guān)系中仍然存在如前所述的數(shù)據(jù)冗余,插入異常、刪除異常等數(shù)據(jù)庫異常問題。而出現(xiàn)問題的根本原因在刪除異常等數(shù)據(jù)庫異常問題。而出現(xiàn)問題的根本原因在于于STCSTC的函數(shù)依賴集。的函數(shù)依賴集。(S, T)C(S, T)C,TCTC,也就是,也就是T T部分依部分依賴于賴于(S, C)(S, C)。3NFWhy?存在主屬性對碼的部分函

20、數(shù)依賴函數(shù)依賴:C部分函數(shù)依賴于(S,T)插入異常插入異常無法插入一個(gè)尚未選課的學(xué)生刪除異常刪除異常刪除某門課的全部學(xué)生會刪除教師開課信息數(shù)據(jù)冗余大數(shù)據(jù)冗余大某教師的教課C重復(fù)次數(shù)和選該課學(xué)生數(shù)相同投影分解BCNFC(b) TC ( T,C )TTS(a) ST(S,T)STC關(guān)系模式 STC (S , T, C ) S:學(xué)生 T:教師 C:課程SCT候選碼候選碼候選碼候選碼vBC范式范式(BCNF) 設(shè)關(guān)系模式設(shè)關(guān)系模式R 1NF ,如果對于,如果對于R的每個(gè)非平凡函數(shù)依賴的每個(gè)非平凡函數(shù)依賴XY,則,則X必含有候選碼,那么必含有候選碼,那么R BCNF。v也即,在也即,在R(U,F)中,中

21、,如果每一個(gè)如果每一個(gè)決定因素決定因素都包含候選碼,則都包含候選碼,則 R BCNF 。v BCNF關(guān)系模式的性質(zhì)關(guān)系模式的性質(zhì) 所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼;所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼; 所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼;所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼;1. 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。v若若R BCNF,則,則R中不存在任何屬性傳遞依賴或部分依賴于中不存在任何屬性傳遞依賴或部分依賴于任何候選碼。任何候選碼。v 若若R 3NF, R未必屬于未必屬于 BCNF 。反證:反證:若存

22、在傳遞依賴 XY, Y Z,則X,Y中都含有候選碼,得Y X .矛盾!如 前例 STC(S,T, C)v 若若R 3NF, 且且R只有一個(gè)候選碼,則只有一個(gè)候選碼,則 R BCNF 。反證反證: 設(shè)X為唯一候選碼,若有一個(gè)非平凡函數(shù)依賴Y Z的決定因素Y中不含候選碼,則有XY, Y Z ,且Y X 與3NF定義矛盾! 3NF的的“不徹底不徹底”性,表現(xiàn)在可能存性,表現(xiàn)在可能存在主屬性對碼的部分依賴和傳遞依賴。在主屬性對碼的部分依賴和傳遞依賴。 一個(gè)關(guān)系模式如果達(dá)到了一個(gè)關(guān)系模式如果達(dá)到了BCNF,那,那么,在函數(shù)依賴范圍內(nèi),它就已經(jīng)實(shí)現(xiàn)了徹么,在函數(shù)依賴范圍內(nèi),它就已經(jīng)實(shí)現(xiàn)了徹底的分離,消除了

23、數(shù)據(jù)冗余、插入和刪除異底的分離,消除了數(shù)據(jù)冗余、插入和刪除異常。常。例例1 關(guān)系 Student(Sno,Sname,Ssex,Sage,Sdept)中,有Sno Ssex ,Sno Sdept ,Sno Sname (有重名)Ssex Sage , Sno是唯一的碼和唯一的決定因素 Student BCNF例例2 關(guān)系Course(Cno, Cname,Cpno,Ccredit)中,有Cno Cpno , Cno Ccredit, Cno Cname(無重名)Cname Cpno , Cname CcreditCno和Cname為兩個(gè)互不相交的單屬性碼,無其他決定因素 Course BCNF

24、例例3關(guān)系SC(Sno, Cno,Grade)中,有Sno Grade, Cno Grade, (Sno,Cno) Grade (Sno,Cno)是唯一的碼和唯一的決定因素 SC BCNFfq 舉例:舉例:多值依賴多值依賴v學(xué)校中某一門課程由多個(gè)教師講授,他們學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。每個(gè)教員可以講使用相同的一套參考書。每個(gè)教員可以講授多門課程,每種參考書可以供多門課程授多門課程,每種參考書可以供多門課程使用。使用。 多值依賴多值依賴v設(shè)設(shè)R(U)是一個(gè)屬性集是一個(gè)屬性集U上的一個(gè)關(guān)系模式,上的一個(gè)關(guān)系模式, X、 Y和和Z是是U的子集,并且的子集,并且ZUXY

25、。關(guān)系模式關(guān)系模式R(U)中多值依賴中多值依賴 XY成立,當(dāng)成立,當(dāng)且僅當(dāng)對且僅當(dāng)對R(U)的任一關(guān)系的任一關(guān)系r,給定的一對,給定的一對(x,z)值,有一組)值,有一組Y的值,這組值僅僅決的值,這組值僅僅決定于定于x值而與值而與z值無關(guān)值無關(guān) 。v多值依賴的另一個(gè)等價(jià)的形式化的定義:多值依賴的另一個(gè)等價(jià)的形式化的定義: 在在R(U)的任一關(guān)系)的任一關(guān)系r中,如果存在元組中,如果存在元組t,s 使得使得tX=sX,那么就必然存在元組,那么就必然存在元組 w,v r,(,(w,v可以與可以與s,t相同),使得相同),使得wX=vX=tX,而,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即

26、交換(即交換s,t元組的元組的Y值所得的兩個(gè)新元組必在值所得的兩個(gè)新元組必在r中),則中),則Y多值多值依賴于依賴于X,記為,記為XY。 這里,這里,X,Y是是U的子集,的子集,Z=U-X-Y。多值依賴(續(xù))多值依賴(續(xù))v平凡多值依賴和非平凡的多值依賴平凡多值依賴和非平凡的多值依賴若若XY,而,而Z,則稱,則稱 XY為為平凡的多值依賴平凡的多值依賴 否則稱否則稱XY為為非平凡的多值依賴非平凡的多值依賴多值依賴(續(xù))多值依賴(續(xù))例關(guān)系模式例關(guān)系模式WSC(W,S,C)n W表示倉庫,表示倉庫,S表示保管員,表示保管員,C表示商品表示商品n 假設(shè)每個(gè)倉庫有若干個(gè)保管員,有若干種假設(shè)每個(gè)倉庫有若

27、干個(gè)保管員,有若干種商品商品 n 每個(gè)保管員保管所在的倉庫的所有商品每個(gè)保管員保管所在的倉庫的所有商品n 每種商品被所有保管員保管每種商品被所有保管員保管 多值依賴(續(xù))多值依賴(續(xù))WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5多值依賴(續(xù))多值依賴(續(xù))WS且WC用下圖表示這種對應(yīng) 多值依賴的性質(zhì)多值依賴的性質(zhì)(1)多值依賴具有對稱性)多值依賴具有對稱性若若XY,則,則XZ,其中,其中ZUXY(2)多值依賴具有傳遞性)多值依賴具有傳遞性若若XY,YZ, 則則XZ Y(3)函數(shù)依賴是多值依賴的特殊情況。)函數(shù)依賴

28、是多值依賴的特殊情況。若若XY,則,則XY。(4)若)若XY,XZ,則,則XY Z。(5)若)若XY,XZ,則,則XYZ。(6)若)若XY,XZ,則,則XY-Z,XZ -Y。多值依賴與函數(shù)依賴的區(qū)別多值依賴與函數(shù)依賴的區(qū)別 (1)多值依賴的有效性與屬性集的范圍)多值依賴的有效性與屬性集的范圍有關(guān)有關(guān) (2) 若函數(shù)依賴若函數(shù)依賴XY在在R(U)上成立,則對)上成立,則對于任何于任何Y Y均有均有XY 成立成立 多值依賴多值依賴XY若在若在R(U)上成立,不能上成立,不能斷言對于任何斷言對于任何Y Y有有XY 成立成立 4NF4NFv關(guān)系模式關(guān)系模式R1NF,如果對于,如果對于R的的每個(gè)非平凡多

29、值依賴每個(gè)非平凡多值依賴XY(Y X),),X都含有碼,則都含有碼,則R4NF。 如果如果R 4NF, 則則R BCNF 不允許有非平凡且非函數(shù)依賴的多值依不允許有非平凡且非函數(shù)依賴的多值依賴賴 允許的非平凡多值依賴是函數(shù)依賴允許的非平凡多值依賴是函數(shù)依賴vTeaching(C,T,B) 4NF 存在非平凡的存在非平凡的多值依賴多值依賴CT,且,且C不是碼不是碼 v用投影分解法把用投影分解法把Teaching分解為如下兩個(gè)分解為如下兩個(gè)關(guān)系模式:關(guān)系模式: v CT(C, T) 4NF v CB(C, B) 4NF CT, CB是平凡多值依賴是平凡多值依賴設(shè)有如下所示的關(guān)系設(shè)有如下所示的關(guān)系R

30、 R (1)(1)它為第幾范式?為什么?它為第幾范式?為什么?(2)(2)是否存在刪除操作異常?若存在,則說明是在說明情況下發(fā)生?是否存在刪除操作異常?若存在,則說明是在說明情況下發(fā)生?(3)(3)將它分解為高一級范式,分解后的關(guān)系如何解決分解前可能存在的刪除操將它分解為高一級范式,分解后的關(guān)系如何解決分解前可能存在的刪除操作的異常問題作的異常問題。 下表給出的關(guān)系下表給出的關(guān)系R R為第幾范式?是否存在操作異常?若存在,則為第幾范式?是否存在操作異常?若存在,則將其分解為高一級范式。分解完成的高級范式中是否可以避免分解前將其分解為高一級范式。分解完成的高級范式中是否可以避免分解前關(guān)系中存在的

31、操作異常?關(guān)系中存在的操作異常? 工程號工程號 材料號材料號 數(shù)量數(shù)量 開工日期開工日期 完工日期完工日期 價(jià)格價(jià)格 P1 I1 4 9805 9902 250 P1 I2 6 9805 9902 300 P1 I3 15 9805 9902 180 P2 I1 6 9811 9912 250 P2 I4 18 9811 9912 350 試問下圖關(guān)系試問下圖關(guān)系S S是否屬于是否屬于3NF3NF?為什么?若不是,它?為什么?若不是,它屬于幾范式?并將其規(guī)范化為屬于幾范式?并將其規(guī)范化為3NF3NF。學(xué)生號學(xué)生號 學(xué)生名學(xué)生名 年齡年齡 性別性別 系號系號 系名系名 100001 王王 婧婧

32、18 女女 1 通訊工程通訊工程 200001 張張 露露 19 女女 2 電子工程電子工程 200002 黎明遠(yuǎn)黎明遠(yuǎn) 20 男男 2 電子工程電子工程 300001 王王 燁燁 21 男男 3 計(jì)算機(jī)計(jì)算機(jī) 300004 張張 露露 20 女女 3 計(jì)算機(jī)計(jì)算機(jī) 300005 樊建喜樊建喜 19 男男 3 計(jì)算機(jī)計(jì)算機(jī) 小結(jié)v 關(guān)系模式都是滿足一定要求的,滿足不同的要求稱關(guān)系模式都是滿足一定要求的,滿足不同的要求稱為不同的范式。其中,滿足最低要求的稱為第一范為不同的范式。其中,滿足最低要求的稱為第一范式式1NF,滿足更進(jìn)一步要求的稱為第二范式,滿足更進(jìn)一步要求的稱為第二范式2NF,依,依次

33、有第三范式次有第三范式3NF和和BCNF范式,它們之間有如下關(guān)范式,它們之間有如下關(guān)系:系:v 4NF BCNF 3NF 2NF 1NFv 小結(jié)v關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計(jì)的工具。計(jì)的工具。v目的目的:盡量消除插入、刪除一場,修改復(fù):盡量消除插入、刪除一場,修改復(fù)雜,數(shù)據(jù)冗余雜,數(shù)據(jù)冗余v基本思想基本思想:逐步消除數(shù)據(jù)依賴中不合適的:逐步消除數(shù)據(jù)依賴中不合適的部分部分 實(shí)質(zhì):概念的單一化實(shí)質(zhì):概念的單一化規(guī)范化小結(jié)規(guī)范化小結(jié)v關(guān)系模式規(guī)范化的基本步驟關(guān)系模式規(guī)范化的基本步驟v 1NFv 消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的部分函數(shù)依賴

34、消除決定屬性消除決定屬性 2NF集非碼的非平集非碼的非平 消除非主屬性對碼的傳遞函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴凡函數(shù)依賴凡函數(shù)依賴 3NFv 消除主屬性對碼的部分和傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴v BCNF v 消除非平凡且非函數(shù)依賴的多值依賴消除非平凡且非函數(shù)依賴的多值依賴v 4NF 規(guī)范過程的每一步都是對前一步的結(jié)果進(jìn)行分規(guī)范過程的每一步都是對前一步的結(jié)果進(jìn)行分解,整個(gè)過程如下:解,整個(gè)過程如下:v1.對原始的對原始的1NF關(guān)系進(jìn)行分解,消除非主屬性對關(guān)系進(jìn)行分解,消除非主屬性對關(guān)鍵字的部分函數(shù)依賴,產(chǎn)生一個(gè)關(guān)鍵字的部分函數(shù)依賴,產(chǎn)生一個(gè)2NF關(guān)系集合。關(guān)系集合。v

35、2.對對2NF關(guān)系進(jìn)行分解,消除非主屬性對關(guān)鍵字關(guān)系進(jìn)行分解,消除非主屬性對關(guān)鍵字的傳遞函數(shù)依賴,產(chǎn)生一個(gè)的傳遞函數(shù)依賴,產(chǎn)生一個(gè)3NF關(guān)系集合。關(guān)系集合。v3.對對3NF關(guān)系進(jìn)行分解,消除主屬性對關(guān)鍵字的關(guān)系進(jìn)行分解,消除主屬性對關(guān)鍵字的部分和傳遞函數(shù)依賴,產(chǎn)生一個(gè)部分和傳遞函數(shù)依賴,產(chǎn)生一個(gè)BCNF關(guān)系集合。關(guān)系集合。小結(jié)v不能說規(guī)范化程度越高的關(guān)系模式就越好。不能說規(guī)范化程度越高的關(guān)系模式就越好。v在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對現(xiàn)實(shí)世界的在設(shè)計(jì)數(shù)據(jù)庫模式結(jié)構(gòu)時(shí),必須對現(xiàn)實(shí)世界的實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定實(shí)際情況和用戶應(yīng)用需求作進(jìn)一步分析,確定一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模

36、式一個(gè)合適的、能夠反映現(xiàn)實(shí)世界的模式v上面的規(guī)范化步驟可以在其中任何一步終止上面的規(guī)范化步驟可以在其中任何一步終止v 已知學(xué)生關(guān)系模式已知學(xué)生關(guān)系模式S(SnoS(Sno,SnameSname,SDSD,SdnameSdname,CourseCourse,Grade)Grade)其中:其中:SnoSno學(xué)號、學(xué)號、SnameSname姓名、姓名、SDSD系名、系名、SdnameSdname系系主任名、主任名、CourseCourse課程、課程、GradeGrade成績。成績。 (1)(1)寫出關(guān)系模式寫出關(guān)系模式S S的基本函數(shù)依賴和主碼。的基本函數(shù)依賴和主碼。v(2)(2)原關(guān)系模式原關(guān)系模

37、式S S為幾范式?為什么?分解成高一為幾范式?為什么?分解成高一級范式,并說明為什么級范式,并說明為什么? ?v(3)(3)將關(guān)系模式分解成將關(guān)系模式分解成3NF3NF,并說明為什么,并說明為什么? ?1、為什么要對關(guān)系模式進(jìn)行規(guī)范化,如何進(jìn)行規(guī)為什么要對關(guān)系模式進(jìn)行規(guī)范化,如何進(jìn)行規(guī)范化?范化? 2、什么是平凡的函數(shù)依賴?什么是非平凡的函數(shù)、什么是平凡的函數(shù)依賴?什么是非平凡的函數(shù)依賴?在沒有特別指明的情況下,我們討論的是依賴?在沒有特別指明的情況下,我們討論的是哪一種函數(shù)依賴?哪一種函數(shù)依賴?3、在關(guān)系模式、在關(guān)系模式R(A,C,D)中,存在函數(shù)依賴)中,存在函數(shù)依賴關(guān)系關(guān)系 AC,AD

38、,指出該關(guān)系模式中的碼,指出該關(guān)系模式中的碼,關(guān)系模式關(guān)系模式R(A,C,D)最高可以達(dá)到第幾范式?)最高可以達(dá)到第幾范式?小測驗(yàn)小測驗(yàn)4 4、現(xiàn)有如下關(guān)系模式:、現(xiàn)有如下關(guān)系模式:R(A,B,C,D,E)R(A,B,C,D,E)其中其中R R上存在的函數(shù)依賴有上存在的函數(shù)依賴有AB EAB E,B C,B C, C D C D1、該關(guān)系模式滿足第幾范式?為什么?、該關(guān)系模式滿足第幾范式?為什么?2、如果將關(guān)系模式、如果將關(guān)系模式R分解為分解為R1(A,B, E)和和R2(B,C,D)指出關(guān)系模式指出關(guān)系模式R2的的碼,并說明該關(guān)系模式最高滿足第幾范式?碼,并說明該關(guān)系模式最高滿足第幾范式? 是否可以將其規(guī)范化為更高一級范式,如是否可以將其規(guī)范化為更高一級范式,如何規(guī)范何規(guī)范? 5、職工(職工號,姓名,職稱,項(xiàng)目、職工(職工號,姓名,職稱,項(xiàng)目號,項(xiàng)目名稱,項(xiàng)目角色)指出該關(guān)系模號,項(xiàng)目名稱,項(xiàng)目角色)指出該關(guān)系模式中的碼。說明該關(guān)系模式屬于幾范式,式中的碼。說明該關(guān)系模式屬于幾范式,它存在怎樣的異常問題,詳細(xì)說明。并把它存在怎樣的異常問題,詳細(xì)說明。并把它規(guī)范化為高一級范式。它規(guī)范化為高一級范式。6 6、現(xiàn)有某個(gè)應(yīng)用,涉及到兩個(gè)關(guān)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論