数据库的三大范式(较好理解版)

第一范式(1NF):数据表中的每一列(每个字段)必须是不可拆分的最小单元,也就是确保每一列的原子性

第二范式(2NF):满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情;

例如:订单表只描述订单相关的信息,所以所有字段都必须与订单id相关

产品表只描述产品相关的信息,所以所有字段都必须与产品id相 关;

因此不能在一张表中同时出现订单信息与产品信息;如下图所示(1张表拆成2张表)

 第三范式(3NF):必须先满足第二范式(2NF),要求:表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键);

【如何更好的区分三大范式】

第 一范式和第二范式在于有没有分出两张表,第二范式是说一张表中包含了多种不同的实体属性,那么要必须分成多张表, 第三范式是要求已经分成了多张表,那么一张表中只能有另一张表中的id(主键),而不能有其他的任何信息(其他的信息一律用主键在另一表查询)。

总结:

第1范式:每个表中都有1列,并且该列是不可拆分的最小单元

第2范式:1张表只描述一件事情

第3范式:用外键做表的关联

一个数据库设计如果符合第二范式,一定也符合第一范式。如果符合第三范式,一定也符合第二范式

原文地址:https://www.cnblogs.com/zw1sh/p/10181429.html