【发布时间】:2014-01-02 00:28:25
【问题描述】:
Gday 小伙子们,
好的,所以我有一个数据库类,我有这个例子让我觉得我真的没有完全理解两个 NF 之间的区别..
我知道
关系 R 在 3NF 中当且仅当对于 R 满足的每个非平凡 FD (X->A) 至少满足以下条件之一为真:
(a) X 是 R 的超键,或者
(b) A 是 R 的关键属性
和
对于每个满足的非平凡 FD (X->A),关系 R 在 BCNF 中 通过R,以下条件为真:
(a) X 是 R 的超级键
示例如下:
R = (A, B, C, D) F = {AB->C, AB->D, C->A, D->B} 1. R 在 3NF 中,为什么? 如果不是,分解成3NF
Sol: Yes. Find all the Candidate Keys: AB, BC, CD, AD Check all FDs in F for 3NF condition
那么,C->A 不会导致违规吗? C 不是超级键,也不是微不足道的,D->B 也是如此?
但它不是 BCNF:
- BCNF 中有 R,为什么?如果不是,分解成BCNF 不,因为对于 C->A,C 不是超级键。 D->B R1 = {C, D},R2 = {A,C},R3 = {B,D}
【问题讨论】:
-
@MostyMostacho 好吧,我已经阅读了该主题和其他 3 个主题,但仍然......
-
@MostyMostacho 我不能在那里发表评论,我需要在你之前的回答中询问一些事情..
标签: database-design relational-database database-normalization 3nf bcnf