数据库设计之第一范式、第二范式、第三范式

一、第一范式

理论:
1.第一范式的目标是确保每列的原子性。
2.如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(1NF:First Normal Form)。

举例说明:

不满足第一范式:
在这里插入图片描述
满足第一范式:
在这里插入图片描述

二、第二范式

理论:
1.如果一个关系满足1NF,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(2NF:Second Normal Form)。
2.第二范式要求每个表只描述一件事情(所有单关键字段的表都符合第二范式,复合主键也符合第二范式)。
3.表中有表不满足第二范式。

举例说明:

不满足第二范式:
在这里插入图片描述
满足第二范式(把上面的订单表分为订单表和产品表):
在这里插入图片描述
在这里插入图片描述

三、第三范式

理论:
1.如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF:Third Normal Form)。

举例说明:

不满足第三范式:
在这里插入图片描述
满足第三范式(消除传递依赖):
(传递依赖)说明:知道顾客编号就知道顾客姓名,所以顾客姓名冗余。
在这里插入图片描述
说明: 用E-R图完成的表直接满足三个范式。