且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MySQL数据库——数据库设计三范式

更新时间:2021-11-30 11:15:43

概述

数据库范式就是数据库设计时需要满足的规范,只有满足这些规范才能保证数据库的冗余小、结构明确,这也直接影响着数据库性能的发挥。数据库开发人员需要遵守范式建立出科学规范的数据库结构。

目前对于关系型数据库有六种范式

  • 第一范式(1NF)
  • 第二范式(2NF)
  • 第三范式(3NF)
  • 巴斯-科德范式(BCNF)
  • 第四范式(4NF)
  • 第五范式(5NF,又称完美范式)

一般来说数据库只需要满足前三范式就可以了。


三大范式

第一范式(1NF)

1、每一列属性都是不可再分的属性值,确保每一列的原子性

2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。

简单的来说就是列不能在分割成其他列,一列中只放一种相关的信息。


第二范式(2NF)

第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

满足1NF,表必须要有主键,非主键字段完全依赖主键字段。


第三范式(3NF)

满足2NF,第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。