第一范式:要求有主键,并且要求每一个字段原子性不可再分
第二范式:要求所有非主键字段完全依赖主键,不能产生部分依赖
第三范式:所有非主键字段和主键字段之间不能产生传递依赖
举例:
- 【 学生编号,学生姓名,联系方式 】 中,联系方式就可以再次拆分为 【 邮箱,电话号码 】,不符合第一范式的要求,可以将其拆分为【学生编号,学生姓名,邮箱地址,电话号码】
- 第二范式是建立在第一范式的基础之上的,【学生编号,教师编号,学生姓名,教师姓名】,若确定【学生编号,教师编号】为主键的话,那么就会存在【学生姓名】或者【教师姓名】部分依赖主键的情况,不符合第二范式的要求,可以将其拆分为【学生编号,学生姓名】,【教师编号,教师姓名】,【学生编号,教师编号】这三张表来解决以上的问题
- 第三范式是建立在第二范式的基础之上的,如【学生编号,学生姓名,班级编号,班级名称】,其中,【班级名称】依赖于【班级编号】,而【班级编号】依赖于【学生编号】,这就是传递依赖,解决的办法就是将冗余的字段单独拿出来,【学生编号,学生姓名,班级编号】,【班级编号,班级名称】