数据库范式通俗理解

写在前面

数据库范式一直是一种很难理解的,各种翻译版本讲解的方式都比较难理解,在这重新梳理下自己的理解范式

一、范式

NF (normal from) 规范的形式

二、1NF

要求我们表中的每个字段都必须是最基本的属性,即原子属性(不可再拆分)。

例如:学生表中,有学号,姓名,联系方式,这个联系方式就不满足1NF,因为联系方式还可以拆分为手机号,微信号,QQ号等。

三、2NF

要求表中所有的属性都依赖于主键。所有的字段只有因为主键才会变得有意义。

例如:学生表,姓名,性别不能确定是那个学生,反而我们能通过学号知道这个学生叫什么名字等。

四、3NF

要求所有非键属性不能存在传递依赖于主键。

名词解释:

  1. 传递依赖:属性可以通过一个中间属性得出其他属性。
  2. 例如:学生表中,学号可以通过学院ID推出学院名称。这样学院名称传递依赖于学号。

五、BCNF

要求所有属性不能存在传递依赖于主键。

名词解释:

  1. 首先跟3NF的区别,3NF是非键属性,BCNF是所有属性。
  2. 什么是键属性,主键可以由多个属性组成,其中的属性叫做键属性,其他的属性叫做非键属性。比如,学号和班级号一起作为主键,其中学号和班级号就是键属性(主属性)。

六、4NF

不存在多值依赖。

名词解释:

  1. 多值,关系中存在多个属性,且这几个属性不能直接确定其他值
  2. 必须通过其中几个一起确定一个值

最后

如果还是不理解,可以看这个博客

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