找到R的所有最小候选键

时间:2014-03-30 18:36:07

标签: database functional-dependencies database-theory

我有R= {A,B,C,D,E,F,G,H,I,J,K} F={ABGH->IJKF,JIGH->ABF, A->CDE}我需要查找R的所有最小候选键,以及如何将R标准化为BCNF

到目前为止,我得到了以下答案: ABGHGHJIKAGHIJK

但是我在这个网站上查看了我的答案:checked site

我不知道为什么'K'不是答案的一部分,我不确定我的答案是否正确。谢谢!

3 个答案:

答案 0 :(得分:1)

R有两个候选键:{ABGH}和{GHIJ}。

{GHJIK}不是候选键,但如果它 ,那么{AGHIJK}将不是最小键。

属性K不是两个候选键的一部分,因为{ABGH}的闭包含K,而{GHIJ}的闭包含K.例如,对于{ABGH}。 。

ABGH->ABGH (trivial)
ABGH->IJKF (given), therefore
ABGH->ABGHIJKF
A->CDE (given), therefore
ABGH->ABCDEGHIJKF, or in alpha order
ABGH->ABCDEFGHIJK

答案 1 :(得分:0)

BCNF分解将是 R1(ACDE)和R2(ABFGHIJK) 因为在R(A - > CDE)中是部分依赖。所以我们在R1中分解它,其中A是ck和R2,其中ABGH和GHIJ是候选键。

答案 2 :(得分:0)

任何不。添加到候选键的属性形成超级键。因此,我们也可以说候选键是最小超级键。这里ABGHGHIJ可以确定关系的所有其他属性,因此它们成为候选键,因此GHIJK成为超级密钥(由于添加了K而不是候选者)密钥和类似原则AGHIJK(由于添加了AK)也成为超级密钥,因为它具有GHIJ作为候选密钥。