关系型数据库-三范式与逆范式

范式

范式可以理解为是一张数据表的表结构所符合的某种设计标准的级别。

目前关系型数据库有六范式:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(巴斯-科德范式)、4NF(第四范式)、5NF(第五范式,又称完美范式)。

常用的是前三种:1NF,2NF 和 3NF,也就是“三范式”。

 

三范式

 

1NF

定义:符合1NF的关系中,每个字段都不可再分(原子性)

1NF是所有关系型数据库的最基本要求,保证了原子性,否则会造成数据冗余过大。

 

2NF

定义:符合2NF的关系中,每个实例都可以被唯一地区分(完全依赖)

为区分我们通常需要设计一个主键来实现,并且所有非主键字段都完全依赖于主键字段,不能存在部分依赖

 

3NF

定义:符合3NF的关系中,字段不能存在传递依赖(直接依赖)

当几个字段存在传递依赖关系的时候,也就说明该表中存在多层信息,通常我们会选择将一张表分成多张表,设置外键来满足3NF。

 

Tips

需要注意的是,范式表示的是级别,满足2NF的前提是满足1NF,满足3NF的前提是满足2NF。

 

逆范式

定义:通过增加冗余或重复的数据来提高数据库的查询性能。

逆范式划可以减少关联查询时,join表的次数。

 

posted @ 2020-09-03 11:27  昆梧  阅读(274)  评论(2)    收藏  举报