我有一个由{A,B,C,D,E,F}组成的关系R,以下是依赖关系:
{A} -> {C,F}
{C} -> {D}
{B} -> {E}
这必须相应地转换为2NF和3NF。
我刚刚相应地转换了它们。
如果以下表格有效,请您验证并告诉我吗?
2NF:
{A,C,F,D}
{B,E}
3NF:
{A,C,F}
{C,D}
{B,E}
答案 0 :(得分:0)
3NF中的转换不正确,因为您的分解不是“数据保留”(即,如果您有关系R的实例,并将其投影到分解关系的属性上,当你进行它们的自然连接时,你会得到一个与R)不同的关系。
原因是R的(唯一)候选键是{A,B},并且这两个属性必须同时存在于分解关系中。因此,在用于分解3NF中的模式的合成算法中,最后一步表示如果在任何分解的关系中不存在原始关系的候选键,则必须添加具有键的模式。所以正确的分解如下:
R1 < (A C F), { A → C F } >
R2 < (B E), { B → E } >
R3 < (C D), { C → D } >
R4 < (A B), { } >