正如托马斯·康诺利 (Thomas Connolly) 和卡洛琳·贝格 (Carolyn Begg) 所著的《数据库解决方案第二版》一书中所说,第 180 页:
第三范式(3NF)
已存在于 1NF 和 2NF 中的表,以及
所有非主键列中的值都可以从中计算出来
仅主键列,没有其他列。
我见过很多场景,人们使用标识列,尽管他们的表中已经有主键列。记录也可以从标识列中计算出来,那么如果我们在表中使用自增标识列和主键,是不是违反了3NF?
UPDATE:如果不是这样,应该在另一个表中引用哪一列作为外键。主键列还是标识列?
不会。3NF 定义的“官方”措辞通常使用术语“主要属性”或“非主要属性”。如果您的书表明这意味着“主键的属性”,那么请将您的书扔进垃圾箱。这是错误的。 “主要属性”是指“属于以下属性的一部分的属性”ANY键的”和“非主要属性”意味着“不属于ANY因此,在关系模式中引入“自动增量属性”(以及所有使其成为键的适用 FD)不可能引入 3NF 违规,因为它不会引入非素数属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)