數(shù)據(jù)庫規(guī)范化

關(guān)系數(shù)據(jù)理論

關(guān)系模型 定義
R(U,D,DOM,F)

  1. 關(guān)系 R,它是符號化的元祖語義
  2. 一組屬性 U
  3. 屬性組 U 中屬性所有來自的域 D
  4. 屬性到域的映射 DOM
  5. 屬性組 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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容