首先,我们先看下三范式的严格定义:
- 第一范式(1NF)
指在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。即实体中的某个属性有多个值时,必须拆分为不同的属性。在符合第一范式(1NF)表中的每个域值只能是实体的一个属性或一个属性的一部分。简而言之,第一范式就是无重复的域。 - 第二范式(2NF)
在1NF的基础上,非码属性必须完全依赖于候选码(在1NF基础上消除非主属性对主码的部分函数依赖) - 第三范式(3NF)
在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖
通俗理解:
- 第一范式:表中的字段不能再分割。是最小的单位。
- 第二范式:表中的非主键元素只能通过所有主键查出。例如,当主键为两个时,只有同时通过这两个主键才能查出某个属性,单独一个主键不能
- 第三范式:表中的非主键元素之间没有依赖关系。即不能通过一个得到另一个。