【发布时间】:2017-02-10 03:41:07
【问题描述】:
我正在查看与复合主键的关系的具体示例。基于它的功能依赖,我知道它在 1NF 中。在将其规范化为 3NF 时,我遇到了一个我还没有遇到过的情况。我遵循了所有部分依赖和传递依赖的步骤,但是规范化为 3NF 的最后一步要求您创建一个包含主键和依赖于它的所有非主属性的关系。
在我的具体情况下,我有主键,但没有完整的功能依赖项。我是否制作一个只包含我的复合主键的表?还是我根本不做?
我没有混淆复合键和主键。请参阅下面的评论,了解为什么我认为我的问题与那个不同
【问题讨论】:
-
我不会说我的问题与那个问题重复。我确实了解 PK 和 CK 之间的区别。当按照课堂上教给我的步骤标准化为 3NF 时,我首先为每个部分依赖和传递依赖创建一个关系模式。我采取的最后一步是创建一个模式,其中包含原始关系的 PK 以及完全依赖于该 PK 的任何属性
-
我使用 PK 与 CK 作为您帖子中许多误解的示例。例如,我们不通过 2NF 得到 3NF 或 BCNF,我们直接使用算法。找一个。您的帖子似乎不是指一个,而是先到 2NF,然后再到 3NF。但是为了达到 2NF,我们摆脱了对 CK 的所有部分依赖,因此只剩下完整的依赖。你的整个帖子就是这样奇怪。而且我没有因为PK vs CK而选择重复。我选择它作为答案。请编辑您的答案以说明您(认为您)遵循的算法并显示您的示例步骤。也谷歌'stackoverflow.com 3NF算法'。
标签: database database-design relational-database database-normalization database-theory