数据库三大范式是什么

109 阅读1分钟

笔记

第一范式:每一列不可以拆分,每一列需要有原子性。例如表中的地址需要拆分成省,市,详细地址

第二范式:在第一范式的基础上,表的每一列数据都完全依赖主键,不依赖主键的一部分,不然就需要将表拆分。

第三范式:在第二范式的基础上,表的每一列数据都只依赖主属性

比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)

这样一个表结构,就存在上述关系。 学号--> 所在院校 --> (院校地址,院校电话)

这样的表结构,我们应该拆开来,如下。

(学号,姓名,年龄,性别,所在院校)--(所在院校,院校地址,院校电话)

原文

第一范式:每个列都不可以再拆分。

第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。