1. 第一范式
表里的一列就是一个值,只讲一件事,不可分。比如说联系方式,你写手机号,电话号,写两个就不行。
官话
:属性不可分,具有原子性
2. 第二范式
表不是有一个主键嘛,这个唯一标识符用于确定每一行,一个值确定一个行,这个属性称为码,它是主属性,码可能是由多个主属性组成的。
2NF就是确保其他的属性,都由这个码来确定,比如码是(学生学号, 课程号)
,有个属性学分
,学分只由课程号就能确定,那就叫部分依赖了,说明课程号
和学分
俩人就能自成一家,就不符合2NF了。这其实是确保一个表只说明一个事情。
官话
:实体具有惟一性,每个非主属性完全函数依赖于码。
3. 第三范式
一张表只能存同类的信息,也就是每列都与主键有直接关系,不存在传递的依赖,比如说爸爸->女儿,女儿->玩具,你可以认为给了一个特定的爸爸,就能确定某个玩具,因为这个玩具是他女儿的嘛。但是玩具就和爸爸是间接联系了。
官话
:非主属性不传递函数依赖于键码。