免費開始練習
地特三等申論題 106年 [資訊處理] 資料庫應用

第 二 題

📖 題組:
如果 scheme R = (A, B, C, D, E),並滿足以下所有的 functional dependencies A→BC, CD→E, B→D, E→A (一) 假設我們分解(decomposition)R 成為(A, B, C), (A, D, E)。證明這是一個 lossless-join 分解。(10 分) (二) 寫出一個 lossless-join 分解使得 R 分解後滿足 BCNF。(10 分) (三) 寫出一個 lossless-join 分解使得 R 分解後滿足 3NF。(10 分)
📝 此題為申論題,共 3 小題

小題 (二)

寫出一個 lossless-join 分解使得 R 分解後滿足 BCNF。(10 分)

思路引導 VIP

解 BCNF 分解題的關鍵是先找出所有 Candidate Keys,然後逐一檢查 Functional Dependencies (FDs),找出決定子不是 Superkey 的 FD。利用該違反 BCNF 的 FD 將原關聯分解為兩個子關聯,並驗證分解後的關聯是否均滿足 BCNF 及無損結合(Lossless-join)特性。

🤖
AI 詳解
AI 專屬家教

【解題思路】找出違反 BCNF 的功能相依(FD),依據 BCNF 分解演算法進行拆解,並驗證其無損結合(Lossless-join)特性。 【詳解】 Step 1:找出關聯 R 的候選鍵(Candidate Keys)

小題 (一)

假設我們分解(decomposition)R 成為(A, B, C), (A, D, E)。證明這是一個 lossless-join 分解。(10 分)

思路引導 VIP

看到證明「無失真合併分解(lossless-join decomposition)」的題目,首先想到兩個子關聯的判定定理:若 R1 ∩ R2 → R1 或 R1 ∩ R2 → R2 成立(即交集為其中一個的 Superkey),則為無失真合併分解。接著利用給定的 FDs 計算交集屬性的 Closure(封閉集)來完成證明。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用無失真合併分解(Lossless-join Decomposition)定理,檢驗兩個子關聯的屬性交集是否能決定其中一個子關聯(即交集是否為某子關聯的 Superkey)。 【詳解】 已知:

小題 (三)

寫出一個 lossless-join 分解使得 R 分解後滿足 3NF。(10 分)

思路引導 VIP

本題要求尋找滿足 3NF 且為無失真合併(Lossless-join)的分解。標準解題策略是採用「3NF 合成演算法(3NF Synthesis Algorithm)」,先找出功能相依的最小覆蓋(Minimal Cover),依據最小覆蓋建立關聯表,最後確認分解中是否包含原關聯表的候選鍵,以此保證相依性保留與無失真合併。

🤖
AI 詳解
AI 專屬家教

【解題思路】利用「3NF 合成演算法(3NF Synthesis Algorithm)」,求出最小覆蓋(Minimal Cover)後建立關聯表,並確認包含候選鍵以保證無失真合併(Lossless-join)。 【詳解】 已知:

📝 BCNF正規化分解
💡 透過拆解違反定義的相依性,並確保交集為超鍵以達成無損結合。

🔗 BCNF 無損分解流程

  1. 1 識別候選鍵 — 計算屬性閉包,找出所有 Candidate Keys。
  2. 2 篩選違規 FD — 找出決定子非 Superkey 的非平凡相依性。
  3. 3 執行二元分裂 — 以 X→Y 為界,拆成 (X, Y) 與 (R-Y) 兩部分。
  4. 4 無損結合驗證 — 確認 R1 ∩ R2 可決定 R1 或 R2。
🔄 延伸學習:延伸學習:BCNF 分解必能保證 Lossless,但不一定保證相依性保持。
🧠 記憶技巧:先求鍵、找違規、拆兩半、驗無損
⚠️ 常見陷阱:容易漏掉「隱含」的候選鍵(如本題 E 也是鍵),導致誤判 FD 是否違反 BCNF;分解後未遞迴檢查子關聯是否仍有違規。
3NF 正規化 相依性保持 (Dependency Preservation) 多值相依 (MVD) 與 4NF

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

關聯式資料庫設計理論
查看更多「[資訊處理] 資料庫應用」的主題分類考古題