求候选码和最小函数依赖集

(1)求候选码
设关系模式R为(BOISQD),F={S→D,I→S,IS→Q,B→Q}

关系中l类(只出现在左边)L=(IB)
关系中R类(只出现在右边)R=(DQ)
关系中LR类(两边都有)LR=(S)
关系中NLR类(两边都没有)NLR=(O)
NLR类O一定是侯选码的一部分。
然后看l类能不能推R类并满足U=(BOISQD)
(I→S S→D 所以I→D 又因为B→Q)显然是可以推出的,而且满足U
简单的得出候选码为IBO
(2)求最小函数依赖集
关系模式R(A,B,C,D),F = {A→C,C→A,B→AC,D→AC}

将F中的依赖右部属性单一化:
F1={ A→C,C→A,B→A,B→C,D→A,D→C }。
去掉多余的函数依赖:由B→A,A→C可得B→C,所以F1中的B→C是多余的;由D→A,A→C可得D→C,所以F1中的D→C是多余的。可得F2={ A→C,C→A,B→A,D→A }。
寻找函数依赖集的最小集:
F2中所有依赖的左部都是单属性,不存在依赖左部有多余的属性。
当然,函数依赖集的最小集不是惟一的,大家可以试着得出其他答案。

你可能感兴趣的:(数据库学习)