




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、An Introduction to Database System數據庫系統概論數據庫系統概論An Introduction to Database System第六第六章章 關系數據理論關系數據理論xx大大學信息學院學信息學院An Introduction to Database Systemv基于某個數據庫管理系統設計數據庫,如何基于基于某個數據庫管理系統設計數據庫,如何基于數據庫系統編程數據庫系統編程n第第6章章 關系數據理論關系數據理論n第第7章章 數據庫設計數據庫設計n第第8章章 數據庫編程數據庫編程第二篇第二篇 設計與應用開發篇設計與應用開發篇An Introduction to
2、 Database System第六章第六章 關系數據理論關系數據理論6.1 問題的提出問題的提出6.2 規范化規范化6.3 數據依賴的公理系統數據依賴的公理系統*6.4 模式的分解模式的分解6.5 小結小結An Introduction to Database SystemAn Introduction to Database System6.1 問題的提出問題的提出關系數據庫邏輯設計關系數據庫邏輯設計n針對具體問題,如何構造一個適合于它的數據模式針對具體問題,如何構造一個適合于它的數據模式n數據庫邏輯設計的工具數據庫邏輯設計的工具關系數據庫的規范化理論關系數據庫的規范化理論An Intro
3、duction to Database System*問題的提出(續)問題的提出(續)v關系模式由五部分組成,是一個五元組:關系模式由五部分組成,是一個五元組: R(U, D, DOM, F)n關系名關系名R是符號化的元組語義是符號化的元組語義nU為一組屬性為一組屬性nD為屬性組為屬性組U中的屬性所來自的域中的屬性所來自的域nDOM為屬性到域的映射為屬性到域的映射nF為屬性組為屬性組U上的一組數據依賴上的一組數據依賴An Introduction to Database System問題的提出(續)問題的提出(續)n由于由于D、DOM與模式設計關系不大,因此在本章中把與模式設計關系不大,因此在
4、本章中把關系模式看作一個三元組:關系模式看作一個三元組:Rn當且僅當當且僅當U上的一個關系上的一個關系r滿足滿足F時,時,r稱為關系模式稱為關系模式R的一個關系的一個關系n作為二維表,關系要符合一個最基本的條件:每個分作為二維表,關系要符合一個最基本的條件:每個分量必須是不可分開的數據項。滿足了這個條件的關系量必須是不可分開的數據項。滿足了這個條件的關系模式就屬于第一范式(模式就屬于第一范式(1NF)An Introduction to Database System*問題的提出(續)問題的提出(續)v數據依賴數據依賴n 是一個關系內部屬性與屬性之間的一種約束關系是一個關系內部屬性與屬性之間的
5、一種約束關系l通過屬性間值的相等與否體現出來的數據間相互聯系通過屬性間值的相等與否體現出來的數據間相互聯系n 是現實世界屬性間相互聯系的抽象是現實世界屬性間相互聯系的抽象n 是數據內在的性質是數據內在的性質n 是語義的體現是語義的體現An Introduction to Database System*問題的提出(續)問題的提出(續)v數據依賴的主要類型數據依賴的主要類型n函數依賴(函數依賴(Functional Dependency,簡記為,簡記為FD)n多值依賴(多值依賴(Multi-Valued Dependency,簡記為,簡記為MVD)An Introduction to Datab
6、ase System*問題的提出(續)問題的提出(續)v函數依賴普遍存在于現實生活中函數依賴普遍存在于現實生活中n描述一個學生關系,可以有學號、姓名、系名等屬性。描述一個學生關系,可以有學號、姓名、系名等屬性。l一個學號只對應一個學生,一個學生只在一個系中學習一個學號只對應一個學生,一個學生只在一個系中學習l“學號學號”值確定后,學生的姓名及所在系的值就被唯一確值確定后,學生的姓名及所在系的值就被唯一確定。定。nSname=f(Sno),Sdept=f(Sno)l即即Sno函數決定函數決定SnamelSno函數決定函數決定Sdeptl記作記作SnoSname,SnoSdeptAn Introd
7、uction to Database System* 問題的提出(續)問題的提出(續)v例例6.1 建立一個描述學校教務的數據庫。建立一個描述學校教務的數據庫。涉及的對象包括:涉及的對象包括:n學生的學號(學生的學號(Sno)n所在系(所在系(Sdept)n系主任姓名(系主任姓名(Mname)n課程號(課程號(Cno)n成績(成績(Grade)An Introduction to Database System*問題的提出(續)問題的提出(續)n假設學校教務的數據庫模式用一個單一的關系模式假設學校教務的數據庫模式用一個單一的關系模式Student來表示,則該關系模式的屬性集合為:來表示,則該關
8、系模式的屬性集合為: U Sno, Sdept, Mname, Cno, Grade n現實世界的已知事實(語義):現實世界的已知事實(語義):l一個系有若干學生,一個系有若干學生, 但一個學生只屬于一個系;但一個學生只屬于一個系;l一個系只有一名(正職)負責人;一個系只有一名(正職)負責人;l一個學生可以選修多門課程,每門課程有若干學生選修;一個學生可以選修多門課程,每門課程有若干學生選修;l每個學生學習每一門課程有一個成績。每個學生學習每一門課程有一個成績。 An Introduction to Database System*問題的提出(續)問題的提出(續)n由此可得到屬性組由此可得到屬
9、性組U上的一組函數依賴上的一組函數依賴F: F=SnoSdept, Sdept Mname, (Sno, Cno) Grade SnoCnoSdeptMnameGradeAn Introduction to Database System*問題的提出(續)問題的提出(續)關系模式關系模式Student中存在的問題:中存在的問題:(1)數據冗余)數據冗余n浪費大量的存儲空間浪費大量的存儲空間l每一個系主任的姓名重復出現,重復次數與該系所有學每一個系主任的姓名重復出現,重復次數與該系所有學生的所有課程成績出現次數相同。生的所有課程成績出現次數相同。An Introduction to Databa
10、se System*問題的提出(續)問題的提出(續)(2)更新異常()更新異常(Update Anomalies)n數據冗余數據冗余 ,更新數據時,維護數據完整性代價大。更新數據時,維護數據完整性代價大。l某系更換系主任后,必須修改與該系學生有關的每一個某系更換系主任后,必須修改與該系學生有關的每一個元組。元組。An Introduction to Database System*問題的提出(續)問題的提出(續)(3)插入異常()插入異常(Insertion Anomalies)n如果一個系剛成立,尚無學生,則無法把這個系及其如果一個系剛成立,尚無學生,則無法把這個系及其系主任的信息存入數據庫
11、。系主任的信息存入數據庫。An Introduction to Database System*問題的提出(續)問題的提出(續)(4)刪除異常()刪除異常(Deletion Anomalies)n如果某個系的學生全部畢業了,如果某個系的學生全部畢業了, 則在刪除該系學生信則在刪除該系學生信息的同時,把這個系及其系主任的信息也丟掉了。息的同時,把這個系及其系主任的信息也丟掉了。An Introduction to Database System*問題的提出(續)問題的提出(續)v結論結論nStudent關系模式不是一個好的模式。關系模式不是一個好的模式。n一個一個“好好”的模式應當不會發生插入異
12、常、刪除異常和更的模式應當不會發生插入異常、刪除異常和更新異常,數據冗余應盡可能少。新異常,數據冗余應盡可能少。v原因原因n由存在于模式中的某些數據依賴引起的。由存在于模式中的某些數據依賴引起的。v解決方法解決方法n用規范化理論改造關系模式來消除其中不合適的數據依賴用規范化理論改造關系模式來消除其中不合適的數據依賴An Introduction to Database System*問題的提出(續)問題的提出(續)v把這個單一的模式分成三個關系模式:把這個單一的模式分成三個關系模式:nS(Sno,Sdept,Sno Sdept);nSC(Sno,Cno,Grade,(Sno,Cno) Grad
13、e);nDEPT(Sdept,Mname,Sdept Mname);v這三個模式都不會發生插入異常、刪除異常的問這三個模式都不會發生插入異常、刪除異常的問題,數據的冗余也得到了控制。題,數據的冗余也得到了控制。An Introduction to Database System第六章第六章 關系數據理論關系數據理論6.1 問題的提出問題的提出6.2 規范化規范化6.3 數據依賴的公理系統數據依賴的公理系統*6.4 模式的分解模式的分解6.5 小結小結An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范
14、式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Database System6.2.1 函數依賴函數依賴1.函數依賴函數依賴2.平凡函數依賴與非平凡函數依賴平凡函數依賴與非平凡函數依賴3.完全函數依賴與部分函數依賴完全函數依賴與部分函數依賴4.傳遞函數依賴傳遞函數依賴An Introduction to Database System*1. 函數依賴函數依賴v定義定義6.1 設設R(U)是一個屬性集是一個屬性集U上的關系模式,上的關系模式,X和和Y是是U的子集。若
15、對于的子集。若對于R(U)的任意一個可能的關的任意一個可能的關系系r,r 中不可能存在兩個元組在中不可能存在兩個元組在X上的屬性值相上的屬性值相等,等, 而在而在Y上的屬性值不等,上的屬性值不等, 則稱則稱“X函數確定函數確定Y”或或“Y函數依賴于函數依賴于X”,記作,記作XY。An Introduction to Database System函數依賴(續)函數依賴(續)v例例 Student(Sno, Sname, Ssex, Sage, Sdept), 假設不允許重名,則有假設不允許重名,則有:Sno Ssex, Sno SageSno Sdept, Sno SnameSname Sse
16、x, Sname SageSname Sdept但但Ssex Sage, Ssex Sdept若若XY,并且,并且YX, 則記為則記為XY。若若Y不函數依賴于不函數依賴于X, 則記為則記為XY。An Introduction to Database System函數依賴(續)函數依賴(續)SnoSnameSsexSageSdeptS1 張三張三男男20計算機系計算機系S1李四李四女女21自動化系自動化系S3王五王五男男20計算機系計算機系S4趙六趙六男男21計算機系計算機系S5田七田七男男20計算機系計算機系 . . . . . . . . . . . . . . .違背了違背了Sno Sna
17、meAn Introduction to Database System函數依賴(續)函數依賴(續)v由下面的關系表由下面的關系表, 能否得出能否得出Sno SnameSnoSnameSsexSageSdeptS1 張三張三男男20計算機系計算機系S2李四李四女女21自動化系自動化系S3王五王五男男20計算機系計算機系S4趙六趙六男男21計算機系計算機系S5田七田七男男20計算機系計算機系 . . . . . . . . . . . . . . .函數依賴不是指關系模式函數依賴不是指關系模式R的某個或某些關系實例滿足的的某個或某些關系實例滿足的約束條件,而是指約束條件,而是指R的所有關系實例均
18、要滿足的約束條件。的所有關系實例均要滿足的約束條件。An Introduction to Database System*函數依賴(續)函數依賴(續)v函數依賴是語義范疇的概念,只能根據數據的語函數依賴是語義范疇的概念,只能根據數據的語義來確定一個函數依賴。義來確定一個函數依賴。n例如例如“姓名姓名年齡年齡”這個函數依賴只有在不允許有同這個函數依賴只有在不允許有同名人的條件下成立名人的條件下成立An Introduction to Database System*2. 平凡函數依賴與非平凡函數依賴平凡函數依賴與非平凡函數依賴vXY,但,但Y X則稱則稱XY是是非平凡的函數依賴非平凡的函數依賴。
19、vXY,但,但YX 則稱則稱XY是是平凡的函數依賴平凡的函數依賴。對于任一關系模式,平凡函數依賴都是必然成立的,它對于任一關系模式,平凡函數依賴都是必然成立的,它不反映新的語義。不反映新的語義。若不特別聲明,若不特別聲明, 我們總是討論非平凡函數依賴。我們總是討論非平凡函數依賴。An Introduction to Database System*平凡函數依賴與非平凡函數依賴(續)平凡函數依賴與非平凡函數依賴(續)v若若XY,則,則X稱為這個函數依賴的稱為這個函數依賴的決定因素決定因素(Determinant)。)。v若若XY,YX,則記作,則記作XY。v若若Y不函數依賴于不函數依賴于X,則記
20、作,則記作X Y。An Introduction to Database System*3. 完全函數依賴與部分函數依賴完全函數依賴與部分函數依賴v定義定義6.2 在在R(U)中,如果中,如果XY,并且對于,并且對于X的任的任何一個真子集何一個真子集X, 都有都有 X Y, 則稱則稱Y對對X完全函完全函數依賴數依賴,記作,記作X Y。v若若XY,但,但Y不完全函數依賴于不完全函數依賴于X,則稱,則稱Y對對X部部分函數依賴分函數依賴,記作,記作X YFPAn Introduction to Database System*完全函數依賴與部分函數依賴(續)完全函數依賴與部分函數依賴(續)v例例 在
21、關系在關系SC(Sno, Cno, Grade)中,有:中,有:n 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) Grade (Sno, Cno)Sno (Sno, Cno) CnoFPPAn Introduction to Database System*4. 傳遞函數依賴傳遞函數依賴v定義定義6.3 在在R(U)中,如果中,如果XY(Y X),Y X,YZ,Z Y, 則稱則稱Z對對X傳遞函數依賴傳遞函數依賴(transitive functional dependency)。記為:。記為:X Z。n注注: 如果如果YX, 即即XY,則,則Z直接依賴
22、于直接依賴于X,而不是,而不是傳遞函數依賴。傳遞函數依賴。n例例 在關系在關系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname,Mname傳遞函數依賴于傳遞函數依賴于Sno傳遞傳遞An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Database System*6.2.2
23、 碼碼v定義定義6.4 設設K為為R中的屬性或屬性組合。若中的屬性或屬性組合。若K U,則,則K稱為稱為R的一個的一個候選碼候選碼(Candidate Key)。n如果如果U部分函數依賴于部分函數依賴于K,即,即K U,則則K稱為超碼稱為超碼 (Surpkey)。候選碼是最小的超碼,即)。候選碼是最小的超碼,即K的任意一個的任意一個真子集都不是候選碼。真子集都不是候選碼。v若關系模式若關系模式R有多個候選碼,則選定其中的一個有多個候選碼,則選定其中的一個做為做為主碼主碼(Primary key)。FPAn Introduction to Database System*碼(續)碼(續)v主屬性
24、與非主屬性主屬性與非主屬性n包含在任何一個候選碼中的屬性包含在任何一個候選碼中的屬性 ,稱為主屬性,稱為主屬性 (Prime attribute) n不包含在任何碼中的屬性稱為非主屬性(不包含在任何碼中的屬性稱為非主屬性(Nonprime attribute)或非碼屬性()或非碼屬性(Non-key attribute) v全碼:整個屬性組是碼,稱為全碼(全碼:整個屬性組是碼,稱為全碼(All-key) An Introduction to Database System*碼(續)碼(續)例例6.2S(Sno, Sdept, Sage),單個屬性,單個屬性Sno是碼是碼 SC(Sno, Cno
25、, Grade)中,中,(Sno, Cno)是碼是碼例例6.3 R(P,W,A) P:演奏者:演奏者 W:作品:作品 A:聽眾:聽眾一個演奏者可以演奏多個作品一個演奏者可以演奏多個作品某一作品可被多個演奏者演奏某一作品可被多個演奏者演奏聽眾可以欣賞不同演奏者的不同作品聽眾可以欣賞不同演奏者的不同作品 碼為碼為(P,W,A),即,即All-Key An Introduction to Database System*碼(續)碼(續)v定義定義6.5 關系模式關系模式 R中屬性或屬性組中屬性或屬性組X 并非并非 R的的碼,但碼,但 X 是另一個關系模式的碼,則稱是另一個關系模式的碼,則稱 X 是是
26、R 的的外部碼外部碼(Foreign key)也稱)也稱外碼外碼。nSC(Sno,Cno,Grade)中,中,Sno不是碼不是碼nSno是是 S(Sno,Sdept,Sage)的碼,則的碼,則Sno是是SC的外碼的外碼 v主碼與外部碼一起提供了表示關系間聯系的手段主碼與外部碼一起提供了表示關系間聯系的手段An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An I
27、ntroduction to Database System*6.2.3 范式范式v范式是符合某一種級別的關系模式的集合。范式是符合某一種級別的關系模式的集合。v關系數據庫中的關系必須滿足一定的要求。滿足關系數據庫中的關系必須滿足一定的要求。滿足 不同程度要求的為不同范式。不同程度要求的為不同范式。v范式的種類:范式的種類:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)An Introduction to Database System*范式(續)范式(續)v各種范式之間存在聯系:各種范
28、式之間存在聯系:n某一關系模式某一關系模式R為第為第n范式,可簡記為范式,可簡記為RnNF。NF5NF4BCNFNF3NF2NF1v一個低一級范式的關系模式,通一個低一級范式的關系模式,通過模式分解(過模式分解(schema decomposition)可以轉換為若)可以轉換為若干個高一級范式的關系模式的集干個高一級范式的關系模式的集合,這種過程就叫合,這種過程就叫規范化規范化(normalization)。)。An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3
29、NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Database System*6.2.4 2NFv定義定義6.6 若關系模式若關系模式R1NF,并且每一個非主屬性,并且每一個非主屬性都完全函數依賴于任何一個候選碼,則都完全函數依賴于任何一個候選碼,則R2NFv例例6.4 S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc為學生的住處,并且每個系的學生住在同一個為學生的住處,并且每個系的學生住在同一個地方。地方。S-L-C的碼為的碼為(Sno,Cno)。函數依賴有函數依賴有n(S
30、no,Cno)GradenSnoSdept, (Sno,Cno)SdeptnSnoSloc, (Sno,Cno)SlocnSdeptSlocFPPAn Introduction to Database System*2NF(續)(續)SnoCnoGradeSdeptSlocn關系模式關系模式S-L-C不屬于不屬于2NFn非主屬性非主屬性Sdept、Sloc并不完全依賴于碼并不完全依賴于碼An Introduction to Database System*2NF(續)(續)v一個關系模式不屬于一個關系模式不屬于2NF,會產生以下問題:,會產生以下問題:n插入異常插入異常l如果插入一個新學生,但
31、該生未選課,即該生無如果插入一個新學生,但該生未選課,即該生無Cno,由于插入元組時,必須給定碼值,因此插入失敗。由于插入元組時,必須給定碼值,因此插入失敗。n刪除異常刪除異常l如果如果S4只選了一門課只選了一門課C3,現在他不再選這門課,則刪除,現在他不再選這門課,則刪除C3后,整個元組的其他信息也被刪除了。后,整個元組的其他信息也被刪除了。n修改復雜修改復雜l如果一個學生選了多門課,則如果一個學生選了多門課,則Sdept,Sloc被存儲了多被存儲了多次。如果該生轉系,則需要修改所有相關的次。如果該生轉系,則需要修改所有相關的Sdept和和Sloc,造成修改的復雜化。,造成修改的復雜化。An
32、 Introduction to Database System*2NF(續)(續)v出現這種問題的原因出現這種問題的原因n例子中有兩類非主屬性:例子中有兩類非主屬性:l一類如一類如Grade,它對碼完全函數依賴,它對碼完全函數依賴l另一類如另一類如Sdept、Sloc,它們對碼不是完全函數依賴,它們對碼不是完全函數依賴v解決方法:解決方法:n用投影分解把關系模式用投影分解把關系模式S-L-C分解成兩個關系模式分解成兩個關系模式lSC(Sno,Cno,Grade)lS-L(Sno,Sdept,Sloc)An Introduction to Database System2NF(續)(續)n S
33、C的碼為的碼為(Sno,Cno),SL的碼為的碼為Sno,這樣使得非主屬,這樣使得非主屬性對碼都是完全函數依賴了性對碼都是完全函數依賴了SnoCnoGradeSnoSdeptSloc圖圖6.4 SC中的函數依賴中的函數依賴圖圖6.5 S-L中的函數依賴中的函數依賴An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Databa
34、se System* 6.2.5 3NFv定義定義6.7 設關系模式設關系模式R1NF,若若R中不存在中不存在這樣的碼這樣的碼X、屬性組、屬性組Y及非主屬性及非主屬性Z(Z Y), 使使得得XY,YZ成立,成立,Y X不成立,則稱不成立,則稱R 3NF。n SC沒有傳遞依賴,因此沒有傳遞依賴,因此SC 3NFn S-L中中Sno Sdept( Sdept Sno), SdeptSloc,可得可得Sno Sloc。n 解決的辦法是將解決的辦法是將S-L分解成分解成lS-D(Sno,Sdept) 3NFlD-L(Sdept,Sloc) 3NF傳遞傳遞An Introduction to Datab
35、ase System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Database System* 6.2.6 BCNFvBCNF(Boyce Codd Normal Form)由)由Boyce和和Codd提出,比提出,比3NF更進了一步。通常認為更進了一步。通常認為BCNF是修正的第三范式,有時也稱為擴充的第是修正的第三范式,有時也稱為擴充的第三范式。三范式。v定義定義6.8 設關系模
36、式設關系模式R1NF,若,若X Y且且Y X時時X必含有碼,則必含有碼,則RBCNF。v換言之,在關系模式換言之,在關系模式R中,如果每一個決定中,如果每一個決定屬性集都包含候選碼,則屬性集都包含候選碼,則RBCNF。An Introduction to Database System*BCNF(續)(續)vBCNF的關系模式所具有的性質的關系模式所具有的性質n所有非主屬性都完全函數依賴于每個候選碼所有非主屬性都完全函數依賴于每個候選碼n所有主屬性都完全函數依賴于每個不包含它的候選碼所有主屬性都完全函數依賴于每個不包含它的候選碼n沒有任何屬性完全函數依賴于非碼的任何一組屬性沒有任何屬性完全函數
37、依賴于非碼的任何一組屬性v如果一個關系數據庫中的所有關系模式都屬于如果一個關系數據庫中的所有關系模式都屬于BCNF,那么在函數依賴范疇內,它已實現了模式,那么在函數依賴范疇內,它已實現了模式的徹底分解,達到了最高的規范化程度,消除了插的徹底分解,達到了最高的規范化程度,消除了插入異常和刪除異常。入異常和刪除異常。An Introduction to Database Systemv例例6.5考察關系模式考察關系模式C(Cno,Cname,Pcno)n 它只有一個碼它只有一個碼Cno,沒有任何屬性對,沒有任何屬性對Cno部分依賴或部分依賴或傳遞依賴,所以傳遞依賴,所以C3NF。n 同時同時C中中
38、Cno是唯一的決定因素,所以是唯一的決定因素,所以CBCNF。n 對于關系模式對于關系模式SC(Sno,Cno,Grade)可作同樣分析。可作同樣分析。BCNF(續)(續)An Introduction to Database Systemv例例6.6 關系模式關系模式S(Sno,Sname,Sdept,Sage),n假定假定Sname也具有唯一性,那么也具有唯一性,那么S就有兩個碼,這兩就有兩個碼,這兩個碼都由單個屬性組成,彼此不相交。個碼都由單個屬性組成,彼此不相交。n其他屬性不存在對碼的傳遞依賴與部分依賴,所以其他屬性不存在對碼的傳遞依賴與部分依賴,所以S3NF。n同時同時S中除中除Sn
39、o,Sname外沒有其他決定因素,所以外沒有其他決定因素,所以S也屬于也屬于BCNF。BCNF(續)續)An Introduction to Database Systemv例例6.7 關系模式關系模式SJP(S,J,P)中,中,S是學生,是學生,J表示表示 課程,課程,P表示名次。每一個學生選修每門課程的表示名次。每一個學生選修每門課程的 成績有一定的名次,每門課程中每一名次只有一成績有一定的名次,每門課程中每一名次只有一 個學生(即沒有并列名次)。個學生(即沒有并列名次)。n 由語義可得到函數依賴:由語義可得到函數依賴: (S,J)P;(J,P)Sn (S,J)與與(J,P)都可以作為候選
40、碼。都可以作為候選碼。n 關系模式中沒有屬性對碼傳遞依賴或部分依賴,所以關系模式中沒有屬性對碼傳遞依賴或部分依賴,所以 SJP3NF。n 除除(S,J)與與(J,P)以外沒有其他決定因素,所以以外沒有其他決定因素,所以 SJPBCNF。BCNF(續)(續)An Introduction to Database SystemBCNF(續)(續)v例例6.8 關系模式關系模式STJ(S,T,J)中,中,S表示學生,表示學生,T表表 示教師,示教師,J表示課程。每一教師只教一門課。每表示課程。每一教師只教一門課。每 門課有若干教師,某一學生選定某門課,就對應門課有若干教師,某一學生選定某門課,就對應
41、 一個固定的教師。一個固定的教師。n 由語義可得到函數依賴:由語義可得到函數依賴:(S,J)T;(S,T)J;TJn 因為沒有任何非主屬性對碼傳遞依賴或部分依賴,因為沒有任何非主屬性對碼傳遞依賴或部分依賴, STJ 3NF。n 因為因為T是決定因素,而是決定因素,而T不包含碼,所以不包含碼,所以STJ BCNF 關系。關系。圖圖6.6 STJ中的函數依賴中的函數依賴An Introduction to Database SystemBCNF(續)(續)v對于不是對于不是BCNF的關系模式,仍然存在不合適的的關系模式,仍然存在不合適的地方。地方。v非非BCNF的關系模式也可以通過分解成為的關系模
42、式也可以通過分解成為BCNF。例如例如STJ可分解為可分解為ST(S,T)與與TJ(T,J),它們都是,它們都是BCNF。An Introduction to Database SystemBCNF(續)(續)v3NF和和BCNF是在函數依賴的條件下對模式分解是在函數依賴的條件下對模式分解所能達到的分離程度的測度。所能達到的分離程度的測度。n一個模式中的關系模式如果都屬于一個模式中的關系模式如果都屬于BCNF,那么在函數,那么在函數依賴范疇內,它已實現了徹底的分離,已消除了插入依賴范疇內,它已實現了徹底的分離,已消除了插入和刪除的異常。和刪除的異常。n3NF的的“不徹底不徹底”性表現在可能存在
43、主屬性對碼的部性表現在可能存在主屬性對碼的部分依賴和傳遞依賴。分依賴和傳遞依賴。An Introduction to Database System6.2 規范化規范化6.2.1 函數依賴函數依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規范化小結規范化小結An Introduction to Database System*6.2.7 多值依賴多值依賴例例6.9設學校中某一門課程由多個教師講授,他們設學校中某一門課程由多個教師講授,他們使用相同的一套參考書。使用相同的一套參考書。每個教
44、員可以講授多門課每個教員可以講授多門課程,每種參考書可以供多門課程使用程,每種參考書可以供多門課程使用用關系模式用關系模式Teaching(C,T,B)來表示課程來表示課程C、教師、教師T和參和參考書考書B之間的關系。之間的關系。An Introduction to Database System多值依賴(續)多值依賴(續)表表6.3 非規范化關系示例非規范化關系示例課程課程 C教員教員 T參考書參考書 B 物理物理 數學數學 計算數學計算數學李李 勇勇王王 軍軍 李李 勇勇張張 平平張張 平平周周 峰峰 普通物理學普通物理學光學原理光學原理 物理習題集物理習題集數學分析數學分析微分方程微分方
45、程 高等代數高等代數 數學分析數學分析 An Introduction to Database System*多值依賴(續)多值依賴(續)表表6.4 規范化規范化的二維表的二維表 Teaching 課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學普通物理學物物 理理李李 勇勇光學原理光學原理物物 理理李李 勇勇物理習題集物理習題集物物 理理王王 軍軍普通物理學普通物理學物物 理理王王 軍軍光學原理光學原理物物 理理王王 軍軍物理習題集物理習題集數數 學學李李 勇勇普通物理學普通物理學數數 學學李李 勇勇光學原理光學原理數數 學學李李 勇勇物理習題集物理習題集數數 學學張張
46、 平平普通物理學普通物理學數數 學學張張 平平光學原理光學原理數數 學學張張 平平物理習題集物理習題集An Introduction to Database System*多值依賴(續)多值依賴(續)vTeaching具有唯一候選碼具有唯一候選碼(C,T,B), 即全碼。即全碼。vTeachingBCNF An Introduction to Database System*多值依賴(續)多值依賴(續)課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學普通物理學物物 理理李李 勇勇光學原理光學原理物物 理理李李 勇勇物理習題集物理習題集物物 理理王王 軍軍普通物理學普通物理
47、學物物 理理王王 軍軍光學原理光學原理物物 理理王王 軍軍物理習題集物理習題集數數 學學李李 勇勇普通物理學普通物理學數數 學學李李 勇勇光學原理光學原理數數 學學李李 勇勇物理習題集物理習題集數數 學學張張 平平普通物理學普通物理學數數 學學張張 平平光學原理光學原理數數 學學張張 平平物理習題集物理習題集(1)數據冗余度大:有多數據冗余度大:有多少名任課教師,參考書少名任課教師,參考書就要存儲多少次。就要存儲多少次。An Introduction to Database System*多值依賴(續)多值依賴(續)課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學普通物理
48、學物物 理理李李 勇勇光學原理光學原理物物 理理李李 勇勇物理習題集物理習題集物物 理理王王 軍軍普通物理學普通物理學物物 理理王王 軍軍光學原理光學原理物物 理理王王 軍軍物理習題集物理習題集數數 學學李李 勇勇普通物理學普通物理學數數 學學李李 勇勇光學原理光學原理數數 學學李李 勇勇物理習題集物理習題集數數 學學張張 平平普通物理學普通物理學數數 學學張張 平平光學原理光學原理數數 學學張張 平平物理習題集物理習題集(2)增加操作復雜:當增加操作復雜:當某一課程增加一名任某一課程增加一名任課教師時,該課程有課教師時,該課程有多少本參照書,就必多少本參照書,就必須插入多少個元組。須插入多少
49、個元組。An Introduction to Database System*多值依賴(續)多值依賴(續)課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學普通物理學物物 理理李李 勇勇光學原理光學原理物物 理理李李 勇勇物理習題集物理習題集物物 理理王王 軍軍普通物理學普通物理學物物 理理王王 軍軍光學原理光學原理物物 理理王王 軍軍物理習題集物理習題集數數 學學李李 勇勇普通物理學普通物理學數數 學學李李 勇勇光學原理光學原理數數 學學李李 勇勇物理習題集物理習題集數數 學學張張 平平普通物理學普通物理學數數 學學張張 平平光學原理光學原理數數 學學張張 平平物理習題集
50、物理習題集(3)刪除操作復雜:某一刪除操作復雜:某一門課要去掉一本參考書,門課要去掉一本參考書,該課程有多少名教師,該課程有多少名教師,就必須刪除多少個元組。就必須刪除多少個元組。An Introduction to Database System*多值依賴(續)多值依賴(續)課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學普通物理學物物 理理李李 勇勇光學原理光學原理物物 理理李李 勇勇物理習題集物理習題集物物 理理王王 軍軍普通物理學普通物理學物物 理理王王 軍軍光學原理光學原理物物 理理王王 軍軍物理習題集物理習題集數數 學學李李 勇勇普通物理學普通物理學數數 學學
51、李李 勇勇光學原理光學原理數數 學學李李 勇勇物理習題集物理習題集數數 學學張張 平平普通物理學普通物理學數數 學學張張 平平光學原理光學原理數數 學學張張 平平物理習題集物理習題集(4)修改操作復雜:某一修改操作復雜:某一門課要修改一本參考書,門課要修改一本參考書,該課程有多少名教師,該課程有多少名教師,就必須修改多少個元組。就必須修改多少個元組。產生產生原因原因: 存在多值依賴存在多值依賴An Introduction to Database System*多值依賴(續)多值依賴(續)v定義定義6.9 設設R(U)是屬性集是屬性集U上的一個關系模式。上的一個關系模式。X,Y,Z是是U的子集
52、,并且的子集,并且Z=U-X-Y。關系模式。關系模式R(U)中多值依賴中多值依賴XY成立,當且僅當對成立,當且僅當對R(U)的任一的任一關系關系r,給定的一對,給定的一對(x,z)值,有一組值,有一組Y的值,這組的值,這組值僅僅決定于值僅僅決定于x值而與值而與z值無關。值無關。v例例 Teaching(C, T, B) 對于對于C的每一個值,的每一個值,T有一組值與之對應,而不論有一組值與之對應,而不論B取何值。因此取何值。因此T多值依賴于多值依賴于C,即,即CT。 An Introduction to Database System多值依賴(續)多值依賴(續)v多值依賴的另一個等價的定義多值
53、依賴的另一個等價的定義在在R(U)的任一關系的任一關系r中,如果存在元組中,如果存在元組t,s使得使得tX=sX,那么就必然存在元組,那么就必然存在元組w,vr,(,(w,v可以與可以與s,t相相同)同), 使得使得wX=vX=tX,而,而wY=tY,wZ=sZ,vY=sY,vZ=tZ(即交換(即交換s,t元組的元組的Y值所得的兩值所得的兩個新元組必在個新元組必在r中則中則Y多值依賴于多值依賴于X,記為,記為XY。這里。這里X,Y是是U的子集,的子集,Z=U-X-Y。An Introduction to Database System*多值依賴(續)多值依賴(續)v平凡多值依賴和非平凡的多值依
54、賴平凡多值依賴和非平凡的多值依賴n 若若XY,而,而Z,即,即Z為空,為空,則稱則稱XY為為平凡平凡的多值依賴的多值依賴。n 否則稱否則稱XY為為非平凡的多值依賴非平凡的多值依賴。An Introduction to Database System多值依賴(續)多值依賴(續)WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5例例6.10關系模式關系模式WSC(W,S,C)中,中,W表示倉庫,表示倉庫,S 表示保管表示保管員,員,C 表示商品。假設每個倉庫有若干個保管員,有若干種表示商品。假設每個倉庫有若干個保管員,有若
55、干種商品。每個保管員保管所在倉庫的所有商品,每種商品被所商品。每個保管員保管所在倉庫的所有商品,每種商品被所有保管員保管。有保管員保管。An Introduction to Database System多值依賴(續)多值依賴(續)v按照語義對于按照語義對于W的每一個值的每一個值Wi,S有一個完整的集有一個完整的集合與之對應而不問合與之對應而不問C取何值。所以取何值。所以WS。v如圖如圖6.7所示所示n 對應對應W的某一個值的某一個值Wi的全部的全部S值記作值記作SWi(表示此倉庫(表示此倉庫工作的全部保管員)工作的全部保管員)n 全部全部C值記作值記作CWi(表示在此倉庫中存放的所有商品)(
56、表示在此倉庫中存放的所有商品)n 應當有應當有SWi中的每一個值和中的每一個值和CWi中的每一個中的每一個C值對應值對應n 于是于是SWi與與CWi之間正好形成一個完全二分圖,因而之間正好形成一個完全二分圖,因而WS。An Introduction to Database System多值依賴(續)多值依賴(續)v由于由于C與與S的完全對稱性,必然有的完全對稱性,必然有WC成立。成立。圖圖6.7 WS且且WCAn Introduction to Database System多值依賴(續)多值依賴(續)v多值依賴的性質多值依賴的性質(1)多值依賴具有對稱性。)多值依賴具有對稱性。即若即若XY,
57、則,則XZ,其中,其中ZUXYl多值依賴的對稱性可以用完全二分圖直觀地表示出來。多值依賴的對稱性可以用完全二分圖直觀地表示出來。l從從例例6.10 容易看出,因為每個保管員保管所有商品,容易看出,因為每個保管員保管所有商品,同時每種商品被所有保管員保管,顯然若同時每種商品被所有保管員保管,顯然若WS,必然,必然有有WC。An Introduction to Database System*多值依賴(續)多值依賴(續)(2)多值依賴具有傳遞性。即若)多值依賴具有傳遞性。即若XY,YZ, 則則 XZ -Y。(3)函數依賴是多值依賴的特殊情況。即若)函數依賴是多值依賴的特殊情況。即若XY,則,則 X
58、Y。(4)若)若XY,XZ,則,則XYZ。(5)若)若XY,XZ,則,則XYZ。(6)若)若XY,XZ,則,則XY-Z,XZ -Y。An Introduction to Database System*多值依賴(續)多值依賴(續)v多值依賴與函數依賴的區別多值依賴與函數依賴的區別(1)多值依賴的有效性與屬性集的范圍有關)多值依賴的有效性與屬性集的范圍有關l若若XY在在U上成立,則在上成立,則在W(XY W U)上一定成)上一定成立;反之則不然,即立;反之則不然,即XY在在W(W U)上成立,在)上成立,在U上并不一定成立。上并不一定成立。l原因:多值依賴的定義中不僅涉及屬性組原因:多值依賴的定
59、義中不僅涉及屬性組X和和Y,而且涉,而且涉及及U中其余屬性中其余屬性Z。An Introduction to Database System*多值依賴(續)多值依賴(續)n 多值依賴的有效性與屬性集的范圍有關(續)多值依賴的有效性與屬性集的范圍有關(續)l一般地,在一般地,在R(U)上若有上若有XY在在W(W U)上成立,則上成立,則稱稱XY為為R(U)的嵌入型多值依賴。的嵌入型多值依賴。l函數依賴函數依賴XY的有效性僅決定于的有效性僅決定于X、Y這兩個屬性集的這兩個屬性集的值值l只要在只要在R(U)的任何一個關系的任何一個關系r中,元組在中,元組在X和和Y上的值滿上的值滿足定義足定義6.l,
60、則函數依賴,則函數依賴XY在任何屬性集在任何屬性集W(XY W U)上成立。上成立。An Introduction to Database System*多值依賴(續)多值依賴(續)(2)若函數依賴)若函數依賴XY在在R (U)上成立,則對于任何上成立,則對于任何Y Y均有均有XY 成立。多值依賴成立。多值依賴XY若在若在R(U)上成立,上成立,不能斷言對于任何不能斷言對于任何Y Y有有XY 成立。成立。An Introduction to Database System*多值依賴(續)多值依賴(續) 例如,關系例如,關系R(A,B,C,D),ABC成立,當然也有成立,當然也有AD成立。有成立
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園托班語言發展計劃
- 部編小學語文五年級課堂互動活動計劃
- 2025年公共事業單位企業文化建設計劃
- 施工現場安全培訓與治安保衛管理計劃
- 2025教科版一年級科學上冊教案計劃
- 二年級數學解題技巧訓練活動計劃
- 湘教版三年級美術教學方案落地計劃
- 以規范化疼痛教育賦能胃癌手術患者術后鎮痛自我管理
- 以行為文化塑造國家示范性綜合實踐基地靈魂-M基地深度剖析與啟示
- 以自我解釋賦能高中物理問題解決教學的深度探索
- 2025年陜西省中考數學試題(解析版)
- 黨課課件含講稿:《關于加強黨的作風建設論述摘編》輔導報告
- 國家開放大學行管專科《監督學》期末紙質考試總題庫2025春期版
- 高中家長會 共筑夢想,攜手未來課件-高二下學期期末家長會
- GB/T 3280-2015不銹鋼冷軋鋼板和鋼帶
- 國家開發銀行山東省分行 簡歷表
- 農村低壓電力技術規程(國標正本)
- 世界電網頻率及電壓
- 服裝購銷合同
- 學科帶人人陳述內容ppt課件
- 風機通訊故障處理
評論
0/150
提交評論