数据库范式
- 1. 数据库范式
- 1.1 第一范式(1NF)
- 1.2 第二范式(2NF)
- 1.3 第三范式(3NF)
- 1.4 巴斯·科德范式(BCNF)
- 1.5 范式的优缺点
- 1.5.1 优点
- 1.5.2 缺点
1. 数据库范式
- 在关系型数据库中,关于数据表设计的基本原则、规则就称为范式;
- 关系型数据库有六种常见范式,按照范式级别,从低到高分别是:第一范式(1NF)、第二范式
(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式);
1.1 第一范式(1NF)
- 第一范式要求数据表中每个字段的值必须具有原子性,也就是不可再分;
- 属性的原子性具有主观性,需要根据场景应用具体分析;
1.2 第二范式(2NF)
- 在第一范式基础上,要求:1)非主键字段必须完整依赖主键字段,而不是部分依赖;2)数据表记录可唯一标识;
- 第二范式说明每个数据表都是一个独立的对象,有自己的独立含义;
1.3 第三范式(3NF)
- 在第二范式基础上,要求:数据表中的所有非主键字段必须与主键字段直接相关,而不能与其他非主键字段存在依赖关系;
- 所有非主键字段之间互相独立;
1.4 巴斯·科德范式(BCNF)
- 简称巴斯范式,是改进的第三范式;
- 在第三范式基础上,要求:数据表只能有一个候选键或每个候选键都是单属性,进一步降低数据冗余性;
1.5 范式的优缺点
1.5.1 优点
- 降低数据冗余;
- 在性能、扩展性和数据完整性取得较好平衡;
1.5.2 缺点
- 数据冗余度越低,数据表数量越多;
- 查询时涉及联合查询,且会造成部分索引无效,导致数据查询效率降低;