首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库BCNF违规

数据库BCNF违规
EN

Stack Overflow用户
提问于 2014-10-23 09:21:27
回答 1查看 9.4K关注 0票数 2

我对DB BCNF违规标准的一个特定方面感到困惑。下面是一个例子:

R(ABCDEF)

FDs是BC->D, C->AF, AB->CE

我已经将候选密钥派生为AB and BC

这种关系在BCNF中是正确的,假设所有的FD至少包含部分候选关键字?

谢谢你们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-23 10:41:49

您获得了正确的密钥: AB和BC。

关系在BCNF中是正确的,给定所有的FD至少包含部分候选关键字?

不是的。非正式地,当且仅当每个FD中的箭头是候选键之外的箭头时,关系才在BCNF中。换句话说,当且仅当每个函数依赖项的左侧是候选键时,关系才在BCNF中。C->AF的左侧是C,但C不是候选键。所以R不在BCNF中。

(来自OP的评论。。。)

还有一件事,如果我想找出R中的违规,我是应该选择一个CK并将所有的FD与该CK进行比较,还是应该在比较FD时使用所有的CK?

使用所有候选关键字。规范化始终考虑所有候选关键字。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26519806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档