数据库三大范式
什么是范式
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。
目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。
来源:百度百科
如何理解范式
在网上找了很多关于范式的解释以及详解,说都都太专业了,都是用专有名词来解释什么是范式,范式的等级是如何划分
而且要先去了解关于范式的专有名词,什么主属性,非主属性,主键,候选码,依赖等等,原本范式就有点不好理解
再加上这些专有名词来来回回的使用,很容易把人绕进去,而且举的例子相对于初学者来说还是过于复杂
下面将会用最通俗易懂的方式,来帮助你理解范式
第一范式
列不能再分
红色表示主键
这张表就不满足第一范式,因为地址可以再分
这是符合第一范式的
第二范式
- 首先要符合第一范式
- 表必须有主键
- 非主键列不能只依赖于主键的一部分
这是不符合第二范式的(红色代表主键)---商品名称依赖了主键的一部分商品ID
订单表
这是符合第二范式的
订单表
商品表
第三范式
- 首先满足第二范式
- 非主键列必须直接依赖于主键,不能存在传递依赖
这是不符合第一范式的(红色代表主键)——学校描述没有直接依赖于主键,而是直接依赖于学校,学校直接依赖于主键,所以存在传递依赖
学生表
这是符合第一范式的
学生表
学校表
通过以上案例,可以很好的帮助你去理解三大范式,有一个好的入门,再想去具体的往深理解,将会事半功倍