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

下載本文檔

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

文檔簡介

1、An Introduction to Database System數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫原理與應(yīng)用 The Principal & Application OF Database第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論An Introduction to Database System第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論6.1 6.1 問題的提出問題的提出6.2 6.2 規(guī)范化規(guī)范化6.3 6.3 數(shù)據(jù)依賴的公理系統(tǒng)數(shù)據(jù)依賴的公理系統(tǒng)6.4 6.4 模式的分解模式的分解6.5 6.5 小結(jié)小結(jié)An Introduction to Database System問題的提出問題的提出8.

2、2 關(guān)系規(guī)范化理論基礎(chǔ)關(guān)系規(guī)范化理論基礎(chǔ) v關(guān)系數(shù)據(jù)庫邏輯設(shè)計關(guān)系數(shù)據(jù)庫邏輯設(shè)計 如何構(gòu)造一個合適的數(shù)據(jù)模式?如何構(gòu)造一個合適的數(shù)據(jù)模式?應(yīng)該構(gòu)造幾個關(guān)系模式?應(yīng)該構(gòu)造幾個關(guān)系模式?每個關(guān)系應(yīng)該由哪些屬性組成?每個關(guān)系應(yīng)該由哪些屬性組成?各屬性的數(shù)據(jù)類型是什么?各屬性的數(shù)據(jù)類型是什么?v數(shù)據(jù)庫邏輯設(shè)計的工具數(shù)據(jù)庫邏輯設(shè)計的工具 關(guān)系數(shù)據(jù)庫的規(guī)范化理論關(guān)系數(shù)據(jù)庫的規(guī)范化理論An Introduction to Database System問題的提出問題的提出v一、概念回顧一、概念回顧v二、關(guān)系模式的形式化定義二、關(guān)系模式的形式化定義v三、什么是數(shù)據(jù)依賴三、什么是數(shù)據(jù)依賴v四、關(guān)系模式的簡化定義

3、四、關(guān)系模式的簡化定義v五、數(shù)據(jù)依賴對關(guān)系模式影響五、數(shù)據(jù)依賴對關(guān)系模式影響An Introduction to Database System一、概念回顧一、概念回顧v關(guān)系關(guān)系v關(guān)系模式關(guān)系模式v關(guān)系數(shù)據(jù)庫關(guān)系數(shù)據(jù)庫v關(guān)系數(shù)據(jù)庫的模式關(guān)系數(shù)據(jù)庫的模式An Introduction to Database System二、關(guān)系模式的形式化定義二、關(guān)系模式的形式化定義v關(guān)系模式由五部分組成,即它是一個五元組:關(guān)系模式由五部分組成,即它是一個五元組:vR(U, D, DOM, F)R(U, D, DOM, F) R R: 關(guān)系名關(guān)系名 U U: 組成該關(guān)系的屬性名集合組成該關(guān)系的屬性名集合 D D

4、: 屬性組屬性組U U中屬性所來自的域中屬性所來自的域 DOMDOM: 屬性向域的映象集合屬性向域的映象集合 F F: 屬性間數(shù)據(jù)的依賴關(guān)系集合屬性間數(shù)據(jù)的依賴關(guān)系集合An Introduction to Database System關(guān)系模式的簡化表示關(guān)系模式的簡化表示8.2 關(guān)系規(guī)范化理論基礎(chǔ)關(guān)系規(guī)范化理論基礎(chǔ) v關(guān)系模式關(guān)系模式R R(U, D, DOM, FU, D, DOM, F)中,)中,D D和和DOMDOM與與邏輯結(jié)構(gòu)設(shè)計關(guān)系不大,因此,將關(guān)系模式簡邏輯結(jié)構(gòu)設(shè)計關(guān)系不大,因此,將關(guān)系模式簡化為一個三元組:化為一個三元組: R R(U, FU, F)v當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)U U上的一

5、個關(guān)系上的一個關(guān)系r r 滿足滿足F F時,時,r r稱為稱為關(guān)系模式關(guān)系模式 R R(U, FU, F)的一個關(guān)系)的一個關(guān)系A(chǔ)n Introduction to Database System三、什么是數(shù)據(jù)依賴三、什么是數(shù)據(jù)依賴v1.1.完整性約束的表現(xiàn)形式完整性約束的表現(xiàn)形式 限定屬性取值范圍:例如學(xué)生成績必須在限定屬性取值范圍:例如學(xué)生成績必須在0-0-100100之間之間 定義屬性定義屬性值值間的相互關(guān)連(主要體現(xiàn)于值的間的相互關(guān)連(主要體現(xiàn)于值的相等與否相等與否),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫),這就是數(shù)據(jù)依賴,它是數(shù)據(jù)庫模式設(shè)計的關(guān)鍵模式設(shè)計的關(guān)鍵An Introduction t

6、o Database System什么是數(shù)據(jù)依賴(續(xù))什么是數(shù)據(jù)依賴(續(xù))v2.2.數(shù)據(jù)依賴數(shù)據(jù)依賴 一個關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系一個關(guān)系內(nèi)部屬性與屬性之間的約束關(guān)系 現(xiàn)實世界屬性間相互聯(lián)系的抽象現(xiàn)實世界屬性間相互聯(lián)系的抽象 數(shù)據(jù)內(nèi)在的性質(zhì)數(shù)據(jù)內(nèi)在的性質(zhì) 語義語義的體現(xiàn)的體現(xiàn)An Introduction to Database System什么是數(shù)據(jù)依賴(續(xù))什么是數(shù)據(jù)依賴(續(xù))v3.3.數(shù)據(jù)依賴的類型數(shù)據(jù)依賴的類型 函數(shù)依賴(函數(shù)依賴(Functional DependencyFunctional Dependency,簡記,簡記為為FDFD) 多值依賴(多值依賴(Multival

7、ued DependencyMultivalued Dependency,簡記,簡記為為MVDMVD) 其他其他An Introduction to Database System四、關(guān)系模式的簡化表示四、關(guān)系模式的簡化表示v關(guān)系模式關(guān)系模式R R(U, D, DOM, FU, D, DOM, F) 簡化為一個三元組:簡化為一個三元組: R R(U, FU, F)v當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)U U上的一個關(guān)系上的一個關(guān)系r r滿足滿足F F時,時,r r稱為關(guān)稱為關(guān)系模式系模式 R R(U, FU, F)的一個關(guān)系)的一個關(guān)系A(chǔ)n Introduction to Database System五、五、數(shù)

8、據(jù)依賴對關(guān)系模式的影響數(shù)據(jù)依賴對關(guān)系模式的影響v 例例11建立一個描述學(xué)校教務(wù)的數(shù)據(jù)庫:建立一個描述學(xué)校教務(wù)的數(shù)據(jù)庫: 學(xué)生的學(xué)號(學(xué)生的學(xué)號(SnoSno)、所在系()、所在系(SdeptSdept) 系主任姓名(系主任姓名(MnameMname)、課程名()、課程名(CnameCname) 成績(成績(GradeGrade) 單一單一的關(guān)系模式的關(guān)系模式 :Student UStudent FU U Sno, Sdept, Mname, Cname, GradeSno, Sdept, Mname, Cname, GradeAn Introduction to Database System

9、數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))v屬性組屬性組U U上的一組函數(shù)依賴上的一組函數(shù)依賴F F: F F Sno Sdept, Sno Sdept, Sdept Mname, Sdept Mname, (Sno, Cname) Grade (Sno, Cname) Grade An Introduction to Database System SnoCnameSdeptMnameGradeAn Introduction to Database System關(guān)系模式關(guān)系模式StudentStudent中存在的問題中存在的問題v1.1.數(shù)據(jù)冗余太大數(shù)據(jù)冗余太大v2. 2.

10、 更新異常(更新異常(Update AnomaliesUpdate Anomalies)v3. 3. 插入異常(插入異常(Insertion AnomaliesInsertion Anomalies)v4. 4. 刪除異常(刪除異常(Deletion AnomaliesDeletion Anomalies)An Introduction to Database System數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù))數(shù)據(jù)依賴對關(guān)系模式的影響(續(xù)) 結(jié)論:結(jié)論:nStudentStudent關(guān)系模式不是一個好的模式。關(guān)系模式不是一個好的模式。n“好好”的模式:的模式: 不會發(fā)生插入異常、刪除異常、更新異常,不

11、會發(fā)生插入異常、刪除異常、更新異常, 數(shù)據(jù)冗余應(yīng)盡可能少數(shù)據(jù)冗余應(yīng)盡可能少v原因:原因:由存在于模式中的由存在于模式中的某些數(shù)據(jù)依賴某些數(shù)據(jù)依賴引起的引起的v解決方法:解決方法:通過通過分解分解關(guān)系模式來消除其中不合關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴適的數(shù)據(jù)依賴An Introduction to Database System分解關(guān)系模式分解關(guān)系模式v把這個單一模式分成把這個單一模式分成3 3個關(guān)系模式:個關(guān)系模式: S S(SnoSno,SdeptSdept,Sno SdeptSno Sdept); ; SCSC(SnoSno,CnoCno,GradeGrade, (SnoSno,CnoC

12、no) Grade Grade); ; DEPTDEPT(SdeptSdept,MnameMname,Sdept MnameSdept Mname)An Introduction to Database System第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論6.1 6.1 問題的提出問題的提出6.2 6.2 規(guī)范化規(guī)范化6.3 6.3 數(shù)據(jù)依賴的公理系統(tǒng)數(shù)據(jù)依賴的公理系統(tǒng)6.4 6.4 模式的分解模式的分解6.5 6.5 小結(jié)小結(jié)An Introduction to Database System6.2 規(guī)范化規(guī)范化 規(guī)范化理論規(guī)范化理論正是用來改造關(guān)系模式,通過正是用來改造關(guān)系模式,通過分解關(guān)系

13、模式來消除其中不合適的數(shù)據(jù)依賴,分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更新異常和數(shù)以解決插入異常、刪除異常、更新異常和數(shù)據(jù)冗余問題。據(jù)冗余問題。An Introduction to Database Systemv6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)

14、規(guī)范化小結(jié)An Introduction to Database System6.2.1 函數(shù)依賴函數(shù)依賴函數(shù)依賴的定義函數(shù)依賴的定義1平凡函數(shù)依賴與非平凡函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴2完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴3傳遞函數(shù)依賴傳遞函數(shù)依賴4An Introduction to Database System一、函數(shù)依賴的定義一、函數(shù)依賴的定義v定義定義6.1 6.1 設(shè)設(shè)R(U)R(U)是一個屬性集是一個屬性集U U上的關(guān)系模式,上的關(guān)系模式,X X和和Y Y是是U U的子集。的子集。 若對于若對于R(U)R(U)的的任意任意一個可能的關(guān)系一個可能的關(guān)系r r

15、,r r中不中不可能存在兩個元組在可能存在兩個元組在X X上的屬性值相等,上的屬性值相等, 而而在在Y Y上的屬性值不等,上的屬性值不等, 則稱則稱 “ “X X函數(shù)確定函數(shù)確定Y Y” ” 或或 “ “Y Y函數(shù)依賴于函數(shù)依賴于X X”,記作,記作XYXY。An Introduction to Database System函數(shù)依賴說明函數(shù)依賴說明 1 1. . 所有關(guān)系實例所有關(guān)系實例均要滿足均要滿足2. 2. 語義范疇語義范疇的概念的概念3. 3. 數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強(qiáng)制的規(guī)數(shù)據(jù)庫設(shè)計者可以對現(xiàn)實世界作強(qiáng)制的規(guī)定定An Introduction to Database Syst

16、em二、平凡函數(shù)依賴與非平凡函數(shù)依賴二、平凡函數(shù)依賴與非平凡函數(shù)依賴v在關(guān)系模式在關(guān)系模式R(U)R(U)中,對于中,對于U U的子集的子集X X和和Y Y, 如果如果XYXY,但,但Y Y X X,則稱,則稱XYXY是非平凡是非平凡的函數(shù)依賴的函數(shù)依賴 若若XYXY,但,但Y Y X, X, 則稱則稱XYXY是是平凡的平凡的函數(shù)依賴函數(shù)依賴An Introduction to Database Systemv例:在關(guān)系例:在關(guān)系SC(Sno, Cno, Grade)SC(Sno, Cno, Grade)中,中, 非平凡函數(shù)依賴:非平凡函數(shù)依賴:(Sno, Cno) (Sno, Cno) Gr

17、adeGrade 平凡函數(shù)依賴:平凡函數(shù)依賴: (Sno, Cno) (Sno, Cno) Sno Sno (Sno, Cno) Cno(Sno, Cno) CnoAn Introduction to Database System平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))v若若X XY Y,則,則X X稱為這個函數(shù)依賴的決定屬性組,稱為這個函數(shù)依賴的決定屬性組,也稱為決定因素(也稱為決定因素(DeterminantDeterminant)。)。v若若X XY Y,Y YX X,則記作,則記作X XY Y。v若若Y Y不函數(shù)依賴于不函數(shù)依賴于X X,則記作,則記作X

18、XY Y。An Introduction to Database Systemv定義定義6.26.2 在在R(U)R(U)中,如果中,如果XYXY,并且對于,并且對于X X的任何的任何一個真子集一個真子集XX,都有,都有X Y, X Y, 則稱則稱Y Y對對X X完完全函數(shù)依賴全函數(shù)依賴,記作,記作X X F F Y Y 。 若若XYXY,但,但Y Y不完全函數(shù)依賴于不完全函數(shù)依賴于X X,則稱,則稱Y Y對對X X部分函數(shù)依賴部分函數(shù)依賴,記作,記作X X P P Y Y。 三、完全函數(shù)依賴與部分函數(shù)依賴三、完全函數(shù)依賴與部分函數(shù)依賴An Introduction to Database S

19、ystemv 例例11中的完全函數(shù)依賴與部分函數(shù)依賴中的完全函數(shù)依賴與部分函數(shù)依賴 (Sno,Cno)Grade(Sno,Cno)Grade是完全函數(shù)依賴;是完全函數(shù)依賴; (Sno,Cno)Sdept(Sno,Cno)Sdept是部分函數(shù)依賴是部分函數(shù)依賴因為因為SnoSdeptSnoSdept成立,且成立,且SnoSno是(是(SnoSno,CnoCno)的真子集)的真子集 完全函數(shù)依賴與部分函數(shù)依賴(續(xù))完全函數(shù)依賴與部分函數(shù)依賴(續(xù))FPAn Introduction to Database Systemv定義定義6.36.3 在在R(U)R(U)中,如果中,如果XYXY,( (Y Y

20、 X X) ,) ,YXYX YZ YZ, 則稱則稱Z Z對對X X傳遞函數(shù)依賴傳遞函數(shù)依賴。 記作:記作:XZXZv注注: : 如果如果YXYX,即,即XYXY,則,則Z Z直接依賴于直接依賴于X X,非,非傳遞依賴傳遞依賴。四、傳遞函數(shù)依賴四、傳遞函數(shù)依賴傳遞傳遞An Introduction to Database Systemv例例: : 在關(guān)系在關(guān)系Std(Sno, Sdept, Mname)Std(Sno, Sdept, Mname)中,中,有:有: Sno SdeptSno Sdept,Sdept MnameSdept Mname MnameMname傳遞函數(shù)依賴于傳遞函數(shù)依賴于

21、SnoSno 記作:記作: Sno MnameSno Mname傳遞傳遞An Introduction to Database Systemv6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)An Introduction to Database System6.2.2 碼碼v定義

22、定義6.46.4 設(shè)設(shè)K K為為RR中的屬性或?qū)傩越M合。若中的屬性或?qū)傩越M合。若K K U U,則,則K K稱為稱為R R的的侯選碼侯選碼(Candidate Candidate KeyKey)。)。 若候選碼多于一個,則選定其中的一個做為若候選碼多于一個,則選定其中的一個做為主碼主碼(Primary KeyPrimary Key)。)。FAn Introduction to Database System碼(續(xù))碼(續(xù))v主屬性與非主屬性主屬性與非主屬性 包含在任何一個候選碼中的屬性包含在任何一個候選碼中的屬性 ,稱為主屬,稱為主屬性(性(Prime attributePrime attri

23、bute) 不包含在任何碼中的屬性稱為非主屬性不包含在任何碼中的屬性稱為非主屬性(Nonprime attributeNonprime attribute)或非碼屬性(或非碼屬性(Non-key Non-key attributeattribute)v全碼全碼 整個屬性組整個屬性組U U是碼,稱為是碼,稱為全碼全碼(All-keyAll-key) An Introduction to Database System碼(續(xù))碼(續(xù))v 例例22v關(guān)系模式關(guān)系模式S(S(SnoSno,Sdept,Sage),Sdept,Sage), 單個屬性單個屬性SnoSno是碼,是碼,vSCSC(SnoSno

24、,CnoCno,GradeGrade)中,)中, (SnoSno,CnoCno)是碼)是碼An Introduction to Database Systemv 例例3 3 關(guān)系模式關(guān)系模式R R(P P,W W,A A) P P:演奏者:演奏者 W W:作品:作品 A A:聽眾:聽眾一個演奏者可以演奏多個作品一個演奏者可以演奏多個作品某一作品可被多個演奏者演奏某一作品可被多個演奏者演奏聽眾可以欣賞不同演奏者的不同作品聽眾可以欣賞不同演奏者的不同作品此關(guān)系模式的碼為此關(guān)系模式的碼為(P(P,W W,A)A),即,即All-KeyAll-KeyAn Introduction to Databas

25、e System外部碼外部碼v定義定義6.56.5 關(guān)系模式關(guān)系模式 R R 中屬性或?qū)傩越M中屬性或?qū)傩越MX X 并非并非R R的碼,的碼,但但 X X 是另一個關(guān)系模式是另一個關(guān)系模式S S的碼,則稱的碼,則稱 X X 是是R R 的的外部碼(外部碼(Foreign keyForeign key),),簡稱外碼簡稱外碼An Introduction to Database Systemv如在如在SCSC(SnoSno,CnoCno,GradeGrade)中,)中,SnoSno不是碼,不是碼,但但SnoSno是關(guān)系模式是關(guān)系模式S S(SnoSno,SdeptSdept,SageSage)的碼

26、,)的碼,則則SnoSno是關(guān)系模式是關(guān)系模式SCSC的外部碼的外部碼v主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手段段An Introduction to Database Systemv6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)An

27、Introduction to Database System6.2.3 范式范式v范式是符合某一種級別的關(guān)系模式的集合范式是符合某一種級別的關(guān)系模式的集合v關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。關(guān)系數(shù)據(jù)庫中的關(guān)系必須滿足一定的要求。v滿足不同程度要求的為不同類型的范式滿足不同程度要求的為不同類型的范式v范式的種類:范式的種類:An Introduction to Database System范式的種類范式的種類 第一范式第一范式(1NF)(1NF) 第二范式第二范式(2NF)(2NF) 第三范式第三范式(3NF)(3NF) BCBC范式范式(BCNF)(BCNF) 第四范式第四范式(4NF

28、)(4NF) 第五范式第五范式(5NF)(5NF)An Introduction to Database System6.2.3 范式范式v各種范式之間存在聯(lián)系:各種范式之間存在聯(lián)系:v某一關(guān)系模式某一關(guān)系模式R R為第為第n n范式,可簡記為范式,可簡記為RnNFRnNF。v一個低一級范式的關(guān)系模式,通過一個低一級范式的關(guān)系模式,通過模式分解模式分解可可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式的集合,以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式的集合,這種過程就叫這種過程就叫規(guī)范化規(guī)范化 NF5NF4BCNFNF3NF2NF1An Introduction to Database System6.2 規(guī)范化

29、規(guī)范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)v6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NFAn Introduction to Database System6.2.4 2NFv1NF1NF的定義的定義如果一個關(guān)系模式如果一個關(guān)系模式R R的所有屬性都是的所有屬性都是不可分的不可分的基本數(shù)據(jù)項基本數(shù)據(jù)項,則,則R1NFR1NFv第一

30、范式是對關(guān)系模式的最起碼的要求。第一范式是對關(guān)系模式的最起碼的要求。不不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫據(jù)庫v但是滿足第一范式的關(guān)系模式并不一定是一但是滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式個好的關(guān)系模式An Introduction to Database Systemv 例例4 4 關(guān)系模式關(guān)系模式 S-L-C(Sno, Sdept, Sloc, Cno, S-L-C(Sno, Sdept, Sloc, Cno, Grade)Grade) SlocSloc為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個地為學(xué)生住處,假設(shè)每個系的學(xué)生住在同一個

31、地方方v函數(shù)依賴包括:函數(shù)依賴包括: (Sno, Cno) (Sno, Cno) F F Grade Grade Sno SdeptSno Sdept (Sno, Cno) (Sno, Cno) P P Sdept Sdept Sno SlocSno Sloc (Sno, Cno) (Sno, Cno) P P Sloc Sloc Sdept SlocSdept Sloc2NF(續(xù))(續(xù))換個好點(diǎn)的例子換個好點(diǎn)的例子An Introduction to Database System 2NF(續(xù))(續(xù))vS-L-CS-L-C的碼為的碼為(Sno, Cno)(Sno, Cno)vS-L-CS-L

32、-C滿足第一范式。滿足第一范式。v非主屬性非主屬性SdeptSdept和和SlocSloc部分函數(shù)依賴于碼部分函數(shù)依賴于碼(Sno, (Sno, Cno)Cno)SnoCnoGradeSdeptSloc分解前的關(guān)系模式分解前的關(guān)系模式S-L-CS-L-CAn Introduction to Database SystemS-L-C不是一個好的關(guān)系模式不是一個好的關(guān)系模式vS-L-CS-L-C不是一個好的關(guān)系模式,會產(chǎn)生以下問題不是一個好的關(guān)系模式,會產(chǎn)生以下問題 (1) (1) 插入異常插入異常 (2) (2) 刪除異常刪除異常 (3) (3) 數(shù)據(jù)冗余度大數(shù)據(jù)冗余度大 (4) (4) 修改復(fù)

33、雜修改復(fù)雜An Introduction to Database SystemS-L-C不是一個好的關(guān)系模式(續(xù))不是一個好的關(guān)系模式(續(xù))v原因:原因: SdeptSdept、 SlocSloc部分函數(shù)依賴于碼部分函數(shù)依賴于碼。v解決方法:解決方法: S-L-CS-L-C分解為兩個關(guān)系模式,以消除這些部分分解為兩個關(guān)系模式,以消除這些部分函數(shù)依賴函數(shù)依賴 SCSC(SnoSno, CnoCno, GradeGrade)S-LS-L(SnoSno, SdeptSdept, SlocSloc)An Introduction to Database System2NF(續(xù))(續(xù))分解后的函數(shù)依賴圖

34、分解后的函數(shù)依賴圖SnoCnoGradeSCS-LSnoSdeptSlocv關(guān)系模式關(guān)系模式SCSC的碼為(的碼為(SnoSno,CnoCno)v關(guān)系模式關(guān)系模式S-LS-L的碼為的碼為SnoSnov這樣非主屬性對碼都是完全函數(shù)依賴這樣非主屬性對碼都是完全函數(shù)依賴 An Introduction to Database System 2NF(續(xù))(續(xù))v定義定義6.66.6:2NF2NF的定義的定義v若若R1NFR1NF,且,且每一個每一個非主屬性非主屬性都完全都完全函數(shù)依賴函數(shù)依賴于碼,則于碼,則R2NFR2NF。An Introduction to Database Systemv例:例:

35、vS-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 1NF1NFvS-L-C(Sno, Sdept, Sloc, Cno, Grade) S-L-C(Sno, Sdept, Sloc, Cno, Grade) 2NF 2NF SCSC(SnoSno, CnoCno, GradeGrade) 2NF 2NF S-LS-L(SnoSno, SdeptSdept, SlocSloc) 2NF 2NFAn Introduction to Database System 2NF(續(xù))(續(xù))v采用投影分解法將一個

36、采用投影分解法將一個1NF1NF的關(guān)系分解為多個的關(guān)系分解為多個2NF2NF的關(guān)系,可以在一定程度上減輕原的關(guān)系,可以在一定程度上減輕原1NF1NF關(guān)系關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。修改復(fù)雜等問題。v但將一個但將一個1NF1NF關(guān)系分解為多個關(guān)系分解為多個2NF2NF的關(guān)系,并不的關(guān)系,并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。冗余。An Introduction to Database Systemv6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v

37、6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化v6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)An Introduction to Database System 6.2.5 3NFv定義定義6.76.7:3NF3NF的定義的定義 關(guān)系模式關(guān)系模式RURF 中若不存在這樣的碼中若不存在這樣的碼X X、屬性組屬性組Y Y及非主屬性及非主屬性Z Z(Z Z Y Y), , 使得使得X XY Y,Y

38、YZ Z成立,成立,Y Y X X,則稱,則稱RURF 3NF3NF。 若若R3NF3NF,則每一個,則每一個非主屬性非主屬性既不部分依賴既不部分依賴于碼于碼也不傳遞依賴也不傳遞依賴于碼。于碼。 An Introduction to Database System3NF(續(xù))(續(xù))v例:例:2NF2NF關(guān)系模式關(guān)系模式S-L(Sno, Sdept, Sloc)S-L(Sno, Sdept, Sloc)中的中的函數(shù)依賴關(guān)系:函數(shù)依賴關(guān)系: SnoSdeptSnoSdept Sdept SnoSdept Sno SdeptSlocSdeptSlocv可得:可得: SnoSlocSnoSloc,即,

39、即S-LS-L中中存在非主屬性對碼的傳存在非主屬性對碼的傳遞函數(shù)依賴遞函數(shù)依賴,S-L S-L 3NF3NF傳遞傳遞An Introduction to Database System 3NF(續(xù))(續(xù))函數(shù)依賴圖:函數(shù)依賴圖:S-LSnoSdeptSlocAn Introduction to Database System3NF(續(xù))(續(xù))v解決方法解決方法 采用采用投影分解法投影分解法,把,把S-LS-L分解為兩個關(guān)系模式,分解為兩個關(guān)系模式,以消除傳遞函數(shù)依賴:以消除傳遞函數(shù)依賴:S-DS-D(SnoSno, SdeptSdept)D-LD-L(SdeptSdept,SlocSloc)S

40、-DS-D的碼為的碼為SnoSno, D-LD-L的碼為的碼為SdeptSdept。 分解后的關(guān)系模式分解后的關(guān)系模式S-DS-D與與D-LD-L中不再存在傳遞中不再存在傳遞依賴依賴An Introduction to Database System3NF(續(xù))(續(xù))vS-L(Sno, Sdept, Sloc) 2NFS-L(Sno, Sdept, Sloc) 2NFvS-L(Sno, Sdept, Sloc) 3NFS-L(Sno, Sdept, Sloc) 3NFvS-D(SnoS-D(Sno,Sdept) 3NFSdept) 3NFvD-L(SdeptD-L(Sdept, Sloc) 3

41、NFSloc) 3NFSnoSdeptS-DSdeptSlocD-L主碼主碼主碼主碼An Introduction to Database System3NF(續(xù))(續(xù))v采用投影分解法將一個采用投影分解法將一個2NF2NF的關(guān)系分解為多個的關(guān)系分解為多個3NF3NF的關(guān)系,可以在一定程度上解決原的關(guān)系,可以在一定程度上解決原2NF2NF關(guān)關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。度大、修改復(fù)雜等問題。v將一個將一個2NF2NF關(guān)系分解為多個關(guān)系分解為多個3NF3NF的關(guān)系后,仍的關(guān)系后,仍然不能完全消除關(guān)系模式中的各種異常情況然不能完

42、全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。和數(shù)據(jù)冗余。An Introduction to Database Systemv6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)v6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化An Introduction to Database System 6.2.6 BC范式(范式(BCNF)

43、v定義定義6.86.8: BCBC范式范式v關(guān)系模式關(guān)系模式RUR1NFF1NF,若,若XYXY且且Y Y X X時時X X必含有碼,則必含有碼,則RUR BCNFF BCNF。v等價于:每一個決定屬性因素都包含碼等價于:每一個決定屬性因素都包含碼An Introduction to Database SystemBCNF(續(xù))(續(xù))v若若RBCNF RBCNF 所有非主屬性對每一個碼都是完全函數(shù)依賴所有非主屬性對每一個碼都是完全函數(shù)依賴 所有的主屬性對每一個不包含它的碼,也是所有的主屬性對每一個不包含它的碼,也是完全函數(shù)依賴完全函數(shù)依賴 沒有任何屬性完全函數(shù)依賴于非碼的任何一沒有任何屬性完全

44、函數(shù)依賴于非碼的任何一組屬性組屬性vR BCNF R 3NFR BCNF R 3NF充分不必要An Introduction to Database SystemBCNF(續(xù))(續(xù))v 例例5 5 關(guān)系模式關(guān)系模式C C(CnoCno,CnameCname,PcnoPcno) C3NFC3NF CBCNFCBCNFv 例例6 6 關(guān)系模式關(guān)系模式S S(SnoSno,SnameSname,SdeptSdept,SageSage) 假定假定S S有兩個碼有兩個碼SnoSno,SnameSname S3NFS3NF。 S BCNFS BCNFAn Introduction to Database

45、SystemBCNF(續(xù))(續(xù))v例例7 7關(guān)系模式關(guān)系模式SJPSJP(S S,J J,P P) 函數(shù)依賴:函數(shù)依賴:(S(S,J J)PP;(J(J,P P)SS (S S,J J)與()與(J J,P P)都可以作為候選碼)都可以作為候選碼, ,屬性屬性相交相交 SJP3NFSJP3NF, SJPBCNFSJPBCNFAn Introduction to Database System BCNF(續(xù))(續(xù))v 例例88在關(guān)系模式在關(guān)系模式STJSTJ(S S,T T,J J)中,)中,S S表示表示學(xué)生,學(xué)生,T T表示教師,表示教師,J J表示課程。表示課程。 函數(shù)依賴:函數(shù)依賴:(S

46、(S,J)TJ)T,(S(S,T)JT)J,TJTJ(S(S,J)J)和和(S(S,T)T)都是候選碼都是候選碼An Introduction to Database System BCNF(續(xù))(續(xù)) JSJTSTSTJ中的函數(shù)依賴中的函數(shù)依賴An Introduction to Database SystemBCNF(續(xù))(續(xù))vSTJ3NFSTJ3NF 沒有任何非主屬性對碼傳遞依賴或部分依沒有任何非主屬性對碼傳遞依賴或部分依賴賴vSTJBCNFSTJBCNF T T是決定因素,是決定因素,T T不包含碼不包含碼An Introduction to Database SystemBCNF(

47、續(xù))(續(xù))v解決方法:將解決方法:將STJSTJ分解為二個關(guān)系模式:分解為二個關(guān)系模式: ST(SST(S,T) BCNFT) BCNF, TJ(TTJ(T,J) BCNFJ) BCNF v沒有沒有任何屬性任何屬性對碼的部分函數(shù)依賴和傳遞函數(shù)對碼的部分函數(shù)依賴和傳遞函數(shù)依賴依賴SJSTTJTJAn Introduction to Database System3NF與與BCNF的關(guān)系的關(guān)系vR BCNF R 3NFR BCNF R 3NFv如果如果R3NFR3NF,且,且R R只有一個候選碼只有一個候選碼 R BCNF R 3NFR BCNF R 3NF充分不必要充分必要An Introduc

48、tion to Database Systemv6.2.6 BCNF6.2.6 BCNFv6.2.7 6.2.7 多值依賴多值依賴v6.2.8 4NF6.2.8 4NFv6.2.9 6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)v6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴v6.2.2 6.2.2 碼碼v6.2.3 6.2.3 范式范式v6.2.4 2NF6.2.4 2NFv6.2.5 3NF6.2.5 3NF6.2 規(guī)范化規(guī)范化An Introduction to Database System6.2.7 多值依賴多值依賴v 例例99 學(xué)校中某一門課程由多個教師講授,他們使學(xué)校中某一門課程由多個教師講授,他們

49、使用相同的一套參考書。用相同的一套參考書。 每個教員可以講授多門課程,每種參考書可每個教員可以講授多門課程,每種參考書可以供多門課程使用。以供多門課程使用。An Introduction to Database System課課 程程 C教教 員員 T參參 考考 書書 B 物理物理數(shù)學(xué)數(shù)學(xué) 計算數(shù)學(xué)計算數(shù)學(xué)李李 勇勇王王 軍軍 李李 勇勇張張 平平 張張 平平 周周 峰峰 普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù)數(shù)學(xué)分析數(shù)學(xué)分析. 多值依賴(續(xù))多值依賴(續(xù))v非規(guī)范化關(guān)系非規(guī)范化關(guān)系A(chǔ)n Introduction to Dat

50、abase System普通物理學(xué)光學(xué)原理物理習(xí)題集普通物理學(xué)光學(xué)原理物理習(xí)題集數(shù)學(xué)分析微分方程高等代數(shù)數(shù)學(xué)分析微分方程高等代數(shù)李 勇李 勇李 勇王 軍王 軍王 軍李 勇李 勇李 勇張 平張 平張 平 物 理物 理物 理物 理物 理物 理數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué)數(shù) 學(xué) 參考書參考書B B教員教員T T課程課程C C多值依賴(續(xù))多值依賴(續(xù))v 用二維表表示TeachingAn Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))vTeachingTeachingBCNFBCNFvTeachingTeaching具有唯一候選碼具有唯一候選碼(C(C,

51、T T,B)B), 即全碼即全碼 An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù)) Teaching Teaching模式中存在的問題模式中存在的問題(1)(1)數(shù)據(jù)冗余度大數(shù)據(jù)冗余度大 (2)(2)插入操作復(fù)雜插入操作復(fù)雜(3) (3) 刪除操作復(fù)雜刪除操作復(fù)雜(4) (4) 修改操作復(fù)雜修改操作復(fù)雜存在多值依賴An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v 定義6.9 設(shè)設(shè)R(U)R(U)是一個屬性集是一個屬性集U U上的一個關(guān)系模式,上的一個關(guān)系模式, X X、 Y Y和和Z Z是是U U

52、的子的子集,并且集,并且Z ZU UX XY Y。關(guān)系模式。關(guān)系模式R(U)R(U)中中多值依賴多值依賴 XYXY成立,成立,當(dāng)且僅當(dāng)對當(dāng)且僅當(dāng)對R(U)R(U)的的任一關(guān)系任一關(guān)系r r,給定的一對(,給定的一對(x x,z z)值,有一)值,有一組組Y Y的值,這組值僅僅決定于的值,這組值僅僅決定于x x值而與值而與z z值無關(guān)值無關(guān)v 例例 TeachingTeaching(C, T, BC, T, B)An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v多值依賴的另一個等價的形式化的定義:多值依賴的另一個等價的形式化的定義: 在在R R(U

53、 U)的任一關(guān)系)的任一關(guān)系r r中,如果存在元組中,如果存在元組t t,s s 使得使得t t X X=s s X X ,那么就必然存在元組,那么就必然存在元組 w w,v v r r,(,(w w,v v可以與可以與s s,t t相同),使得相同),使得w w X X=v v X X=t t X X ,而,而w w Y Y=t t Y Y ,w w Z Z=s s Z Z ,v v Y Y=s s Y Y ,v v Z Z=t t Z Z (即交換(即交換s s,t t元組的元組的Y Y值所得的兩個新值所得的兩個新元組必在元組必在r r中),則中),則Y Y多值依賴于多值依賴于X X,記為

54、,記為X XY Y。 這里,這里,X X,Y Y是是U U的子集,的子集,Z Z= =U-XU-X- -Y Y。An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v平凡多值依賴和非平凡的多值依賴平凡多值依賴和非平凡的多值依賴若若XYXY,而,而Z Z,則稱,則稱 XYXY為為平凡的多值依賴平凡的多值依賴 否則稱否則稱XYXY為為非平凡的多值依賴非平凡的多值依賴An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))例例1010關(guān)系模式關(guān)系模式WSCWSC(W W,S S,C C)n W W表示倉庫,表示倉庫,

55、S S表示保管員,表示保管員,C C表表示商品示商品n 假設(shè)每個倉庫有若干個保管員,假設(shè)每個倉庫有若干個保管員,有若干種商品有若干種商品 n 每個保管員保管所在的倉庫的所每個保管員保管所在的倉庫的所有商品有商品n 每種商品被所有保管員保管每種商品被所有保管員保管 An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))WS且WC用下圖表

56、示這種對應(yīng) An Introduction to Database System多值依賴的性質(zhì)多值依賴的性質(zhì)(1 1)多值依賴具有對稱性)多值依賴具有對稱性若若XYXY,則,則XZXZ,其中,其中Z ZU UX XY Y(2 2)多值依賴具有傳遞性)多值依賴具有傳遞性若若XYXY,YZYZ, 則則XZ YXZ Y(3 3)函數(shù)依賴是多值依賴的特殊情況。)函數(shù)依賴是多值依賴的特殊情況。若若XYXY,則,則XYXY。(4 4)若)若XYXY,XZXZ,則,則XYXY Z Z。(5 5)若)若XYXY,XZXZ,則,則XYZXYZ。(6 6)若)若XYXY,XZXZ,則,則XY-ZXY-Z,XZ -

57、YXZ -Y。An Introduction to Database System多值依賴與函數(shù)依賴的區(qū)別多值依賴與函數(shù)依賴的區(qū)別(1)(1) 多值依賴的有效性與屬性集的范圍有關(guān)多值依賴的有效性與屬性集的范圍有關(guān)(2)(2) 若函數(shù)依賴若函數(shù)依賴XYXY在在R R(U U)上成立,)上成立,則對于任何則對于任何Y Y Y Y均有均有XY XY 成立成立 多值依賴多值依賴XYXY若在若在R(U)R(U)上成立,上成立,不能斷言對于任何不能斷言對于任何Y Y Y Y有有XY XY 成立成立An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴6

58、.2.2 碼6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴6.2.8 4NF6.2.9 規(guī)范化小結(jié)An Introduction to Database System6.2.8 4NFv定義6.10 關(guān)系模式關(guān)系模式RURF1NF1NF,如果對于,如果對于R R的每個非平凡多值依賴的每個非平凡多值依賴XYXY(Y Y X X),),X X都含都含有碼,則有碼,則R R4NF4NF。v如果如果R R 4NF 4NF, 則則R R BCNF BCNFn不允許不允許有非平凡且非函數(shù)依賴的有非平凡且非函數(shù)依賴的多值依多值依賴賴n允許允許的非平凡多值依賴是的

59、非平凡多值依賴是函數(shù)依賴函數(shù)依賴An Introduction to Database System4NF(續(xù))(續(xù))例例: Teaching(C,T,B) 4NFTeaching(C,T,B) 4NF 存在非平凡的多值依賴存在非平凡的多值依賴CTCT,且,且C C不是碼不是碼n 用投影分解法把用投影分解法把TeachingTeaching分解為如下兩個關(guān)系模式:分解為如下兩個關(guān)系模式: CT(C, T) 4NFCT(C, T) 4NF CB(C, B) 4NF CB(C, B) 4NF CT CT, CBCB是平凡多值依賴是平凡多值依賴 An Introduction to Database

60、 System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴6.2.2 碼6.2.3 范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴6.2.8 4NF6.2.9 規(guī)范化小結(jié)An Introduction to Database System6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)v 關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具關(guān)系數(shù)據(jù)庫的規(guī)范化理論是數(shù)據(jù)庫邏輯設(shè)計的工具v 目的:盡量消除插入、刪除一場,修改復(fù)雜,數(shù)據(jù)冗余目的:盡量消除插入、刪除一場,修改復(fù)雜,數(shù)據(jù)冗余v 基本思想:逐步消除數(shù)據(jù)依賴中不合適的部分基本思想:逐步消除數(shù)據(jù)依賴中不合適的部分 實質(zhì):概念的實質(zhì):概念的單一化

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論