我们是否仅检查第一范式 Table 中的候选密钥?
Do we check Candidate Key in 1st Normal Form Table ONLY?
我对候选键的理解有点困惑。我们只检查第一范式 table 中的候选键吗?
众所周知,候选键仅由一列或一组列组成,可以代替主键。如果有多个,则任何一个都可以作为主键。
所以,在第一范式中也可以有一个 table 即我们可以做一个大 table 并用值填充整个 table 以删除重复组所以我们使与第一范式中的一个大table相关的候选键。
那第二范式呢?或第三范式。我们是在这些形式中找到 table 的候选键,还是在第一范式中只找到 一次 ?
如果是,那么如果在第 2 和第 3 范式中添加新的候选键之前未删除在第 1 范式 table 中找到的先前候选键,这意味着什么?
当我们规范化为更高的范式时,我们用连接回该关系的其他关系替换关系。每个新关系的属性都比它来自的属性少。并且每个可能满足较少的功能依赖性,这就是我们确定其候选键的方式。由于每个关系都有自己的属性和满足的函数依赖,它可能有不同的候选键。
我们分解的关系的候选键不再重要,因为我们不再使用它了。我们没有 "remove" 候选键。 关系的候选键取决于它的属性和它满足的函数依赖。
有时一个非关系 table "normalizes" 到多个 1NF 关系。有时 "normalizing" 与 1NF 的关系通过用某种意义上认为的属性替换属性 "simpler" 产生多重关系。
规范化不一定涉及通过多个范式。
我对候选键的理解有点困惑。我们只检查第一范式 table 中的候选键吗?
众所周知,候选键仅由一列或一组列组成,可以代替主键。如果有多个,则任何一个都可以作为主键。
所以,在第一范式中也可以有一个 table 即我们可以做一个大 table 并用值填充整个 table 以删除重复组所以我们使与第一范式中的一个大table相关的候选键。
那第二范式呢?或第三范式。我们是在这些形式中找到 table 的候选键,还是在第一范式中只找到 一次 ?
如果是,那么如果在第 2 和第 3 范式中添加新的候选键之前未删除在第 1 范式 table 中找到的先前候选键,这意味着什么?
当我们规范化为更高的范式时,我们用连接回该关系的其他关系替换关系。每个新关系的属性都比它来自的属性少。并且每个可能满足较少的功能依赖性,这就是我们确定其候选键的方式。由于每个关系都有自己的属性和满足的函数依赖,它可能有不同的候选键。
我们分解的关系的候选键不再重要,因为我们不再使用它了。我们没有 "remove" 候选键。 关系的候选键取决于它的属性和它满足的函数依赖。