这是由Raghu Ramakrishnan,Johannes Gehrke撰写的教科书数据库管理系统中的问题19.10(4)(如果有人好奇 - 当然不包括答案,这就是我需要问的原因)
我注意到有两种方法可以进行BCNF分解:
我们给了R = ABCD 和功能依赖:A - > B,B - > C,C - > d
关键:A 我们可以通过使用B - >将其分解为BCNF。 C或C - > D开头
如果沿B分解 - > C在开始时,得到R1 = AB,R2 = BC,R3 = BD(这不忠实) 如果在开始时沿C - > D分解,则得到R1 = AB,R2 = BC,R3 = CD(这是忠实的)
我对BCNF分解很新,这是正确的吗?因此,根据您选择的起始FD,可能有多种不同的BCNF分解?
提前致谢:)