




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、An Introduction to Database System數(shù)據(jù)庫(kù)系統(tǒng)概論數(shù)據(jù)庫(kù)系統(tǒng)概論An Introduction to Database System第六第六章章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論An Introduction to Database Systemv基于某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)數(shù)據(jù)庫(kù),如何基于基于某個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)計(jì)數(shù)據(jù)庫(kù),如何基于數(shù)據(jù)庫(kù)系統(tǒng)編程數(shù)據(jù)庫(kù)系統(tǒng)編程n第第6章章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論n第第7章章 數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)n第第8章章 數(shù)據(jù)庫(kù)編程數(shù)據(jù)庫(kù)編程第二篇第二篇 設(shè)計(jì)與應(yīng)用開發(fā)篇設(shè)計(jì)與應(yīng)用開發(fā)篇An Introduction to Database Syst
2、em第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論6.1 問題的提出問題的提出6.2 規(guī)范化規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)數(shù)據(jù)依賴的公理系統(tǒng)*6.4 模式的分解模式的分解6.5 小結(jié)小結(jié)An Introduction to Database SystemAn Introduction to Database System6.1 問題的提出問題的提出關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)n針對(duì)具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式針對(duì)具體問題,如何構(gòu)造一個(gè)適合于它的數(shù)據(jù)模式n數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)的工具關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論關(guān)系數(shù)據(jù)庫(kù)的規(guī)范化理論An Introduction to Dat
3、abase System*問題的提出(續(xù))問題的提出(續(xù))v關(guān)系模式由五部分組成,是一個(gè)五元組:關(guān)系模式由五部分組成,是一個(gè)五元組: R(U, D, DOM, F)n關(guān)系名關(guān)系名R是符號(hào)化的元組語(yǔ)義是符號(hào)化的元組語(yǔ)義nU為一組屬性為一組屬性nD為屬性組為屬性組U中的屬性所來(lái)自的域中的屬性所來(lái)自的域nDOM為屬性到域的映射為屬性到域的映射nF為屬性組為屬性組U上的一組數(shù)據(jù)依賴上的一組數(shù)據(jù)依賴An Introduction to Database System問題的提出(續(xù))問題的提出(續(xù))n由于由于D、DOM與模式設(shè)計(jì)關(guān)系不大,因此在本章中把與模式設(shè)計(jì)關(guān)系不大,因此在本章中把關(guān)系模式看作一個(gè)三元
4、組:關(guān)系模式看作一個(gè)三元組:Rn當(dāng)且僅當(dāng)當(dāng)且僅當(dāng)U上的一個(gè)關(guān)系上的一個(gè)關(guān)系r滿足滿足F時(shí),時(shí),r稱為關(guān)系模式稱為關(guān)系模式R的一個(gè)關(guān)系的一個(gè)關(guān)系n作為二維表,關(guān)系要符合一個(gè)最基本的條件:每個(gè)分作為二維表,關(guān)系要符合一個(gè)最基本的條件:每個(gè)分量必須是不可分開的數(shù)據(jù)項(xiàng)。滿足了這個(gè)條件的關(guān)系量必須是不可分開的數(shù)據(jù)項(xiàng)。滿足了這個(gè)條件的關(guān)系模式就屬于第一范式(模式就屬于第一范式(1NF)An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))v數(shù)據(jù)依賴數(shù)據(jù)依賴n 是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系是一個(gè)關(guān)系內(nèi)部屬性與屬性之間的一種約束關(guān)系l通過屬性間值的
5、相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間相互聯(lián)系通過屬性間值的相等與否體現(xiàn)出來(lái)的數(shù)據(jù)間相互聯(lián)系n 是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象是現(xiàn)實(shí)世界屬性間相互聯(lián)系的抽象n 是數(shù)據(jù)內(nèi)在的性質(zhì)是數(shù)據(jù)內(nèi)在的性質(zhì)n 是語(yǔ)義的體現(xiàn)是語(yǔ)義的體現(xiàn)An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))v數(shù)據(jù)依賴的主要類型數(shù)據(jù)依賴的主要類型n函數(shù)依賴(函數(shù)依賴(Functional Dependency,簡(jiǎn)記為,簡(jiǎn)記為FD)n多值依賴(多值依賴(Multi-Valued Dependency,簡(jiǎn)記為,簡(jiǎn)記為MVD)An Introduction to Database System*問題的
6、提出(續(xù))問題的提出(續(xù))v函數(shù)依賴普遍存在于現(xiàn)實(shí)生活中函數(shù)依賴普遍存在于現(xiàn)實(shí)生活中n描述一個(gè)學(xué)生關(guān)系,可以有學(xué)號(hào)、姓名、系名等屬性。描述一個(gè)學(xué)生關(guān)系,可以有學(xué)號(hào)、姓名、系名等屬性。l一個(gè)學(xué)號(hào)只對(duì)應(yīng)一個(gè)學(xué)生,一個(gè)學(xué)生只在一個(gè)系中學(xué)習(xí)一個(gè)學(xué)號(hào)只對(duì)應(yīng)一個(gè)學(xué)生,一個(gè)學(xué)生只在一個(gè)系中學(xué)習(xí)l“學(xué)號(hào)學(xué)號(hào)”值確定后,學(xué)生的姓名及所在系的值就被唯一確值確定后,學(xué)生的姓名及所在系的值就被唯一確定。定。nSname=f(Sno),Sdept=f(Sno)l即即Sno函數(shù)決定函數(shù)決定SnamelSno函數(shù)決定函數(shù)決定Sdeptl記作記作SnoSname,SnoSdeptAn Introduction to Data
7、base System* 問題的提出(續(xù))問題的提出(續(xù))v例例6.1 建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫(kù)。建立一個(gè)描述學(xué)校教務(wù)的數(shù)據(jù)庫(kù)。涉及的對(duì)象包括:涉及的對(duì)象包括:n學(xué)生的學(xué)號(hào)(學(xué)生的學(xué)號(hào)(Sno)n所在系(所在系(Sdept)n系主任姓名(系主任姓名(Mname)n課程號(hào)(課程號(hào)(Cno)n成績(jī)(成績(jī)(Grade)An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))n假設(shè)學(xué)校教務(wù)的數(shù)據(jù)庫(kù)模式用一個(gè)單一的關(guān)系模式假設(shè)學(xué)校教務(wù)的數(shù)據(jù)庫(kù)模式用一個(gè)單一的關(guān)系模式Student來(lái)表示,則該關(guān)系模式的屬性集合為:來(lái)表示,則該關(guān)系模式的屬性集合為: U S
8、no, Sdept, Mname, Cno, Grade n現(xiàn)實(shí)世界的已知事實(shí)(語(yǔ)義):現(xiàn)實(shí)世界的已知事實(shí)(語(yǔ)義):l一個(gè)系有若干學(xué)生,一個(gè)系有若干學(xué)生, 但一個(gè)學(xué)生只屬于一個(gè)系;但一個(gè)學(xué)生只屬于一個(gè)系;l一個(gè)系只有一名(正職)負(fù)責(zé)人;一個(gè)系只有一名(正職)負(fù)責(zé)人;l一個(gè)學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修;一個(gè)學(xué)生可以選修多門課程,每門課程有若干學(xué)生選修;l每個(gè)學(xué)生學(xué)習(xí)每一門課程有一個(gè)成績(jī)。每個(gè)學(xué)生學(xué)習(xí)每一門課程有一個(gè)成績(jī)。 An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))n由此可得到屬性組由此可得到屬性組U上的一組函數(shù)依賴上的一
9、組函數(shù)依賴F: F=SnoSdept, Sdept Mname, (Sno, Cno) Grade SnoCnoSdeptMnameGradeAn Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))關(guān)系模式關(guān)系模式Student中存在的問題:中存在的問題:(1)數(shù)據(jù)冗余)數(shù)據(jù)冗余n浪費(fèi)大量的存儲(chǔ)空間浪費(fèi)大量的存儲(chǔ)空間l每一個(gè)系主任的姓名重復(fù)出現(xiàn),重復(fù)次數(shù)與該系所有學(xué)每一個(gè)系主任的姓名重復(fù)出現(xiàn),重復(fù)次數(shù)與該系所有學(xué)生的所有課程成績(jī)出現(xiàn)次數(shù)相同。生的所有課程成績(jī)出現(xiàn)次數(shù)相同。An Introduction to Database System*問題的提
10、出(續(xù))問題的提出(續(xù))(2)更新異常()更新異常(Update Anomalies)n數(shù)據(jù)冗余數(shù)據(jù)冗余 ,更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。更新數(shù)據(jù)時(shí),維護(hù)數(shù)據(jù)完整性代價(jià)大。l某系更換系主任后,必須修改與該系學(xué)生有關(guān)的每一個(gè)某系更換系主任后,必須修改與該系學(xué)生有關(guān)的每一個(gè)元組。元組。An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))(3)插入異常()插入異常(Insertion Anomalies)n如果一個(gè)系剛成立,尚無(wú)學(xué)生,則無(wú)法把這個(gè)系及其如果一個(gè)系剛成立,尚無(wú)學(xué)生,則無(wú)法把這個(gè)系及其系主任的信息存入數(shù)據(jù)庫(kù)。系主任的信息存入數(shù)據(jù)庫(kù)。A
11、n Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))(4)刪除異常()刪除異常(Deletion Anomalies)n如果某個(gè)系的學(xué)生全部畢業(yè)了,如果某個(gè)系的學(xué)生全部畢業(yè)了, 則在刪除該系學(xué)生信則在刪除該系學(xué)生信息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。息的同時(shí),把這個(gè)系及其系主任的信息也丟掉了。An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))v結(jié)論結(jié)論nStudent關(guān)系模式不是一個(gè)好的模式。關(guān)系模式不是一個(gè)好的模式。n一個(gè)一個(gè)“好好”的模式應(yīng)當(dāng)不會(huì)發(fā)生插入異常、刪除異常和更的模式應(yīng)當(dāng)不
12、會(huì)發(fā)生插入異常、刪除異常和更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。新異常,數(shù)據(jù)冗余應(yīng)盡可能少。v原因原因n由存在于模式中的某些數(shù)據(jù)依賴引起的。由存在于模式中的某些數(shù)據(jù)依賴引起的。v解決方法解決方法n用規(guī)范化理論改造關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴用規(guī)范化理論改造關(guān)系模式來(lái)消除其中不合適的數(shù)據(jù)依賴An Introduction to Database System*問題的提出(續(xù))問題的提出(續(xù))v把這個(gè)單一的模式分成三個(gè)關(guān)系模式:把這個(gè)單一的模式分成三個(gè)關(guān)系模式:nS(Sno,Sdept,Sno Sdept);nSC(Sno,Cno,Grade,(Sno,Cno) Grade);nDEPT(Sdept
13、,Mname,Sdept Mname);v這三個(gè)模式都不會(huì)發(fā)生插入異常、刪除異常的問這三個(gè)模式都不會(huì)發(fā)生插入異常、刪除異常的問題,數(shù)據(jù)的冗余也得到了控制。題,數(shù)據(jù)的冗余也得到了控制。An Introduction to Database System第六章第六章 關(guān)系數(shù)據(jù)理論關(guān)系數(shù)據(jù)理論6.1 問題的提出問題的提出6.2 規(guī)范化規(guī)范化6.3 數(shù)據(jù)依賴的公理系統(tǒng)數(shù)據(jù)依賴的公理系統(tǒng)*6.4 模式的分解模式的分解6.5 小結(jié)小結(jié)An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(shù)依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.
14、2.5 3NF6.2.6 BCNF6.2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)An Introduction to Database System6.2.1 函數(shù)依賴函數(shù)依賴1.函數(shù)依賴函數(shù)依賴2.平凡函數(shù)依賴與非平凡函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴3.完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴4.傳遞函數(shù)依賴傳遞函數(shù)依賴An Introduction to Database System*1. 函數(shù)依賴函數(shù)依賴v定義定義6.1 設(shè)設(shè)R(U)是一個(gè)屬性集是一個(gè)屬性集U上的關(guān)系模式,上的關(guān)系模式,X和和Y是是U的子集。若對(duì)于的子集。若對(duì)于R(U)的
15、任意一個(gè)可能的關(guān)的任意一個(gè)可能的關(guān)系系r,r 中不可能存在兩個(gè)元組在中不可能存在兩個(gè)元組在X上的屬性值相上的屬性值相等,等, 而在而在Y上的屬性值不等,上的屬性值不等, 則稱則稱“X函數(shù)確定函數(shù)確定Y”或或“Y函數(shù)依賴于函數(shù)依賴于X”,記作,記作XY。An Introduction to Database System函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))v例例 Student(Sno, Sname, Ssex, Sage, Sdept), 假設(shè)不允許重名,則有假設(shè)不允許重名,則有:Sno Ssex, Sno SageSno Sdept, Sno SnameSname Ssex, Sname SageS
16、name Sdept但但Ssex Sage, Ssex Sdept若若XY,并且,并且YX, 則記為則記為XY。若若Y不函數(shù)依賴于不函數(shù)依賴于X, 則記為則記為XY。An Introduction to Database System函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))SnoSnameSsexSageSdeptS1 張三張三男男20計(jì)算機(jī)系計(jì)算機(jī)系S1李四李四女女21自動(dòng)化系自動(dòng)化系S3王五王五男男20計(jì)算機(jī)系計(jì)算機(jī)系S4趙六趙六男男21計(jì)算機(jī)系計(jì)算機(jī)系S5田七田七男男20計(jì)算機(jī)系計(jì)算機(jī)系 . . . . . . . . . . . . . . .違背了違背了Sno SnameAn Introduct
17、ion to Database System函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))v由下面的關(guān)系表由下面的關(guān)系表, 能否得出能否得出Sno SnameSnoSnameSsexSageSdeptS1 張三張三男男20計(jì)算機(jī)系計(jì)算機(jī)系S2李四李四女女21自動(dòng)化系自動(dòng)化系S3王五王五男男20計(jì)算機(jī)系計(jì)算機(jī)系S4趙六趙六男男21計(jì)算機(jī)系計(jì)算機(jī)系S5田七田七男男20計(jì)算機(jī)系計(jì)算機(jī)系 . . . . . . . . . . . . . . .函數(shù)依賴不是指關(guān)系模式函數(shù)依賴不是指關(guān)系模式R的某個(gè)或某些關(guān)系實(shí)例滿足的的某個(gè)或某些關(guān)系實(shí)例滿足的約束條件,而是指約束條件,而是指R的所有關(guān)系實(shí)例均要滿足的約束條件。的所有關(guān)系
18、實(shí)例均要滿足的約束條件。An Introduction to Database System*函數(shù)依賴(續(xù))函數(shù)依賴(續(xù))v函數(shù)依賴是語(yǔ)義范疇的概念,只能根據(jù)數(shù)據(jù)的語(yǔ)函數(shù)依賴是語(yǔ)義范疇的概念,只能根據(jù)數(shù)據(jù)的語(yǔ)義來(lái)確定一個(gè)函數(shù)依賴。義來(lái)確定一個(gè)函數(shù)依賴。n例如例如“姓名姓名年齡年齡”這個(gè)函數(shù)依賴只有在不允許有同這個(gè)函數(shù)依賴只有在不允許有同名人的條件下成立名人的條件下成立An Introduction to Database System*2. 平凡函數(shù)依賴與非平凡函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴vXY,但,但Y X則稱則稱XY是是非平凡的函數(shù)依賴非平凡的函數(shù)依賴。vXY,但,但YX 則稱則稱
19、XY是是平凡的函數(shù)依賴平凡的函數(shù)依賴。對(duì)于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它對(duì)于任一關(guān)系模式,平凡函數(shù)依賴都是必然成立的,它不反映新的語(yǔ)義。不反映新的語(yǔ)義。若不特別聲明,若不特別聲明, 我們總是討論非平凡函數(shù)依賴。我們總是討論非平凡函數(shù)依賴。An Introduction to Database System*平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))平凡函數(shù)依賴與非平凡函數(shù)依賴(續(xù))v若若XY,則,則X稱為這個(gè)函數(shù)依賴的稱為這個(gè)函數(shù)依賴的決定因素決定因素(Determinant)。)。v若若XY,YX,則記作,則記作XY。v若若Y不函數(shù)依賴于不函數(shù)依賴于X,則記作,則記作X Y。An In
20、troduction to Database System*3. 完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴v定義定義6.2 在在R(U)中,如果中,如果XY,并且對(duì)于,并且對(duì)于X的任的任何一個(gè)真子集何一個(gè)真子集X, 都有都有 X Y, 則稱則稱Y對(duì)對(duì)X完全函完全函數(shù)依賴數(shù)依賴,記作,記作X Y。v若若XY,但,但Y不完全函數(shù)依賴于不完全函數(shù)依賴于X,則稱,則稱Y對(duì)對(duì)X部部分函數(shù)依賴分函數(shù)依賴,記作,記作X YFPAn Introduction to Database System*完全函數(shù)依賴與部分函數(shù)依賴(續(xù))完全函數(shù)依賴與部分函數(shù)依賴(續(xù))v例例 在關(guān)系在關(guān)系SC(Sno, C
21、no, Grade)中,有:中,有:n 由于:由于:Sno Grade,Cno Grade, 因此:因此:(Sno, Cno) Grade (Sno, Cno)Sno (Sno, Cno) CnoFPPAn Introduction to Database System*4. 傳遞函數(shù)依賴傳遞函數(shù)依賴v定義定義6.3 在在R(U)中,如果中,如果XY(Y X),Y X,YZ,Z Y, 則稱則稱Z對(duì)對(duì)X傳遞函數(shù)依賴傳遞函數(shù)依賴(transitive functional dependency)。記為:。記為:X Z。n注注: 如果如果YX, 即即XY,則,則Z直接依賴于直接依賴于X,而不是,而不
22、是傳遞函數(shù)依賴。傳遞函數(shù)依賴。n例例 在關(guān)系在關(guān)系Std(Sno, Sdept, Mname)中,有:中,有:Sno Sdept,Sdept Mname,Mname傳遞函數(shù)依賴于傳遞函數(shù)依賴于Sno傳遞傳遞An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(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é)規(guī)范化小結(jié)An Introduction to Database System*6.2.2 碼碼v定義定義6.4 設(shè)設(shè)
23、K為為R中的屬性或?qū)傩越M合。若中的屬性或?qū)傩越M合。若K U,則,則K稱為稱為R的一個(gè)的一個(gè)候選碼候選碼(Candidate Key)。n如果如果U部分函數(shù)依賴于部分函數(shù)依賴于K,即,即K U,則則K稱為超碼稱為超碼 (Surpkey)。候選碼是最小的超碼,即)。候選碼是最小的超碼,即K的任意一個(gè)的任意一個(gè)真子集都不是候選碼。真子集都不是候選碼。v若關(guān)系模式若關(guān)系模式R有多個(gè)候選碼,則選定其中的一個(gè)有多個(gè)候選碼,則選定其中的一個(gè)做為做為主碼主碼(Primary key)。FPAn Introduction to Database System*碼(續(xù))碼(續(xù))v主屬性與非主屬性主屬性與非主屬性n
24、包含在任何一個(gè)候選碼中的屬性包含在任何一個(gè)候選碼中的屬性 ,稱為主屬性,稱為主屬性 (Prime attribute) n不包含在任何碼中的屬性稱為非主屬性(不包含在任何碼中的屬性稱為非主屬性(Nonprime attribute)或非碼屬性()或非碼屬性(Non-key attribute) v全碼:整個(gè)屬性組是碼,稱為全碼(全碼:整個(gè)屬性組是碼,稱為全碼(All-key) An Introduction to Database System*碼(續(xù))碼(續(xù))例例6.2S(Sno, Sdept, Sage),單個(gè)屬性,單個(gè)屬性Sno是碼是碼 SC(Sno, Cno, Grade)中,中,(S
25、no, Cno)是碼是碼例例6.3 R(P,W,A) P:演奏者:演奏者 W:作品:作品 A:聽眾:聽眾一個(gè)演奏者可以演奏多個(gè)作品一個(gè)演奏者可以演奏多個(gè)作品某一作品可被多個(gè)演奏者演奏某一作品可被多個(gè)演奏者演奏聽眾可以欣賞不同演奏者的不同作品聽眾可以欣賞不同演奏者的不同作品 碼為碼為(P,W,A),即,即All-Key An Introduction to Database System*碼(續(xù))碼(續(xù))v定義定義6.5 關(guān)系模式關(guān)系模式 R中屬性或?qū)傩越M中屬性或?qū)傩越MX 并非并非 R的的碼,但碼,但 X 是另一個(gè)關(guān)系模式的碼,則稱是另一個(gè)關(guān)系模式的碼,則稱 X 是是R 的的外部碼外部碼(For
26、eign key)也稱)也稱外碼外碼。nSC(Sno,Cno,Grade)中,中,Sno不是碼不是碼nSno是是 S(Sno,Sdept,Sage)的碼,則的碼,則Sno是是SC的外碼的外碼 v主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手段主碼與外部碼一起提供了表示關(guān)系間聯(lián)系的手段An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(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é)規(guī)范化小結(jié)An Introduction to
27、 Database System*6.2.3 范式范式v范式是符合某一種級(jí)別的關(guān)系模式的集合。范式是符合某一種級(jí)別的關(guān)系模式的集合。v關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的要求。滿足關(guān)系數(shù)據(jù)庫(kù)中的關(guān)系必須滿足一定的要求。滿足 不同程度要求的為不同范式。不同程度要求的為不同范式。v范式的種類:范式的種類:第一范式第一范式(1NF)第二范式第二范式(2NF)第三范式第三范式(3NF)BC范式范式(BCNF)第四范式第四范式(4NF)第五范式第五范式(5NF)An Introduction to Database System*范式(續(xù))范式(續(xù))v各種范式之間存在聯(lián)系:各種范式之間存在聯(lián)系:n某一關(guān)系模
28、式某一關(guān)系模式R為第為第n范式,可簡(jiǎn)記為范式,可簡(jiǎn)記為RnNF。NF5NF4BCNFNF3NF2NF1v一個(gè)低一級(jí)范式的關(guān)系模式,通一個(gè)低一級(jí)范式的關(guān)系模式,通過模式分解(過模式分解(schema decomposition)可以轉(zhuǎn)換為若)可以轉(zhuǎn)換為若干個(gè)高一級(jí)范式的關(guān)系模式的集干個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過程就叫合,這種過程就叫規(guī)范化規(guī)范化(normalization)。)。An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(shù)依賴6.2.2 碼碼6.2.3 范式范式6.2.4 2NF6.2.5 3NF6.2.6 BCNF6.
29、2.7 多值依賴多值依賴6.2.8 4NF6.2.9 規(guī)范化小結(jié)規(guī)范化小結(jié)An Introduction to Database System*6.2.4 2NFv定義定義6.6 若關(guān)系模式若關(guān)系模式R1NF,并且每一個(gè)非主屬性,并且每一個(gè)非主屬性都完全函數(shù)依賴于任何一個(gè)候選碼,則都完全函數(shù)依賴于任何一個(gè)候選碼,則R2NFv例例6.4 S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc為學(xué)生的住處,并且每個(gè)系的學(xué)生住在同一個(gè)為學(xué)生的住處,并且每個(gè)系的學(xué)生住在同一個(gè)地方。地方。S-L-C的碼為的碼為(Sno,Cno)。函數(shù)依賴有函數(shù)依賴有n(Sno,Cno)GradenS
30、noSdept, (Sno,Cno)SdeptnSnoSloc, (Sno,Cno)SlocnSdeptSlocFPPAn Introduction to Database System*2NF(續(xù))(續(xù))SnoCnoGradeSdeptSlocn關(guān)系模式關(guān)系模式S-L-C不屬于不屬于2NFn非主屬性非主屬性Sdept、Sloc并不完全依賴于碼并不完全依賴于碼An Introduction to Database System*2NF(續(xù))(續(xù))v一個(gè)關(guān)系模式不屬于一個(gè)關(guān)系模式不屬于2NF,會(huì)產(chǎn)生以下問題:,會(huì)產(chǎn)生以下問題:n插入異常插入異常l如果插入一個(gè)新學(xué)生,但該生未選課,即該生無(wú)如果插入
31、一個(gè)新學(xué)生,但該生未選課,即該生無(wú)Cno,由于插入元組時(shí),必須給定碼值,因此插入失敗。由于插入元組時(shí),必須給定碼值,因此插入失敗。n刪除異常刪除異常l如果如果S4只選了一門課只選了一門課C3,現(xiàn)在他不再選這門課,則刪除,現(xiàn)在他不再選這門課,則刪除C3后,整個(gè)元組的其他信息也被刪除了。后,整個(gè)元組的其他信息也被刪除了。n修改復(fù)雜修改復(fù)雜l如果一個(gè)學(xué)生選了多門課,則如果一個(gè)學(xué)生選了多門課,則Sdept,Sloc被存儲(chǔ)了多被存儲(chǔ)了多次。如果該生轉(zhuǎn)系,則需要修改所有相關(guān)的次。如果該生轉(zhuǎn)系,則需要修改所有相關(guān)的Sdept和和Sloc,造成修改的復(fù)雜化。,造成修改的復(fù)雜化。An Introduction
32、to Database System*2NF(續(xù))(續(xù))v出現(xiàn)這種問題的原因出現(xiàn)這種問題的原因n例子中有兩類非主屬性:例子中有兩類非主屬性:l一類如一類如Grade,它對(duì)碼完全函數(shù)依賴,它對(duì)碼完全函數(shù)依賴l另一類如另一類如Sdept、Sloc,它們對(duì)碼不是完全函數(shù)依賴,它們對(duì)碼不是完全函數(shù)依賴v解決方法:解決方法:n用投影分解把關(guān)系模式用投影分解把關(guān)系模式S-L-C分解成兩個(gè)關(guān)系模式分解成兩個(gè)關(guān)系模式lSC(Sno,Cno,Grade)lS-L(Sno,Sdept,Sloc)An Introduction to Database System2NF(續(xù))(續(xù))n SC的碼為的碼為(Sno,Cn
33、o),SL的碼為的碼為Sno,這樣使得非主屬,這樣使得非主屬性對(duì)碼都是完全函數(shù)依賴了性對(duì)碼都是完全函數(shù)依賴了SnoCnoGradeSnoSdeptSloc圖圖6.4 SC中的函數(shù)依賴中的函數(shù)依賴圖圖6.5 S-L中的函數(shù)依賴中的函數(shù)依賴An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(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é)規(guī)范化小結(jié)An Introduction to Database System* 6.2
34、.5 3NFv定義定義6.7 設(shè)關(guān)系模式設(shè)關(guān)系模式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 Database System6.2
35、規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(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é)規(guī)范化小結(jié)An Introduction to Database System* 6.2.6 BCNFvBCNF(Boyce Codd Normal Form)由)由Boyce和和Codd提出,比提出,比3NF更進(jìn)了一步。通常認(rèn)為更進(jìn)了一步。通常認(rèn)為BCNF是修正的第三范式,有時(shí)也稱為擴(kuò)充的第是修正的第三范式,有時(shí)也稱為擴(kuò)充的第三范式。三范式。v定義定義6.8 設(shè)關(guān)系模式設(shè)關(guān)系模式R1NF,若,若
36、X Y且且Y X時(shí)時(shí)X必含有碼,則必含有碼,則RBCNF。v換言之,在關(guān)系模式換言之,在關(guān)系模式R中,如果每一個(gè)決定中,如果每一個(gè)決定屬性集都包含候選碼,則屬性集都包含候選碼,則RBCNF。An Introduction to Database System*BCNF(續(xù))(續(xù))vBCNF的關(guān)系模式所具有的性質(zhì)的關(guān)系模式所具有的性質(zhì)n所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼所有非主屬性都完全函數(shù)依賴于每個(gè)候選碼n所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼所有主屬性都完全函數(shù)依賴于每個(gè)不包含它的候選碼n沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性v如
37、果一個(gè)關(guān)系數(shù)據(jù)庫(kù)中的所有關(guān)系模式都屬于如果一個(gè)關(guān)系數(shù)據(jù)庫(kù)中的所有關(guān)系模式都屬于BCNF,那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了模式,那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了模式的徹底分解,達(dá)到了最高的規(guī)范化程度,消除了插的徹底分解,達(dá)到了最高的規(guī)范化程度,消除了插入異常和刪除異常。入異常和刪除異常。An Introduction to Database Systemv例例6.5考察關(guān)系模式考察關(guān)系模式C(Cno,Cname,Pcno)n 它只有一個(gè)碼它只有一個(gè)碼Cno,沒有任何屬性對(duì),沒有任何屬性對(duì)Cno部分依賴或部分依賴或傳遞依賴,所以傳遞依賴,所以C3NF。n 同時(shí)同時(shí)C中中Cno是唯一的決定因素,所以
38、是唯一的決定因素,所以CBCNF。n 對(duì)于關(guān)系模式對(duì)于關(guān)系模式SC(Sno,Cno,Grade)可作同樣分析??勺魍瑯臃治?。BCNF(續(xù))(續(xù))An Introduction to Database Systemv例例6.6 關(guān)系模式關(guān)系模式S(Sno,Sname,Sdept,Sage),n假定假定Sname也具有唯一性,那么也具有唯一性,那么S就有兩個(gè)碼,這兩就有兩個(gè)碼,這兩個(gè)碼都由單個(gè)屬性組成,彼此不相交。個(gè)碼都由單個(gè)屬性組成,彼此不相交。n其他屬性不存在對(duì)碼的傳遞依賴與部分依賴,所以其他屬性不存在對(duì)碼的傳遞依賴與部分依賴,所以S3NF。n同時(shí)同時(shí)S中除中除Sno,Sname外沒有其他決定
39、因素,所以外沒有其他決定因素,所以S也屬于也屬于BCNF。BCNF(續(xù))續(xù))An Introduction to Database Systemv例例6.7 關(guān)系模式關(guān)系模式SJP(S,J,P)中,中,S是學(xué)生,是學(xué)生,J表示表示 課程,課程,P表示名次。每一個(gè)學(xué)生選修每門課程的表示名次。每一個(gè)學(xué)生選修每門課程的 成績(jī)有一定的名次,每門課程中每一名次只有一成績(jī)有一定的名次,每門課程中每一名次只有一 個(gè)學(xué)生(即沒有并列名次)。個(gè)學(xué)生(即沒有并列名次)。n 由語(yǔ)義可得到函數(shù)依賴:由語(yǔ)義可得到函數(shù)依賴: (S,J)P;(J,P)Sn (S,J)與與(J,P)都可以作為候選碼。都可以作為候選碼。n 關(guān)
40、系模式中沒有屬性對(duì)碼傳遞依賴或部分依賴,所以關(guān)系模式中沒有屬性對(duì)碼傳遞依賴或部分依賴,所以 SJP3NF。n 除除(S,J)與與(J,P)以外沒有其他決定因素,所以以外沒有其他決定因素,所以 SJPBCNF。BCNF(續(xù))(續(xù))An Introduction to Database SystemBCNF(續(xù))(續(xù))v例例6.8 關(guān)系模式關(guān)系模式STJ(S,T,J)中,中,S表示學(xué)生,表示學(xué)生,T表表 示教師,示教師,J表示課程。每一教師只教一門課。每表示課程。每一教師只教一門課。每 門課有若干教師,某一學(xué)生選定某門課,就對(duì)應(yīng)門課有若干教師,某一學(xué)生選定某門課,就對(duì)應(yīng) 一個(gè)固定的教師。一個(gè)固定的
41、教師。n 由語(yǔ)義可得到函數(shù)依賴:由語(yǔ)義可得到函數(shù)依賴:(S,J)T;(S,T)J;TJn 因?yàn)闆]有任何非主屬性對(duì)碼傳遞依賴或部分依賴,因?yàn)闆]有任何非主屬性對(duì)碼傳遞依賴或部分依賴, STJ 3NF。n 因?yàn)橐驗(yàn)門是決定因素,而是決定因素,而T不包含碼,所以不包含碼,所以STJ BCNF 關(guān)系。關(guān)系。圖圖6.6 STJ中的函數(shù)依賴中的函數(shù)依賴An Introduction to Database SystemBCNF(續(xù))(續(xù))v對(duì)于不是對(duì)于不是BCNF的關(guān)系模式,仍然存在不合適的的關(guān)系模式,仍然存在不合適的地方。地方。v非非BCNF的關(guān)系模式也可以通過分解成為的關(guān)系模式也可以通過分解成為BCNF
42、。例如例如STJ可分解為可分解為ST(S,T)與與TJ(T,J),它們都是,它們都是BCNF。An Introduction to Database SystemBCNF(續(xù))(續(xù))v3NF和和BCNF是在函數(shù)依賴的條件下對(duì)模式分解是在函數(shù)依賴的條件下對(duì)模式分解所能達(dá)到的分離程度的測(cè)度。所能達(dá)到的分離程度的測(cè)度。n一個(gè)模式中的關(guān)系模式如果都屬于一個(gè)模式中的關(guān)系模式如果都屬于BCNF,那么在函數(shù),那么在函數(shù)依賴范疇內(nèi),它已實(shí)現(xiàn)了徹底的分離,已消除了插入依賴范疇內(nèi),它已實(shí)現(xiàn)了徹底的分離,已消除了插入和刪除的異常。和刪除的異常。n3NF的的“不徹底不徹底”性表現(xiàn)在可能存在主屬性對(duì)碼的部性表現(xiàn)在可能存
43、在主屬性對(duì)碼的部分依賴和傳遞依賴。分依賴和傳遞依賴。An Introduction to Database System6.2 規(guī)范化規(guī)范化6.2.1 函數(shù)依賴函數(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é)規(guī)范化小結(jié)An Introduction to Database System*6.2.7 多值依賴多值依賴?yán)?.9設(shè)學(xué)校中某一門課程由多個(gè)教師講授,他們?cè)O(shè)學(xué)校中某一門課程由多個(gè)教師講授,他們使用相同的一套參考書。使用相同的一套參考書。每個(gè)教員可以講授多門課每個(gè)教員可以
44、講授多門課程,每種參考書可以供多門課程使用程,每種參考書可以供多門課程使用用關(guān)系模式用關(guān)系模式Teaching(C,T,B)來(lái)表示課程來(lái)表示課程C、教師、教師T和參和參考書考書B之間的關(guān)系。之間的關(guān)系。An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))表表6.3 非規(guī)范化關(guān)系示例非規(guī)范化關(guān)系示例課程課程 C教員教員 T參考書參考書 B 物理物理 數(shù)學(xué)數(shù)學(xué) 計(jì)算數(shù)學(xué)計(jì)算數(shù)學(xué)李李 勇勇王王 軍軍 李李 勇勇張張 平平張張 平平周周 峰峰 普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程 高等代數(shù)高等代數(shù) 數(shù)學(xué)分
45、析數(shù)學(xué)分析 An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))表表6.4 規(guī)范化規(guī)范化的二維表的二維表 Teaching 課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學(xué)普通物理學(xué)物物 理理李李 勇勇光學(xué)原理光學(xué)原理物物 理理李李 勇勇物理習(xí)題集物理習(xí)題集物物 理理王王 軍軍普通物理學(xué)普通物理學(xué)物物 理理王王 軍軍光學(xué)原理光學(xué)原理物物 理理王王 軍軍物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)李李 勇勇普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)李李 勇勇光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)李李 勇勇物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)張張 平平普通物理學(xué)普通物理學(xué)數(shù)
46、數(shù) 學(xué)學(xué)張張 平平光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)張張 平平物理習(xí)題集物理習(xí)題集An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))vTeaching具有唯一候選碼具有唯一候選碼(C,T,B), 即全碼。即全碼。vTeachingBCNF An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學(xué)普通物理學(xué)物物 理理李李 勇勇光學(xué)原理光學(xué)原理物物 理理李李 勇勇物理習(xí)題集物理習(xí)題集物物 理理王王 軍軍普通物理學(xué)普通物理學(xué)物物 理理王王 軍軍光學(xué)原
47、理光學(xué)原理物物 理理王王 軍軍物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)李李 勇勇普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)李李 勇勇光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)李李 勇勇物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)張張 平平普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)張張 平平光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)張張 平平物理習(xí)題集物理習(xí)題集(1)數(shù)據(jù)冗余度大:有多數(shù)據(jù)冗余度大:有多少名任課教師,參考書少名任課教師,參考書就要存儲(chǔ)多少次。就要存儲(chǔ)多少次。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學(xué)普通物理學(xué)物物 理理李李 勇勇光學(xué)原
48、理光學(xué)原理物物 理理李李 勇勇物理習(xí)題集物理習(xí)題集物物 理理王王 軍軍普通物理學(xué)普通物理學(xué)物物 理理王王 軍軍光學(xué)原理光學(xué)原理物物 理理王王 軍軍物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)李李 勇勇普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)李李 勇勇光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)李李 勇勇物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)張張 平平普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)張張 平平光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)張張 平平物理習(xí)題集物理習(xí)題集(2)增加操作復(fù)雜:當(dāng)增加操作復(fù)雜:當(dāng)某一課程增加一名任某一課程增加一名任課教師時(shí),該課程有課教師時(shí),該課程有多少本參照書,就必多少本參照書,就必須插入多少個(gè)元組。須插入多少個(gè)元組。An Introdu
49、ction to Database System*多值依賴(續(xù))多值依賴(續(xù))課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學(xué)普通物理學(xué)物物 理理李李 勇勇光學(xué)原理光學(xué)原理物物 理理李李 勇勇物理習(xí)題集物理習(xí)題集物物 理理王王 軍軍普通物理學(xué)普通物理學(xué)物物 理理王王 軍軍光學(xué)原理光學(xué)原理物物 理理王王 軍軍物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)李李 勇勇普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)李李 勇勇光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)李李 勇勇物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)張張 平平普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)張張 平平光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)張張 平平物理習(xí)題集物理習(xí)題集(3)刪除操作復(fù)雜
50、:某一刪除操作復(fù)雜:某一門課要去掉一本參考書,門課要去掉一本參考書,該課程有多少名教師,該課程有多少名教師,就必須刪除多少個(gè)元組。就必須刪除多少個(gè)元組。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))課程課程 C教員教員 T參考書參考書 B物物 理理李李 勇勇普通物理學(xué)普通物理學(xué)物物 理理李李 勇勇光學(xué)原理光學(xué)原理物物 理理李李 勇勇物理習(xí)題集物理習(xí)題集物物 理理王王 軍軍普通物理學(xué)普通物理學(xué)物物 理理王王 軍軍光學(xué)原理光學(xué)原理物物 理理王王 軍軍物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)李李 勇勇普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)李李 勇勇光學(xué)原理光學(xué)原理數(shù)
51、數(shù) 學(xué)學(xué)李李 勇勇物理習(xí)題集物理習(xí)題集數(shù)數(shù) 學(xué)學(xué)張張 平平普通物理學(xué)普通物理學(xué)數(shù)數(shù) 學(xué)學(xué)張張 平平光學(xué)原理光學(xué)原理數(shù)數(shù) 學(xué)學(xué)張張 平平物理習(xí)題集物理習(xí)題集(4)修改操作復(fù)雜:某一修改操作復(fù)雜:某一門課要修改一本參考書,門課要修改一本參考書,該課程有多少名教師,該課程有多少名教師,就必須修改多少個(gè)元組。就必須修改多少個(gè)元組。產(chǎn)生產(chǎn)生原因原因: 存在多值依賴存在多值依賴An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))v定義定義6.9 設(shè)設(shè)R(U)是屬性集是屬性集U上的一個(gè)關(guān)系模式。上的一個(gè)關(guān)系模式。X,Y,Z是是U的子集,并且的子集,并且Z=U-X
52、-Y。關(guān)系模式。關(guān)系模式R(U)中多值依賴中多值依賴XY成立,當(dāng)且僅當(dāng)對(duì)成立,當(dāng)且僅當(dāng)對(duì)R(U)的任一的任一關(guān)系關(guān)系r,給定的一對(duì),給定的一對(duì)(x,z)值,有一組值,有一組Y的值,這組的值,這組值僅僅決定于值僅僅決定于x值而與值而與z值無(wú)關(guān)。值無(wú)關(guān)。v例例 Teaching(C, T, B) 對(duì)于對(duì)于C的每一個(gè)值,的每一個(gè)值,T有一組值與之對(duì)應(yīng),而不論有一組值與之對(duì)應(yīng),而不論B取何值。因此取何值。因此T多值依賴于多值依賴于C,即,即CT。 An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v多值依賴的另一個(gè)等價(jià)的定義多值依賴的另一個(gè)等價(jià)的定義在在R
53、(U)的任一關(guān)系的任一關(guān)系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值所得的兩值所得的兩個(gè)新元組必在個(gè)新元組必在r中則中則Y多值依賴于多值依賴于X,記為,記為XY。這里。這里X,Y是是U的子集,的子集,Z=U-X-Y。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))v平凡多值依賴和非平凡的多值依賴平凡多值依賴和非平凡的多值
54、依賴n 若若XY,而,而Z,即,即Z為空,為空,則稱則稱XY為為平凡平凡的多值依賴的多值依賴。n 否則稱否則稱XY為為非平凡的多值依賴非平凡的多值依賴。An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))WSCW1S1C1W1S1C2W1S1C3W1S2C1W1S2C2W1S2C3W2S3C4W2S3C5W2S4C4W2S4C5例例6.10關(guān)系模式關(guān)系模式WSC(W,S,C)中,中,W表示倉(cāng)庫(kù),表示倉(cāng)庫(kù),S 表示保管表示保管員,員,C 表示商品。假設(shè)每個(gè)倉(cāng)庫(kù)有若干個(gè)保管員,有若干種表示商品。假設(shè)每個(gè)倉(cāng)庫(kù)有若干個(gè)保管員,有若干種商品。每個(gè)保管員保管所在
55、倉(cāng)庫(kù)的所有商品,每種商品被所商品。每個(gè)保管員保管所在倉(cāng)庫(kù)的所有商品,每種商品被所有保管員保管。有保管員保管。An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v按照語(yǔ)義對(duì)于按照語(yǔ)義對(duì)于W的每一個(gè)值的每一個(gè)值Wi,S有一個(gè)完整的集有一個(gè)完整的集合與之對(duì)應(yīng)而不問合與之對(duì)應(yīng)而不問C取何值。所以取何值。所以WS。v如圖如圖6.7所示所示n 對(duì)應(yīng)對(duì)應(yīng)W的某一個(gè)值的某一個(gè)值Wi的全部的全部S值記作值記作SWi(表示此倉(cāng)庫(kù)(表示此倉(cāng)庫(kù)工作的全部保管員)工作的全部保管員)n 全部全部C值記作值記作CWi(表示在此倉(cāng)庫(kù)中存放的所有商品)(表示在此倉(cāng)庫(kù)中存放的所有商品
56、)n 應(yīng)當(dāng)有應(yīng)當(dāng)有SWi中的每一個(gè)值和中的每一個(gè)值和CWi中的每一個(gè)中的每一個(gè)C值對(duì)應(yīng)值對(duì)應(yīng)n 于是于是SWi與與CWi之間正好形成一個(gè)完全二分圖,因而之間正好形成一個(gè)完全二分圖,因而WS。An Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v由于由于C與與S的完全對(duì)稱性,必然有的完全對(duì)稱性,必然有WC成立。成立。圖圖6.7 WS且且WCAn Introduction to Database System多值依賴(續(xù))多值依賴(續(xù))v多值依賴的性質(zhì)多值依賴的性質(zhì)(1)多值依賴具有對(duì)稱性。)多值依賴具有對(duì)稱性。即若即若XY,則,則XZ,其中,其中ZUX
57、Yl多值依賴的對(duì)稱性可以用完全二分圖直觀地表示出來(lái)。多值依賴的對(duì)稱性可以用完全二分圖直觀地表示出來(lái)。l從從例例6.10 容易看出,因?yàn)槊總€(gè)保管員保管所有商品,容易看出,因?yàn)槊總€(gè)保管員保管所有商品,同時(shí)每種商品被所有保管員保管,顯然若同時(shí)每種商品被所有保管員保管,顯然若WS,必然,必然有有WC。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))(2)多值依賴具有傳遞性。即若)多值依賴具有傳遞性。即若XY,YZ, 則則 XZ -Y。(3)函數(shù)依賴是多值依賴的特殊情況。即若)函數(shù)依賴是多值依賴的特殊情況。即若XY,則,則 XY。(4)若)若XY,XZ,
58、則,則XYZ。(5)若)若XY,XZ,則,則XYZ。(6)若)若XY,XZ,則,則XY-Z,XZ -Y。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))v多值依賴與函數(shù)依賴的區(qū)別多值依賴與函數(shù)依賴的區(qū)別(1)多值依賴的有效性與屬性集的范圍有關(guān))多值依賴的有效性與屬性集的范圍有關(guān)l若若XY在在U上成立,則在上成立,則在W(XY W U)上一定成)上一定成立;反之則不然,即立;反之則不然,即XY在在W(W U)上成立,在)上成立,在U上并不一定成立。上并不一定成立。l原因:多值依賴的定義中不僅涉及屬性組原因:多值依賴的定義中不僅涉及屬性組X和和Y,
59、而且涉,而且涉及及U中其余屬性中其余屬性Z。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))n 多值依賴的有效性與屬性集的范圍有關(guān)(續(xù))多值依賴的有效性與屬性集的范圍有關(guān)(續(xù))l一般地,在一般地,在R(U)上若有上若有XY在在W(W U)上成立,則上成立,則稱稱XY為為R(U)的嵌入型多值依賴。的嵌入型多值依賴。l函數(shù)依賴函數(shù)依賴XY的有效性僅決定于的有效性僅決定于X、Y這兩個(gè)屬性集的這兩個(gè)屬性集的值值l只要在只要在R(U)的任何一個(gè)關(guān)系的任何一個(gè)關(guān)系r中,元組在中,元組在X和和Y上的值滿上的值滿足定義足定義6.l,則函數(shù)依賴,則函數(shù)依賴XY在
60、任何屬性集在任何屬性集W(XY W U)上成立。上成立。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù))(2)若函數(shù)依賴)若函數(shù)依賴XY在在R (U)上成立,則對(duì)于任何上成立,則對(duì)于任何Y Y均有均有XY 成立。多值依賴成立。多值依賴XY若在若在R(U)上成立,上成立,不能斷言對(duì)于任何不能斷言對(duì)于任何Y Y有有XY 成立。成立。An Introduction to Database System*多值依賴(續(xù))多值依賴(續(xù)) 例如,關(guān)系例如,關(guān)系R(A,B,C,D),ABC成立,當(dāng)然也有成立,當(dāng)然也有AD成立。有成立。有R的一個(gè)關(guān)系實(shí)例,在此實(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉(cāng)儲(chǔ)合同里免責(zé)合同范本
- 產(chǎn)品保本合同范本
- 小學(xué)道法教學(xué)中翻轉(zhuǎn)課堂的應(yīng)用
- 包包寄售合同范本
- 二手車市場(chǎng)發(fā)票合同范本
- 醫(yī)療器械 廣告合同范本
- 《JJG196-2006-常用玻璃量器檢定規(guī)程》
- 加工合同范本包括些費(fèi)用
- 化糞池清淤合同范本
- 借貸股權(quán)質(zhì)押合同范本
- 【原創(chuàng)】頭腦特工隊(duì)開的那些心理學(xué)腦洞
- 美甲藝術(shù)全套教學(xué)課件
- 高等數(shù)學(xué)上冊(cè)目錄同濟(jì)第七版
- 中國(guó)古代餐具
- 電動(dòng)執(zhí)行機(jī)構(gòu)安裝施工工藝標(biāo)準(zhǔn)
- 施工日志模板
- 粗原料氣的凈化-二氧化碳的脫除(合成氨生產(chǎn))
- Agilent7820A氣相色譜儀操作規(guī)程知識(shí)講解
- 中醫(yī)適宜技術(shù)模擬試題(附答案)
- 加涅的信息加工理論-課件
- 400字作文稿紙(方格)A4打印模板
評(píng)論
0/150
提交評(píng)論