ant*_*kbd 1 relational-database bcnf
我对DB BCNF违规标准的特定方面感到困惑.这是一个例子:
R(ABCDEF)
FD是BC->D, C->AF, AB->CE.
我已经得出了候选键AB and BC.
鉴于所有FD都包含至少部分候选键,因此该关系在BCNF中是正确的吗?
多谢你们!
你得到了正确的密钥:AB和BC.
鉴于所有FD都包含至少部分候选键,因此该关系在BCNF中是正确的吗?
不可以.非正式地,当且仅当每个FD中的箭头是候选键中的箭头时,关系才在BCNF中.换句话说,当且仅当每个功能依赖性的左侧是候选键时,关系在BCNF中.左侧C->AF是C,但C不是候选键.所以R不在BCNF.
(来自OP的评论......)
还有一件事,如果我想找出R中的违规,我应该选择一个CK并将所有FD与该CK进行比较,还是应该在比较FD时使用所有的CK?
使用所有候选键.规范化始终考虑所有候选键.