關(guān)系數(shù)據(jù)理論
關(guān)系模型 定義
R(U,D,DOM,F)
- 關(guān)系 R,它是符號化的元祖語義
- 一組屬性 U
- 屬性組 U 中屬性所有來自的域 D
- 屬性到域的映射 DOM
- 屬性組 U 上的一組數(shù)據(jù)依賴 F
- 第一范式:
一張二維表,它的每個(gè)分量必須是不可分割的數(shù)據(jù)項(xiàng)。
- 規(guī)范化可以解決的問題:
1.數(shù)據(jù)冗余太大
2.更新異常
3.插入異常
4.刪除異常
規(guī)范化
- 函數(shù)依賴
定義:設(shè) R(U) 是屬性集 U 上的關(guān)系模式。X,Y 是 U 的子集。若對于 R(U) 的任意一個(gè)可能的關(guān)系 r, r 中不可能存在兩個(gè)元祖在 X 上的屬性值相等,而在 Y 上的屬性值不等, 則稱 X 函數(shù)確定 Y 或 Y 函數(shù)依賴于 X , 記作 X->Y
非平凡函數(shù)依賴:Y 依賴于 X ,但是 Y 不屬于 X
平凡函數(shù)依賴: Y 依賴于 X,但 Y 屬于 X
決定因素: Y 依賴于 X , 則 X 為這個(gè)函數(shù)依賴的決定屬性組
相互依賴: Y 依賴于 X , X 依賴于 Y , 則 X,Y 相互依賴
不函數(shù)依賴:
- 定義:在 R(U) 中,如果 X->Y ,并且對于 X 的任何一個(gè)真子集 X1 ,都有 Y 不依賴于 X1 ,則稱 Y 對 X 完全依賴
如果 Y 對 X 不完全依賴, 稱為 Y 對 X 部分依賴
定義:傳遞依賴,在 R(U) 中,Y 依賴于 X ,X不依賴于 Y , Z依賴于 Y ,則稱 Z 對 X 傳遞函數(shù)依賴
碼
定義: 設(shè) K 為 R<U,F> 中的屬性或?qū)傩越M合,若 K 完全依賴 U,則 K 為 R 的候選碼,若候選碼多于一個(gè), 則選定其中的一個(gè)為 主碼。
主屬性:在任何一個(gè)候選碼中的屬性
非主屬性:不包含在任何碼中的屬性
- 定義: 關(guān)系模式 R 中屬性或?qū)傩越M X 并非 R 的碼,但 X 是另一個(gè)關(guān)系模式的碼,則稱 X 是 R 的外部碼,也稱外碼
第一范式:
一張二維表,它的每個(gè)分量必須是不可分割的數(shù)據(jù)項(xiàng)。2NF 范式
2NF: 若 R 屬于 第一范式,且每一個(gè)非主屬性完全函數(shù)依賴于碼,稱為 2NF-
3NF 范式
3NF: 關(guān)系模式 R<U,F> 中若不存在這樣的碼 X ,屬性組 Y 及 非主屬性 Z (Z 不屬于 Y )使得 Y 依賴于 X,Z 依賴于 Y 成立,X 不依賴于 Y, 稱 R<U,F> 為 3NF非主屬性 即不部分依賴于 碼, 也不傳遞依賴于碼。
-
BCNF 依賴
定義:關(guān)系模式 R< U,F > 屬于第一范式,若 Y 函數(shù)依賴于 X,且 Y 不屬于 X 時(shí),X 必含有碼,則 R<U,F> 屬于范式 BCNF滿足 BCNF 的關(guān)系模式 有下面的特點(diǎn)
- 所有非主碼屬性對每一個(gè)碼都是完全函數(shù)依賴
- 所有的主屬性對每一個(gè)不包含它的碼,也是完全函數(shù)依賴
- 沒有任何屬性完全函數(shù)依賴于非碼的任何一組屬性
多值依賴
定義:設(shè) R(U) 是屬性集 U 上的一個(gè)關(guān)系模式。 X,Y,Z 是 U 的子集,并且 Z = U - X - Y 。關(guān)系模式 R(U) 中多值依賴 X->->Y 成立,當(dāng)且僅當(dāng)對 R(U) 的任一關(guān)系 r,給定的一對(x,z)值,有一組 Y 的值,這組值僅僅決定于 x 值而與 z 值無關(guān)。-
另一個(gè)等價(jià)形式的多值依賴定義:
在 R(U) 的任一關(guān)系 r 中, 如果存在元祖 t,s使得t[X]=s[X],那么就必然存在元祖w,u屬于r (w,u 可以與x,t 相同),使得w[X]=v[X]=t[X], 而 w[Y]=t[Y],w[Z]=s[Z],u[Y]=s[Y],u[Z]=t[Z]( 即交換 s,t 元祖的Y值所得的兩個(gè)新元祖必在 r 中)則 Y 多值依賴于 X,記為 X->->Y。這里 X,Y 是 U 的子集, Z=U-X-Y若 X->->Y,則 Z為空,稱 X->->Y 為平凡的多值依賴。
多值依賴具有對稱性:若X->->Y,則X->->Z 其中 Z=U-X-Y.
多值依賴具有傳遞性:若 X->->Y,Y->->Z 則 X->->Z-Y
函數(shù)依賴可以看做是多值依賴的特殊情況,若 Y 依賴于 X,則 Y 多值依賴于 X,這是因?yàn)楫?dāng) Y 依賴 X 時(shí),對 X 的每個(gè)值 x,Y 有一個(gè)確定的值 y 與之對應(yīng),所以 X->->Y
若 X->->Y,X->->Z, 則 X->->YZ
若 X->->Y,X->->Z, 則 X->->Y交集Z
若 X->->Y, X->->Z , 則 X->->Y-Z, X->->Z-Y