首页 > 解决方案 > 对如何从 2NF 到 3NF 感到困惑

问题描述

如标题所述。我读过很多文章试图解决这个问题,但我仍然不确定我是否做对了。我想我已经掌握了窍门,但想获得更多意见,以防我确实需要纠正我正在做的事情。示例如下。谢谢!

1NF Employee_ID,姓氏,名字,街道,城市,邮编,出生日期,年龄,学位要求

2NF Employee_ID、姓氏、名字、出生日期、年龄、获得的学位 Location_ID、街道、城市、邮编

3NF Employee_ID、姓氏、名字、年龄 出生日期、出生日期 Location_ID 街道邮政编码、城市

标签: database-normalization3nf

解决方案


总结:2NF 是每个非键属性都依赖于整个主键。所以想象一张CD。CD 有一个 ID 号,它是主键。艺术家的姓名、艺术家和性别取决于主键。所以这是正确的:

Table_CD:
CD_ID:    Name:    Artist:    Artist_Gender: 
1         CD1      Artist1    Male
2         CD2      Artist1    Male
3         CD3      Artist2    Female

这对于 2NF 是正确的,因为艺术家依赖于密钥 (CD_ID)。我们不检查传递依赖。

在 3NF 中,您只是说不能依赖于不是关键的东西。艺术家的性别取决于艺术家。不在 CD_ID 上,这是关键。因此它不是 3NF。

要使其成为 3NF,您必须分离出传递依赖。因此,艺术家的性别。因此:

Table_CD:
CD_ID:    Name:    Artist:
1         CD1      Artist1 
2         CD2      Artist1 
3         CD3      Artist2 

Table_Artist:
Name:          Gender:
Artist1        Male
Artist2        Female

推荐阅读