给出以下两个语句:
S1: Every table with two single-valued
attributes is in 1NF, 2NF, 3NF and BCNF.
S2: AB->C, D->E, E->C is a minimal cover for
the set of functional dependencies
AB->C, D->E, AB->E, E->C.
以下哪一项是正确的?
(A) S1为真,S2为假。
(B) S1和S2均为TRUE。
(C) S1为FALSE,S2为TRUE。
(D) S1和S2均为FALSE。答案: (A)
解释:
S1: Every table with two single-valued
attributes is in 1NF, 2NF, 3NF and BCNF.
关系模式R在BCNF中,如果在每个非平凡的功能依赖项X-> Y中,X是超级键。如果我们可以证明该关系在BCNF中,则默认情况下也将在1NF,2NF,3NF中。
令R(AB)为两个属性的关系,则
- 如果{A-> B}存在,则BCNF因为{A} + = AB = R
- 如果{B-> A}存在,则BCNF因为{B} + = AB = R
- 如果{A-> B,B-> A}存在,则BCNF,因为A和B现在都是超级密钥。
- 如果{没有非平凡的功能依赖性},则默认为BCNF。
因此,证明了具有两个单值属性的关系在BCNF中,因此在1NF,2NF,3NF中也是如此。
因此,S1为真。
S2: AB->C, D->E, E->C is a minimal cover for
the set of functional dependencies
AB->C, D->E, AB->E, E->C.
众所周知,最小覆盖是消除功能依赖集中的冗余功能依赖和无关属性的过程。
因此,在最小覆盖范围内应隐含F = {AB-> C,D-> E,AB-> E,E-> C}的每个依赖项。
如我们所见,AB-> E没有包含在最小覆盖范围内,因为给定覆盖范围中的{AB} + = ABC {AB-> C,D-> E,E-> C}
因此,S2为假。
该解释由Manish Rai提供。
在此处了解更多有关范式的信息:
数据库规范化|介绍
数据库规范化|正规表格
这个问题的测验