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

下載本文檔

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

文檔簡(jiǎn)介

1、第五章 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)際 關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)際是關(guān)系數(shù)據(jù)庫(kù)的指南,也是關(guān)系關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)際是關(guān)系數(shù)據(jù)庫(kù)的指南,也是關(guān)系數(shù)據(jù)庫(kù)的實(shí)際根底。它是數(shù)據(jù)庫(kù)領(lǐng)域的專家和學(xué)者們總結(jié)數(shù)據(jù)庫(kù)的實(shí)際根底。它是數(shù)據(jù)庫(kù)領(lǐng)域的專家和學(xué)者們總結(jié)數(shù)據(jù)庫(kù)設(shè)計(jì)中的閱歷教訓(xùn)的根底上,借助近代數(shù)學(xué)工具而數(shù)據(jù)庫(kù)設(shè)計(jì)中的閱歷教訓(xùn)的根底上,借助近代數(shù)學(xué)工具而提出來(lái)的。它把籠統(tǒng)的數(shù)學(xué)實(shí)際和詳細(xì)的實(shí)踐問(wèn)題結(jié)合起提出來(lái)的。它把籠統(tǒng)的數(shù)學(xué)實(shí)際和詳細(xì)的實(shí)踐問(wèn)題結(jié)合起來(lái),為數(shù)據(jù)庫(kù)領(lǐng)域的開(kāi)展起到了推進(jìn)作用。來(lái),為數(shù)據(jù)庫(kù)領(lǐng)域的開(kāi)展起到了推進(jìn)作用。意義:意義: 提供分析和判別數(shù)據(jù)庫(kù)方式好壞的準(zhǔn)那么;提供分析和判別數(shù)據(jù)庫(kù)方式好壞的準(zhǔn)那么; 指點(diǎn)設(shè)計(jì)好的

2、數(shù)據(jù)庫(kù)方式。指點(diǎn)設(shè)計(jì)好的數(shù)據(jù)庫(kù)方式。位置:位置:本章是本書(shū)最難的部分之一,但對(duì)于運(yùn)用設(shè)計(jì)非常有用本章是本書(shū)最難的部分之一,但對(duì)于運(yùn)用設(shè)計(jì)非常有用5.1 5.1 問(wèn)題的提出什么是不好的數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題的提出什么是不好的數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)踐問(wèn)題,假定在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)出現(xiàn)如下的關(guān)系方式:實(shí)踐問(wèn)題,假定在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)出現(xiàn)如下的關(guān)系方式:Student(Sno, Sname, DeptStudent(Sno, Sname, Dept,Cno, Grade)Cno, Grade)學(xué)生學(xué)號(hào),姓名,院系,課程號(hào),成果學(xué)生學(xué)號(hào),姓名,院系,課程號(hào),成果SnoSnoSnameSnameDeptDeptCnoCnoGrade

3、Grade10001000李平李平計(jì)算機(jī)計(jì)算機(jī)001001868610001000李平李平計(jì)算機(jī)計(jì)算機(jī)002002979710001000李平李平計(jì)算機(jī)計(jì)算機(jī)003003838310011001王莉王莉計(jì)算機(jī)計(jì)算機(jī)001001808010011001王莉王莉計(jì)算機(jī)計(jì)算機(jī)0020027575上述的關(guān)系方式在實(shí)踐運(yùn)用中會(huì)出現(xiàn)什么樣的問(wèn)題呢?上述的關(guān)系方式在實(shí)踐運(yùn)用中會(huì)出現(xiàn)什么樣的問(wèn)題呢?1 1、數(shù)據(jù)存在冗余、數(shù)據(jù)存在冗余 該關(guān)系方式中,學(xué)生每選一門(mén)課,他的名字和院系就該關(guān)系方式中,學(xué)生每選一門(mén)課,他的名字和院系就要反復(fù)存放一次。而且,假設(shè)他的院系改動(dòng)的話,那么對(duì)要反復(fù)存放一次。而且,假設(shè)他的院系改

4、動(dòng)的話,那么對(duì)于其的每一個(gè)元組的院系都要改動(dòng)。這樣不僅增添了更新于其的每一個(gè)元組的院系都要改動(dòng)。這樣不僅增添了更新代價(jià),而且還有能夠出現(xiàn)一個(gè)人在不同院系的情況。代價(jià),而且還有能夠出現(xiàn)一個(gè)人在不同院系的情況。2 2、插入刪除異常、插入刪除異常 該關(guān)系方式的主鍵應(yīng)該是由學(xué)生學(xué)號(hào)和課程號(hào)共同構(gòu)該關(guān)系方式的主鍵應(yīng)該是由學(xué)生學(xué)號(hào)和課程號(hào)共同構(gòu)成。按照常理,新學(xué)生登記注冊(cè),應(yīng)該在學(xué)生信息庫(kù)里存成。按照常理,新學(xué)生登記注冊(cè),應(yīng)該在學(xué)生信息庫(kù)里存在他的資料,但假設(shè)此時(shí)他還未選課,那么關(guān)于這個(gè)學(xué)生在他的資料,但假設(shè)此時(shí)他還未選課,那么關(guān)于這個(gè)學(xué)生的信息就不能創(chuàng)建,這是違背現(xiàn)實(shí)的情況的。的信息就不能創(chuàng)建,這是違背

5、現(xiàn)實(shí)的情況的。3 3、更新復(fù)雜、更新復(fù)雜 假設(shè)某個(gè)學(xué)生轉(zhuǎn)換所在系,那么和他一切的相關(guān)的記錄假設(shè)某個(gè)學(xué)生轉(zhuǎn)換所在系,那么和他一切的相關(guān)的記錄都必需進(jìn)展修正。而且,容易呵斥潛在的數(shù)據(jù)不一致的問(wèn)題。都必需進(jìn)展修正。而且,容易呵斥潛在的數(shù)據(jù)不一致的問(wèn)題。比如比如李平李平的記錄,能夠會(huì)只修正了其中一部分元組。的記錄,能夠會(huì)只修正了其中一部分元組。結(jié)論:結(jié)論:StudentStudent關(guān)系方式不是一個(gè)好的方式。關(guān)系方式不是一個(gè)好的方式?!昂玫姆绞剑汉玫姆绞剑翰粫?huì)發(fā)生插入異常、刪除異常、更新異常,不會(huì)發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡能夠少。數(shù)據(jù)冗余應(yīng)盡能夠少。緣由:由存在于方式中的某些數(shù)據(jù)依

6、賴引起的緣由:由存在于方式中的某些數(shù)據(jù)依賴引起的處理方法:經(jīng)過(guò)分解關(guān)系方式來(lái)消除其中不適宜處理方法:經(jīng)過(guò)分解關(guān)系方式來(lái)消除其中不適宜 的數(shù)據(jù)依賴。的數(shù)據(jù)依賴。由此可見(jiàn),一個(gè)關(guān)系方式假設(shè)設(shè)計(jì)的不合理,將會(huì)呵斥很多由此可見(jiàn),一個(gè)關(guān)系方式假設(shè)設(shè)計(jì)的不合理,將會(huì)呵斥很多問(wèn)題。假設(shè)我們將上述的關(guān)系方式進(jìn)展分解:?jiǎn)栴}。假設(shè)我們將上述的關(guān)系方式進(jìn)展分解: Student(Sno, SnameStudent(Sno, Sname,Dept)Dept) SC(Sno, Cno, Grade) SC(Sno, Cno, Grade)分解以后可以處理上述的問(wèn)題。但是上述關(guān)系方式在有些情分解以后可以處理上述的問(wèn)題。但

7、是上述關(guān)系方式在有些情況下也不是最優(yōu)的。詳細(xì)的關(guān)系方式的設(shè)計(jì)不僅要結(jié)合數(shù)據(jù)況下也不是最優(yōu)的。詳細(xì)的關(guān)系方式的設(shè)計(jì)不僅要結(jié)合數(shù)據(jù)庫(kù)設(shè)計(jì)實(shí)際,也還要根據(jù)實(shí)踐的運(yùn)用來(lái)決策。庫(kù)設(shè)計(jì)實(shí)際,也還要根據(jù)實(shí)踐的運(yùn)用來(lái)決策。關(guān)系方式的方式化定義關(guān)系方式的方式化定義關(guān)系方式由五部分組成,即它是一個(gè)五元組:關(guān)系方式由五部分組成,即它是一個(gè)五元組: R(U, D, DOM, F)R(U, D, DOM, F)R R: 關(guān)系名關(guān)系名U U: 組成該關(guān)系的屬性名集合組成該關(guān)系的屬性名集合D D: 屬性組屬性組U U中屬性所來(lái)自的域中屬性所來(lái)自的域DOMDOM: 屬性向域的映象集合屬性向域的映象集合F F: 屬性間數(shù)據(jù)的依

8、賴關(guān)系集合屬性間數(shù)據(jù)的依賴關(guān)系集合什么是數(shù)據(jù)依賴什么是數(shù)據(jù)依賴1.完好性約束的表現(xiàn)方式限定屬性取值范圍:例如學(xué)生成果必需在0-100之間定義屬性值間的相互關(guān)連主要表達(dá)于值的相等與否,這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫(kù)方式設(shè)計(jì)的關(guān)鍵2. 數(shù)據(jù)依賴是經(jīng)過(guò)一個(gè)關(guān)系中屬性間值的相等與否表達(dá)出來(lái)的數(shù)據(jù)間的相互關(guān)系是現(xiàn)實(shí)世界屬性間相互聯(lián)絡(luò)的籠統(tǒng)是數(shù)據(jù)內(nèi)在的性質(zhì)是語(yǔ)義的表達(dá)3. 3. 數(shù)據(jù)依賴的類(lèi)型數(shù)據(jù)依賴的類(lèi)型函數(shù)依賴函數(shù)依賴Functional DependencyFunctional Dependency,簡(jiǎn)記為,簡(jiǎn)記為FDFD多值依賴多值依賴Multivalued DependencyMultivalued

9、 Dependency,簡(jiǎn)記為,簡(jiǎn)記為MVDMVD其他其他5.2 5.2 規(guī)范化實(shí)際規(guī)范化實(shí)際 規(guī)范化實(shí)際正是用來(lái)改造關(guān)系方式,經(jīng)過(guò)分解關(guān)系方式來(lái)消規(guī)范化實(shí)際正是用來(lái)改造關(guān)系方式,經(jīng)過(guò)分解關(guān)系方式來(lái)消除其中不適宜的數(shù)據(jù)依賴,以處理插入異常、刪除異常、更新異除其中不適宜的數(shù)據(jù)依賴,以處理插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問(wèn)題。常和數(shù)據(jù)冗余問(wèn)題。v 函數(shù)依賴函數(shù)依賴一、屬性間的聯(lián)絡(luò)一、屬性間的聯(lián)絡(luò) 客觀世界中的事物是彼此聯(lián)絡(luò),相互制約的。這種聯(lián)客觀世界中的事物是彼此聯(lián)絡(luò),相互制約的。這種聯(lián)系分為兩類(lèi):一類(lèi)是實(shí)體與實(shí)體之間的聯(lián)絡(luò);另一類(lèi)是實(shí)系分為兩類(lèi):一類(lèi)是實(shí)體與實(shí)體之間的聯(lián)絡(luò);另一類(lèi)是實(shí)體內(nèi)部

10、各屬性之間的聯(lián)絡(luò)。體內(nèi)部各屬性之間的聯(lián)絡(luò)。屬性之間的聯(lián)絡(luò)分為三類(lèi):屬性之間的聯(lián)絡(luò)分為三類(lèi):1 1、1 11 1:例假設(shè)學(xué)生關(guān)系方式中沒(méi)有同名景象,那么學(xué)號(hào)和:例假設(shè)學(xué)生關(guān)系方式中沒(méi)有同名景象,那么學(xué)號(hào)和姓名兩個(gè)屬性之間的關(guān)系是一對(duì)一的關(guān)系。姓名兩個(gè)屬性之間的關(guān)系是一對(duì)一的關(guān)系。2 2、1 1M M:例一個(gè)院系有多個(gè)人,但是單個(gè)人只能屬于一個(gè):例一個(gè)院系有多個(gè)人,但是單個(gè)人只能屬于一個(gè)院系,那么院系和人的學(xué)號(hào)之間的關(guān)系是一對(duì)多的。院系,那么院系和人的學(xué)號(hào)之間的關(guān)系是一對(duì)多的。3 3、M MN N:一個(gè)課程號(hào)對(duì)應(yīng)于多個(gè)學(xué)號(hào),一個(gè)學(xué)號(hào)對(duì)應(yīng)于多:一個(gè)課程號(hào)對(duì)應(yīng)于多個(gè)學(xué)號(hào),一個(gè)學(xué)號(hào)對(duì)應(yīng)于多個(gè)課程號(hào),這兩

11、個(gè)屬性之間是多對(duì)多的聯(lián)絡(luò)。個(gè)課程號(hào),這兩個(gè)屬性之間是多對(duì)多的聯(lián)絡(luò)。二、函數(shù)依賴的定義二、函數(shù)依賴的定義定義:設(shè)有關(guān)系方式定義:設(shè)有關(guān)系方式R(U),X和和Y是屬性集是屬性集U的子集,的子集,r是是R上的任一詳細(xì)關(guān)系,上的任一詳細(xì)關(guān)系,u和和v是是r中的恣意兩個(gè)元組。假設(shè)由中的恣意兩個(gè)元組。假設(shè)由uX=vX能推導(dǎo)出能推導(dǎo)出uY=vY,那么稱,那么稱X函數(shù)決議函數(shù)決議Y,或,或Y函函數(shù)依賴于數(shù)依賴于X,記為,記為Y YX X: :F FD D例:有一個(gè)學(xué)習(xí)方式例:有一個(gè)學(xué)習(xí)方式 R(S#,SNAME,C#,GRADE,TNAME,TAGE)R(S#,SNAME,C#,GRADE,TNAME,TAG

12、E)如今規(guī)定,每個(gè)學(xué)號(hào)只對(duì)應(yīng)一個(gè)詳細(xì)學(xué)生,每個(gè)課程號(hào)只如今規(guī)定,每個(gè)學(xué)號(hào)只對(duì)應(yīng)一個(gè)詳細(xì)學(xué)生,每個(gè)課程號(hào)只由一個(gè)教師來(lái)教,寫(xiě)出函數(shù)依賴。由一個(gè)教師來(lái)教,寫(xiě)出函數(shù)依賴。GRADE)C#,(S#-TNAMEC#-SNAMES# -三、屬性間的聯(lián)絡(luò)和函數(shù)依賴三、屬性間的聯(lián)絡(luò)和函數(shù)依賴屬性間的聯(lián)絡(luò)有三種,但并不是每一種關(guān)系中都存在函數(shù)屬性間的聯(lián)絡(luò)有三種,但并不是每一種關(guān)系中都存在函數(shù)依賴,設(shè)有屬性集依賴,設(shè)有屬性集X、Y屬于關(guān)系方式屬于關(guān)系方式R, 假設(shè)假設(shè)X和和Y之間是之間是11關(guān)系,那么存在函數(shù)依賴:關(guān)系,那么存在函數(shù)依賴:X XY YY,Y,X X假設(shè)假設(shè)X X和和Y Y之間是之間是1 1M M關(guān)

13、系,那么存在函數(shù)依賴:關(guān)系,那么存在函數(shù)依賴:XY 假設(shè)假設(shè)X X和和Y Y之間是之間是N NM M關(guān)系,那么:關(guān)系,那么:X X和和Y Y之間不存在函數(shù)依賴之間不存在函數(shù)依賴?yán)杭僭O(shè)人名獨(dú)一的話,那么一個(gè)人名對(duì)應(yīng)一個(gè)學(xué)號(hào),那么有例:假設(shè)人名獨(dú)一的話,那么一個(gè)人名對(duì)應(yīng)一個(gè)學(xué)號(hào),那么有S SN NO OS SN NA AM ME ES SN NA AM ME E, ,S SN NO O例:院系和學(xué)號(hào)之間的聯(lián)絡(luò)是一對(duì)多的,那么存在的例:院系和學(xué)號(hào)之間的聯(lián)絡(luò)是一對(duì)多的,那么存在的FDFD為為SDEPTSDEPTSNOSNO 四、四、FDFD的邏輯蘊(yùn)涵的邏輯蘊(yùn)涵定義:設(shè)定義:設(shè)F F是在關(guān)系方式是在關(guān)

14、系方式R R上成立的函數(shù)依賴集,上成立的函數(shù)依賴集, 是一個(gè)是一個(gè)FDFD。假設(shè)對(duì)于。假設(shè)對(duì)于R R的每個(gè)滿足的每個(gè)滿足F F的關(guān)系也滿足的關(guān)系也滿足 , ,那么稱那么稱F F邏輯蘊(yùn)涵邏輯蘊(yùn)涵 ,記為,記為定義:被定義:被F F邏輯蘊(yùn)涵的函數(shù)依賴的全體構(gòu)成的集合,稱為邏輯蘊(yùn)涵的函數(shù)依賴的全體構(gòu)成的集合,稱為函數(shù)依賴集的閉包,記為函數(shù)依賴集的閉包,記為F+F+。Y YX X Y YX X Y YX X Y YX X| |F F五、五、FDFD的推理規(guī)那么的推理規(guī)那么從知的從知的FDFD集推導(dǎo)未知的集推導(dǎo)未知的FDFD,可以運(yùn)用的推導(dǎo)規(guī)那么,可以運(yùn)用的推導(dǎo)規(guī)那么ArmstrongArmstrong

15、設(shè)有關(guān)系方式設(shè)有關(guān)系方式R RU U,X X、Y Y、Z Z是是U U的子集:的子集:A1(A1(自反性自反性) ):假設(shè):假設(shè) ,那么有,那么有 在在R R上成立。上成立。A2(A2(增廣性增廣性) ):假設(shè):假設(shè) 在在R R上成立,那么有上成立,那么有A3(A3(傳送性傳送性) ):假設(shè):假設(shè) 在在R R上成立,那么有上成立,那么有 X XY Y Y YX X Y YX X Y YZ ZX XZ Z Z ZY Y和和Y YX XZ ZX X 證明證明ArmstrongArmstrong公理,用公理,用FDFD定義:定義:A1A1:設(shè):設(shè)u,vu,v是是r r中的恣意兩個(gè)元組,假設(shè)中的恣意兩

16、個(gè)元組,假設(shè)uX=vXuX=vX,那么,那么u,vu,v中的中的X X的恣意子集也必然相等,由條件中的恣意子集也必然相等,由條件中uY=vYuY=vY,根據(jù),根據(jù)函數(shù)依賴的定義,可以得到函數(shù)依賴的定義,可以得到Y(jié) YX X A2A2:設(shè):設(shè)u,vu,v是是r r中的恣意兩個(gè)元組,設(shè)中的恣意兩個(gè)元組,設(shè)uXZ=vXZuXZ=vXZ,即,即uXuZ=vXvZuXuZ=vXvZ,那么,那么uX=vX,uZ=vZuX=vX,uZ=vZ,由條件,由條件根據(jù)函數(shù)依賴定義有根據(jù)函數(shù)依賴定義有uY=vY,uY=vY,那么那么uYZ=uYuZ=uYZ=uYuZ=vYvZ=vYZvYvZ=vYZ這樣在這樣在uXZ

17、=vXZuXZ=vXZ的根底上推出了的根底上推出了uYZ=vYZuYZ=vYZ,得證。,得證。A3A3:設(shè):設(shè)u,vu,v是是r r中的恣意兩個(gè)元組,對(duì)于中的恣意兩個(gè)元組,對(duì)于uX=vXuX=vX,由于由于 ,那么有,那么有uY=vYuY=vY,又由于,又由于 那么根據(jù)定那么根據(jù)定義可以得出義可以得出uZ=vZuZ=vZ,因此得到,因此得到Y(jié) YX X Z ZY Y Z ZX X 例題:知關(guān)系例題:知關(guān)系R(X,Y,Z)R(X,Y,Z)以及其上的函數(shù)依賴集以及其上的函數(shù)依賴集F F,求,求F+F+。X XY YZ ZX XY YZ ZX XZ ZX XY YZ ZY YZ ZX XY YZ Z

18、X XY YX XY YZ ZZ ZX XY YZ ZY YX XY YZ ZX XX XY YZ ZX XY YZ ZX XY YZ ZX XZ ZY YZ ZX XZ ZX XZ ZX XZ ZX XY YX XZ ZZ ZX XZ ZY YX XZ ZX XX XZ ZX XZ ZX XY YZ ZX XY YY YZ ZX XY YX XZ ZX XY YX XY YX XY YZ ZX XY YY YX XY YX XX XY YX XY YZ ZZ ZZ ZY YZ ZY YZ ZZ ZY YZ ZY YY YZ ZY YZ ZY YZ ZY YZ ZY YY YY YY YX X

19、Y YZ ZX XY YZ ZX XX XZ ZX XX XY YX XZ ZX XY YX XX XX XX XZZY YY,Y,XXF FFDFD的分類(lèi):的分類(lèi):1 1、對(duì)于、對(duì)于FDFD: ,假設(shè),假設(shè) ,那么稱為,那么稱為“平凡的平凡的FDFD2 2、對(duì)于、對(duì)于FDFD: ,假設(shè),假設(shè) ,那么稱為,那么稱為“非平凡的非平凡的FDFD3 3、對(duì)于、對(duì)于FDFD: ,假設(shè),假設(shè) 那么為那么為“完全非平凡的完全非平凡的FDFDY YX X X XY Y Y YX X X XY Y Y YX X X XY YArmstrongArmstrong的推論:的推論:1 1、合并規(guī)那么:、合并規(guī)那么:

20、2 2、分解規(guī)那么:、分解規(guī)那么:3 3、偽傳送規(guī)那么:、偽傳送規(guī)那么:Y YZ ZZ Z可可以以得得到到X XX XY Y, ,由由X XZ ZX XY Y, ,Y YZ Z可可以以得得到到X X由由X XZ ZZ Z則則得得到到X XW WY YW WY Y, ,由由X XY YZ Z( (A A3 3) )得得證證X XZ ZY Y( (A A2 2) )X XY YZ ZX X又又X XY Y( (A A2 2) )X XY YX X合并規(guī)那么:合并規(guī)那么:分解規(guī)那么:分解規(guī)那么:Z Z同理:X同理:XY(A3)Y(A3)X XYZYZX XZ Z同理:YZ同理:YZY(A1)Y(A1

21、)YZYZYZYZY Y偽傳送規(guī)那么:偽傳送規(guī)那么:Z ZWXWXZ ZWYWY又又WYWYWXWXY YX X* * 用函數(shù)依賴定義鍵用函數(shù)依賴定義鍵 超鍵:能獨(dú)一標(biāo)識(shí)元組的屬性集稱為關(guān)系方式的超鍵。超鍵:能獨(dú)一標(biāo)識(shí)元組的屬性集稱為關(guān)系方式的超鍵。 候選鍵:假設(shè)一個(gè)屬性集能獨(dú)一標(biāo)識(shí)元組,且不含有多候選鍵:假設(shè)一個(gè)屬性集能獨(dú)一標(biāo)識(shí)元組,且不含有多 余的屬性,那么這個(gè)屬性集成為候選鍵。余的屬性,那么這個(gè)屬性集成為候選鍵。定義:假設(shè)關(guān)系方式定義:假設(shè)關(guān)系方式R R的屬性集為的屬性集為A1,A2,AnA1,A2,An,F(xiàn) F是是R R上成立上成立的一個(gè)的一個(gè)FDFD集,集,X X是是A1,A2,An

22、A1,A2,An的一個(gè)子集,假設(shè)的一個(gè)子集,假設(shè)X XA1,A2,A1,A2,AnAn在在F+F+中,那么稱中,那么稱X X是是R R的一個(gè)超鍵。假設(shè)的一個(gè)超鍵。假設(shè)X XA1,A2,AnA1,A2,An在在F+F+中,且對(duì)于中,且對(duì)于X X的任何一個(gè)真子集的任何一個(gè)真子集X1X1, X1 X1A1,A2,AnA1,A2,An在都不在在都不在F+F+中,那么稱中,那么稱X X是是R R的一個(gè)候選鍵。的一個(gè)候選鍵。屬性集的閉包屬性集的閉包定義:設(shè)定義:設(shè)F F是屬性集是屬性集U U上的上的FDFD集,集,X X是是U U的子集,那么屬性集的子集,那么屬性集X X的閉包的閉包X+X+,它是一個(gè)從,

23、它是一個(gè)從F F集運(yùn)用集運(yùn)用FDFD推導(dǎo)規(guī)那么推出的一切滿推導(dǎo)規(guī)那么推出的一切滿足足X XAA的屬性集的屬性集A A的集合:的集合:中中 A A在在F FX X| | 屬屬性性集集A AX X定理:定理:X XYY能用能用FDFD推理規(guī)那么推出的充分必要條件是推理規(guī)那么推出的充分必要條件是證明:證明:( (充分性充分性) )根據(jù)根據(jù) ,設(shè),設(shè)Y=A1,A2,AnY=A1,A2,An。由屬性集。由屬性集閉包定義可知:閉包定義可知:X XAiAi在在F+F+中。再根據(jù)合并規(guī)那么,中。再根據(jù)合并規(guī)那么,X XA1,A1,A2,An A2,An 即即X XYY。( (必要性必要性) )由由X XYY,

24、根據(jù)分解規(guī)那么,根據(jù)分解規(guī)那么,X XAiAi,根據(jù)屬性集閉,根據(jù)屬性集閉包定義可得包定義可得 ,所以,所以 ,即,即 X XY Y X XY Y X XA Ai i X XA A, ,. . . ., ,A A, ,A An n2 21 1 X XY Y* *用屬性集的閉包來(lái)定義候選鍵用屬性集的閉包來(lái)定義候選鍵定義:假設(shè)關(guān)系方式定義:假設(shè)關(guān)系方式R R的屬性集為的屬性集為U U,F(xiàn) F是是R R上成立的一個(gè)上成立的一個(gè)FDFD集,集,X X是是U U的一個(gè)子集,假設(shè)的一個(gè)子集,假設(shè)X X的屬性集的閉包的屬性集的閉包X+ =U,X+ =U,那么那么稱稱X X為為R R的一個(gè)超鍵,假設(shè)對(duì)于的一個(gè)

25、超鍵,假設(shè)對(duì)于X X的任何一個(gè)真子集的任何一個(gè)真子集Y Y,有有Y+UY+U。那么。那么X X為為R R的一個(gè)候選鍵。的一個(gè)候選鍵。算法:求屬性集算法:求屬性集X X關(guān)于關(guān)于FDFD集集F F的閉包的閉包X+X+輸入:屬性集輸入:屬性集U U,U U上的上的FDFD集集F F,X X是是U U的子集的子集輸出:輸出:X X關(guān)于關(guān)于F F的閉包的閉包X X方法:方法: Result:=X;Result:=X; repeat repeat for F for F 中的每個(gè)中的每個(gè)FD YFD YZ doZ do if then Result:=Result U Z; if then Result:

26、=Result U Z; until (result until (result 沒(méi)有改動(dòng)沒(méi)有改動(dòng)) ); Result Result 即為所求的即為所求的X+X+R Re es su ul lt tY Y 例:屬性集例:屬性集U U為為ABCDABCD,F(xiàn)DFD集為集為 , ,求求A+,AD+ A+,AD+ A+ (1) Result=A A+ (1) Result=A (2) Result=A U B =AB (2) Result=A U B =AB (3) Result=AB U C =ABC (3) Result=AB U C =ABCB B D DC C, ,B BB B, , A

27、AAD+ = ABCDAD+ = ABCD例題:例題:A AG G C CE EB B, ,A AC CD DB BD D, ,C CG GD D, ,B BC CC C, ,B BE EA A, ,C CE EG G, ,D DC C, , A AB BF F求求BD+BD+1) result=BD, AB1) result=BD, AB不含于不含于resultresult,result=BDresult=BD2) result=BD2) result=BD,D D包含于包含于result,result =BD U EG=BDEGresult,result =BD U EG=BDEG3) r

28、esult=BDEG3) result=BDEG,C C不含于不含于result,result=BDEGresult,result=BDEG4) result=BDEG4) result=BDEG,BEBE包含于包含于result,result =BDEG U C=BCDEGresult,result =BDEG U C=BCDEG5) result=BCDEG,BC5) result=BCDEG,BC包含于包含于result,result=BCDEG U D=BCDEGresult,result=BCDEG U D=BCDEG6) result=BCDEG,CG6) result=BCDEG

29、,CG包含于包含于result,result=BCDEG U BD=BCDEGresult,result=BCDEG U BD=BCDEG7) result=BCDEG,ACD7) result=BCDEG,ACD不含于不含于result,result=BCDEGresult,result=BCDEG8) result=BCDEG,CE 8) result=BCDEG,CE 含于含于result,result=BCDEGUAG=ABCDEGresult,result=BCDEGUAG=ABCDEG* 快速求解候選鍵的充分條件快速求解候選鍵的充分條件對(duì)于給定的關(guān)系方式對(duì)于給定的關(guān)系方式R=(A1

30、,A2,An)R=(A1,A2,An)和函數(shù)依賴集和函數(shù)依賴集F F,可將其屬性分為四類(lèi):可將其屬性分為四類(lèi):1 1、僅僅出如今、僅僅出如今F F的函數(shù)依賴左部的屬性的函數(shù)依賴左部的屬性L L類(lèi);類(lèi);2 2、僅僅出如今、僅僅出如今F F的函數(shù)依賴右部的屬性的函數(shù)依賴右部的屬性R R類(lèi);類(lèi);3 3、在、在F F的函數(shù)依賴的左右兩邊都沒(méi)有出現(xiàn)的屬性的函數(shù)依賴的左右兩邊都沒(méi)有出現(xiàn)的屬性N N類(lèi);類(lèi);4 4、在、在F F的函數(shù)依賴的左右兩邊都出現(xiàn)的屬性的函數(shù)依賴的左右兩邊都出現(xiàn)的屬性LRLR類(lèi);類(lèi);定理:對(duì)于給定關(guān)系方式定理:對(duì)于給定關(guān)系方式R R及其函數(shù)依賴集及其函數(shù)依賴集F(F(不包含平凡不包含平

31、凡FD)FD)1) X1) X是是L L類(lèi)屬性,那么類(lèi)屬性,那么X X必為必為R R的任何一個(gè)候選鍵的成員。的任何一個(gè)候選鍵的成員。2) X2) X是是R R類(lèi)屬性,那么類(lèi)屬性,那么X X不包含在任何候選鍵中。不包含在任何候選鍵中。3) X3) X是是R R的的N N類(lèi)屬性,那么類(lèi)屬性,那么X X也必為也必為R R的任何一個(gè)候選鍵的成員。的任何一個(gè)候選鍵的成員。4) X4) X是是R R的的LRLR類(lèi)屬性,那么類(lèi)屬性,那么X X能夠是也能夠不是候選鍵的成員。能夠是也能夠不是候選鍵的成員。1) 1) 反證法:設(shè)反證法:設(shè)W W為為R R的任一候選鍵,的任一候選鍵,X X不是不是W W的成員。由于

32、的成員。由于X X僅僅出如今僅僅出如今F F的函數(shù)依賴左部,所以的函數(shù)依賴左部,所以R R中沒(méi)有其它屬性能中沒(méi)有其它屬性能夠函數(shù)決議夠函數(shù)決議X X,這樣,這樣W+W+中就不能夠包含中就不能夠包含X X,這樣就與,這樣就與W W是是R R的的候選鍵相矛盾。所以候選鍵相矛盾。所以X X必然是候選鍵必然是候選鍵W W的成員。的成員。X X為為L(zhǎng) L類(lèi)的情況類(lèi)的情況2) 2) 反證法:設(shè)反證法:設(shè)W W是是R R的任一候選鍵,的任一候選鍵,X X不是不是W W的成員。由于的成員。由于X X沒(méi)有出如今沒(méi)有出如今F F中,那么中,那么R R中沒(méi)有其它屬性可以函數(shù)決議中沒(méi)有其它屬性可以函數(shù)決議X X。這樣

33、這樣W+W+中就不能夠包含中就不能夠包含X X,這與,這與W W是是R R的候選鍵相矛盾。所以的候選鍵相矛盾。所以X X必然是候選鍵必然是候選鍵W W的成員。的成員。X X是是N N類(lèi)的情況類(lèi)的情況例:設(shè)有關(guān)系方式例:設(shè)有關(guān)系方式R(A,B,C,D)R(A,B,C,D),其函數(shù)依賴集,其函數(shù)依賴集F F如下,如下,求求R R的候選鍵。的候選鍵。D D A AC CD DB B, ,C CD DB B, ,A AD D, ,B BB B, , D D傳統(tǒng)步驟:傳統(tǒng)步驟:1 1、分別求、分別求A/B/C/D/AB/AC/AD/BC/BD/CDA/B/C/D/AB/AC/AD/BC/BD/CD AB

34、C/ABD/ACD/BCD/ABCD ABC/ABD/ACD/BCD/ABCD的屬性集的的屬性集的 閉包。閉包。 2 2、根據(jù)候選鍵定義找出候選鍵。、根據(jù)候選鍵定義找出候選鍵。快速步驟:快速步驟:1、L類(lèi)類(lèi)L類(lèi)類(lèi):A,C LR類(lèi)類(lèi): B,D (AC)+=ABCD 所以所以AC是關(guān)系方式是關(guān)系方式R的獨(dú)一候選鍵。的獨(dú)一候選鍵。求解候選鍵的步驟求解候選鍵的步驟1、根據(jù)關(guān)系方式上成立的、根據(jù)關(guān)系方式上成立的FD集確定屬性的類(lèi)型。集確定屬性的類(lèi)型。2、根據(jù)屬性類(lèi)型求屬性集的閉包。、根據(jù)屬性類(lèi)型求屬性集的閉包。3、滿足候選鍵定義條件的即為所求的候選鍵。留意有些、滿足候選鍵定義條件的即為所求的候選鍵。留意

35、有些情況下候選鍵不是獨(dú)一的。情況下候選鍵不是獨(dú)一的。例:設(shè)有關(guān)系方式例:設(shè)有關(guān)系方式R(A,B,C,D)R(A,B,C,D),F(xiàn) F是是R R上成立的上成立的FDFD集,試寫(xiě)集,試寫(xiě)出出R R的一切候選鍵。的一切候選鍵。B B D DA A, , D DF F解答:分析解答:分析R R的屬性類(lèi)型:的屬性類(lèi)型: 求解屬性集閉包:求解屬性集閉包:* *練習(xí)練習(xí)1 1、給定關(guān)系方式、給定關(guān)系方式R (ABCDEG)R (ABCDEG),R R上成立的上成立的FDFD集集B B A AE E, ,C CD DA A, ,C CG G, , D DF F求求D+,C+,A+,CD+,AD+,AC+,AC

36、D+D+,C+,A+,CD+,AD+,AC+,ACD+求出求出R R的一切候選鍵的一切候選鍵解:解: D D(DG) C+=(ABC) A+ =(AB)(DG) C+=(ABC) A+ =(AB) (AD)+=(ABDG) (AC)+=(ABC) (ACD)+=(ABCDEG) (AD)+=(ABDG) (AC)+=(ABC) (ACD)+=(ABCDEG)首先確定關(guān)系首先確定關(guān)系R R的屬性類(lèi)型的屬性類(lèi)型 L L類(lèi):類(lèi):C,D C,D ;LRLR類(lèi):類(lèi):A A ;R R類(lèi):類(lèi):B,E,GB,E,G(CD)+=(ABCDEG)(CD)+=(ABCDEG),所以,所以R R的候選鍵是的候選鍵是C

37、DCD。2 2、設(shè)關(guān)系方式、設(shè)關(guān)系方式R(ABCD)R(ABCD)上的函數(shù)依賴集為上的函數(shù)依賴集為F F,并且,并且A A D DD D, ,C CC C, , A AB BF F 求求R R的一切候選鍵。的一切候選鍵。 求求R R的一切不是候選鍵的超鍵。的一切不是候選鍵的超鍵。 L L類(lèi):類(lèi):B B ;LRLR類(lèi):類(lèi):A,C,DA,C,D (B)+=(B) (B)+=(B),(AB)+=(ABCD)(AB)+=(ABCD); (BC)+=(ABCD) (BC)+=(ABCD);(BD)+=(ABCD)(BD)+=(ABCD)一切不是候選鍵的超鍵一切不是候選鍵的超鍵 ABC, ABD, BCD

38、, ABCD ABC, ABD, BCD, ABCDv 規(guī)范化規(guī)范化 關(guān)系必需是規(guī)范化的。通常按屬性間依賴情況,來(lái)區(qū)關(guān)系必需是規(guī)范化的。通常按屬性間依賴情況,來(lái)區(qū)分關(guān)系規(guī)范化的程度為第一范式,第二范式,第三范式等。分關(guān)系規(guī)范化的程度為第一范式,第二范式,第三范式等。術(shù)語(yǔ)和記號(hào):術(shù)語(yǔ)和記號(hào):則則記記為為X X若若Y Y不不函函數(shù)數(shù)依依賴賴于于X X,Y Y則則記記為為X XX X, ,Y YY Y, ,X XX X叫叫做做決決定定因因素素Y Y, ,X XY Y定義:在關(guān)系定義:在關(guān)系R(U)R(U)中,假設(shè)中,假設(shè) ,并且對(duì)于,并且對(duì)于X X的任何一個(gè)的任何一個(gè)真子集真子集X X都有都有 ,那

39、么稱,那么稱Y Y對(duì)對(duì)X X完全函數(shù)依賴。完全函數(shù)依賴。定義:假設(shè)定義:假設(shè) ,但,但Y Y不完全函數(shù)依賴于不完全函數(shù)依賴于X X,那么稱,那么稱Y Y對(duì)對(duì)X X部部分函數(shù)依賴。分函數(shù)依賴。定義:在定義:在R(U)R(U)中,假設(shè)中,假設(shè) , , ,那么,那么稱稱Z Z對(duì)對(duì)X X傳送函數(shù)依賴。傳送函數(shù)依賴。定義:包含在任何一個(gè)候選鍵中的屬性,叫做主屬性。不包定義:包含在任何一個(gè)候選鍵中的屬性,叫做主屬性。不包含在任何候選鍵中的屬性稱為非主屬性。含在任何候選鍵中的屬性稱為非主屬性。Y YX X X X Y YX),X),(Y(YY,Y,X XY XY XZ ZY Y Y YX X 范式范式 關(guān)系

40、數(shù)據(jù)庫(kù)中的關(guān)系是要滿足一定的要求的。滿足不關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系是要滿足一定的要求的。滿足不同的要求稱為不同的范式。滿足最低要求的稱為第一范式,同的要求稱為不同的范式。滿足最低要求的稱為第一范式,簡(jiǎn)稱簡(jiǎn)稱1NF1NF。在第一范式中滿足進(jìn)一步的要求的稱為第二范。在第一范式中滿足進(jìn)一步的要求的稱為第二范式,其他以此類(lèi)推。式,其他以此類(lèi)推。 對(duì)于各種范式之間的聯(lián)絡(luò)有:對(duì)于各種范式之間的聯(lián)絡(luò)有:1 1N NF F2 2N NF F3 3N NF FB BC CN NF F4 4N NF F5 5N NF F對(duì)某一關(guān)系方式對(duì)某一關(guān)系方式R R,它屬于第幾范式,記為,它屬于第幾范式,記為x xN NF FR

41、R1NF1NF定義:假設(shè)一個(gè)關(guān)系方式定義:假設(shè)一個(gè)關(guān)系方式R R的每個(gè)詳細(xì)關(guān)系的每個(gè)詳細(xì)關(guān)系r r的每個(gè)的每個(gè)屬性值都是不可再分的最小數(shù)據(jù)單位,稱屬性值都是不可再分的最小數(shù)據(jù)單位,稱R R滿足滿足1NF1NF,r r為為1NF1NF關(guān)系。關(guān)系。1NF2NF定義:假設(shè)定義:假設(shè) ,且,且R R的每一個(gè)非主屬性完全函數(shù)依的每一個(gè)非主屬性完全函數(shù)依賴于任一候選鍵,稱賴于任一候選鍵,稱R R是滿足第二范式的關(guān)系方式。是滿足第二范式的關(guān)系方式。例:設(shè)有關(guān)系方式例:設(shè)有關(guān)系方式SLC(Sno, Dept, Dom, Cno, Grade)SLC(Sno, Dept, Dom, Cno, Grade)其中其

42、中DomDom為宿舍樓,并規(guī)定一個(gè)系的同窗住在同一棟樓。為宿舍樓,并規(guī)定一個(gè)系的同窗住在同一棟樓。寫(xiě)出關(guān)系方式中存在的函數(shù)依賴,求候選鍵。斷定該關(guān)寫(xiě)出關(guān)系方式中存在的函數(shù)依賴,求候選鍵。斷定該關(guān)系方式能否是系方式能否是2NF2NF。1 1N NF FR R解:存在的函數(shù)依賴有:解:存在的函數(shù)依賴有:G Gr ra ad de eC Cn no o) )( (S Sn no o, ,D Do om mD De ep pt tD Do om m, ,S Sn no oD De ep pt t, ,S Sn no oL L類(lèi):類(lèi):Sno,Cno Sno,Cno ;LRLR類(lèi):類(lèi):Dept Dept

43、;R R類(lèi):類(lèi):Dom,GradeDom,Grade而且而且(Sno,Cno)+=(Sno,Cno,Dept,Dom,Grade)(Sno,Cno)+=(Sno,Cno,Dept,Dom,Grade),所以所以Sno,CnoSno,Cno為候選鍵。為候選鍵。主屬性:主屬性:Sno, CnoSno, Cno非主屬性:非主屬性:Dept, Dom, GradeDept, Dom, Grade由于由于 所以所以DomDom和和DeptDept都不完全函都不完全函數(shù)依賴于候選鍵數(shù)依賴于候選鍵(Sno,Cno)(Sno,Cno),所以,所以R R不滿足不滿足2NF2NF定義,最高定義,最高只到達(dá)只到達(dá)1

44、NF1NF。Dom,Dom,SnoSnoDept,Dept,SnoSno* * *那么不滿足那么不滿足2NF2NF的關(guān)系方式能夠產(chǎn)生的問(wèn)題:的關(guān)系方式能夠產(chǎn)生的問(wèn)題:1 1、插入異常:假設(shè)某學(xué)生未選課,該學(xué)生的信息記錄就不、插入異常:假設(shè)某學(xué)生未選課,該學(xué)生的信息記錄就不能被創(chuàng)建,由于短少主鍵的能被創(chuàng)建,由于短少主鍵的CnoCno這一部分值。這一部分值。2 2、刪除異常:假設(shè)某個(gè)要?jiǎng)h除某個(gè)學(xué)生的選課信息,必然、刪除異常:假設(shè)某個(gè)要?jiǎng)h除某個(gè)學(xué)生的選課信息,必然會(huì)將其固有信息即院系和宿舍樓信息刪除,呵斥刪除異常。會(huì)將其固有信息即院系和宿舍樓信息刪除,呵斥刪除異常。3 3、修正復(fù)雜。假設(shè)某個(gè)學(xué)生需求

45、轉(zhuǎn)系,本只需求修正、修正復(fù)雜。假設(shè)某個(gè)學(xué)生需求轉(zhuǎn)系,本只需求修正DeptDept分量的值,但由于分量的值,但由于DomDom值依賴于值依賴于DeptDept,所以,所以DomDom的值也要修的值也要修改,而且該學(xué)生選多少們課就要修正多少條記錄。改,而且該學(xué)生選多少們課就要修正多少條記錄。4 4、存儲(chǔ)冗余,對(duì)每一次的選課都要存儲(chǔ)學(xué)生其他信息。、存儲(chǔ)冗余,對(duì)每一次的選課都要存儲(chǔ)學(xué)生其他信息。將上述方式分解為:將上述方式分解為:SC(Sno, Cno, Grade)SC(Sno, Cno, Grade) SD(Sno, Dept, Dom) SD(Sno, Dept, Dom)SnoSnoCnoCn

46、oGradeGradeDeptDeptDomDomSnoSnoSCSC中的中的FDFDSDSD中的中的FDFD分解為滿足分解為滿足2NF2NF的多個(gè)關(guān)系方式后,得到的新的關(guān)系方式的多個(gè)關(guān)系方式后,得到的新的關(guān)系方式假設(shè)不滿足假設(shè)不滿足3NF3NF,依然能夠存在問(wèn)題,:,依然能夠存在問(wèn)題,:這里分解得到的這里分解得到的SDSD中存在以下問(wèn)題中存在以下問(wèn)題1 1、數(shù)據(jù)有冗余:每個(gè)系的學(xué)生都住在同一個(gè)地方,但是、數(shù)據(jù)有冗余:每個(gè)系的學(xué)生都住在同一個(gè)地方,但是系的信息將會(huì)反復(fù)出現(xiàn),反復(fù)次數(shù)相當(dāng)于學(xué)生的人數(shù)。系的信息將會(huì)反復(fù)出現(xiàn),反復(fù)次數(shù)相當(dāng)于學(xué)生的人數(shù)。2 2、插入異常:假設(shè)某個(gè)系剛剛成立,還未有學(xué)生

47、注冊(cè),、插入異常:假設(shè)某個(gè)系剛剛成立,還未有學(xué)生注冊(cè),那么該系的信息無(wú)法插入該系的信息入庫(kù)。那么該系的信息無(wú)法插入該系的信息入庫(kù)。3 3、刪除異常:假設(shè)某個(gè)系的學(xué)生都畢業(yè)了,在刪除該系的、刪除異常:假設(shè)某個(gè)系的學(xué)生都畢業(yè)了,在刪除該系的學(xué)生信息的時(shí)候,會(huì)將該系的信息刪除掉。學(xué)生信息的時(shí)候,會(huì)將該系的信息刪除掉。4 4、修正復(fù)雜:當(dāng)學(xué)校調(diào)整學(xué)生宿舍時(shí),把外語(yǔ)系的學(xué)生全、修正復(fù)雜:當(dāng)學(xué)校調(diào)整學(xué)生宿舍時(shí),把外語(yǔ)系的學(xué)生全部遷到另外一棟樓,那么需求修正的記錄是該系的一切學(xué)生部遷到另外一棟樓,那么需求修正的記錄是該系的一切學(xué)生因此滿足因此滿足2NF2NF的關(guān)系方式在某些情況下依然不是最好的。的關(guān)系方式在

48、某些情況下依然不是最好的。3NF定義:關(guān)系方式定義:關(guān)系方式R(U)R(U)滿足滿足2NF2NF,且它的任何一個(gè)非主屬性都,且它的任何一個(gè)非主屬性都不傳送依賴于任何候選鍵,那么稱不傳送依賴于任何候選鍵,那么稱R R為滿足為滿足3NF3NF的關(guān)系方式。的關(guān)系方式。上述的上述的SCSC中沒(méi)有第三方屬性,所以不存在傳送函數(shù)依賴,中沒(méi)有第三方屬性,所以不存在傳送函數(shù)依賴,但是在但是在SDSD中,中,DomDom經(jīng)過(guò)經(jīng)過(guò)DeptDept傳送函數(shù)依賴于傳送函數(shù)依賴于SnoSno,所以,所以SCSC滿滿足足3NF3NF,而,而SDSD不滿足不滿足3NF3NF。D Do om mD De ep pt tD D

49、e ep pt t, ,S Sn no o,Dom Sno,Dom Sno處理方法:分解處理方法:分解SDSD為以下兩個(gè)為以下兩個(gè) SD(Sno, Dept)SD(Sno, Dept) DD(Dept, Dom) DD(Dept, Dom)分解以后的兩個(gè)關(guān)系方式都滿足分解以后的兩個(gè)關(guān)系方式都滿足3NF3NF。一個(gè)滿足一個(gè)滿足3NF3NF的關(guān)系方式也不一定是最好的,例如在關(guān)系的關(guān)系方式也不一定是最好的,例如在關(guān)系方式方式STJ( S,T,J )STJ( S,T,J )中,中,S S表示學(xué)生,表示學(xué)生,T T表示教師,表示教師,J J表示課表示課程。假設(shè)每一個(gè)教師只教一門(mén)課。但是每門(mén)課由假設(shè)干教師

50、程。假設(shè)每一個(gè)教師只教一門(mén)課。但是每門(mén)課由假設(shè)干教師教,某一學(xué)生選定某門(mén)課,就確定了一個(gè)固定的教師,于教,某一學(xué)生選定某門(mén)課,就確定了一個(gè)固定的教師,于是存在的函數(shù)依賴如下是存在的函數(shù)依賴如下: :J JT TT T, ,J J) )( (S S, ,根據(jù)函數(shù)依賴可以求出該根據(jù)函數(shù)依賴可以求出該STJSTJ的候選鍵為的候選鍵為(S,J)(S,J)或者或者(S,T)(S,T),此時(shí)的關(guān)系方式中的一切屬性是主屬性,那么關(guān)系方式滿足此時(shí)的關(guān)系方式中的一切屬性是主屬性,那么關(guān)系方式滿足3NF3NF。但是該關(guān)系方式在有時(shí)依然存在一些問(wèn)題:。但是該關(guān)系方式在有時(shí)依然存在一些問(wèn)題:1 1、插入異常:假設(shè)某個(gè)

51、教師開(kāi)設(shè)了某門(mén)課,但是沒(méi)人選,、插入異常:假設(shè)某個(gè)教師開(kāi)設(shè)了某門(mén)課,但是沒(méi)人選,那么有關(guān)信息無(wú)法存入數(shù)據(jù)庫(kù)。那么有關(guān)信息無(wú)法存入數(shù)據(jù)庫(kù)。2 2、刪除異常:選了某門(mén)課程的學(xué)生全部畢業(yè),該信息喪失、刪除異常:選了某門(mén)課程的學(xué)生全部畢業(yè),該信息喪失3 3、數(shù)據(jù)冗余大:教師信息根據(jù)選課的學(xué)生人數(shù)要存儲(chǔ)多次、數(shù)據(jù)冗余大:教師信息根據(jù)選課的學(xué)生人數(shù)要存儲(chǔ)多次4 4、修正復(fù)雜:教師所授課程改名后,一切選該課的記錄都、修正復(fù)雜:教師所授課程改名后,一切選該課的記錄都要改。要改。BCNF定義:關(guān)系方式定義:關(guān)系方式 ,F(xiàn) F是關(guān)系方式是關(guān)系方式R R的函數(shù)依賴的函數(shù)依賴集,假設(shè)集,假設(shè)F F中一切函數(shù)依賴的左部

52、都包含了中一切函數(shù)依賴的左部都包含了R R的任何一個(gè)候的任何一個(gè)候選鍵,稱選鍵,稱R R是滿足是滿足Boyce-CoddBoyce-Codd范式,記為范式,記為BCNFBCNF。即每一個(gè)。即每一個(gè)決議要素都包含候選鍵。決議要素都包含候選鍵。1NF1NFR(U)R(U)定理:一個(gè)定理:一個(gè)BCNFBCNF范式必是范式必是3NF3NF。證明:反證法。設(shè)證明:反證法。設(shè)R R是一個(gè)是一個(gè)BCNFBCNF但不是但不是3NF3NF。那么必存在非主。那么必存在非主屬性屬性A A候選鍵候選鍵X X以及屬性集以及屬性集Y Y,使得,使得X XY,YY,YA,A,且且 , ,那么那么Y Y不能夠包含不能夠包含R

53、 R的候選鍵的候選鍵X X 。由于假設(shè)。由于假設(shè)X X包含于包含于Y Y中,根中,根據(jù)自反性,可得據(jù)自反性,可得Y YXX。但是由于。但是由于Y Y在這里是決議要素,根在這里是決議要素,根據(jù)定義這里的條件據(jù)定義這里的條件R R就不是就不是BCNFBCNF。這和假設(shè)相矛盾,從而。這和假設(shè)相矛盾,從而定理得證。但是滿足定理得證。但是滿足3NF3NF不一定滿足不一定滿足BCNFBCNF。Y XY X練習(xí)練習(xí)1 1、設(shè)有關(guān)系方式、設(shè)有關(guān)系方式R(X,Y,Z)R(X,Y,Z),其上的函數(shù)依賴集如下,斷定,其上的函數(shù)依賴集如下,斷定R R最高滿足第幾范式。最高滿足第幾范式。Z Z Y YY Y, ,X X

54、Z ZZ Z, , X XY YF F解:首先根據(jù)函數(shù)依賴求候選鍵:解:首先根據(jù)函數(shù)依賴求候選鍵: L L類(lèi):類(lèi):X X;LRLR類(lèi):類(lèi):Y,ZY,Z; 且且(XY)+=(XYZ) ,(XZ)+=(XYZ)(XY)+=(XYZ) ,(XZ)+=(XYZ),所以所以R R的候選鍵為的候選鍵為XYXY和和XZXZ。沒(méi)有非主屬性,所以。沒(méi)有非主屬性,所以R R滿足滿足3NF3NF,但但R R不是不是BCNFBCNF,由于決議要素,由于決議要素Y Y中不包含候選鍵。中不包含候選鍵。2 2、判別以下說(shuō)法能否正確:、判別以下說(shuō)法能否正確:1 1任何一個(gè)包含兩個(gè)屬性的關(guān)系方式一定滿足任何一個(gè)包含兩個(gè)屬性的關(guān)

55、系方式一定滿足3NF3NF。2 2任何一個(gè)包含兩個(gè)屬性的關(guān)系方式一定滿足任何一個(gè)包含兩個(gè)屬性的關(guān)系方式一定滿足BCNFBCNF。3 3任何一個(gè)包含三個(gè)屬性的關(guān)系方式一定滿足任何一個(gè)包含三個(gè)屬性的關(guān)系方式一定滿足3NF3NF。4 4任何一個(gè)關(guān)系方式一定有鍵。任何一個(gè)關(guān)系方式一定有鍵。解答:解答:設(shè)有二元關(guān)系設(shè)有二元關(guān)系R(X,Y)R(X,Y),那么,那么X X和和Y Y之間的函數(shù)依賴能夠如下:之間的函數(shù)依賴能夠如下:1) , ,1) , ,那么關(guān)系方式的候選鍵為那么關(guān)系方式的候選鍵為X X。沒(méi)有第三方。沒(méi)有第三方屬性傳送函數(shù)依賴,所以屬性傳送函數(shù)依賴,所以R R滿足滿足3NF3NF,而且決議要素

56、包含候,而且決議要素包含候選鍵,選鍵,R R滿足滿足BCNFBCNF。2) ,2) ,那么關(guān)系方式的候選鍵為那么關(guān)系方式的候選鍵為X X和和Y Y。沒(méi)有第三。沒(méi)有第三方屬性傳送函數(shù)依賴,而且決議要素包含候選鍵,方屬性傳送函數(shù)依賴,而且決議要素包含候選鍵,R R滿足滿足BCNFBCNF。Y YX X Y XY XX XY YY,Y,X X3)X3)X和和Y Y之間不存在函數(shù)依賴,那么關(guān)系方式的候選鍵是之間不存在函數(shù)依賴,那么關(guān)系方式的候選鍵是XYXY。這個(gè)時(shí)候這個(gè)時(shí)候R R也是滿足也是滿足BCNFBCNF,由于此時(shí)不存在推翻,由于此時(shí)不存在推翻R R不是不是BCNFBCNF的條件。包含三個(gè)屬性的

57、關(guān)系方式不一定是的條件。包含三個(gè)屬性的關(guān)系方式不一定是3NF3NF,如上面提,如上面提到的到的SDSD關(guān)系方式中關(guān)系方式中DomDom傳送函數(shù)依賴于傳送函數(shù)依賴于SnoSno。關(guān)系方式一定有鍵,這是關(guān)系方式的固有屬性。關(guān)系方式一定有鍵,這是關(guān)系方式的固有屬性。所以只需第三種說(shuō)法不正確。所以只需第三種說(shuō)法不正確。假設(shè)某商業(yè)集團(tuán)數(shù)據(jù)庫(kù)有一關(guān)系方式假設(shè)某商業(yè)集團(tuán)數(shù)據(jù)庫(kù)有一關(guān)系方式R R如下:如下: R R商店編號(hào),商品編號(hào),數(shù)量,部門(mén)編號(hào),擔(dān)任人商店編號(hào),商品編號(hào),數(shù)量,部門(mén)編號(hào),擔(dān)任人現(xiàn)規(guī)定:現(xiàn)規(guī)定:1 1、每個(gè)商店的每種商品只在一個(gè)部門(mén)銷(xiāo)售。、每個(gè)商店的每種商品只在一個(gè)部門(mén)銷(xiāo)售。 2 2、每個(gè)商

58、店的每個(gè)部門(mén)只需一個(gè)擔(dān)任人。、每個(gè)商店的每個(gè)部門(mén)只需一個(gè)擔(dān)任人。 3 3、每個(gè)商店的每種商品只需一個(gè)庫(kù)存數(shù)量。、每個(gè)商店的每種商品只需一個(gè)庫(kù)存數(shù)量?;卮鹨韵聠?wèn)題:回答以下問(wèn)題:1 1、寫(xiě)出、寫(xiě)出R R的根本函數(shù)依賴的根本函數(shù)依賴 2 2、找出關(guān)系方式、找出關(guān)系方式R R的候選鍵的候選鍵 3 3、關(guān)系方式、關(guān)系方式R R最高到達(dá)第幾范式?為什么最高到達(dá)第幾范式?為什么分析關(guān)系方式分析關(guān)系方式分析:關(guān)系分析:關(guān)系R R存在的函數(shù)依賴有:存在的函數(shù)依賴有:數(shù)數(shù)量量)(商商店店編編號(hào)號(hào),商商品品編編號(hào)號(hào)負(fù)負(fù)責(zé)責(zé)人人)(商商店店編編號(hào)號(hào),部部門(mén)門(mén)編編號(hào)號(hào)部部門(mén)門(mén)編編號(hào)號(hào))(商商店店編編號(hào)號(hào),商商品品編編

59、號(hào)號(hào)利用函數(shù)依賴求候選鍵:利用函數(shù)依賴求候選鍵:L L類(lèi)屬性:商店編號(hào),商品編號(hào);類(lèi)屬性:商店編號(hào),商品編號(hào);LRLR類(lèi):類(lèi): 部門(mén)編號(hào);部門(mén)編號(hào);R R類(lèi):類(lèi): 擔(dān)任人擔(dān)任人數(shù)量。而且商店編號(hào),商品編號(hào)數(shù)量。而且商店編號(hào),商品編號(hào)U U,所以關(guān)系方式,所以關(guān)系方式R R的候選鍵為商店編號(hào),商品編號(hào)。的候選鍵為商店編號(hào),商品編號(hào)。判別判別R R屬于第幾范式:屬于第幾范式:非主屬性為:部門(mén)編號(hào),擔(dān)任人,數(shù)量。它們對(duì)候選鍵都非主屬性為:部門(mén)編號(hào),擔(dān)任人,數(shù)量。它們對(duì)候選鍵都是完全函數(shù)依賴關(guān)系,所以是完全函數(shù)依賴關(guān)系,所以R R是滿足第二范式的。但是,是滿足第二范式的。但是,負(fù)負(fù)責(zé)責(zé)人人)(商商店店

60、編編號(hào)號(hào),商商品品編編號(hào)號(hào))(部部門(mén)門(mén)編編號(hào)號(hào),商商店店編編號(hào)號(hào))(商商店店編編號(hào)號(hào),商商品品編編號(hào)號(hào)所以非主屬性擔(dān)任人對(duì)候選鍵傳送依賴,那么所以非主屬性擔(dān)任人對(duì)候選鍵傳送依賴,那么R R不滿足第不滿足第三范式,因此三范式,因此R R最高滿足第二范式。最高滿足第二范式。證明:證明:A AA A,則則有有X XY Y( (2 2) )如如果果X XV VY Y則則有有W WX XW W, ,V VY Y, ,( (1 1) )如如果果X X1VYVYWXWXVYVYWYWYV,V,W WWYWYWXWXY,Y,X X又又V VW WW,W,V V2A AX XY YA AX X又又X XX XY

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論