數據庫學習摘記 —— 關系模式的函數依賴


關系與關系模式的聯系:

關系模式是相對穩定的,靜態的,是把所有元組刪去后的一張空表格,是對元組數據組織方式的結構描述,而關系卻是動態變化的,不穩定的,是將若干元組填入關系模式后得到的一個取值實例。每一個關系對應一個關系模式,每一個關系模式可以定義多個關系。

關系模式R(U)對應的具體關系通常用小寫字母r來表示。

函數依賴:

設R(U)是屬性集U={A1, A2, …, An}上的關系模式,X和Y是U的子集。若對R(U)的任一具體關系r中的任意兩個元組t1和t2,只要t1[X]=t2[X] 就有t1[Y]=t2[Y]。則稱"X函數確定Y" 或"Y函數依賴於X",記作X→Y,X為這個函數依賴的決定因素。

函數依賴要求R(U)的一切具體關系r都要滿足的約束條件。

若X→Y且Y→X,則記作XY

平凡函數依賴:X→Y,YX    // 對於任一關系模式,平凡函數依賴必然是成立的

非平凡函數依賴:X→Y,YX

完全函數依賴:

如果X→Y,且對於X的任何一個真子集X',都有X不函數確定Y ,則稱Y對X完全函數依賴或者X完全決定Y,記作:

部分函數依賴:

如果X→Y,但Y不是完全函數依賴於X,則稱Y 對X部分函數依賴,記作:

傳遞函數依賴:

如果X→Y,Y→Z,且 Y→X,YX,ZY,則稱Z對X傳遞函數依賴,記作:

候選鍵:

對關系模式R(U),設KU,且K完全函數確定U,則K為能夠唯一確定關系中任何一個元組(實體)的最少屬性集合,稱K為R(U)的候選鍵或候選關鍵字。

【R(U,F),U={ A,B,C,D,E,G },F={AB→C,CD→E,E→A,A→G},求候選鍵】

因G只在右邊出現,所以G一定不屬於候選碼

而B,D只在左邊出現,所以B,D一定屬於候選碼

BD的閉包還是BD,則對BD進行組合,除了G以外,BD可以跟A,C,E進行組合

先看ABD

ABD本身自包ABD,而AB→C,CD→E,A→G,所以ABD的閉包為ABDCEG=U

再看BDC

CD→E,E→A,A→G,BDC本身自包,所以BDC的閉包為BDCEAG=U

最后看BDE

E→A,A→G,AB→C,BDE本身自包,所以BDE的閉包為BDEAGC=U

因為(ABD)、(BCD)、(BDE)的閉包都是ABCDEG所以本問題的候選碼有3個分別是ABC、BCD和BDE

主鍵:

通常在R(U)的多個候選鍵中任意選定一個候選鍵作為主鍵,也稱為主碼或主關鍵字。

當關系模式的屬性全體是候選鍵時,屬性全體也就是主鍵,可稱為全鍵或全碼。

主屬性與非主屬性:

對關系模式R(U),包含在任何一個候選鍵中的屬性稱為主屬性,不包含在任何候選鍵中的屬性稱為非主屬性或非碼屬性。

外鍵:

對關系模式R(U),設XU。若X不是R(U)的主鍵,但X是另一個關系模式的主鍵,則稱X是R(U)的外鍵或外部關鍵字。

函數依賴的邏輯蘊涵:

對於滿足函數依賴集F的關系模式R(U,F)的任意一個具體關系r,若函數依賴X→Y都成立,則稱F邏輯蘊涵X→Y,記為FX→Y。

若在F中沒有X→Y函數依賴,但可以通過F中的現有函數依賴推導得出X→Y,則也記FX→Y。

F的閉包:

被函數依賴集F邏輯蘊涵的函數依賴所構成的集合,稱為F的閉包,記作F+。即:F+={X→Y | FX→Y}。顯然F F+

函數依賴完備集:

當函數依賴集F= F+

Armstrong公理系統:

自反律:如果YX U,則X→Y成立,即FX→Y。

增廣律:如果X→Y成立,則XZ→YZ 成立(XZ是X∪Z的簡單記法),即若FX→Y,則FXZ→YZ。

傳遞律:如果X→Y,Y→Z成立,則X→Z成立,即若FX→Y,FY→Z,則FX→Z。

合並律:如果X→Y和X→Z成立,那么X→YZ成立,即若FX→Y,FX→Z,則FX→YZ。

偽傳遞律:如果X→Y和WY→Z成立,那么WX→Z成立,即FX→Y,FWY→Z,則FWX→Z。

分解律:如果X→Y和ZY成立,那么X→Z成立,即若FX→Y,ZY,則F X→Z。

推論:對關系模式R(U),設XU,{A1, A2 ,…,Am}U,則X→{A1, A2 ,…, Am}成立的充分必要條件是

X→Ai (i=1,2,…,m)成立。

屬性集X關於F的閉包X+F :

顯然XX+FU

閉包的計算:

設F是屬性集U上的函數依賴集,X,Y 是U的子集,則X→Y能由F根據Armstrong公理導出的充分必要條件是 YX+

【設關系模式R(U),其屬性集上函數依賴:F={AB→C, B→D, C→E, EC→B, AC→B},令X={A, B},求X+

解:

第1次:

X(0)= Ø,X(1)={A, B},F= Ø

由於X(0)≠X(1),令X(0)=X(1)={A, B}

函數依賴集F'={ AB→C, B→D},令F=F-F'={C→E, EC→B, AC→B},

將F'中的每一個函數依賴的右端屬性C,D並入X(1)中,即令X(1)={A, B}∪{C, D}={A, B, C, D}

第2次:

由於X(0)≠X(1),令X(0)=X(1)= {A, B, C, D};

函數依賴集F'={C→E, AC→B},令F=F-F'={EC→B}

將F'中的每一個函數依賴的右端屬性E, B並入X(1)中,即令X(1)={A, B, C, D }∪{E, B}={A, B, C, D, E}

第3次:

由於X(0)≠X(1),令X(0)=X(1)= {A, B, C, D, E }

函數依賴集F'={EC→B},令F=F-F'= Ø

將F'中的每一個函數依賴的右端屬性B並入X(1)中,即令X(1)={A, B, C, D, E }∪{B}={A, B, C, D, E}

第4次:

由於X(0)=X(1),輸出X(1)={A, B, C, D, E}=X+

{A,B}→U={A, B, C, D, E},由於{A}U,{B}U,所以{A,B}是侯選鍵

函數依賴集的等價與覆蓋:

如果G+=F+,就說函數依賴集F與G等價,且F覆蓋G,G覆蓋F,它的充分必要條件是FG+ ,GF+

每個函數依賴集F都可以被一個右部只有單屬性的函數依賴集G所覆蓋。

最小函數依賴集,也稱為最小依賴集或最小覆蓋:

F中任一函數依賴的右部僅含有一個屬性。

F中不存在這樣的函數依賴X→A,使得F與F-{X→A}等價。    // 右部沒有冗余的函數依賴

F中不存在這樣的函數依賴X→A,X有真子集Z使得F-{X→A}∪{Z→A}與F等價。    // 左部沒有冗余的屬性

每個函數依賴集F都有最小覆蓋,並且不唯一。

最小依賴集的計算:

首先將函數依賴集中的每一個依賴的右部進行分裂,再消除冗余函數依賴和每個函數依賴左部的冗余屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM