第一題:
在資料表規劃過程中,常須施以“正規化”(normalization)以降低資料重複性以及避免資料
更新異常現象。假設某資料表屬性欄位(A ~ J)間,存在的功能相依性(functional dependency,
FD)如下列四項,請回答下列問題:
1. C → {B}
2. G → {H, J}
3. A → {E, F, I}
4. A+B → {C, D, E, F, G, H, I, J}
(二)承第(一)小題,執行正規化程序,使分解後各表可滿足“第三正規化格式”(3NF)。
【8 分】
根據第四條功能相依性,候選鍵是 ?+?A+B(因為 ?+?A+B 可以唯一標識所有屬性)。
依據 ?→?C→B:
依據 ?→?,?G→H,J:
依據 ?→?,?,?A→E,F,I:
依據 ?+?→?,?,?,?,?,?,?,?A+B→C,D,E,F,G,H,I,J:
我們檢查 ?4R4 表,看其是否需要進一步分解。根據 3NF 的定義,我們需要確保所有非主鍵屬性不僅完全依賴於主鍵,且不依賴於其他非主鍵屬性。
將 ?+?→?,?,?A+B→C,D,G 分離出來:
將 ?4R4 的其他依賴分解到已有的表格中,避免重複:
最終分解為以下表格,並且滿足 3NF:
?1(?,?)R1(C,B)
?2(?,?,?)R2(G,H,J)
?3(?,?,?,?)R3(A,E,F,I)
?4?(?,?,?,?,?)R4a(A,B,C,D,G)
這樣,我們就完成了資料表的分解,使其滿足第三正規化形式 (3NF)。