欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

数据库设计那些事(数据库范式)

程序员文章站 2022-10-23 21:36:25
我所理解的数据库范式,就是设计数据库表的时候,一个表中应该有哪些字段,又有哪些字段可以提取出来。为什么又有范式的名字呢??简单的来说就是设计数据库表的时候,遵循的规范,目的就是减少数据库中的数据冗余,增加数据的一致性。 1.第一范式: 就是列不可再分, 2.第二范式: 要求数据库表中的每个实例或者行 ......

我所理解的数据库范式,就是设计数据库表的时候,一个表中应该有哪些字段,又有哪些字段可以提取出来。为什么又有范式的名字呢??简单的来说就是设计数据库表的时候,遵循的规范,目的就是减少数据库中的数据冗余,增加数据的一致性。

1.第一范式:

就是列不可再分,

数据库设计那些事(数据库范式)

2.第二范式:

要求数据库表中的每个实例或者行必须可以被唯一的区分。

数据库设计那些事(数据库范式)

 

 大家可以看看这个表设计存在这什么问题??
数据库设计那些事(数据库范式)

改成这样的表,才符合第二范式

数据库设计那些事(数据库范式)

3.第三范式:

不存在传递函数依赖关系

数据库设计那些事(数据库范式)

这个表存在这传递函数依赖,需要拆分才能符合第三范式。

数据库设计那些事(数据库范式)

 

 4.bc范式

在第三范式的基础上,数据库表中如果不存在任何字段对任意候选关键字段的传递函数依赖则符合bc范式,换句话也就是说如果是符合关键字,则复合关键字之间也不能存在函数的依赖关系。

 

数据库设计那些事(数据库范式)

分析数据库表

数据库设计那些事(数据库范式)

 

拆分过后的表就符合bc范式

数据库设计那些事(数据库范式)