关于SO有很多相关的问题,但我找不到回答这个问题的任何问题:
是否可以拥有可以无损连接的3NF关系 在保留依赖关系的同时分解为BCNF关系?
我知道如果您准备放松一个或多个依赖项,可以将3NF关系分解为BCNF。并且Beeri和Bernstein已经证明形式为{AB-> C,C-> B}的FD给出了不能简化为BCNF的3NF关系。但是有没有你在3NF并且你可以减少到BCNF的情况?
对于额外的非正式书呆子点,我很想知道3NF允许的依赖关系的好词,但不是BCNF?基于部分和传递依赖关系很容易区分1NF,2NF和3NF,但在我看来,BCNF的一半问题是禁止的依赖类型没有简单的名称。
答案 0 :(得分:1)
但是有没有你在3NF并且你可以减少到BCNF的情况?
Court Start Time End Time Rate Type -- 1 09:30 10:30 SAVER 1 11:00 12:00 SAVER 1 14:00 15:30 STANDARD 2 10:00 11:30 PREMIUM-B 2 11:30 13:30 PREMIUM-B 2 15:00 16:30 PREMIUM-A
该示例的功能依赖性未列出,但您可以派生它们。我列出了下面的FD。
AB->CD AC->BD BD->AC CD->AB ABC->D BCD->A ABD->C ACD->B D->A
对于额外的非正式书呆子点,我很想知道一个好的术语 3NF允许的依赖关系但不是BCNF? 。 。 。一半的问题 BCNF对于禁止的依赖类型没有简单的名称。
在BCNF中,每个决定因素(左侧)必须是候选键。或者你可以说每个箭头都是一个候选键的箭头。转过来,BCNF禁止不是候选键的决定因素。
维基百科文章中的候选键是{AB,AC,BD,CD}。由于函数依赖性D-> A,起始关系不在BCNF中。 的决定因素 FD,D,不是候选密钥。