1.第一范式(1NF)
表中各字段不可再分
eg:学生信息表
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/d530122d9f786679c278ac3a2a7540bd.png)
在此表中,可以看到联系方式一列又分为qq,微信,不符合第一范式
解决:如下图
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/439a46549ddd6e34dc4255eaa9bb9de0.png)
2.第二范式(2NF)
不存在非关键字段对关键字段的部分依赖
eg:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/580ffcb1a1a37e8b51dae702b2a984fb.png)
这张表中,学号和课程编号为联合主键,即为关键字段,其他为非关键字段,通过学号,可以查出姓名,年龄,,通过课程编号,可以查出课程名称,存在非关键字段对关键字段的部分依赖,不符合第二范式
解决:将各主键单独列出来,再将组合的主键列出来(三张表)
1."image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/16a33527e8c7e27e12539ad50a577853.png)
2."image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/2a0862fee5c3118d0b752fc3b85db644.png)
3."image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/02eef63feabf9214350b35e6c361d1bb.png)
3.第三范式(3NF)
不存在非关键字段的传递依赖
eg:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/25d09bd7dd963a07d0d5cb06d3e6836e.png)
此表中学号为主键,学号可以确定这个学生在哪个学院,学院编号依赖PK,学院编号有唯一确定学院名称,存在传递依赖,所以不符合第三范式
解决:将关键字段和被依赖的非关键字段分别作为主键,依次检查所有的非关键字段的依赖关系
1."image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/9bd3637fe3de392ce7ab0f94cf982636.png)
2."image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241006/06174b1bfd275b36c4b369cf81fc57d3.png)