第一范式:在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项。
通俗理解就是说数据库的列不可被分割。
第二范式: 在满足第一范式基础上,指每个表必须有一个(有且仅有一个)数据项作为关键字或主键(primary key),其他数据项与关键字或者主键一一对应,即其他数据项完全依赖于关键字或主键。
通俗理解就是说数据库主键唯一,不可由多个数据项组成主键。
第三范式:第三范式要求在满足第二范式的基础上,任何非主属性不依赖于其他非主属性,即在第二范式的基础上,消除了传递依赖。
通俗理解就是说数据库某一列不可同时被多个非主键列影响。
反范式设计:
日常工作中由于业务的复杂性,通常我们都不会完全遵循上述范式,为了查询性能,允许部分冗余数据,通过空间换时间.