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