首页 > 解决方案 > 将最小覆盖转换为 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 分解是否应该包含包含 FD1 和 FD4 的所有属性的额外表,以便我可以保留密钥?还是不应该合并它们,以便在合并它们时可以减少冗余?

提前致谢!

标签: decomposition3nf

解决方案


一般来说,3NF 是通过一种算法找到的,该算法详细说明了产生正确分解的所有步骤。这种算法在所有关于数据库的好书中都有描述。例如,在您的情况下,所谓的“综合”算法会产生以下分解:

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包含原始关系的键,这是保证无损连接属性所必需的。


推荐阅读