数据库 计算候选码

函数依赖

闭包计算

1.(AE)+ = AE

2.因为A->D,E->C,所以  (AE)+=AEDC

3.因为CD->I  ,所以(AE)+=AEDCI

候选码计算

例1:R<U,F>,U=(A,B,C,D,E,G),F={AB->C,CD->E,E->A,A->G},求候选码。

L:BD R:G LR:ACE

X=BD(L类和N类)  Y=ACE(LR类)

因为BD+=BD,除了G以外(G是属于R,所以一定不是候选码),BD可以跟A,C,E进行组合

因为ABD+=ABDCEG=U ,所以ABD是候选码

因为BDC+=BDCEAG=U,所以BDC是候选码

因为BDE+=BDEAGC=U,所以BDE是候选码

所以本问题的候选码有3个分别是ABC、BCD和BDE

 

例2:R<U,F>,U=(A,B,C),F={AB->C,C->B},求候选码。

L:A LR:BC

X=A Y=BC

因为A只出现在左边,所以A一定是候选键。

A的闭包还是A,则对A进行组合,可以和B,C进行组合。

首先看AB,AB本身自包AB,而AB->C,所以AB的闭包是ABC=U。

再看AC,AC本身自包AC,而C->B,所以AC的闭包是ABC=U。

因为AB,AC的闭包都是ABC,也就是U,所以候选键是AB,AC。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章