数据库设计范式

119 阅读1分钟

数据库设计范式

什么是数据库范式

数据库范式,英文NF,代表Normal Form,是指数据库表设计一般遵循的原则。数据库范式基本的有第一到第三范式(1NF、2NF、3NF),还有BCNF和4NF以及5NF等。今天这边只整理一下基本的三个范式。

1NF

属性(这里属性对应数据表的列)的原子性。即属性不可分割为两个独立的子属性。

2NF

在满足1NF的前提下,属性完全依赖于主属性(主属性对应数据表的主键)。这里要理解一下完全依赖,指的是联合主键的情况下,其它属性不能依赖于主键属性的一部分。

3NF

在满足2NF的前提下,属性不能传递依赖于主属性。比如属性B依赖于主属性A,属性C依赖于属性B,那么C到A属于传递依赖,这种情况是不符合3NF的。

总结

数据库的三个基本范式可以作为数据表设计的参考原则,但是不排除特殊业务场景需要违背三个原则(这个场景我没见过,有机会会做一些记录),最终还是以实践为准。