数据库三大范式

什么是范式

设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。

来源:百度百科

如何理解范式

在网上找了很多关于范式的解释以及详解,说都都太专业了,都是用专有名词来解释什么是范式,范式的等级是如何划分

而且要先去了解关于范式的专有名词,什么主属性,非主属性,主键,候选码,依赖等等,原本范式就有点不好理解

再加上这些专有名词来来回回的使用,很容易把人绕进去,而且举的例子相对于初学者来说还是过于复杂

下面将会用最通俗易懂的方式,来帮助你理解范式

第一范式

列不能再分

红色表示主键

这张表就不满足第一范式,因为地址可以再分

 这是符合第一范式的

第二范式

  • 首先要符合第一范式
  • 表必须有主键
  • 非主键列不能只依赖于主键的一部分 

这是不符合第二范式的(红色代表主键)---商品名称依赖了主键的一部分商品ID

订单表

 这是符合第二范式的

订单表

商品表

第三范式

  • 首先满足第二范式
  • 非主键列必须直接依赖于主键,不能存在传递依赖

这是不符合第一范式的(红色代表主键)——学校描述没有直接依赖于主键,而是直接依赖于学校,学校直接依赖于主键,所以存在传递依赖

学生表

这是符合第一范式的

学生表

学校表

通过以上案例,可以很好的帮助你去理解三大范式,有一个好的入门,再想去具体的往深理解,将会事半功倍

原文链接

原文地址:https://www.cnblogs.com/masterhxh/p/12901154.html