資料庫系統概念(機械工業出版社,第六版)複習——第八章:關係資料庫設計
第八章:關係資料庫設計
第一正規化(1NF)
如果某個域的元素被認為是不可再分的單元,那麼這個域就是原子的(atomic)。如果一個關係模式R的所有的屬性域都是原子的,我們稱關係模式R屬於第一正規化(first normal form, 1NF)。
函式依賴
設R(U)是屬性集U上的關係模式,α,β含於 U, r是R(U) 上的任意一個關係,如果成立
對t , s ∈ r,若t[α] = s[β],則t[β] = s[α]
那麼稱“α函式決定β”,或“β函式依賴於α”,記作αàβ
稱α為決定因素,β為被決定因素
如snoàsname,(sno,cno)àscore
平凡函式依賴
如果αàβ,但β不含於α,則稱其為非平凡的函式依賴,否則(即β含於α)稱為平凡(trivial)的函式依賴。如(sno,sname)àsname是平凡的函式依賴。
完全函式依賴f、部分函式依賴p
傳遞函式依賴
閉包
被F所邏輯蘊涵的函式依賴的全體所構成的集合稱作F的閉包。
Armstrong公理系統
各希臘字母都為屬性集
自反律:若β含於α,則αàβ
增廣率:若αàβ,則αγàβγ
傳遞率:若αàβ,βàγ,則αàγ
合併率:若αàβ,αàγ,則αàβγ
分解率:若αàβγ,則αàβ,αàγ
偽傳遞率:若αàβ,γβàδ,則γαàδ
屬性集的閉包
令α為屬性集,將函式依賴集F下被α函式確定的所有屬性的集合稱作F下α的閉包,記作α+
α+= {A |αàA能由F根據Armstrong公理匯出}
候選碼的求解理論和演算法
對於給定的關係R(U,F),可將其屬性分為4類:
L類:僅出現在F的函式依賴左部的屬性
R類:僅出現在F的函式依賴右部的屬性
N類:在F的函式依賴兩邊均未出現的屬性
LR類:在F的函式依賴兩邊均出現的屬性
定理1:對於給定的關係模式R及其函式依賴集F,α(α含於U)是L類屬性,則必為R的任一候選碼的成員。推論:對於給定的關係模式R及其函式依賴集F,α(α含於U)是L類屬性,且α+包含了U中的全部屬性,則必為R的唯一候選碼。
定理2:對於給定的關係模式R及其函式依賴集F,α(α含於U)是R類屬性,則α不在R的任何候選碼中。
定理3:對於給定的關係模式R及其函式依賴集F,α(α含於U)是N類屬性,則α必包含在R的任一候選碼中。
推論:對於給定的關係模式R及其函式依賴集F,α(α含於U)是L類和N類屬性組成的屬性集,且α+包含了U中的全部屬性,則α一定是R的唯一候選碼。
正則覆蓋
假設在一個關係模式上有一個函式依賴集F。當用戶對於關係進行更新時,資料庫系統將保證此操作不會破壞任何一個函式依賴。
滿足下列條件的函式依賴集F稱為正則覆蓋,記作Fc:
Fc 與 F 等價
Fc 中任何函式依賴都不含無關屬性
Fc 中函式依賴的左半部都是唯一的
函式依賴集的等價性
函式依賴集F,G,若F+= G+,則稱F與G等價。若F與G等價,則稱F是G的一個覆蓋,G是F的一個覆蓋。
F+ = G+ ßà F含於G+,G含於F+
無關屬性
如果去除一個函式依賴中的屬性,不會改變該函式依賴集的閉包,則稱該屬性是無關的(extraneous)。
無關屬性的核心:能夠被函式依賴集F邏輯蘊涵的函式依賴,不必在F中寫明。
在正則覆蓋中:如果一個函式依賴的右半部只包含一個屬性,例如, AàC,並且右邊的屬性是無關的,那麼將得到一個右部為空的函式依賴,這樣的函式依賴應該刪除。
檢驗是否為無損連線分解
結果表中無一行全為a,分解不是無損連線(必要性)。
結果表中有一行a,分解是無損連線(充分性)。
判斷保持依賴分解
正規化
正規化是對關係的不同資料依賴程度的要求。通過模式分解將一個低階正規化轉換為若干個高階正規化的過程稱作規範化。
1NF
關係中每一分量不可再分。即不能以集合、序列等作為屬性值。
2NF
若R∈1NF,且每個屬性滿足下列準則之一:
它出現在一個候選碼中
它沒有部分依賴於一個候選碼,則稱R∈2NF。
2NF消除了非主屬性對碼的部分依賴.
3NF
關係模式R< U , F >中,F+中所有函式依賴αàβ ,至少有以下之一成立 :
① αàβ是平凡的函式依賴;
② α是超碼;
③ β-α的每一個屬性A都包含在R的候選碼中,則稱R∈3NF。
3NF消除了非主屬性對碼的傳遞依賴。
作為判斷3NF時的一種優化,可以只考慮F上的函式依賴,而不是F+,也可以分解F上的函式依賴,讓它們的右半部只包含一個屬性,並用這個結果代替F。
3NF的判斷被證明是無法求解的,是NP問題。
BCNF
關係模式R< U , F >中,所有的形如αàβ的函式依賴( α∈U,β∈U ),下面至少有一個成立:
1.αàβ是平凡的函式依賴,
2.α是模式R的一個超碼,則稱R∈BCNF。
如SPC ∉ BCNF,因為tnoàcno,而tno不是超碼。
改造:將S分解為:(sno,tno),(tno,cno)。
多值依賴
對稱性,函式依賴是多值依賴的特例,傳遞性
函式依賴好多值依賴區別
函式依賴規定某些元組不能出現在關係中,也稱為相等產生依賴。
多值依賴要求某種形式的其它元組必須在關係中,稱為元組產生依賴。
閉包
令D表示函式依賴和多值依賴的集合,D的閉包D+是由D邏輯蘊涵的所有函式依賴和多值依賴的集合。
4NF
函式依賴和多值依賴集為D的關係模式R屬於4NF的條件是:對於所有D+中形如: αààβ的多值依賴(其中α包含於R∧β包含於R),至少有以下條件之一成立:
1.αàà β是一個平凡的多值依賴;
2.α是模式R的超碼,則稱R∈4NF。
如關係模式TEACH,cnoààtno,cnoààbno,碼為(cno, tno, bno),所以CTB∉4NF。改造:將CTB分解為CT(cno,tno),CB(cno,bno),在分解後的關係中分量為Ci的元組共有m + n個
4NF的本質
(在只考慮函式和多值依賴的前提下),4NF只講一件事,非碼的多值決定關係講述了另外一件事。
R(cno,bno,tno)
cno→→bno
cno→→tno
R講述了(cno,bno)和(cno,tno)兩件事。
有效且完備的公理系統
正規化之間的關係
1NF:資料庫表的每一列都是不可分割的原子資料項,而不能是集合,陣列,記錄等非原子資料項。
2NF:1NF的基礎上,非碼屬性必須完全依賴於碼。在1NF基礎上消除非主屬性對主碼的部分函式依賴。
3NF:在1NF基礎上,任何非主屬性不依賴於其它非主屬性。在2NF基礎上消除傳遞依賴。
BCNF:在1NF基礎上,任何非主屬性不能對主鍵子集依賴,在3NF基礎上消除對主碼子集的依賴。
4NF:在多值依賴的視角評價關係模式。
解除規範化
把一個規範化的模式變成非規範化的過程。目的:用於調整系統的效能