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

下載本文檔

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

文檔簡介

1、第六章 關(guān)系數(shù)據(jù)庫設(shè)計理論12問題的提出基本概念34規(guī)范化函數(shù)依賴的公理系統(tǒng)5模式分解6.1 6.1 問題的提出問題的提出v 針對一個具體問題,設(shè)計一個好的關(guān)系數(shù)據(jù)庫系針對一個具體問題,設(shè)計一個好的關(guān)系數(shù)據(jù)庫系統(tǒng),關(guān)鍵是要構(gòu)造一個適合于它的數(shù)據(jù)模式(統(tǒng),關(guān)鍵是要構(gòu)造一個適合于它的數(shù)據(jù)模式(數(shù)據(jù)數(shù)據(jù)庫邏輯設(shè)計問題庫邏輯設(shè)計問題)v 數(shù)據(jù)庫邏輯設(shè)計主要解決的問題:數(shù)據(jù)庫邏輯設(shè)計主要解決的問題:n 應(yīng)該構(gòu)造幾個關(guān)系模式應(yīng)該構(gòu)造幾個關(guān)系模式n 每個關(guān)系模式包括哪些屬性每個關(guān)系模式包括哪些屬性v 數(shù)據(jù)庫邏輯設(shè)計工具數(shù)據(jù)庫邏輯設(shè)計工具關(guān)系數(shù)據(jù)庫的關(guān)系數(shù)據(jù)庫的規(guī)范化理論規(guī)范化理論6.1 6.1 問題的提出問

2、題的提出例:描述例:描述電力設(shè)備存放管理的數(shù)據(jù)庫電力設(shè)備存放管理的數(shù)據(jù)庫數(shù)據(jù)庫:數(shù)據(jù)庫:WAE(WAE(倉庫號,所在區(qū)域,區(qū)域主管,設(shè)備號,數(shù)量倉庫號,所在區(qū)域,區(qū)域主管,設(shè)備號,數(shù)量) )語義語義: 一個區(qū)域有多個倉庫,一個倉庫只能屬于一個區(qū)域;一個區(qū)域有多個倉庫,一個倉庫只能屬于一個區(qū)域; 一個區(qū)域只有一個區(qū)域主管;一個區(qū)域只有一個區(qū)域主管; 一個倉庫可以存放多種設(shè)備,每種設(shè)備可以存放在一個倉庫可以存放多種設(shè)備,每種設(shè)備可以存放在多個倉庫中;多個倉庫中;每個倉庫的每種設(shè)備都有一個庫存數(shù)量。每個倉庫的每種設(shè)備都有一個庫存數(shù)量。6.1 6.1 問題的提出問題的提出 數(shù)據(jù)冗余太大數(shù)據(jù)冗余太大浪費

3、大量的存儲空間浪費大量的存儲空間 更新異常更新異常更新代價大,可能導(dǎo)致數(shù)據(jù)不一致更新代價大,可能導(dǎo)致數(shù)據(jù)不一致 插入異常插入異常該插的數(shù)據(jù)插不進去該插的數(shù)據(jù)插不進去 刪除異常刪除異常不該刪除的數(shù)據(jù)不得不刪,造成某些數(shù)據(jù)丟失不該刪除的數(shù)據(jù)不得不刪,造成某些數(shù)據(jù)丟失存在的問題:存在的問題:6.1 6.1 問題的提出問題的提出結(jié)論:結(jié)論: WAE關(guān)系模式不是一個好的模式。關(guān)系模式不是一個好的模式。 “好好”的模式:不會發(fā)生插入異常、刪除異常、的模式:不會發(fā)生插入異常、刪除異常、更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。更新異常,數(shù)據(jù)冗余應(yīng)盡可能少。原因:由存在于模式中的某些原因:由存在于模式中的某些數(shù)據(jù)依賴數(shù)據(jù)

4、依賴引起的引起的解決方法:通過解決方法:通過分解關(guān)系模式分解關(guān)系模式來消除其中不合適的來消除其中不合適的數(shù)據(jù)依賴。數(shù)據(jù)依賴。6.1 6.1 問題的提出問題的提出 分解成三個關(guān)系模式即可:分解成三個關(guān)系模式即可: W(W(倉庫號,所在區(qū)域倉庫號,所在區(qū)域) ); A( A(區(qū)域,區(qū)域主管區(qū)域,區(qū)域主管) ); WE( WE(倉庫號,設(shè)備號,數(shù)量倉庫號,設(shè)備號,數(shù)量) )6.2 6.2 基本概念基本概念 規(guī)范化理論規(guī)范化理論正是用來改造關(guān)系模式,正是用來改造關(guān)系模式,通過分解關(guān)系模式來消除其中不合適的數(shù)通過分解關(guān)系模式來消除其中不合適的數(shù)據(jù)依賴,以解決插入異常、刪除異常、更據(jù)依賴,以解決插入異常、

5、刪除異常、更新異常和數(shù)據(jù)冗余等問題。新異常和數(shù)據(jù)冗余等問題。6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴定義定義6.16.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,對對 t t1,1,t2t2 r r,若,若t1X=t2Xt1X=t2X,則,則t1Y=t2Yt1Y=t2Y則稱則稱X X函數(shù)決定函數(shù)決定Y Y或或Y Y函數(shù)依賴函數(shù)依賴X X,記作,記作XYXY。 如:如:倉庫號倉庫號 所在區(qū)域所在區(qū)域 所在區(qū)域所在區(qū)域 區(qū)域主管區(qū)域主管 (倉庫

6、號,設(shè)備號)(倉庫號,設(shè)備號) 數(shù)量數(shù)量若若Y不函數(shù)依賴于不函數(shù)依賴于X, 則記為則記為X Y若若XY,并且,并且YX, 則記為則記為XY若若XY,則稱,則稱X為這個函數(shù)依賴的決定因素為這個函數(shù)依賴的決定因素。6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴1. 1. 函數(shù)依賴是函數(shù)依賴是語義范疇語義范疇的概念,只能根據(jù)數(shù)據(jù)的語的概念,只能根據(jù)數(shù)據(jù)的語義來確定函數(shù)依賴。義來確定函數(shù)依賴。 例:例:“區(qū)域主管區(qū)域主管所在區(qū)域所在區(qū)域” ” 只有在不允許有同只有在不允許有同名人的條件下成立名人的條件下成立2. 2. 函數(shù)依賴不是指關(guān)系模式函數(shù)依賴不是指關(guān)系模式R R的某個或某些關(guān)系實的某個或某些關(guān)系實例滿

7、足的約束條件,而是指例滿足的約束條件,而是指R R的所有關(guān)系實例均要的所有關(guān)系實例均要滿足的約束條件。滿足的約束條件。3.3.函數(shù)依賴存在的時間無關(guān)性函數(shù)依賴存在的時間無關(guān)性。說明說明:6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴 函數(shù)依賴與屬性間的聯(lián)系類型有關(guān)函數(shù)依賴與屬性間的聯(lián)系類型有關(guān)(1) (1) 若屬性若屬性X X和和Y Y之間有之間有“一對一一對一”的聯(lián)系的聯(lián)系 則:則:X Y,Y X,X YX Y,Y X,X Y(2) (2) 若屬性若屬性X X和和Y Y之間有之間有“多對一多對一”的聯(lián)系的聯(lián)系 則:則:X Y,X Y,但但Y X Y X (3)(3)若屬性若屬性X X和和Y Y之間

8、有之間有“多對多多對多”的聯(lián)系的聯(lián)系 則:則:X X與與Y Y之間不存在任何函數(shù)依賴之間不存在任何函數(shù)依賴注:當確定函數(shù)依賴關(guān)系時注:當確定函數(shù)依賴關(guān)系時, ,可從屬性間的聯(lián)系入手可從屬性間的聯(lián)系入手6.2.1 6.2.1 函數(shù)依賴函數(shù)依賴 平凡函數(shù)依賴與非平凡函數(shù)依賴平凡函數(shù)依賴與非平凡函數(shù)依賴定義定義6.2 在關(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ù)依賴. .例:在關(guān)系例:在關(guān)

9、系WAEWAE中,中, 非平凡函數(shù)依賴:非平凡函數(shù)依賴:(倉庫號,設(shè)備號)(倉庫號,設(shè)備號) 數(shù)量數(shù)量 平凡函數(shù)依賴:平凡函數(shù)依賴: (倉庫號,設(shè)備號)(倉庫號,設(shè)備號)倉庫號倉庫號 (倉庫號,設(shè)備號)(倉庫號,設(shè)備號)設(shè)備號設(shè)備號注:對任一關(guān)系模式,平凡函數(shù)依賴必然存在,則一般討論非平凡函注:對任一關(guān)系模式,平凡函數(shù)依賴必然存在,則一般討論非平凡函數(shù)依賴。數(shù)依賴。6.2.1 函數(shù)依賴函數(shù)依賴 完全函數(shù)依賴與部分函數(shù)依賴完全函數(shù)依賴與部分函數(shù)依賴定義定義6.3 在在R(U)中,如果中,如果XY,并且對于,并且對于X的任何的任何一個真子集一個真子集X ,都有,都有X Y, 則稱則稱Y對對X完全函

10、數(shù)依完全函數(shù)依賴,記作賴,記作X Y。 若若XY,但,但Y不完全函數(shù)依賴于不完全函數(shù)依賴于X,則稱,則稱Y對對X部分函數(shù)依賴,記作部分函數(shù)依賴,記作X P Y。例:在關(guān)系例:在關(guān)系WAE中,中, 由于:由于: (倉庫號,設(shè)備號)(倉庫號,設(shè)備號) 數(shù)量數(shù)量, 但倉庫號但倉庫號數(shù)量數(shù)量, 設(shè)設(shè)備號備號 數(shù)量數(shù)量 因此:因此: (倉庫號,設(shè)備號)(倉庫號,設(shè)備號)數(shù)量數(shù)量6.2.1 函數(shù)依賴函數(shù)依賴 傳遞函數(shù)依賴與直接函數(shù)依賴傳遞函數(shù)依賴與直接函數(shù)依賴 如果如果YX, 即即XY,則,則Z對對X直接函數(shù)依賴。直接函數(shù)依賴。例:在關(guān)系例:在關(guān)系waewae中有:中有:定義定義6.4 在在R(U)中,如

11、果中,如果XY,YZ,且,且Y X,YX,則稱,則稱Z對對X傳遞函數(shù)依賴傳遞函數(shù)依賴,記作記作X t Z 。倉庫號倉庫號所在區(qū)域,所在區(qū)域所在區(qū)域,所在區(qū)域區(qū)域主管區(qū)域主管可可得到傳遞函數(shù)依賴:倉庫號得到傳遞函數(shù)依賴:倉庫號 t 區(qū)域主管區(qū)域主管6.2.2 碼碼定義定義6.5 設(shè)設(shè)K為為R中的屬性或?qū)傩越M合。若中的屬性或?qū)傩越M合。若K F U,則,則K稱為稱為R的一個的一個侯選碼侯選碼。 若關(guān)系模式若關(guān)系模式R有多個候選碼,則選定其中的一有多個候選碼,則選定其中的一個做為個做為主碼主碼。 主屬性:主屬性:包含在任何一個候選碼中的屬性包含在任何一個候選碼中的屬性 非主屬性:非主屬性:不包含在任何

12、一個碼中的屬性不包含在任何一個碼中的屬性 全碼:全碼:整個屬性組全是碼整個屬性組全是碼6.2.2 碼碼定義定義6.56.5 關(guān)系模式關(guān)系模式R R中屬性或?qū)傩越M中屬性或?qū)傩越MX X并非并非R R的碼,的碼,但但X X是另一個關(guān)系模式的碼,則稱是另一個關(guān)系模式的碼,則稱X X是是R R的外部碼,的外部碼,也稱也稱外碼外碼。注:主碼和外碼一起提供了表示關(guān)系間聯(lián)系的手段。注:主碼和外碼一起提供了表示關(guān)系間聯(lián)系的手段。例:在關(guān)系例:在關(guān)系SC(Sno, Cno, Grade)中,中, 由于:由于:Sno不是不是SC的碼,但是另一個關(guān)系的碼,但是另一個關(guān)系S的碼的碼 因此:因此:Sno是是SC的外碼的外

13、碼6.3 規(guī)范化規(guī)范化 范式是對關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為范式是對關(guān)系數(shù)據(jù)庫的規(guī)范化過程中為不同不同程度的規(guī)范化要求程度的規(guī)范化要求設(shè)立的不同標準。設(shè)立的不同標準。 范式是符合某一種級別的關(guān)系模式的集合。范式是符合某一種級別的關(guān)系模式的集合。 范式的種類:范式的種類: 第一范式第一范式(1NF) 第二范式第二范式(2NF) 第三范式第三范式(3NF) BC范式范式(BCNF) 第四范式第四范式(4NF) 第五范式第五范式(5NF)6.3 規(guī)范化規(guī)范化 各種范式之間存在聯(lián)系:各種范式之間存在聯(lián)系:5NF 4NF BCNF 3NF 2NF 1NF 某一關(guān)系模式某一關(guān)系模式R為第為第n范式,可簡記為

14、范式,可簡記為RnNF。 通過模式分解將一個低級范式的關(guān)系模式轉(zhuǎn)換為若通過模式分解將一個低級范式的關(guān)系模式轉(zhuǎn)換為若干個高級范式的關(guān)系模式的過程稱作干個高級范式的關(guān)系模式的過程稱作規(guī)范化規(guī)范化。 6.3.1 第一范式(第一范式(1NF) 定義定義6.7 滿足最低要求的范式。滿足最低要求的范式。 如果一個關(guān)系模式如果一個關(guān)系模式R的所有屬性都是不可分的所有屬性都是不可分的基本數(shù)據(jù)項,則的基本數(shù)據(jù)項,則R1NF。 第一范式是對關(guān)系模式的最起碼要求。第一范式是對關(guān)系模式的最起碼要求。 不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。不滿足第一范式的數(shù)據(jù)庫模式不能稱為關(guān)系數(shù)據(jù)庫。 但滿足第一范式的關(guān)系模式

15、并不一定是一個好的關(guān)系模式。但滿足第一范式的關(guān)系模式并不一定是一個好的關(guān)系模式。6.3.2 第二范式(第二范式(2NF)定義定義6.8 若關(guān)系模式若關(guān)系模式R1NF,并且每一個非主屬,并且每一個非主屬性都完全函數(shù)依賴于性都完全函數(shù)依賴于R的碼,則的碼,則R2NF。即:即:消除非主屬性對碼的部分依賴消除非主屬性對碼的部分依賴 如果一個數(shù)據(jù)庫模式中的每個關(guān)系模式都是第二范式的,如果一個數(shù)據(jù)庫模式中的每個關(guān)系模式都是第二范式的,則稱此數(shù)據(jù)庫模式屬于第二范式的數(shù)據(jù)庫模式。則稱此數(shù)據(jù)庫模式屬于第二范式的數(shù)據(jù)庫模式。 從從1NF1NF中消除非主屬性對候選碼的部分函數(shù)依賴中消除非主屬性對候選碼的部分函數(shù)依賴

16、, ,則獲得則獲得2NF2NF。6.3.2 第二范式(第二范式(2NF)例例: 關(guān)系模式關(guān)系模式WAE中中: WAE(WAE(倉庫號,所在區(qū)域,區(qū)域倉庫號,所在區(qū)域,區(qū)域主管,設(shè)備號,數(shù)量主管,設(shè)備號,數(shù)量) ) 碼碼: (倉庫號倉庫號, 設(shè)備號設(shè)備號) 主屬性主屬性:倉庫號倉庫號, 設(shè)備號設(shè)備號 非主屬性非主屬性: 所在區(qū)域、區(qū)域主管和數(shù)量所在區(qū)域、區(qū)域主管和數(shù)量 函數(shù)依賴:函數(shù)依賴:6.3.2 第二范式(第二范式(2NF)倉庫號倉庫號 設(shè)備號設(shè)備號數(shù)量數(shù)量 所在區(qū)域所在區(qū)域 區(qū)域主管區(qū)域主管關(guān)系關(guān)系WAE碼為碼為(倉庫號倉庫號, 設(shè)備號設(shè)備號)非主屬性所在區(qū)域和區(qū)域主管部分函數(shù)依賴于碼非主

17、屬性所在區(qū)域和區(qū)域主管部分函數(shù)依賴于碼WAE滿足第一范式,但不滿足第二范式。滿足第一范式,但不滿足第二范式。6.3.2 第二范式(第二范式(2NF) 解決方法:將解決方法:將WAE分解為兩個關(guān)系模式,消除這些部分函分解為兩個關(guān)系模式,消除這些部分函數(shù)依賴:數(shù)依賴: 即:即: WE(倉庫號,設(shè)備號,數(shù)量倉庫號,設(shè)備號,數(shù)量) WA(倉庫號,所在區(qū)域,區(qū)域主管倉庫號,所在區(qū)域,區(qū)域主管)倉庫號倉庫號設(shè)備號設(shè)備號數(shù)量數(shù)量關(guān)系關(guān)系WE關(guān)系關(guān)系WA倉庫號倉庫號所在區(qū)域所在區(qū)域區(qū)域主管區(qū)域主管WE2NF, WA2NF6.3.2 第二范式(第二范式(2NF)注:注: 采用投影分解法將一個采用投影分解法將一個

18、1NF的關(guān)系分解為多個的關(guān)系分解為多個2NF的關(guān)系,的關(guān)系,可以在可以在一定程度上減輕一定程度上減輕原原1NF關(guān)系中存在的插入異常、刪關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。 將一個將一個1NF關(guān)系分解為多個關(guān)系分解為多個2NF的關(guān)系,的關(guān)系,并不能完全消除并不能完全消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。 如:如:(1) (1) 若某個區(qū)域剛剛設(shè)立還沒有倉庫,則所在區(qū)域和若某個區(qū)域剛剛設(shè)立還沒有倉庫,則所在區(qū)域和區(qū)域主管的值無法插入,造成區(qū)域主管的值無法插入,造成插入異常插入異常。 (2) (2)

19、 有一定的有一定的數(shù)據(jù)冗余數(shù)據(jù)冗余,當多個倉庫處于同一個區(qū)域,當多個倉庫處于同一個區(qū)域時,區(qū)域主管的值被多次存儲。時,區(qū)域主管的值被多次存儲。 (3) (3) 若某區(qū)域要更換區(qū)域主管,則要逐一地修改該區(qū)若某區(qū)域要更換區(qū)域主管,則要逐一地修改該區(qū)域的所有區(qū)域主管記錄,稍有不慎,就有可能漏改某些記域的所有區(qū)域主管記錄,稍有不慎,就有可能漏改某些記錄,造成錄,造成更新異常更新異常。6.3.3 第三范式(第三范式(3NF)如果一個數(shù)據(jù)庫模式中的每個關(guān)系模式都是第三范如果一個數(shù)據(jù)庫模式中的每個關(guān)系模式都是第三范式的,則稱此數(shù)據(jù)庫模式屬于第三范式的數(shù)據(jù)庫模式的,則稱此數(shù)據(jù)庫模式屬于第三范式的數(shù)據(jù)庫模式。式

20、。從從2NF2NF中消除非主屬性對候選碼的傳遞依賴中消除非主屬性對候選碼的傳遞依賴, ,則獲得則獲得3NF3NF。定義定義6.9 如果關(guān)系模式如果關(guān)系模式R2NF,且每個非主屬性都不,且每個非主屬性都不傳遞函數(shù)依賴于傳遞函數(shù)依賴于R的候選碼,則稱的候選碼,則稱R屬于第三范式,簡稱屬于第三范式,簡稱3NF,記作,記作R3NF。 即:消除非主屬性對碼的即:消除非主屬性對碼的部分依賴部分依賴和和傳遞依賴傳遞依賴6.3.3 第三范式(第三范式(3NF)例例: WE(倉庫號,設(shè)備號,數(shù)量倉庫號,設(shè)備號,數(shù)量) WA(倉庫號,所在區(qū)域,區(qū)域主管倉庫號,所在區(qū)域,區(qū)域主管) 函數(shù)依賴:函數(shù)依賴: WE中中:

21、 (倉庫號,設(shè)備號倉庫號,設(shè)備號) f 數(shù)量數(shù)量 WA中:中:倉庫號倉庫號所在區(qū)域,所在區(qū)域所在區(qū)域,所在區(qū)域區(qū)域主管區(qū)域主管 可可得到傳遞函數(shù)依賴:倉庫號得到傳遞函數(shù)依賴:倉庫號 區(qū)域主管區(qū)域主管 因此:因此: WE 3NF,而,而WA 3NF6.3.3 第三范式(第三范式(3NF) 原因原因:區(qū)域主管傳遞依賴于碼。區(qū)域主管傳遞依賴于碼。 解決方法:將解決方法:將WA分解為兩個關(guān)系模式,消除這些分解為兩個關(guān)系模式,消除這些傳遞依賴:傳遞依賴: 即:即: W(倉庫號,所在區(qū)域倉庫號,所在區(qū)域) A(所在區(qū)域,區(qū)域主管所在區(qū)域,區(qū)域主管)倉庫號倉庫號所在區(qū)域所在區(qū)域關(guān)系關(guān)系W關(guān)系關(guān)系A(chǔ)所在區(qū)域所

22、在區(qū)域區(qū)域主管區(qū)域主管W3NF, A3NF6.3.3 第三范式(第三范式(3NF)注:注: 采用采用投影分解法投影分解法將一個將一個2NF的關(guān)系分解為多個的關(guān)系分解為多個3NF的的關(guān)系,可以在關(guān)系,可以在一定程度上減輕一定程度上減輕原原2NF關(guān)系中存在的關(guān)系中存在的插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等插入異常、刪除異常、數(shù)據(jù)冗余度大、修改復(fù)雜等問題。問題。 將一個將一個2NF關(guān)系分解為多個關(guān)系分解為多個3NF的關(guān)系,的關(guān)系,并不能完全并不能完全消除消除關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。表現(xiàn)關(guān)系模式中的各種異常情況和數(shù)據(jù)冗余。表現(xiàn)在可能存在主屬性對碼的部分和傳遞依賴。在可能存在主屬性對

23、碼的部分和傳遞依賴。6.3.4 BC范式(范式(BCNF) BCNF范式是第三范式的改進形式,建立在第一范范式是第三范式的改進形式,建立在第一范式的基礎(chǔ)上,消除了主屬性對碼的部分和傳遞依賴。式的基礎(chǔ)上,消除了主屬性對碼的部分和傳遞依賴。定義定義6.10 設(shè)關(guān)系模式設(shè)關(guān)系模式R1NF,若對于,若對于R的每個函的每個函數(shù)依賴數(shù)依賴XY,若,若Y不屬于不屬于X,則,則X必含有候選碼,那必含有候選碼,那么么RBCNF。即:每一個決定因素(決定屬性集)都包含碼即:每一個決定因素(決定屬性集)都包含碼6.3.4 BC范式(范式(BCNF)證明:證明:BCNF 3NF反證:若反證:若R BCNF, 但但R

24、3NF,則按,則按3NF定義,定義,一定有非主屬性對碼的傳遞依賴。一定有非主屬性對碼的傳遞依賴。 于是存在:于是存在:R的碼的碼X ,屬性組,屬性組Y,以及非主屬,以及非主屬性性Z(Z Y),使得),使得XY, Y Z,YX成立。成立。 由由YZ,按,按BCNF定義,定義,Y含有碼,則是含有碼,則是YX成成立,這與立,這與YX矛盾。矛盾。 所以:所以:R 3NF。6.3.4 BC范式(范式(BCNF)注意:注意: 若若RBCNF ,則,則R3NF 若若R3NF ,則,則R不一定屬于不一定屬于BCNF若若RBCNF 所有非主屬性對每一個候選碼都是完全函數(shù)依賴;所有非主屬性對每一個候選碼都是完全函

25、數(shù)依賴; 所有主屬性對所有主屬性對每一個不包含它的候選碼每一個不包含它的候選碼都是完全函數(shù)都是完全函數(shù)依賴;依賴; 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性。6.3.4 BC范式(范式(BCNF)例例1: Course(Cno, Creidt, Pcno) 函數(shù)依賴函數(shù)依賴: Cno Credit, Cno Pcno 即:無部分依賴和傳遞依賴,且即:無部分依賴和傳遞依賴,且Cno是唯一決定因素是唯一決定因素 因此:因此: Course 3NF,且,且Course BCNF 碼碼: Cno 即為主屬性,決定因素即為主屬性,決定因素6.3.4 BC

26、范式(范式(BCNF)例例2:在關(guān)系模式:在關(guān)系模式SCP(S, C, P)中,)中,S表示學(xué)生,表示學(xué)生,C表示課程,表示課程, P表示名次。表示名次。說明:說明: 每一個學(xué)生選修每一門課程都有一個固定的名每一個學(xué)生選修每一門課程都有一個固定的名次:次: 每一門課程中每一名次只對應(yīng)一個學(xué)生(假設(shè)每一門課程中每一名次只對應(yīng)一個學(xué)生(假設(shè)沒有相同名次的學(xué)生)沒有相同名次的學(xué)生) :(S,C)P(C,P)S6.3.4 BC范式(范式(BCNF)SCPCPS關(guān)系關(guān)系SCP 候選碼候選碼: (S,C) 和和(C,P)即:即:S,C和和P都是主屬性都是主屬性 決定因素決定因素: (S,C)和和(C,P)

27、 結(jié)論結(jié)論:SCPBCNF 只有只有(S,C)和和(C,P)決定因素且包含候選碼,決定因素且包含候選碼,無其他決定因素?zé)o其他決定因素SCP3NF S、C、P都是主屬性都是主屬性無部分依賴和傳遞依賴無部分依賴和傳遞依賴6.3.4 BC范式(范式(BCNF)例例3:在關(guān)系模式:在關(guān)系模式WES(倉庫號倉庫號,設(shè)備號設(shè)備號,職工號職工號)中。中。說明:說明:一個倉庫可以有多個職工一個倉庫可以有多個職工;一個職工僅在一個倉庫工作一個職工僅在一個倉庫工作;1.每個倉庫一種設(shè)備僅由一名職工保管每個倉庫一種設(shè)備僅由一名職工保管,但每名職工可以保但每名職工可以保管多種設(shè)備管多種設(shè)備. 問問:該關(guān)系的碼該關(guān)系的

28、碼?屬于第幾范式屬于第幾范式?答答:碼碼: (倉庫號倉庫號,設(shè)備號設(shè)備號) 屬于屬于3NF,但不屬于但不屬于BCNF 非非BCNF的不良特性的不良特性:某位職工剛分配到某位職工剛分配到一個倉庫工作,但一個倉庫工作,但尚未負責(zé)具體設(shè)備,尚未負責(zé)具體設(shè)備,這樣的信息就無法這樣的信息就無法插入插入。職工號職工號倉庫號倉庫號 (倉庫號倉庫號,設(shè)備號設(shè)備號) 職工號職工號練習(xí)練習(xí)1 1:問:關(guān)系模式問:關(guān)系模式R中的屬性中的屬性全部是主屬性全部是主屬性,則則R的的必定是必定是_。 3NF練習(xí)練習(xí)2:如下表所示的關(guān)系如下表所示的關(guān)系R R,下列選項中關(guān)于該關(guān)系模,下列選項中關(guān)于該關(guān)系模式屬于第幾范式判斷正

29、確的是式屬于第幾范式判斷正確的是( )。)。A、不是、不是3NF B、是、是3NF但不是但不是2NFC、是、是3NF但不是但不是BCNFD、是、是BCNFD任何一個二元關(guān)系必定任何一個二元關(guān)系必定屬于基于函數(shù)依賴最高屬于基于函數(shù)依賴最高范式范式BCNFBCNF。6.3.5 多值依賴與第四范式多值依賴與第四范式課課 程程 C教教 員員 T參參 考考 書書 B物理物理 數(shù)學(xué)數(shù)學(xué) 計算數(shù)計算數(shù)學(xué)學(xué)李李 勇勇王王 軍軍 李李 勇勇張張 平平 張張 平平周周 峰峰 普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集 數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù) 數(shù)學(xué)分析數(shù)學(xué)分析 例例: 學(xué)校

30、中某一門課學(xué)校中某一門課程由多個教師講授,程由多個教師講授,他們使用相同的一他們使用相同的一套參考書。套參考書。即:關(guān)系模式即:關(guān)系模式Teaching(C, T, B) 課程課程C、教師、教師T 和和 參參考書考書B6.3.5 多值依賴與第四范式多值依賴與第四范式普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理物理習(xí)題集物理習(xí)題集普通物理學(xué)普通物理學(xué)光學(xué)原理光學(xué)原理物理習(xí)題集物理習(xí)題集數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù)數(shù)學(xué)分析數(shù)學(xué)分析微分方程微分方程高等代數(shù)高等代數(shù)李李 勇勇李李 勇勇李李 勇勇王王 軍軍王王 軍軍王王 軍軍李李 勇勇李李 勇勇李李 勇勇張張 平平張張 平平張張 平平 物物

31、 理理物物 理理物物 理理物物 理理物物 理理物物 理理數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué)數(shù)數(shù) 學(xué)學(xué) 參考書參考書B教員教員T課程課程C用二維表表示用二維表表示Teaching6.3.5 多值依賴與第四范式多值依賴與第四范式 Teach具有唯一候選碼具有唯一候選碼(C, T, B), 即全碼即全碼 TeachingBCNF 存在的問題存在的問題 (1)數(shù)據(jù)冗余數(shù)據(jù)冗余:有多少名任課教師,參考書就要存儲多少次:有多少名任課教師,參考書就要存儲多少次 ; (2)插入異常插入異常:當某一課程增加一名任課教師時,該課程有:當某一課程增加一名任課教師時,該課程有多少本參照書,就必須插入多

32、少個元組;多少本參照書,就必須插入多少個元組; (3) 刪除異常:刪除異常:某一門課要去掉一本參考書,該課程有多少某一門課要去掉一本參考書,該課程有多少名教師,就必須刪除多少個元組;名教師,就必須刪除多少個元組; (4) 修改異常:修改異常:某一門課要修改一本參考書,該課程有多少某一門課要修改一本參考書,該課程有多少名教師,就必須修改多少個元組。名教師,就必須修改多少個元組。 產(chǎn)生原因:存在產(chǎn)生原因:存在多值依賴多值依賴6.3.5 多值依賴與第四范式多值依賴與第四范式定義定義6.11 設(shè)設(shè)R(U)是屬性集是屬性集U上的一個關(guān)系模式。上的一個關(guān)系模式。X、 Y、Z是是U的子集,并且的子集,并且Z

33、UXY,多值依,多值依賴賴 XY成立當且僅當對成立當且僅當對R的任一關(guān)系的任一關(guān)系r,給定一給定一對(對(x,z)值,則對應(yīng)一組)值,則對應(yīng)一組Y值,且這組值僅僅決值,且這組值僅僅決定于定于X值而與值而與Z值無關(guān)值無關(guān)。例:例: Teaching(C, T, B) 對于對于C的每一個值,的每一個值,T總有一組值與之對應(yīng),而總有一組值與之對應(yīng),而與與B的取值無關(guān),則的取值無關(guān),則T多值依賴于多值依賴于C即:即:CT,且,且B也多值依賴于也多值依賴于C即:即:CB。6.3.5 多值依賴與第四范式多值依賴與第四范式 平凡多值依賴和非平凡的多值依賴平凡多值依賴和非平凡的多值依賴 若若XY,而,而Z,則

34、稱,則稱XY為平凡為平凡的多值依賴;的多值依賴; 否則稱否則稱XY為非平凡的多值依賴。為非平凡的多值依賴。如非平凡的多值依賴:如非平凡的多值依賴:CT,CB6.3.5 多值依賴與第四范式多值依賴與第四范式 多值依賴的性質(zhì):多值依賴的性質(zhì):(1)對稱性對稱性: 即:若即:若XY,則,則XZ,其中,其中ZUXY 多值依賴的對稱性可以用多值依賴的對稱性可以用完全二分圖完全二分圖直觀地直觀地表示出來。表示出來。(2)傳遞性傳遞性:即:若即:若XY,YZ, 則則XZ Y6.3.5 多值依賴與第四范式多值依賴與第四范式 物物 理理普通物理學(xué)普通物理學(xué) 光學(xué)原理光學(xué)原理 物理習(xí)題集物理習(xí)題集李勇李勇 王軍王

35、軍完全二分圖描述多值依賴對稱性完全二分圖描述多值依賴對稱性6.3.5 多值依賴與第四范式多值依賴與第四范式(5)函數(shù)依賴是多值依賴的特殊情況:)函數(shù)依賴是多值依賴的特殊情況: 即:若即:若XY,則,則XY。(3)合并性合并性: 若若XY,XZ,則,則 XY Z。(4)分解性分解性: 若若XY,XZ,則,則 XYZ, XYZ, XZY。6.3.5 多值依賴與第四范式多值依賴與第四范式定義定義6.12 關(guān)系模式關(guān)系模式R1NF,如果對于,如果對于R的每個非平的每個非平凡多值依賴凡多值依賴XY(Y X),),X都含有候選碼,都含有候選碼,則則R4NF。即:即:消除各屬性間非平凡且非函數(shù)依賴的多值依賴

36、。消除各屬性間非平凡且非函數(shù)依賴的多值依賴。 允許出現(xiàn)函數(shù)依賴(非平凡多值依賴)允許出現(xiàn)函數(shù)依賴(非平凡多值依賴) 允許出現(xiàn)平凡多值依賴允許出現(xiàn)平凡多值依賴 如果如果R 4NF, 則則R BCNF6.3.5 多值依賴與第四范式多值依賴與第四范式證明:證明:4NF BCNF反證:若反證:若R 4NF, 但但R BCNF,則按,則按BCNF定定義,一定有一個決定因素不包含碼。義,一定有一個決定因素不包含碼。 于是存在:于是存在:XY, Y X,且,且X中不含有碼。中不含有碼。 由于函數(shù)依賴是多值依賴的特殊情況,即:由于函數(shù)依賴是多值依賴的特殊情況,即:XY ,可得,可得XY (Y X) ,按按4N

37、F定義,定義,X一定含有碼,則與一定含有碼,則與X中不含有碼矛盾。中不含有碼矛盾。 所以:所以:R BCNF。6.3.5 多值依賴與第四范式多值依賴與第四范式 存在非平凡的多值依賴存在非平凡的多值依賴CT,且,且C不是候選不是候選碼,該關(guān)系模式的碼是碼,該關(guān)系模式的碼是(C,T,B) ,即全碼。,即全碼。 存在問題存在問題:數(shù)據(jù)冗余大,插入、刪除、更新異常:數(shù)據(jù)冗余大,插入、刪除、更新異常 解決方法解決方法:用投影分解法把:用投影分解法把Teach分解為如下兩個分解為如下兩個關(guān)系模式關(guān)系模式: CT(C, T) 4NF CB(C, B) 4NF 其中:其中:CT, CB是平凡多值依賴是平凡多值

38、依賴 例:例: Teach(C,T,B) 4NF6.3.5 多值依賴與第四范式多值依賴與第四范式 函數(shù)依賴和多值依賴是兩種非常重要的數(shù)據(jù)依賴函數(shù)依賴和多值依賴是兩種非常重要的數(shù)據(jù)依賴 若只考慮若只考慮函數(shù)依賴函數(shù)依賴,則,則BCNF為最高范式(但為最高范式(但不是數(shù)據(jù)庫模式設(shè)計的最高范式);不是數(shù)據(jù)庫模式設(shè)計的最高范式); 若考慮若考慮多值依賴多值依賴,則,則4NF為最高范式;為最高范式; 若消除了若消除了4NF中的中的連接依賴連接依賴,可以得到更為規(guī),可以得到更為規(guī)范化的范化的5NF。6.3.6 關(guān)系模式規(guī)范化關(guān)系模式規(guī)范化 一個關(guān)系只要其分量都是不可分的數(shù)據(jù)項,它就是一個關(guān)系只要其分量都是

39、不可分的數(shù)據(jù)項,它就是規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化規(guī)范化的關(guān)系,但這只是最基本的規(guī)范化1NF。 規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實規(guī)范化程度過低的關(guān)系不一定能夠很好地描述現(xiàn)實世界,可能會存在插入異常、刪除異常、修改復(fù)雜、世界,可能會存在插入異常、刪除異常、修改復(fù)雜、數(shù)據(jù)冗余等問題。數(shù)據(jù)冗余等問題。 一個低一級范式的關(guān)系模式,通過一個低一級范式的關(guān)系模式,通過模式分解模式分解可以轉(zhuǎn)可以轉(zhuǎn)換為若干個高一級范式的關(guān)系模式集合,這種過程換為若干個高一級范式的關(guān)系模式集合,這種過程就叫就叫關(guān)系模式的規(guī)范化關(guān)系模式的規(guī)范化。6.3.6 關(guān)系模式規(guī)范化關(guān)系模式規(guī)范化 消除不合適的數(shù)據(jù)依賴消

40、除不合適的數(shù)據(jù)依賴; 采用采用“一事一地一事一地”的模式設(shè)計原則,使各關(guān)系模的模式設(shè)計原則,使各關(guān)系模式達到某種程度的式達到某種程度的“分離分離”; 讓一個關(guān)系描述一個概念、一個實體或者實體間讓一個關(guān)系描述一個概念、一個實體或者實體間的一種聯(lián)系的一種聯(lián)系; 若多于一個概念就把它若多于一個概念就把它“分離分離”出去;出去; 所謂規(guī)范化實質(zhì)上是所謂規(guī)范化實質(zhì)上是概念的單一化概念的單一化。 規(guī)范化的基本思想規(guī)范化的基本思想6.3.6 關(guān)系模式規(guī)范化關(guān)系模式規(guī)范化 關(guān)系模式規(guī)范化的基本步驟關(guān)系模式規(guī)范化的基本步驟 1NF 消除決定因素消除決定因素 2NF非碼的非平凡非碼的非平凡 函數(shù)依賴函數(shù)依賴 3N

41、F BCNF 4NF消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的部分函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴消除非主屬性對碼的傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴消除主屬性對碼的部分和傳遞函數(shù)依賴消除非平凡且非函數(shù)依賴的多值依賴消除非平凡且非函數(shù)依賴的多值依賴不能說規(guī)范化程度越高的關(guān)系模式就越好;不能說規(guī)范化程度越高的關(guān)系模式就越好;在設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,必須對現(xiàn)實世界的實際情況和用戶應(yīng)用需求作在設(shè)計數(shù)據(jù)庫模式結(jié)構(gòu)時,必須對現(xiàn)實世界的實際情況和用戶應(yīng)用需求作進一步分析,確定一個合適的、能夠反映現(xiàn)實世界的模式;進一步分析,確定一個合適的、能夠反映現(xiàn)實世界的模式;上面的規(guī)范化步驟可以

42、在其中任何一步終止。上面的規(guī)范化步驟可以在其中任何一步終止。注意:注意:練習(xí)練習(xí) 給定關(guān)系模式和函數(shù)依賴集合,要求判斷達給定關(guān)系模式和函數(shù)依賴集合,要求判斷達到的最高范式。到的最高范式。步驟如下步驟如下:1.1.求出給定關(guān)系的候選碼(可能不止一個)求出給定關(guān)系的候選碼(可能不止一個)2.2.根據(jù)碼,寫出主屬性和非主屬性。根據(jù)碼,寫出主屬性和非主屬性。3.3.判斷是否滿足第一范式判斷是否滿足第一范式( (屬性的值域是否可以分解)屬性的值域是否可以分解)4.4.判斷是否滿足第二范式判斷是否滿足第二范式( (非主屬性對碼的部分函數(shù)非主屬性對碼的部分函數(shù)依賴依賴) ) 5.5.判斷是否滿足第三范式判斷

43、是否滿足第三范式( (非主屬性對碼的傳遞函數(shù)非主屬性對碼的傳遞函數(shù)依賴依賴) ) 6.6.判斷是否滿足判斷是否滿足BCNFBCNF范式范式( (主屬性對碼的傳遞和部分主屬性對碼的傳遞和部分函數(shù)依賴函數(shù)依賴) )解:解:1. 關(guān)系關(guān)系r的候選碼為:的候選碼為:AB和和AC 練習(xí)練習(xí)1. 已知關(guān)系模式已知關(guān)系模式R U=A,B,C,D F=ABD, AC BD, BC在函數(shù)依賴范圍內(nèi)在函數(shù)依賴范圍內(nèi)該關(guān)系屬于的最高范式是什么?該關(guān)系屬于的最高范式是什么?2. 主屬性為:主屬性為:A、B、C 非主屬性為:非主屬性為:D3. 判斷是否滿足各個范式的要求判斷是否滿足各個范式的要求: 1) R的的所有的屬

44、性值域都不可再分,則所有的屬性值域都不可再分,則r 1NF。 2) 非主屬性非主屬性D不存在對任何碼的部分函數(shù)依賴,則不存在對任何碼的部分函數(shù)依賴,則r 2NF。 3) 非主屬性非主屬性D不存在對任何碼的傳遞函數(shù)依賴不存在對任何碼的傳遞函數(shù)依賴,則,則r 3NF。 4) 因為有函數(shù)依賴因為有函數(shù)依賴BC,而,而B不是關(guān)系不是關(guān)系R的碼,則的碼,則r不屬于不屬于BCNF。則:則: r 3NF 解:解:1. 關(guān)系關(guān)系r的候選碼為:的候選碼為:AC練習(xí)練習(xí)2. 已知關(guān)系模式已知關(guān)系模式R U=A,B,C,D,E,F F=AB, C DF, ACE, DF在函數(shù)依賴范圍內(nèi)在函數(shù)依賴范圍內(nèi)該關(guān)系屬于的最

45、高范式是什么?該關(guān)系屬于的最高范式是什么?2. 主屬性為:主屬性為:A、C 非主屬性為:非主屬性為:B、D、E、F3. 判斷是否滿足各個范式的要求:判斷是否滿足各個范式的要求: 1) R的的所有的屬性值域都不可再分,則所有的屬性值域都不可再分,則r 1NF。 2) 由于存在函數(shù)依賴由于存在函數(shù)依賴AB, C DF,而,而A A和和C C均不是關(guān)系的均不是關(guān)系的碼,存在碼,存在非主屬性非主屬性B、D、F對碼的部分函數(shù)依賴,則對碼的部分函數(shù)依賴,則r不屬于不屬于2NF。則:則: r 1NF 練習(xí)練習(xí)練習(xí)練習(xí)3.假設(shè)假設(shè):某商業(yè)集團數(shù)據(jù)庫中有一關(guān)系模式:某商業(yè)集團數(shù)據(jù)庫中有一關(guān)系模式R R如下:如下

46、:R (R (商店編號,商品編號,數(shù)量,部門編號,負責(zé)人商店編號,商品編號,數(shù)量,部門編號,負責(zé)人) )如果規(guī)定如果規(guī)定: (1) (1) 每個商店的每種商品只在一個部門銷售;每個商店的每種商品只在一個部門銷售;(2) (2) 每個商店的每個部門只有一個負責(zé)人;每個商店的每個部門只有一個負責(zé)人;(3) (3) 每個商店的每種商品只有一個庫存數(shù)量。每個商店的每種商品只有一個庫存數(shù)量。試回答下列問題試回答下列問題:(1) (1) 根據(jù)上述規(guī)定,寫出關(guān)系模式根據(jù)上述規(guī)定,寫出關(guān)系模式R R的基本函數(shù)依賴;的基本函數(shù)依賴;(2) (2) 找出關(guān)系模式找出關(guān)系模式R R的候選碼;的候選碼;(3) (3)

47、 試問關(guān)系模式試問關(guān)系模式R R最高已經(jīng)達到第幾范式?為什么?最高已經(jīng)達到第幾范式?為什么?(4) (4) 如果如果R R不屬于不屬于3NF3NF,請將,請將R R分解成分解成3NF3NF模式集模式集 練習(xí)練習(xí)(1)(1)有三個函數(shù)依賴有三個函數(shù)依賴: ( (商店編號,商品編號商店編號,商品編號) ) 部門編號部門編號 ( (商店編號,部門編號商店編號,部門編號) ) 負責(zé)人負責(zé)人 ( (商店編號,商品編號商店編號,商品編號) ) 數(shù)量數(shù)量(2) R(2) R的的候選鍵候選鍵: (: (商店編號,商品編號商店編號,商品編號) )(3)(3)因為因為R R中存在著非主屬性中存在著非主屬性“負責(zé)人

48、負責(zé)人”對候選碼對候選碼 ( (商店編號、商品編號商店編號、商品編號) )的傳遞函數(shù)依賴,但無部的傳遞函數(shù)依賴,但無部分函數(shù)依賴,所以分函數(shù)依賴,所以R R屬于屬于2NF2NF,R R不屬于不屬于3NF3NF。(4) (4) 將將R R分解成:分解成: R1 (R1 (商店編號,商品編號,數(shù)量,部門編號商店編號,商品編號,數(shù)量,部門編號) ) R2 ( R2 (商店編號,部門編號,負責(zé)人商店編號,部門編號,負責(zé)人) ) 6.4Armstrong公理系統(tǒng)公理系統(tǒng) 函數(shù)依賴公理函數(shù)依賴公理 一套推理規(guī)則,是模式分解算法的理論基礎(chǔ)。一套推理規(guī)則,是模式分解算法的理論基礎(chǔ)。 用途:用途:(1 1)求函

49、數(shù)依賴集閉包、屬性集閉包。)求函數(shù)依賴集閉包、屬性集閉包。(2 2)求最小函數(shù)依賴集。)求最小函數(shù)依賴集。(3 3)求給定關(guān)系模式的候選碼。)求給定關(guān)系模式的候選碼。(4 4)模式分解。)模式分解。一、邏輯蘊含的定義一、邏輯蘊含的定義定義定義1: 設(shè)設(shè)F是關(guān)系模式是關(guān)系模式R 的一個函數(shù)依賴的一個函數(shù)依賴集,集,X,Y U,對對 r,XY都成立都成立, 則稱則稱F邏輯蘊邏輯蘊含含X Y。另一等價定義:設(shè)另一等價定義:設(shè)F是關(guān)系模式是關(guān)系模式R 的一個的一個函數(shù)依賴集,函數(shù)依賴集,X,Y U,若從若從F中的函數(shù)依賴可推中的函數(shù)依賴可推出出X Y, 則稱則稱F邏輯蘊含邏輯蘊含X Y。二、推理規(guī)則二

50、、推理規(guī)則設(shè)關(guān)系模式為設(shè)關(guān)系模式為R (1)A1自反律(自反律(Reflexivity):): 若若Y X U,則,則X Y為為F所蘊含。所蘊含。證明證明: 設(shè)設(shè)Y X U (僅需了解!(僅需了解! )R 的的 r中,對中,對 元組元組t,s:若若tX=sX,(1)Y X,則,則tY=sY,(2)由由(1),(2)可得可得XY成立,自反律得證。成立,自反律得證。注意注意:由自反律所得到的:由自反律所得到的函數(shù)依賴均是函數(shù)依賴均是平凡的函數(shù)平凡的函數(shù)依賴依賴,自反律的使用并不,自反律的使用并不依賴于依賴于F。如:如:(sno,sname)-sname(2)A2.增廣律(增廣律(Augmentat

51、ion):): 若若XY為為F所蘊含,且所蘊含,且Z U,則,則XZYZ為為F所蘊含。所蘊含。證明:證明: (僅需了解?。▋H需了解! )設(shè)設(shè)R 的的 r中,中, 元組元組t,s;若若tXZ=sXZ (1),),則有則有tX=sX和和tZ=sZ;(;(2)XY,則有,則有tY=sY,(,(3)由由(2),(3)可得:可得:tYZ=sYZ (4) 由由(1),(4)可得,則可得,則XZYZ為為F所蘊含,所蘊含,增廣律得證。增廣律得證。如:如:sno-sname,sdeptU, U, 則則(sno,sdept)-(sname,sdept)(sno,sdept)-(sname,sdept)(3)A3.

52、傳遞律(傳遞律(Transitivity):): 若若XY及及YZ為為F所蘊含,則所蘊含,則XZ為為F所所蘊含。蘊含。證明:設(shè)證明:設(shè)XY及及YZ為為F所蘊含。所蘊含。對對R 的的 r, 元組元組 t,s。若若tX=sX (1),),XY,則,則 tY=sY;又又YZ,則有,則有tZ=sZ (2),),由由(1),(2)可得:可得:XZ為為F所蘊含,傳遞律得所蘊含,傳遞律得證。證。如:如:sno-sdept,sdept-dname-dname可得:可得:sno-dnamesno-dname(4)由由Armstrong公理得到以下推論公理得到以下推論:1)、合并律:如果)、合并律:如果XY和和X

53、Z成立,則成立,則XYZ成立。成立。2)、偽傳遞律:如果)、偽傳遞律:如果XY和和WYZ成立,則成立,則WXZ成立。成立。3)、分解律:如果)、分解律:如果XY和和ZY成立,則成立,則XZ成立。成立。(5)根據(jù)合并規(guī)則和分解規(guī)則,可得的引理:)根據(jù)合并規(guī)則和分解規(guī)則,可得的引理: 引理引理1: XA1 A2Ak成立的充分必要條件是成立的充分必要條件是XAi (i=l,2,k)成立。)成立。若已知:若已知:sno-sname,sdept可得:可得:sno-sname, sno-sdeptsno-sname, sno-sdept若已知若已知sno-sname, sno-sdeptsno-sname

54、, sno-sdept可得:可得: sno-sname,sdept三、函數(shù)依賴閉包定義三、函數(shù)依賴閉包定義定義定義2:由被:由被F邏輯蘊涵的函數(shù)依賴的全體構(gòu)成邏輯蘊涵的函數(shù)依賴的全體構(gòu)成的集合,稱為的集合,稱為F的閉包的閉包,記作,記作F+。四、四、 Armstrong公理系統(tǒng)的有效性、完備性公理系統(tǒng)的有效性、完備性1、有效性:由、有效性:由F出發(fā)可由出發(fā)可由Armstrong公理推導(dǎo)公理推導(dǎo)出來的每一個函數(shù)依賴一定在出來的每一個函數(shù)依賴一定在F+中;中;2、完備性是指:、完備性是指:F+中的每一個函數(shù)依賴,必中的每一個函數(shù)依賴,必定可由定可由F根據(jù)根據(jù)Armstrong公理推導(dǎo)出來。公理推導(dǎo)

55、出來。6.4 函數(shù)依賴的公理系統(tǒng)函數(shù)依賴的公理系統(tǒng) 邏輯蘊含邏輯蘊含 定義定義6.13 對于滿足一組函數(shù)依賴對于滿足一組函數(shù)依賴 F 的關(guān)系模式的關(guān)系模式R ,其任何一個關(guān)系,其任何一個關(guān)系r,若函數(shù)依賴,若函數(shù)依賴XY都都成立,成立, 則稱則稱F邏輯蘊含邏輯蘊含X Y ,或稱,或稱X Y 為為F所所蘊含蘊含。即:對于即:對于r中任意兩個元組中任意兩個元組t和和s,有:若有:若 tX=sX 則則 tY=sY 必成立。必成立。 6.4.1 Armstong公理系統(tǒng)公理系統(tǒng) Armstrong公理系統(tǒng)公理系統(tǒng)函數(shù)依賴的推理規(guī)則函數(shù)依賴的推理規(guī)則 關(guān)系模式關(guān)系模式R 有以下推理規(guī)則:有以下推理規(guī)則:

56、Al 自反律自反律:若:若Y X U,則,則X Y為為F所蘊含。所蘊含。A2 增廣律增廣律:若:若XY為為F所蘊含,且所蘊含,且Z U,則,則XZYZ為為F所蘊含。所蘊含。A3 傳遞律傳遞律:若:若XY及及YZ為為F所蘊含,則所蘊含,則XZ為為F所蘊含。所蘊含。注:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律注:由自反律所得到的函數(shù)依賴均是平凡的函數(shù)依賴,自反律的使用并不依賴于的使用并不依賴于F。6.4.1 Armstong公理系統(tǒng)公理系統(tǒng)偽傳遞規(guī)則:偽傳遞規(guī)則:若若X Y,WY Z,則,則XW Z 。分解規(guī)則:分解規(guī)則:若若X Y及及 Z Y,則則X Z 。X Y增廣律增廣律X XYX

57、 Z增廣律增廣律XY YZ傳遞律傳遞律X YZ證明合并規(guī)則:證明合并規(guī)則: 由由Armstrong公理導(dǎo)出的推理規(guī)則公理導(dǎo)出的推理規(guī)則:合并規(guī)則:合并規(guī)則:若若X Y,X Z,則,則X YZ。6.4.2 閉包閉包 引理引理6.l 若若A1A2An是關(guān)系模式是關(guān)系模式R的屬性集的屬性集, 則:則:XA1 A2Ak XAi成立成立(i=l,2,k)。證明:充分性:由合并律證明:充分性:由合并律 必要性:由分解律必要性:由分解律 根據(jù)合并規(guī)則和分解規(guī)則,可得:根據(jù)合并規(guī)則和分解規(guī)則,可得:6.4.2 閉包閉包定義定義6.14 在關(guān)系模式在關(guān)系模式R中為中為F所邏輯蘊含的函數(shù)依賴所邏輯蘊含的函數(shù)依賴的

58、全體叫作的全體叫作 F的閉包的閉包,記為,記為F+。定義定義6.15 設(shè)設(shè)F為屬性集為屬性集U上的一組函數(shù)依賴,上的一組函數(shù)依賴,X U, XF+ = A|XA能由能由F 根據(jù)根據(jù)Armstrong公理導(dǎo)出公理導(dǎo)出,XF+稱為稱為屬性集屬性集X關(guān)于函數(shù)依賴集關(guān)于函數(shù)依賴集F 的閉包。的閉包。引理引理6.2 設(shè)設(shè)F為屬性集為屬性集U上的一組函數(shù)依賴,上的一組函數(shù)依賴,X,Y U,XY能由能由F 根據(jù)根據(jù)Armstrong公理導(dǎo)出的充分必要條件是公理導(dǎo)出的充分必要條件是Y XF+用途:將判定用途:將判定XY是否能由是否能由F根據(jù)根據(jù)Armstrong公理導(dǎo)出的問公理導(dǎo)出的問題,轉(zhuǎn)化為求出題,轉(zhuǎn)化為

59、求出XF+ ,判定,判定Y是否為是否為XF+的子集的問題。的子集的問題。6.4.2 閉包閉包算法算法6.l 求屬性集求屬性集X(X U)關(guān)于)關(guān)于U上的函數(shù)依賴集上的函數(shù)依賴集F 的閉包的閉包XF+ 輸入:輸入:X,F(xiàn)輸出:輸出:XF+步驟:步驟:(1)令)令X(0)=X,i=0(2)求)求B:B = A |( V)( W)(VW F V X(i)A W);(3)X(i+1)=BX(i) (4)判斷)判斷X(i+1)= X (i)嗎嗎?(5)若相等或)若相等或X(i)=U , 則則X(i)就是就是XF+ , 算法終止。算法終止。(6)若不相等)若不相等, 則則 i=i+l,返回第(,返回第(2

60、)步。)步。例:例: 已知關(guān)系模式已知關(guān)系模式R,其中,其中U=A,B,C,D,EF=ABC,BD,CE,ECB,ACB求(求(AB)F+ 。解:解: (1) 設(shè)設(shè)X(0)=AB; (2) 計算計算X(1): 逐一掃描逐一掃描F集合中各個函數(shù)依賴,找左部為集合中各個函數(shù)依賴,找左部為A,B或或AB的函數(shù)依賴。的函數(shù)依賴。 得到兩個:得到兩個:ABC,BD。 (3) X(1)=ABCD=ABCD。 (4) X(0) X(1) 則需再找出左部為則需再找出左部為ABCD子集的那些函數(shù)依賴,又得到子集的那些函數(shù)依賴,又得到ABC,BD, CE,ACB 于是:于是:X(2)=X(1)BCDE=ABCDE

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論