对如何从2NF过渡到3NF感到困惑

时间:2019-02-21 17:48:59

标签: database-normalization 3nf

如标题所述。我读过许多文章试图绕过这个问题,但是仍然不确定我是否做对了。我想我已经掌握了要点,但想获得更多意见,以防万一我确实需要纠正自己在做什么。示例如下。 谢谢!

1NF雇员ID,姓氏,名字,街道,城市,邮编,D.O.B.,年龄,所需学位

2NF Employee_ID,姓氏,名字,D.O.B,年龄,获得的学位 Location_ID,街道,城市,邮政编码

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

1 个答案:

答案 0 :(得分:0)

总结: 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