數據庫 計算候選碼

函數依賴

閉包計算

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。

 

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