題組內容
二、假設關聯資料庫的表格 R(A,B,C,D)有四個屬性 A,B,C,D其功能相依Functional Dependency為{A,B,D}→C 與{C,D}→B
⑷請證明 R 滿足 Boyce-Codd 正規化(BCNF)或反證 R 不滿足 BCNF。(4 分)
詳解 (共 1 筆)
詳解
要證明關係 ?(?,?,?,?)R(A,B,C,D) 是否滿足 Boyce-Codd 正規化形式(BCNF),我們需要首先了解什麼是 BCNF:
Boyce-Codd 正規化形式(BCNF)的定義
一個關係 ?R 若要滿足 BCNF,需要滿足以下條件:
- 對於每個非平凡的功能相依 ?→?X→Y,?X 必須是超鍵(Superkey)。
分析關係 ?R
我們已知:
- 候選鍵:{A, B, D}
- 功能相依(Functional Dependency):{A, B, D} → C 和 {C, D} → B
在這裡,我們需要檢查這些功能相依是否符合 BCNF 的條件。
檢查每個功能相依
我們需要檢查每個功能相依,確定它們是否滿足 BCNF 的條件:
-
檢查 {?,?,?}→?{A,B,D}→C
- {?,?,?}{A,B,D} 是候選鍵,因此它是超鍵。
- 這個功能相依滿足 BCNF 的條件,因為 {?,?,?}{A,B,D} 是超鍵。
-
檢查 {?,?}→?{C,D}→B
- {?,?}{C,D} 不是候選鍵,因此不是超鍵。
- 這個功能相依不滿足 BCNF 的條件,因為 {?,?}{C,D} 不是超鍵。
結論
由於功能相依 {?,?}→?{C,D}→B 不滿足 BCNF 的條件(即 {?,?}{C,D} 不是超鍵),關係 ?R 不滿足 Boyce-Codd 正規化形式(BCNF)。
將 R 分解為滿足 BCNF 的關係
為了使關係 ?R 滿足 BCNF,我們需要將其分解,使每個功能相依都滿足 BCNF 的條件。通常,我們可以將其分解成如下形式:
-
?1(?,?,?,?)R1(A,B,D,C)
- 在這個關係中,功能相依 {?,?,?}→?{A,B,D}→C
- 因為 {?,?,?}{A,B,D} 是候選鍵,因此滿足 BCNF 的條件。
-
?2(?,?,?)R2(C,D,B)
- 在這個關係中,功能相依 {?,?}→?{C,D}→B
- 因為 {?,?}{C,D} 是候選鍵,因此滿足 BCNF 的條件。
分解後的每個新關係都滿足 BCNF 的條件。
因此,根據上述分析,原始關係 ?R 不滿足 Boyce-Codd 正規化形式(BCNF)。