3

我正在練習以一組函數依賴和輸出候選鍵爲輸入。有沒有算法,以及如何在這種情況下沒有基於Web的實現,我可以輸入我的FD和作爲輸出獲得超級密鑰/候選鍵列表?找到給定FD的候選鍵的方法:s?

我練什麼我發現這裏的SO和合適的問題是 how to find the highest normal form for a given relation 這裏提到的函數依賴是

B-「G

BI-> CD

EH-> AG

G-> DE

請檢查我是否正在做這件事t當我嘗試發現候選鍵是BFHI時:

FD B-> G可以重寫爲ABCDEFHI-> ABCDEFGHI,因此ABCDEFHI是一個超鍵。 FD BI-> CD可以改寫爲ABEFGHI-> ABCDEFGHI,因此ABEFGHI是一個超級鍵。 FD EH-> AG可以改寫爲BCDEEFHI-> ABCDEFGHI,因此BCDEEFHI是一個超級鍵。 FD G-> DE可以改寫爲ABCFGHI-> ABCDEFGHI,因此ABCFGHI是一個超級鍵。

在我們的超級跑車中,BFHI是每一個。因此,BFHI是候選關鍵字,它不能被進一步減少,從檢查中可以看出(?)

我推斷這是正確的嗎?

有增廣算法可以處理,如果它的工作原理另外一個問題, Database extraneous attributes and decomposition

這裏,FD:s爲

A-> BCD

BC-> DE

B-> D

D-> A

這裏FB A-> BCD可以寫爲AEF-> ABCDEF,因此AEF是一個超級鍵。 FD BC-> DE可以重寫爲ABCF-> ABCDEF,因此ABCF是超級密鑰。 FD B-> D可以重寫爲ABCEF-> ABCDEF,因此ABCEF是一個超級鍵。 FD D-> A可以重寫爲BCDEF-> ABCDEF,因此BCDEF是超級密鑰。對於所有超級鍵,F是每個超級鍵中唯一的成員,因此F是唯一的候選鍵。

這是行不通的?

感謝您的任何答案/評論

+1

「怎麼會在這樣的情況下,沒有基於網絡的實現」 - 因爲你還沒有建立一個呢! –

+1

是的,有阿姆斯特朗的公理,但這不是一種方法。它只是說明可以用FD做什麼。我正在尋找的方法,而不是定義/公理。我正在用增強算法的另一個應用程序更新這個問題,以查看它是否通用。非常感謝您的評論。 –

回答

4
No, but as F is not in any of the FD:s then it has to be a member of every candidate key. 

Also, A->BCD, BC->DE, B->D, D->A give us 
A+ (the cover of A) = ABCDE 
B+ = ABCDE 
C+ = C 
D+ = ABCDE so the 
E+ = E 
F+ = F. 

The combinations giving ABCDEF are 
AF 
BF 
DF 
and hence the candidate keys are {AF, BF, DF} 
and every enhancement of any of those three are the superkeys 
+0

現在看起來很簡單。謝謝。 –

相關問題