0

我试图理解规范化。我已经关注了几个 Youtube 教程,还观看了 Lynda 教程。我对规范化有所了解,但我仍然有几个问题。1)1NF用于避免重复组和重复值,但是当我将table1的数据转移到table2时,table1没有任何重复值,但table2有。为什么会这样?其次我对2NF不太了解,请告诉我1nf和2nf之间的区别?

我了解 3NF,我们用它来将非键值放在其他表中。

请告诉我,我所理解的是否正确?并解决我的问题谢谢。

4

1 回答 1

1

当您从 1NF 转换为 2NF 时,新表中的重复值应该只是原始表中的外键。看看Wikipedia 条目中的第一个示例。在 1NF 表中,Current Work Location与 each 重复Employee,即使它仅依赖于Employee,而不是整个{Employee Skill}主键。在 2NF 版本中,有一个Employee表,Current Work Location不会重复。在Employees Skills表中重复员工是因为他们可以拥有多种技能。

2NF 的好处是,当您更改仅依赖于键子集的值时(例如,员工更改位置),您只需更改一行。在 Wikipedia 示例的原始表中,如果员工更改位置,则必须更改具有该名称的所有员工技能行(并且如果您有其他类似非规范化的表,您也必须更新它们)。

于 2013-05-15T17:30:53.450 回答