我有一个R= {A,B,C,D,E,F,G,H,I,J,K}
F={ABGH->IJKF,JIGH->ABF, A->CDE}
我需要找到的所有最小候选键R
,以及如何规范化R
为 BCNF
到目前为止,我得到了以下答案
ABGH
:GHJIK
和AGHIJK
。
但我从这个网站检查了我的答案:checked site
我不知道为什么“K”不是答案的一部分,我不确定我的答案是否正确。谢谢!
我有一个R= {A,B,C,D,E,F,G,H,I,J,K}
F={ABGH->IJKF,JIGH->ABF, A->CDE}
我需要找到的所有最小候选键R
,以及如何规范化R
为 BCNF
到目前为止,我得到了以下答案
ABGH
:GHJIK
和AGHIJK
。
但我从这个网站检查了我的答案:checked site
我不知道为什么“K”不是答案的一部分,我不确定我的答案是否正确。谢谢!
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
BCNF 分解将是 R1 (ACDE) nd R2(ABFGHIJK) 因为在 R (A--> CDE) 中是部分依赖。所以我们在 R1 中分解它,其中 A 是 ck,R2 中 ABGH 和 GHIJ 是候选键。
任何没有。添加到候选键的属性构成一个超级键。因此我们也可以说候选键是最小的超级键。在这里ABGH
andGHIJ
可以确定关系的所有其他属性,因此它们成为候选键,因此GHIJK
成为超级键(由于添加K
)而不是候选键,并且基于类似的原则AGHIJK
(由于添加A
and K
)也成为超级键,因为它有GHIJ
这是一个候选键。