免費開始練習
地特三等申論題 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 小題

小題 (一)

假設我們分解(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 分解後滿足 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)

小題 (三)

寫出一個 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)。 【詳解】 已知:

升級 VIP 解鎖