声明 - “如果一个表只包含一个候选键,则 3NF 和 BCNF 是等价的。”
在下图中,关系是 3nf 但不是 bcnf。但它只有一个候选键,即 AB,所以根据上面的说法,它应该是 (3nf, bcnf) 或什么都不是。有人可以解释我在这里缺少什么吗?
问问题
1637 次
2 回答
0
在,简单的单词中,给定的单词可以写成
AB->C
AB->D
C->B
在上述关系中,A,B,C 是主要属性,D是非主要属性
这里,AB 和 AC 是最小的超级键
3NF和BCNF的条件
X->Y
对于 BCNF,无论Y是素数还是非素数属性, X都应该是超级键
对于 3NF,只有当 Y不是素数时, X才应该是超级键,否则它是可选的
BCNF and 3NF are equivalent when there are no **non-prime** attributes
希望能帮助到你。
于 2015-05-09T12:09:40.430 回答
0
“如果一张表只包含一个候选键,则 3NF 和 BCNF 是等价的。”
后半部分,“3NF 和 BCNF 是等价的”,没有任何意义。你认为这意味着什么?正常形式是不同的东西。BCNF 要求比 3NF 更严格的条件。因此,当一个关系在 BCNF 中时,它也必须在 3NF 中。所以一个关系可以同时是两种范式。
大概这句话是想说,“如果一个表只包含一个候选键”,那么如果它在 3NF 中,那么它也在 BCNF 中。这是正确的,因为在 3NF 但不在 BCNF 中的表必须具有重叠的 CK(候选键)。这里的CK,即确定所有不包含较小此类集的属性的属性集是AB 和AC。哪个重叠。该表在 3NF 中,但不在 BCNF 中。
(请注意,持有的 FD 不仅是明确告诉您持有的,而且是根据 Armstrong 公理必须持有的所有 FD。)
于 2017-04-27T17:25:27.150 回答