这里我推荐一篇写的非常棒的博客,大家可以仔细看看,博主说的很细https://blog.csdn.net/zhouhuakang/article/details/51153309
小总结 :
- 1对于1-3NF都是为了处理非主属性与码之间的关系,调整数据库使得冗余降低,减少插入、更新的异常的发生;
- 对于BCNF-5NF的话,我们就不是考虑非主属性与码之间的关系了,而是考虑主属性与码之间的关系;
范式
- 1NF:不存在可以再分的列;只要是一个符合规则的关系,也就是一个二维表格,都符合第一范式;
- 第二范式:在第一范式的基础上,消除非主属性对码主属性的部分函数依赖即可;
- 第三范式:在第二范式的基础上,在消除非主属性对码主属性的传递函数依赖即可;
- BCNF: 考虑消除主属性与码主属性之间的部分函数依赖和 传递函数依赖,一般不常用,最高的话会导致表特别多!