首先把函数依赖分成单一的函数依赖,F=(A→C,C→A,B→A,B->C,D→A,D->C), 因为D→A,A→C,所以D->C冗余了,所以删去。同样,B->C,C→A,所以B→A删去。 Fmin=(A→C,C→A,D→A,B->C)
(1)B+=BD
关键字:
A+=ABCDE 所以A是关键字
B+=BD,
C+=C
D+=D
E+=AE
B+=ABCDE
AC+=ABCED
AD+=ABCDE
AE+=ABCDE
BC+=BCDEA 关键字
BD+=BD
BE+=BDEABC 关键字
CD+=CDEAB 关键字
CE+=ABCED 关键字
DE+=DEABC 关键字
B+ = (BD)+ = BD
A,B,C,D,E左右都有,那慢慢求闭包呗...
先求单属性闭包
A+ = (ABC)+ = (ABCD)+ = ABCDE,所以A是关键字,多属性关键字不能再包含A。
E+ = (AE)+ = ABCDE,所以E是关键字,多属性关键字不能再包含E。
再求二属性闭包
(BC)+ = (BCD)+ = (BCDE)+ = ABCDE,所以BC是关键字,三属性以上关键字不能同时包含BC
(CD)+ = (CDE)+ = ABCDE,所以CD是关键字,三属性以上关键字不能同时包含CD
即三属性关键字不能同时包含BCD,那就不用再求了,因为除去AE,三属性组合刚好只剩BCD了。
综上,关键字为A, E, BC, CD