地特三等申論題
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 分)
如果 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 小題
小題 (一)
假設我們分解(decomposition)R 成為(A, B, C), (A, D, E)。證明這是一個 lossless-join 分解。(10 分)
思路引導 VIP
看到證明「無失真合併分解(lossless-join decomposition)」的題目,首先想到兩個子關聯的判定定理:若 R1 ∩ R2 → R1 或 R1 ∩ R2 → R2 成立(即交集為其中一個的 Superkey),則為無失真合併分解。接著利用給定的 FDs 計算交集屬性的 Closure(封閉集)來完成證明。
小題 (二)
寫出一個 lossless-join 分解使得 R 分解後滿足 BCNF。(10 分)
思路引導 VIP
解 BCNF 分解題的關鍵是先找出所有 Candidate Keys,然後逐一檢查 Functional Dependencies (FDs),找出決定子不是 Superkey 的 FD。利用該違反 BCNF 的 FD 將原關聯分解為兩個子關聯,並驗證分解後的關聯是否均滿足 BCNF 及無損結合(Lossless-join)特性。
小題 (三)
寫出一個 lossless-join 分解使得 R 分解後滿足 3NF。(10 分)
思路引導 VIP
本題要求尋找滿足 3NF 且為無失真合併(Lossless-join)的分解。標準解題策略是採用「3NF 合成演算法(3NF Synthesis Algorithm)」,先找出功能相依的最小覆蓋(Minimal Cover),依據最小覆蓋建立關聯表,最後確認分解中是否包含原關聯表的候選鍵,以此保證相依性保留與無失真合併。