我对DB BCNF违规标准的一个特定方面感到困惑。下面是一个例子:
R(ABCDEF)
FDs是BC->D, C->AF, AB->CE。
我已经将候选密钥派生为AB and BC。
这种关系在BCNF中是正确的,假设所有的FD至少包含部分候选关键字?
谢谢你们!
发布于 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?
使用所有候选关键字。规范化始终考虑所有候选关键字。
https://stackoverflow.com/questions/26519806
复制相似问题