十七.数据库设计的三范式
1.什么是数据库设计范式?
数据库表的设计依据,教你怎么进行数据库表的设计。
2.数据库设计范式共有?
3个。
第一范式:要求任何一张表必须有主键,没一个字段原子性不可再分。
第二范式:建立在第一范式的基础之上,要求所有的非主键字段完全依赖主键。不要产生部分依赖。
第三范式:建立在第二范式的基础之上,要求所有非主键字段直接依赖主键,不要产生传递依赖。
设计数据库表的时候,按照以上的范式进行,可以避免表中数据的荣誉,空间的浪费。
3.第一范式
最核心,最重要的范式,所有表的设计都需要满足。
必须有主键,并且每一个字段都是原子性不可再分。
| 学生编号 | 学生姓名 | 联系方式 |
| 1001 | 张三 | [email protected],135000000 |
| 1002 | 李四 | [email protected],136000000 |
| 1003 | 王五 | [email protected],137000000 |
以上学生表,满足第一范式吗?
不满足,第一:没有主键;第二:联系方式可以分为邮箱地址和电话。
| 学生编号(pk) | 学生姓名 | 邮箱地址 | 联系电话 |
| 1001 | 张三 | [email protected] | 135000000 |
| 1002 | 李四 | [email protected] | 136000000 |
| 1003 | 王五 | [email protected] | 137000000 |
4.第二范式
建立在第一范式的基础之上,要求所有非主键字段必须完全依赖主键,不要产生部分依赖。
这张表描述了学生和老师的关系。
| 学生编号 | 学生姓名 | 教师编号 | 教师姓名 |
| 1001 | 张三 | 001 | 王老师 |
| 1002 | 李四 | 002 | 赵老师 |
| 1003 | 王五 | 002 | 王老师 |