主鍵推導過程如下-
A→E,經過擴延率可得AB→BE,又AB→F,故AB→EF;
B→H,經擴延率可得AB→AH,又AB→EF,故AB→EFH;
C→D,經擴延率可得BC→BD,又BC→I,故BC→DI;
AB→EFH,經擴延率可得ABC→CEFH;
BC→DI,經擴延率可得ABC→CDI;
因ABC→CEFH且ABC→CDI,故ABC→DEFHI,因此本題的主鍵為ABC。
要決定最適合用作關聯表格 R(A, B, C, D, E, F, H, I)的主鍵(primary key),需要找到一組屬性,這組屬性能唯一標識表中的每一行,即沒有其他更小的屬性集能滿足這一點。這組屬性稱為候選鍵(candidate key)。
我們有以下五個功能相依(Functional Dependency):
首先,我們需要確定哪些屬性集能唯一標識所有其他屬性。
A → E
B → H
C → D
AB → F
BC → I
這意味著我們需要找到一組屬性,可以確定所有其他屬性。從功能相依可以看出,A、B、C是最重要的屬性,因為這些屬性在功能相依中扮演了關鍵角色。
我們可以通過計算候選鍵的閉包來確定它們是否能唯一標識所有其他屬性。
(A, B) 的閉包:
這裡的閉包未包括所有屬性。
(A, C) 的閉包:
這裡的閉包未包括所有屬性。
(B, C) 的閉包:
這裡的閉包未包括所有屬性。
(A, B, C) 的閉包:
這裡的閉包包括所有屬性:A, B, C, D, E, F, H, I