阿摩線上測驗 登入

申論題資訊

試卷:109年 - 109 一般警察人員特考_三等_警察資訊管理人員:資料庫應用#87142
科目:公職◆資料庫應用
年份:109年
排序:0

申論題內容

四、假設關聯式資料表 R(A, B, C, D, E),其資料間功能相依為: 
A → {B, C, D, E},D → E 
請問如何切割可維持無損連結(lossless join)?(20 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

要將關聯式資料表 ?(?,?,?,?,?)R(A,B,C,D,E) 分解成符合第三正規化(3NF)或 Boyce-Codd 正規化(BCNF)的表格,並同時保持無損連結(lossless join),我們需要考慮給定的功能相依:

  1. ?→{?,?,?,?}A{B,C,D,E}
  2. ?→?DE

分解步驟

  1. 確認主鍵

    • 由於 ?→{?,?,?,?}A{B,C,D,E},所以 ?A?R 的候選鍵(candidate key)。
  2. 分解關係

    • 根據功能相依 ?→{?,?,?,?}A{B,C,D,E},我們可以將其分解為兩個關係:
      1. ?1(?,?,?,?)R1(A,B,C,D)
      2. ?2(?,?)R2(D,E)

驗證無損連結(lossless join)

驗證 ?1(?,?,?,?)R1(A,B,C,D)?2(?,?)R2(D,E) 是否無損連結

  • ?1(?,?,?,?)R1(A,B,C,D)?2(?,?)R2(D,E) 之間, ?D 是公共屬性。
  • 我們需要確保分解後的自然連接(natural join)能夠還原原始表 ?R

對於無損連接,根據關係分解理論,如果 ?1∩?2R1R2 包含一個超鍵(superkey),則分解是無損的。

?1(?,?,?,?)R1(A,B,C,D)?2(?,?)R2(D,E) 中,公共屬性是 ?D。我們需要檢查 ?D 是否為 ?1R1?2R2 的超鍵:

  • ?2(?,?)R2(D,E) 中,?D 是超鍵,因為 ?→?DE

由於 ?D?2R2 的超鍵,根據無損連接規則,這樣的分解是無損的。

最終分解

我們將 ?(?,?,?,?,?)R(A,B,C,D,E) 分解為:

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

    • 包含屬性:A, B, C, D
    • 主鍵:A
  2. ?2(?,?)R2(D,E)

    • 包含屬性:D, E
    • 主鍵:D

這樣的分解既能維持無損連接(lossless join),又能保證數據庫的正規化。