資料庫系統概論-第六章-關係資料理論
關係模式的組成:
關係模式由五部分組成,是一個五元組:
R(U, D, DOM, F)
-
關係名R是符號化的元組語義
-
U為一組屬性
-
D為屬性組U中的屬性所來自的域
-
DOM為屬性到域的對映
-
F為屬性組U上的一組資料依賴
第一正規化(1NF):
- 作為二維表,關係要符合一個最基本的條件:每個分量必須是不可分開的資料項。滿足了這個條件的關係模式就屬於第一正規化(1NF)
資料依賴:
- 是一個關係內部屬性與屬性之間的一種約束關係
- 通過屬性間值的相等與否體現出來的資料間相互聯絡
- 是現實世界屬性間相互聯絡的抽象
- 是資料內在的性質
- 是語義的體現
- 資料依賴的主要型別:函式依賴 FD 多值依賴 MVD
函式依賴:
- 一對一聯絡:X←→Y
- 多對一聯絡:X→Y
- 多對多聯絡:不存在依賴關係
- 可從屬性間的聯絡型別來分析屬性間的函式依賴
- 若X→Y,並且Y→X, 則記為X←→Y。
若Y不函式依賴於X, 則記為X→\Y。 - X→Y,但Y⊈X則稱X→Y是非平凡的函式依賴。
X→Y,但Y⊆X 則稱X→Y是平凡的函式依賴。 - 若X→Y,則X稱為這個函式依賴的決定因素
注:
1. 函式依賴不是指關係模式R的某個或某些關係例項滿足的約束條件,而是指R的所有關係例項均要滿足的約束條件。
2. 函式依賴是語義範疇的概念。只能根據資料的語義來確定函式依賴。
例如“姓名→年齡”這個函式依賴只有在不允許有同名人的條件下成立
3. 資料庫設計者可以對現實世界作強制的規定。例如規定不允許同名人出現,函式依賴“姓名→年齡”成立。所插入的元組必須滿足規定的函式依賴,若發現有同名人存在, 則拒絕裝入該元組。
正規化:
各種正規化之間存在聯絡:
某一關係模式R為第n正規化,可簡記為R∈nNF
- 正規化是符合某一種級別的關係模式的集合。
- 關係資料庫中的關係必須滿足一定的要求。滿足 不同程度要求的為不同正規化。
- 正規化的種類:
- 第一正規化(1NF)
第二正規化(2NF)
第三正規化(3NF)
BC正規化(BCNF)
第四正規化(4NF)
第五正規化(5NF)
規範化:
- 一個低一級正規化的關係模式,通過模式分解(schema decomposition)可以轉換為若干個高一級正規化的關係模式的集合,這種過程就叫規範化(normalization)
BCNF的關係模式所具有的性質:
- 所有非主屬性都完全函式依賴於每個候選碼
- 所有主屬性都完全函式依賴於每個不包含它的候選碼
- 沒有任何屬性完全函式依賴於非碼的任何一組屬性
平凡多值依賴和非平凡的多值依賴:
- 若X→→Y,而Z=Ф,即Z為空,則稱X→→Y為平凡的多值依賴。
否則稱X→→Y為非平凡的多值依賴。
多值依賴的性質:
(1)多值依賴具有對稱性。
即若X→→Y,則X→→Z,其中Z=U-X-Y,多值依賴的對稱性可以用完全二分圖直觀地表示出來。
(2)多值依賴具有傳遞性。即若X→→Y,Y→→Z, 則X→→Z -Y。
(3)函式依賴是多值依賴的特殊情況。即若X→Y,則X→→Y。
(4)若X→→Y,X→→Z,則X→→YZ。
(5)若X→→Y,X→→Z,則X→→Y∩Z。
(6)若X→→Y,X→→Z,則X→→Y-Z,X→→Z -Y。
多值依賴與函式依賴的區別:
(1)多值依賴的有效性與屬性集的範圍有關
l若X→→Y在U上成立,則在W(XYÍ W Í U)上一定成立;反之則不然,即X→→Y在W(W Ì U)上成立,在U上並不一定成立。
l原因:多值依賴的定義中不僅涉及屬性組X和Y,而且涉及U中其餘屬性Z。
多值依賴的有效性與屬性集的範圍有關:
一般地,在R(U)上若有X→→Y在W(W Ì U)上成立,則稱X→→Y為R(U)的嵌入型多值依賴。
函式依賴X→Y的有效性僅決定於X、Y這兩個屬性集的值只要在R(U)的任何一個關係r中,元組在X和Y上的值滿足定義6.l,則函式依賴X→Y在任何屬性集W(XYÍ W ÍU)上成立。
(2)若函式依賴X→Y在R (U)上成立,則對於任何Y‘ Ì Y均有X→Y’ 成立。多值依賴X→→Y若在R(U)上成立,不能斷言對於任何Y’ Ì Y有X→→Y’ 成立。
4NF:
關係模式R<U,F>∈1NF,如果對於R的每個非平凡多值依賴X→→Y(Y ⊈ X),X都含有碼,則R<U,F>∈4NF。
不允許有非平凡且非函式依賴的多值依賴。允許的非平凡多值依賴實際上是函式依賴
規範化小結:
規範化的基本思想:
- 在關係資料庫中,對關係模式的基本要求是滿足第一正規化。
- 規範化程度過低的關係不一定能夠很好地描述現實世界
- 可能存在插入異常、刪除異常、修改複雜、資料冗餘等問題
- 解決方法就是對其進行規範化,轉換成高階正規化。。
-
一個低一級正規化的關係模式,通過模式分解可以轉換為若干個高一級正規化的關係模式集合,這種過程就叫關係模式的規範化。
-
關係資料庫的規範化理論是資料庫邏輯設計的工具。
是逐步消除資料依賴中不合適的部分,使模式中的各關係模式達到某種程度的“分離”。即採用“一事一地”的模式設計原則,讓一個關係描述一個概念、一個實體或者實體間的一種聯絡。若多於一個概念就把它“分離”出去。因此 規範化實質上是概念的單一化。
規範化的基本步驟:
不能說規範化程度越高的關係模式就越好,必須對現實世界的實際情況和使用者應用需求作進一步分析,確定一個合適的、能夠反映現實世界的模式。上面的規範化步驟可以在其中任何一步終止。
Armstrong公理系統 :
設U為屬性集總體,F是U上的一組函式依賴, 於是有關係模式R <U,F >。對R <U,F> 來說有以下的推理規則:
A1 自反律(reflexivity rule):若Y Í X Í U,則X →Y 為F所蘊涵。
A2 增廣律(augmentation rule):若X→Y為F所蘊涵,且Z Í U,則XZ→YZ 為F所蘊涵。
A3 傳遞律(transitivity rule):若X→Y及Y→Z為F所蘊涵,則X→Z 為F所蘊涵。
注意:由自反律所得到的函式依賴均是平凡的函式依賴, 自反律的使用並不依賴於F。
根據A1,A2,A3這三條推理規則可以得到下面三條推理規則:
合併規則(union rule):由X→Y,X→Z,有X→YZ。
偽傳遞規則(pseudo transitivity rule):由X→Y,WY→Z,有XW→Z。
分解規則(decomposition rule): 由X→Y及ZÍY,有X→Z。
有效性與完備性的含義:
有效性:由F 出發根據Armstrong公理推匯出來的每一個函式依賴一定在F +中
完備性:F +中的每一個函式依賴,必定可以由F出發根據Armstrong公理推匯出來
如果函式依賴集F滿足下列條件,則稱F為一個極小函式依賴集,亦稱為最小依賴集或最小覆蓋。
(1)單屬性化: F中任一函式依賴的右部僅含有一個屬性。
(2)無冗餘化: F中不存在這樣的函式依賴X→A, 使得F與F-{X→A}等價。
(3)既約化: F中不存在這樣的函式依賴X→A, X有真子集Z使得F-{X→A}∪{Z→A}與F等價。
模式的分解:
- 把低一級的關係模式分解為若干個高一級的關係模式的方法不是唯一的
- 只有能夠保證分解後的關係模式與原關係模式等價,分解方法才有意義
- 三種模式分解等價的定義:
⒈. 分解具有無損連線性
⒉. 分解要保持函式依賴
⒊. 分解既要保持函式依賴,又要具有無損連線性
關係模式R<U,F>的一個分解 ρ={ R1<U1,F1>,R2<U2,F2>, …,Rn<Un,Fn>}
若R與R1、R2、…、Rn自然連線的結果相等,則稱關係模式R的這個分解ρ具有無損連線性(Lossless join)
具有無損連線性的分解保證不丟失資訊,無損連線性不一定能解決插入異常、刪除異常、修改複雜、資料冗餘等問題
- 如果一個分解具有無損連線性,則它能夠保證不丟失資訊
- 如果一個分解保持了函式依賴,則它可以減輕或解決各種異常情況
- 分解具有無損連線性和分解保持函式依賴是兩個互相獨立的標準。具有無損連線性的分解不一定能夠保持函式依賴;同樣,保持函式依賴的分解也不一定具有無損連線性。
若要求分解具有無損連線性,那麼模式分解一定能夠達到4NF
若要求分解保持函式依賴,那麼模式分解一定能夠達到3NF,但不一定能夠達到BCNF
若要求分解既具有無損連線性,又保持函式依賴,則模式分解一定能夠達到3NF,但不一定能夠達到BCNF
規範化理論為資料庫設計提供了理論的指南和工具,也僅僅是指南和工具
並不是規範化程度越高,模式就越好,必須結合應用環境和現實世界的具體情況合理地選擇資料庫模式