為了使關係 ?(?,?,?,?)R(A,B,C,D) 滿足 BCNF(Boyce-Codd 正規化形式),我們需要將其分解,使每個新的關係中的所有功能相依都滿足 BCNF 的條件。
回顧原始條件
- 原始關係 ?R 的候選鍵:{A, B, D}
- 功能相依:
- {?,?,?}→?{A,B,D}→C
- {?,?}→?{C,D}→B
分解關係 ?R
我們可以將原始關係 ?R 分解成兩個新關係,以滿足 BCNF:
- 關係 ?1(?,?,?,?)R1(A,B,D,C)
- 關係 ?2(?,?,?)R2(C,D,B)
分解後的表格及其功能相依
-
關係 ?1(?,?,?,?)R1(A,B,D,C)
- 功能相依:{?,?,?}→?{A,B,D}→C
- 候選鍵:{?,?,?}{A,B,D}
- 檢查 BCNF:在 ?1R1 中,唯一的功能相依是 {?,?,?}→?{A,B,D}→C,其中 {?,?,?}{A,B,D} 是候選鍵,因此它是超鍵。這滿足 BCNF 的條件。
-
關係 ?2(?,?,?)R2(C,D,B)
- 功能相依:{?,?}→?{C,D}→B
- 候選鍵:{?,?}{C,D}
- 檢查 BCNF:在 ?2R2 中,唯一的功能相依是 {?,?}→?{C,D}→B,其中 {?,?}{C,D} 是候選鍵,因此它是超鍵。這也滿足 BCNF 的條件。
為何滿足正規化
經過上述分解,我們可以確定:
-
關係 ?1R1:滿足 BCNF
- 因為 {?,?,?}→?{A,B,D}→C 是唯一的功能相依,且左側 {?,?,?}{A,B,D} 是超鍵。
-
關係 ?2R2:滿足 BCNF
- 因為 {?,?}→?{C,D}→B 是唯一的功能相依,且左側 {?,?}{C,D} 是超鍵。
因此,通過將原始關係 ?(?,?,?,?)R(A,B,C,D) 分解為 ?1(?,?,?,?)R1(A,B,D,C) 和 ?2(?,?,?)R2(C,D,B),我們確保了每個新關係都滿足 Boyce-Codd 正規化形式(BCNF),從而消除了任何潛在的非規範化問題。