数据库设计三大范式

前言

今天接触到数据库设计范式的概念,看过很多大神的讲解后,我来通俗易懂的概括一下这数据库设计的三大范式具体都是什么吧。

1.1 第一范式
1.2 第二范式
1.3 第三范式
总结

1.1 第一范式

第一范式简单的来说,就是在设计表结构时,每一列的所包含的属性都不再可分。
如果满足了这一点,那我们就可以说该表满足了数据库设计的第一范式。
让我们具体举一个例子。例如我们需要创建一个表来存放人员信息。

但是如果我们此时需要获取该人员所在省份,这时就需要拆分地址,此时就不再满足数据库设计的第一范式,所以我们需要在建表时就做拆分。
数据库设计三大范式_第1张图片
且如此一来,提高了数据库的性能。

1.2 第二范式

在满足了第一范式的前提下,确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
一个表只描述一件事情。
数据库设计三大范式_第2张图片

1.3 第三范式

必须先满足第二范式,数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。
实质上是在第二范式的基础上加外键,一张表中只能有另一张表中的主键,而不能有其他的任何信息(其他的信息一律用主键在另一表查询)。
数据库设计三大范式_第3张图片
以上图片一部分转载自链接

总结

注意: 三范式在可以不满足在实际应用中!!!
以上就是数据库设计三大范式的概念了,不足的地方欢迎指出。

你可能感兴趣的:(数据库)