阿摩線上測驗 登入

申論題資訊

試卷:110年 - 110 中華郵政股份有限公司_職階人員甄試試題_營運職/資料庫管理:資料庫系統規劃、開發與實務#106511
科目:資料庫系統規劃、開發與實務
年份:110年
排序:0

題組內容

第一題:
在資料表規劃過程中,常須施以“正規化”(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 分】

申論題內容

(三)承第(二)小題,執行正規化程序,使分解後各表皆滿足“BC 正規化格式”(BCNF)。 【9 分】

詳解 (共 1 筆)

詳解 提供者:hchungw

要將資料表分解到 BCNF,我們需要確保每個表中的每個非平凡功能相依性 ?→?XY 中,?X 都是超鍵(superkey)。BCNF 比 3NF 更嚴格,要求表中沒有部分依賴或傳遞依賴。

功能相依性

  1. ?→?CB
  2. ?→?,?GH,J
  3. ?→?,?,?AE,F,I
  4. ?+?→?,?,?,?,?,?,?,?A+BC,D,E,F,G,H,I,J

步驟 1: 找出候選鍵

根據第四條功能相依性,候選鍵是 ?+?A+B

步驟 2: 分解以滿足 BCNF

  1. 依據 ?→?CB:

    • 創建表 ?1(?,?)R1(C,B),其中 ?C 是主鍵。
  2. 依據 ?→?,?GH,J:

    • 創建表 ?2(?,?,?)R2(G,H,J),其中 ?G 是主鍵。
  3. 依據 ?→?,?,?AE,F,I:

    • 創建表 ?3(?,?,?,?)R3(A,E,F,I),其中 ?A 是主鍵。
  4. 依據 ?+?→?,?,?,?,?,?,?,?A+BC,D,E,F,G,H,I,J:

    • 創建表 ?4(?,?,?,?,?,?,?,?,?,?)R4(A,B,C,D,E,F,G,H,I,J),其中 ?+?A+B 是主鍵。

步驟 3: 確認並進一步分解以滿足 BCNF

檢查 ?4R4 表,確認是否需要進一步分解。根據 BCNF 的定義,我們需要確保所有非平凡功能相依性 ?→?XY 中,?X 都是超鍵。

進一步分解 ?4R4:

  • 由於 ?+?A+B 是候選鍵,因此在 ?4R4 中不存在部分依賴。
  • 檢查其他表是否滿足 BCNF:
    • ?1(?,?)R1(C,B):滿足 BCNF,因為 ?C 是超鍵。
    • ?2(?,?,?)R2(G,H,J):滿足 BCNF,因為 ?G 是超鍵。
    • ?3(?,?,?,?)R3(A,E,F,I):滿足 BCNF,因為 ?A 是超鍵。

然而,因為我們需要所有表都滿足 BCNF,我們需要考慮分解 ?4R4:

?4R4 的分解:
  • 分解 ?4R4?4?R4a?4?R4b
    • ?4?(?,?,?,?,?)R4a(A,B,C,D,G),其中 ?+?A+B 是超鍵。
    • ?4?(?,?,?,?,?,?,?)R4b(A,B,E,F,H,I,J),其中 ?+?A+B 是超鍵。

這樣,我們將 ?4R4 分解為兩個新的表格,每個表格中的功能相依性滿足 BCNF。

結果

最終分解為以下表格,並且滿足 BCNF:

  1. ?1(?,?)R1(C,B)

    • 主鍵: ?C
  2. ?2(?,?,?)R2(G,H,J)

    • 主鍵: ?G
  3. ?3(?,?,?,?)R3(A,E,F,I)

    • 主鍵: ?A
  4. ?4?(?,?,?,?,?)R4a(A,B,C,D,G)

    • 主鍵: ?+?A+B
  5. ?4?(?,?,?,?,?,?,?)R4b(A,B,E,F,H,I,J)

    • 主鍵: ?+?A+B

這樣,我們完成了資料表的分解,使其滿足 BCNF。