关系数据库设计,遵从不同的规范要求,不同的规范要求即称为不同的范式,各范式呈第次规范,越高的范式数据库冗余越小。
目前数据库范式有六种:
- 第一范式(1NF)
- 第二范式(2NF)
- 第三范式(3NF)
- 巴斯-科德范式(BCNF)
- 第四范式(4NF)
- 第五范式(5NF,又称完美范式)
通常只需要满足第三范式即可。
第一范式(1NF):要求数据库表的列具有原子性,即是不可分割的原子数据项,而不是集合、数组、记录等非原子数据项。
即使实体中某个属性有多个值時,必须拆分为不同的属性。总之,第一范式就是无重复的域。
当然,是否必须满足1NF的最低要求,主要依赖与所建立设计的关系模型。
第二范式(2NF):在1NF基础上,要求实体的属性完全依赖于主键。即主键作为实体的唯一标识,根据主键可以提取到具体实体的所有属性值。
第三范式(3NF):在1NF基础上,任何非主属性不依赖于其他非主属性(主键)。