1. 程式人生 > >第六章關係資料理論

第六章關係資料理論

6.1問題的提出

R(U,D,DOM,F)

第一正規化:每個分量必須是不可分割的

資料依賴:關係內部屬性與屬性之間的一種約束關係。

函式依賴

X函式確定Y或Y依賴於X,記作X\rightarrowY;

非平凡函式依賴:X決定Y,Y不屬於X\subset

平凡函式依賴:X決定Y,Y屬於X

完全函式依賴:如果X\rightarrowY,並且對於X的任意真子集X',都有X'不能確定Y,則Y對X完全函式依賴

部分函式依賴:如果X\rightarrowY,Y不完全依賴於X

傳遞函式依賴:如果X決定Y(Y不屬於X),Y不能決定X,Y決定Z,Z不屬於Y,則稱Z對X傳遞函式依賴

碼:

候選碼、超碼、主碼、全碼、外碼。

包含在候選碼中的為主屬性

問題:資料冗餘,更新異常,插入異常,刪除異常

6.2正規化

5NF\subset4NF\subsetBCNF\subset3NF\subset 2NF\subset1NF

2NF: 每一個非主屬性完全函式依賴於任意一個候選碼。

例如:

(Sno,Cno)\rightarrow Grade Snon \rightarrow Sdept,(Sno,Cno)\rightarrow Sdept(Cno,Sno)\rightarrow Grade

Sno\rightarrow Sdept,(Sno,Cno)\rightarrow Sdept

Sno\rightarrow Sloc,(Sno,Cno)\rightarrow Sloc

Sdept\rightarrow Sloc

因為非主屬Sdept,Sloc不完全函式依賴於碼,所以不是第二正規化。

產生問題:插入異常、刪除異常,修改異常

3NF:不存在碼X,屬性組Y及非主屬性Z,滿足Z傳遞函式依賴於X,

(至少由三個屬性,兩個屬性的一定滿足第三正規化)

Sno\rightarrow Sdept,

Sdept\rightarrow Sloc

傳遞函式依賴,所以不符合第三正規化

BCNF:每個決定因數都包含碼。

(解決主屬性的不良依賴)

多值依賴:

(函式依賴A\rightarrow B,則多值依賴A\rightarrow \rightarrow B也成立

對稱性:如果An \rightarrow \rightarrow B則A\rightarrow \rightarrow C也成立A\rightarrow \rightarrow C也成立

傳遞性:X\rightarrow \rightarrow Y Y\rightarrow \rightarrow Z,則X\rightarrow \rightarrow Z-Y

函式依賴可以看作多值依賴的特殊情況

X\rightarrow \rightarrow Y,X\rightarrow \rightarrow Z,則X\rightarrow \rightarrow YZ

X\rightarrow \rightarrow Y,X\rightarrow \rightarrow Z,則X\rightarrow \rightarrow Y-Z,X\rightarrow \rightarrow Z-Y

多值依賴與函式依賴的區別:

1、多值依賴的有效性與屬性集的範圍有關

2、如果函式依賴X決定Y,在R上成立,則對於任意的Y'\subset Y均有X\rightarrow Y'成立。而在多值依賴中X\rightarrow \rightarrow Y卻不能斷言對於任意的Y'\subset Y,有X\rightarrow \rightarrow Y'成立。

4NF:如果R中每一個非平凡多值依賴,X\rightarrow \rightarrow Y,X都有碼。

限制關係模式中不能有非平凡且非函式依賴的多值依賴。