分解为第三范式(3NF)

时间:2010-12-05 23:16:17

标签: database relational-database

Scheme (R) = (A,B,C,D,E,F,G,H)

Function Dependencies (F) = {A->CGH, AD->C, DE->F, G->H}

如何将模式R的无损连接分解为第三范式(3NF)?

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:19)

由于任何字母x的A→CGH和Ax→C,我们可以忽略第二个函数依赖(AD→C),因为它没有告诉我们A→CGH也没有告诉我们的任何内容。 / p>

没有什么可以决定B;什么都没有决定D。

由于G确定H,A确定G和H,我们可以将G→H分成关系(存在传递依赖A→G和G→H)。

R1 = { G, H }       : PK = { G }

留下F'= {A→CG,DE→F},R'=(A,B,C,D,E,F,G)。

剩下的两个功能依赖关系可以形成另外两个关系:

R2 = { A, C, G }    : PK = { A }
R3 = { D, E, F }    : PK = { D, E }

留下R''= {A,B,D,E}

R4 = { A, B, D, E } : PK = { A, B, D, E }

R1,R2,R3和R4的连接应该为您提供R的任何起始值(满足给定功能依赖性的约束)的R。

答案 1 :(得分:0)

总的来说,你应该首先获得最小封面,然后添加密钥ABDE