为满足不同数据库设计要求,减少数据冗余而指定设计规范,可称为数据库范式
数据库范式呈递次规范,即高阶范式必然满足低阶范式
越高的数据库范式意味着越严格的设计要求,同时数据冗余越小
第一范式(1NF):
数据库表的每一列都是不可分割的基本数据项。同一列中不能有多个值,
即实体中的某个属性不能有多个值或者不能有重复属性(列的原子性)
原子性,字段不可分,否则就不是关系数据库
第二范式(2NF):
要求实体属性完全依赖于主关键字。指不能存在仅依赖主关键字一部分的属性,
如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,
新实体与原实体之间是一对多关系
主要针对含有联合主键或者数据表中包含多对多关系的情况。
数据库设计要求将其分为2个或以上1对多的关系
唯一性,一个表只说明一个事物
第三范式(3NF):
在1NF基础上,任何非主属性不依赖于其他非主属性(在2NF基础上消除传递依赖)
要求一个关系中不包含在其他关系已包含非主关键字信息
每列都与主键有直接关系,不存在传递依赖
巴斯-科德范式(BCNF):
在1NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)