写在前面
数据库范式一直是一种很难理解的,各种翻译版本讲解的方式都比较难理解,在这重新梳理下自己的理解范式
一、范式
NF (normal from) 规范的形式
二、1NF
要求我们表中的每个字段都必须是最基本的属性,即原子属性(不可再拆分)。
例如:学生表中,有学号,姓名,联系方式,这个联系方式就不满足1NF,因为联系方式还可以拆分为手机号,微信号,QQ号等。
三、2NF
要求表中所有的属性都依赖于主键。所有的字段只有因为主键才会变得有意义。
例如:学生表,姓名,性别不能确定是那个学生,反而我们能通过学号知道这个学生叫什么名字等。
四、3NF
要求所有非键属性不能存在传递依赖于主键。
名词解释:
传递依赖:属性可以通过一个中间属性得出其他属性。例如:学生表中,学号可以通过学院ID推出学院名称。这样学院名称传递依赖于学号。
五、BCNF
要求所有属性不能存在传递依赖于主键。
名词解释:
首先跟3NF的区别,3NF是非键属性,BCNF是所有属性。什么是键属性,主键可以由多个属性组成,其中的属性叫做键属性,其他的属性叫做非键属性。比如,学号和班级号一起作为主键,其中学号和班级号就是键属性(主属性)。
六、4NF
不存在多值依赖。
名词解释:
多值,关系中存在多个属性,且这几个属性不能直接确定其他值必须通过其中几个一起确定一个值
最后
如果还是不理解,可以看这个博客
如果觉得《数据库范式通俗理解》对你有帮助,请点赞、收藏,并留下你的观点哦!