这是教科书上的问题
Consider the Relation R={A, B, C, D, E, F, G, H } and the set of functional dependencies.
A→C B→CG AD→EH C→DF A→H
What is the key for R? Decompose R into 2NF, 3NF and finally in BCNF relation
我相信A B
是候选键。
我已经像这样将 R 分解为 2nf:
R1={A,C,H,D,F,E,H}
R2={B,C,G,D,G,F}
R3={A,B}
对于 3nf:
R1A={A,C,H}
R1B={C,D,F}
R2={B,C,G}
R3={A,B}
R4={A,D,E}
我的问题
这显然看起来不正确,因为我们仍然有多个异常并且与转换为 bcnf 没有关系。我应该如何正确标准化 R
要在 3NF 中规范化,应该从功能依赖的规范覆盖开始。在这种情况下,一个是:
所以使用“综合”算法在 3NF 中的分解是:
从 R 开始,使用“分析”算法的 BCNF 中可能的分解是:
请注意,通过这种分解,依赖性
B → C
会丢失。