关系数据库设计易犯错误
信息重复;
不能表示某些信息。
模式分解
令R为一关系模式,F为R上函数依赖集。R1和R2为R的分解。该分解为R的无损连接分解只要F+中至少有如下函数依赖中的一个:
R1 ∩ R2 → R1
R1 ∩ R2 → R2
BCNF
result := {R};
done := false;
计算F+;
while(not done)do
if(result中存在模式Ri不属于BCNF)
then begin
令α → β是Ri上的一个非平凡函数依赖,满足α → Ri不在F+中且α∩β=空;
result:=(result-Ri)∪(Ri-β)∪(α,β);
end
else done:=true;
第三范式
具有函数依赖集F的关系模式R属于3NF,只要F+中所有形如α → β的函数依赖,至少有以下之一成立:
α → β是平凡函数依赖。
α是R的超码。β-α中的每个属性A都包含在R的候选码中。