-1

嘿,我正在研究一个示例问题,我必须确定哪些给定的关系在 3NF/BCNF 中。

这些是关系:

R1(A,B,C,D,E)

F=(CE->ABC, AB->C, C->A)


R2(C,D,E,G)

F=(CD->GE, E->D)


现在根据答案,R1 在 3NF 中,R2 在 BCNF 中,在这两种情况下我都不明白为什么。


如果规则是: R1 如何处于 3NF 中:

X -> A,则 A 是 X 的子集

X 是一个超级键

A 是 R 的某个键的一部分


在 R1 中有 C->A = A 不是键的一部分,C 不是超键,A 显然不是子集。


对于 R2,BCNF 的规则是:

X → Y 是一个平凡的函数依赖 (Y ⊆ X)

X 是模式 R 的超级键


并且 E->D = E 不是超键,D 也不是 E 的子集。

答案是错误的还是我遗漏了什么?

非常感谢!

4

2 回答 2

1

R1(A,B,C,D,E)

F=(CE->ABC, AB->C, C->A)

现在,正如您没有告诉主键一样,让我们​​先找出主键。主键是 DCE。根据我在 C->A 中的说法, C 不是超级键, A 不是主要属性。所以它不在 3NF 中。

R2(C,D,E,G)

F=(CD->GE, E->D) 主键是CD。

现在,在 E->D 中,E 不是超级键,这就是它不在 BCNF 中的原因。

所以这意味着这本书有一些印刷错误,你的答案是好的。

于 2017-07-19T10:39:53.280 回答
1

第一个关系 R1 只有一个候选键 CDE,这意味着它具有三个属性(C、D、E)。这种关系的 FD 不满足 BCNF 和 3NF 条件,因为 3NF 表示如果 FD 的形式为 A->B,则 A 应该是超级密钥,或者如果 A 不是超级密钥,则 B 必须是一个主要属性。现在R1的FD不满足这些条件,所以不在3NF中。第二个关系 R2 有两个候选键 CD 和 EC,这意味着它具有三个主要属性(C、D、E)。第一个FD CD->GE满足BCNF条件,所以它在BCNF中,第二个FD E->D(因为E不是超级键,所以我们检查B的主要属性在这个D中)。所以关系在 BCNF 中,如果它在 BCNF 中,那么它肯定会在 3NF 中。

于 2017-08-01T18:23:36.377 回答