给定 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