調查局三等申論題
114年
[資訊科學組] 資料庫應用
第 一 題
📖 題組:
為設計一個調查局的關聯式資料庫,假設有 R(A, B, C, D, E, F, G),各屬性均無多值(Multi-Value)現象,其功能相依如下: FD1:G→D FD2:{E, F}→G FD3:F→B FD4:D→{C, F} FD5:G→A
為設計一個調查局的關聯式資料庫,假設有 R(A, B, C, D, E, F, G),各屬性均無多值(Multi-Value)現象,其功能相依如下: FD1:G→D FD2:{E, F}→G FD3:F→B FD4:D→{C, F} FD5:G→A
📝 此題為申論題,共 4 小題
小題 (一)
請以功能相依的推導,找出{G, F}的封閉(Closure),即{G, F}+。(4 分)
思路引導 VIP
計算屬性封閉(Closure)的核心在於使用「封閉演算法」:從目標屬性集合出發,反覆檢查所有功能相依(FD),只要 FD 的左側完全包含在當前集合中,就將其右側加入集合,直到集合不再擴大為止。作答時務必逐條列出套用的 FD 與擴張後的集合,以確保過程分數全拿。
小題 (二)
請以功能相依的推導與找屬性封閉的方法,找出 R 所有的候選鍵(Candidate Key),並列出全部的 Prime attributes、non-Prime attributes。(10 分)
思路引導 VIP
尋找候選鍵應先利用功能相依(FD)判斷屬性出現的位置:只出現在左側的屬性必為候選鍵的一部分,只出現在右側的屬性必為非主屬性。接著透過計算『屬性封閉集(Attribute Closure)』,找出能決定所有屬性的最小集合即為候選鍵;最後再依據候選鍵定義主屬性與非主屬性。
小題 (三)
請說明上述 relation schema 符合第三正規化(3NF)與否的原因。(6 分)
思路引導 VIP
解答正規化題目的標準 SOP:首先,利用功能相依(FD)求出「屬性集合閉包(Closure)」,藉此找出所有的「候選鍵(Candidate Key)」。其次,區分「主屬性」與「非主屬性」。最後,套用正規化定義檢查:若存在非主屬性對候選鍵的「部分相依」則不符 2NF;若存在「遞移相依」則不符 3NF。
小題 (四)
若 R 分解為 R1(A, D, E, F, G) R2(C, D) R3(B, F),請說明此分解是否保持 lossless join 的原因。(5 分)
思路引導 VIP
看到判斷多表分解是否為無損連接(Lossless Join),應直覺聯想到「二元分解檢驗法」或「表格檢驗法(Chase Algorithm)」。本題可利用二元檢驗法,將關聯表兩兩合併,檢查其交集屬性是否能(透過已知的 FD)決定其中一個關聯表的所有剩餘屬性,若每一步皆成立即為無損連接。