第三范式
20.3.1. 定义:建立在第二范式基础之上,要求非主键字段不能产生
传递依赖亍主键字段;
示例一:学生信息表
学生编号(PK) 学生姓名 班级编号 班级名称
1001 张三
01 一年一班
1002 李四
02 一年二班
1003 王五
03 一年三班
1004 六
03 一年三班
综合分析:
1、从表中看出,班级名称字段存在冗余,因为班级名称字段没有直接依赖于主键
2、班级名称字段依赖亍班级编号,班级编号依赖于学生编号,这就是传递依赖,
解决方案:
1、 将冗余字段单独拿出来建立表
2、 如下表所示:学生信息表中班级编号设为外键FK
学生信息表:
学生编号(PK) 学生姓名 班级编号(FK)
1001 张三
01
1002 李四
02
1003 王五
03
1004 六
03
班级信息表:
班级编号(PK) 班级名称
01 一年一班
02 一年二班
03 一年三班
3、 结论:典型的一对多
以上设计是一种典型的一对多的设计,一存储在一张表中,多存储在一张表中,在多的那张表中
添加外键指向一的一方的主键