数据库三大范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)
第一范式(1NF):要求数据库表的每一列都是不可分割的原子数据项。
在上面的表中,“家庭信息”和“学校信息”列均不满足原子性的要求,故不满足第一范式,调整如下:
可见,调整后的每一列都是不可再分的,因此满足第一范式(1NF);
第二范式:第二范式需要确保数据库表中的每一列都和主键相关
如果一个关系满足第一范式,并且除了主键以外,其他主键都全部依赖该主键则满足第二范式。
判断的方法是:
第一步:找出数据表中所有的码。
第二步:根据第一步所得到的码,找出所有的主属性。
第三步:数据表中,除去所有的主属性,剩下的就都是非主属性了。
第四步:查看是否存在非主属性对码的部分函数依赖。
码:设 K 为某表中的一个属性或属性组,若除 K 之外的所有属性都完全函数依赖于 K,称 K 为候选码,简称为码。通常理解为:假如当 K 确定的情况下,该表除 K 之外的所有属性的值也就随之确定,那么 K 就是码。一张表中可以有超过一个码。