关系型数据库的设计遵循六大范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
第一范式 1NF
1NF,即数据库表的每一个数据列都是不可分割的原子数据项。
第二范式 2NF
2NF要求在 1NF 的基础上,非码属性必须完全依赖于候选码。也就是必须有能唯一标识一行数据的主键字段。
第三范式 3NF
3NF 要求在满足 2NF 的基础上,任何非主属性不依赖于其他非主属性。也就是不允许有冗余字段。例如:存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。
巴斯科德范式 BCNF
BCNF 要求在满足 3NF 的基础上,任何非主属性不能对主键子集产生依赖。