2NF 和 3NF 怎么做

qxc*_*qxc 5 normalization

给定 E(ABCDE) ABC 是候选键

归一化为 2NF 和 3NF

就 2NF 而言,解决方案非常简单:

E1(BD), E2(DE), E3(ABC) 
Run Code Online (Sandbox Code Playgroud)

但是关于 3NF,如果我说什么都不应该做,我认为我是错的。

也许3NF schema是:

E1(ABC), E2(BD) 
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

非常感谢


所以根据@OliverAsmus 3NF 结果应该是:

E1(ABC), E2(BD) 
Run Code Online (Sandbox Code Playgroud)

但是,如果我写的是正确的,那么我认为 3NF(在这种特殊情况下)没有保留所有属性是否正确?E 不依赖于任何键,所以我摆脱了它......

那是对的吗?谢谢

小智 3

你走在正确的轨道上。仔细查看 2NF 结果 - 这就是 3NF 结果的来源。您的下一个任务是获取 2NF 结果并消除不依赖于密钥的字段。

关于如何以及为何执行此操作的来源有很多,但我最喜欢 Microsoft 的解释:

http://support.microsoft.com/kb/283878