分解为 BCNF

Posted

技术标签:

【中文标题】分解为 BCNF【英文标题】:Decomposing into BCNF 【发布时间】:2012-12-14 02:12:00 【问题描述】:

假设 R = A,B,C,D FD = C→D,C→A,B→C

我应该找到: 1. 钥匙 2.它所在的NF 3. BCNF(如果可能,如果还没有的话)

这就是我到目前为止所得到的:

    关键是 B,因为它传递地确定了 C,而 C 又确定了 D 和 A。 它在 2NF 中,因为依赖关系在整个键上 R1 = B,C R2 = C, A, D 所以我有一个问题。标记方案表示将 R 分解为 AC、BC 和 CD。但是为什么我的答案不正确呢?我是说 FD 是 C -> A,D,如果是的话,这与 C -> A 和 C -> D 有什么区别吗?

【问题讨论】:

【参考方案1】:

当你被要求计算 R 的最小覆盖时,你通常会这样回答。

C -> D C -> A B -> C

当你被要求将 R 提升到 BCNF 时,通常希望你这样回答。

B C C 广告

如果您使用的不是标准教科书,我无法给您任何建议。 TA(助教)写的问答特别难懂。有时他们只是错了。

【讨论】:

以上是关于分解为 BCNF的主要内容,如果未能解决你的问题,请参考以下文章

分解为 BCNF

数据库关系分解为BCNF范式

数据库规范化 - 将其分解为 BCNF 并找到 F 的规范覆盖

关系模式范式分解教程 3NF与BCNF口诀

BCNF范式及其分解方法(对一次Lab作业的总结)

数据库求闭包,求最小函数依赖集,求候选码,判断模式分解是否为无损连接,3NF,BCNF