高考申論題
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),利用給定的 FD 計算其屬性閉包(Closure),若能決定 R1 或 R2 的所有屬性,即代表該分解為無損連接。
小題 (二)
寫出一個 lossless-join 分解使得 R 分解後滿足 BCNF。(10 分)
思路引導 VIP
本題重點在於找出違反 BCNF 規範的功能相依(FD),並依此進行分解。考生需先求出原綱目的所有候選鍵,檢視哪一個 FD 的左邊(決定項)不是超鍵,接著使用 $R_1(X, Y)$ 與 $R_2(R-Y)$ 的演算法分解,最後驗證分解後的關聯是否滿足無失真連接與 BCNF。
小題 (三)
寫出一個 lossless-join 分解使得 R 分解後滿足 3NF。(10 分)
思路引導 VIP
看到 3NF 分解,首選「3NF 合成演算法(Synthesis Algorithm)」。先求出候選鍵與功能相依的最小涵蓋(Minimal Cover),將最小涵蓋轉換成子綱目,最後檢查是否包含至少一個候選鍵以滿足無損合併(Lossless-join)。同時可敏銳觀察到,若原綱目全為主屬性,其本身即已滿足 3NF。