将最小覆盖转化为 3NF
Translating Minimal Cover into 3NF
我在最小覆盖范围内具有以下功能依赖性,我希望将它们放入 3NF 无损连接和依赖性保留分解中。
FD 1: {A} -> {B,C,D,E};
FD 2: {F} -> {G,H,I,J,K};
FD 3: {G,H,I,L} -> {M};
FD 4: {N} -> {O,P,F};
FD 5: {N,B} -> {Q,L};
键:{A,N}
关键是 A,N 并且是 FD1 和 FD4 的决定因素,我不确定我的 3NF 分解是否应该包含额外的 table,它包含 FD1 和 FD4 的所有属性,所以我可以保存密钥吗?或者它们不应该被合并,以便在它们被合并时我可以减少冗余?
提前致谢!
一般来说,3NF 是通过一种算法找到的,该算法详细说明了产生正确分解的所有步骤。这些算法在所有关于数据库的好书中都有描述。例如,在您的情况下,so-called“综合”算法产生以下分解:
R1 {A B C D E}
R2 {B L N Q}
R3 {F G H I J K}
R4 {G H I L M}
R5 {F N O P}
R6 {A N}
请注意,关系 R6
包含原始关系的键,这是保证无损连接所必需的 属性。
我在最小覆盖范围内具有以下功能依赖性,我希望将它们放入 3NF 无损连接和依赖性保留分解中。
FD 1: {A} -> {B,C,D,E};
FD 2: {F} -> {G,H,I,J,K};
FD 3: {G,H,I,L} -> {M};
FD 4: {N} -> {O,P,F};
FD 5: {N,B} -> {Q,L};
键:{A,N}
关键是 A,N 并且是 FD1 和 FD4 的决定因素,我不确定我的 3NF 分解是否应该包含额外的 table,它包含 FD1 和 FD4 的所有属性,所以我可以保存密钥吗?或者它们不应该被合并,以便在它们被合并时我可以减少冗余?
提前致谢!
一般来说,3NF 是通过一种算法找到的,该算法详细说明了产生正确分解的所有步骤。这些算法在所有关于数据库的好书中都有描述。例如,在您的情况下,so-called“综合”算法产生以下分解:
R1 {A B C D E}
R2 {B L N Q}
R3 {F G H I J K}
R4 {G H I L M}
R5 {F N O P}
R6 {A N}
请注意,关系 R6
包含原始关系的键,这是保证无损连接所必需的 属性。