Scheme (R) = (A,B,C,D,E,F,G,H)
Function Dependencies (F) = {A->CGH, AD->C, DE->F, G->H}
我将如何执行模式 R 到第三范式 (3NF) 的无损连接分解?
我们将不胜感激。
最佳答案
因为 A→CGH 和 Ax→C 对于任何字母 x,我们可以忽略第二个函数依赖性 (AD→C),因为它没有告诉我们任何 A→CGH 也没有告诉我们的东西。
没有什么可以决定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 的任何起始值(满足给定函数依赖项的约束)的起始值。
关于database - 分解为第三范式 (3NF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4361910/