☆属性集的闭集合
More functional dependence
1. 屬性集的閉集合
範例: 假設 R 為一關係
格, 有 A, B, C, D, E, F,六種屬性, 以及功能相依性質如下
A , BC
E , CF
B , E
CD , EF
要計算 {A, B} 的閉集合, 有下列步驟
(1) 將A, B 加入閉集合中
(2) 因為 A , BC, 故 C 可由 A 功能決定, 將 C 加入閉集合中 (3) 因為 B , E, 故 E 可由 B 功能決定, 將 E 加入閉集合中 (4) 因為 E , CF, 故 F 可由 E 功能決定, 將 F 加入閉集合中 (5) CD , EF 對閉集合的形成沒有幫助, 在搜尋完所有功能相依性質, 最後的閉集合為 {A, B, C, E, F}
2. 相依性的不可化簡集合
定義: 我們稱功能相依性質的集合是不可化簡的, 若且唯若, 此集合滿足下列三項性質
(1) 每一個功能相依性質(FD) 的右端, 剛好只有一個屬性。 (2) 每一個功能相依性質(FD) 的左端, 在不改變閉集合的情形下, 是不可化
簡的。
(3) 在不改變閉集合的情形下, 不可捨棄任何一條功能相依性質。
範例: 假設 R 為一關係表格, 有 A, B, C, D, 四種屬性, 以及功能相依性質如
下:
A , BC
B , C
A , B
AB , C
AC , D
要使上述集合為不可化簡, 有下述步驟
(1) 若右端超過一個屬性, 則利用分解性來拆開
A , B
A , C
整個集合改變如下
A , B
A , C
B , C
A , B
AB , C
AC , D
因為此集合有兩個 A , B, 故捨棄一個。
(2) 因為 AC , D, 可化簡為A , D, 故捨棄 AC , D, 加上 A , D,
(3) 因為 AB , C, 可由A , C, 直接推得, 故捨棄之 (4) 最後 A , C, 可由A , B, B , C 來推得, 亦捨棄之 (5) 最後結果
A , B
B , C
A , D
重要觀念: 令 Z 為關聯表 R屬性的子集合, 如果 Z 的閉集合包含了所有屬
性, 則稱 Z 為R的 superkey, 而候選鍵(Candidate key) 為不可化簡的 superkey.
練習題
若 R(A, B, C, D, E, F) 滿足
AB , C
C , A
BC , D
ACD , B
BE , C
CE , FA
CF , BD
D , EF
試找出不可化簡的集合, 等價於上述的集合