我试图找出执行BCNF分解的正确步骤.我发现这个例子,但我不明白如何执行正确的步骤.
模式=(A,B,C,D,E,F,G,H)
FD的{A – > CGH,AD-> C,DE→F,G→G}
有人可以显示正确的步骤吗?
解决方法
使用您的FD确定最小封面:
{A -> C,A -> G,A -> H,B -> nothing,C -> nothing,D -> nothing,E -> nothing,F -> nothing G -> nothing H -> nothing DE -> F}
注意AD – > C因为A单独决定C,这意味着D在FD中是多余的(参见阿姆斯壮的公理 – 增强).
3NF和BCNF定义涉及到关于按键的依赖关系.唯一的复合键
你在这里是DE. D或E都不参与任何其他非空FD
因此消除传递依赖性并确保依赖属性依赖于
“关键,整个关键,只有关键”,这不是一个问题.
打破关系,使FD左手边是关键和右手边
是该密钥的非密钥依赖属性:
[Key(A),H] [Key(D,E),F]
现在从封面中消除这些属性,无论是独立的关系.
[Key(B)]
这应该在3NF / BCNF