【问题标题】:Do we check Candidate Key in 1st Normal Form Table ONLY?我们是否只检查第一范式表中的候选键?
【发布时间】:2016-10-10 22:04:32
【问题描述】:

我在理解候选键方面有点困惑。我们是否只检查第一范式表中的候选键?

众所周知,候选键仅由一列或一组列组成,它们可以代替主键。如果有多个,则任何一个都可以作为主键。

因此,在第一范式中也可以有一个表格,即我们可以制作一个大表格并用值填充整个表格以删除重复组,因此我们在第一范式中制作与一张大表格相关的候选键。

那么第二范式呢?或第三范式。我们是在这些表格中找到表格的候选键还是在第一范式中仅一次找到?

如果是,那么在第 2 和第 3 范式中添加新的候选键之前,如果在第 1 范式表中找到的先前的候选键没有被删除,这意味着什么?

【问题讨论】:

  • 我已经编辑了您的问题以改进语言。我真的不确定你在第三段中的意思。你能把它编辑清楚吗?
  • 我想说的是,在第一范式中,我们可以建立许多关系来删除重复组,或者我们也可以只使用一个表并填充所有值以删除重复组。因此,我们在第一范式中制作与一张大表相关的候选键
  • 要删除一个重复组,其中该组不能包含任何元素,您必须添加一个新关系。此外,如果每个候选键都有一个重复组。请参阅下面的 PS。

标签: forms primary-key normalization database-normalization candidate-key


【解决方案1】:

当我们规范化为更高的范式时,我们将一个关系替换为连接回该关系的其他关系。每个新关系的属性都少于其来源的属性。并且每个可能满足较少的功能依赖关系,这就是我们确定其候选键的方式。由于每个关系都有自己的属性和满足的函数依赖关系,因此它可能有不同的候选键。

我们分解的关系的候选键不再重要,因为我们不再使用它。我们不会“删除”候选键。 关系的候选键取决于它的属性和它满足的函数依赖关系。

PS 有时非关系表“规范化”为多个 1NF 关系。有时,通过将属性替换为在某种意义上“更简单”的属性来“规范化”与 1NF 的关系会产生多重关系。

PPS 规范化不一定涉及在多个范式之间移动。

【讨论】:

  • 所以简单来说就是每个表格,无论是第一范式表格还是任何其他表格,都有自己的候选键?我假设候选键仅在第一范式中找到一次。
  • 是的,每个关系都有自己的候选键。我在回答中用粗体表示。 (请参阅我的消息中的其他更改。)
猜你喜欢
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多