三大范式:
1.第一范式:每一列都是不可分割的原子数据项
|
学生信息 |
科目 |
成绩 |
|
张三,法律系,男 |
法律学 |
70 |
|
小花,经济系,女 |
经济学 |
75 |
|
李四,法律系,男 |
法律学 |
65 |
学生信息部分还可以继续被拆分成姓名,专业,性别三个字段。所以不符合第一范式要求。
2.第二范式:在满足第一范式的基础上。所有字段都应该完全依赖于主键
该表的主键为学号+课程名称。要查询分数这个字段,需要提供完全的主键,学号和课程名称缺一不可,才能查得到对应的分数(分数字段完全依赖于主键)。而对于姓名,系名,系主任这几个字段,只需要提供学号字段就可以查到该学号对应学生的姓名,所在系以及所在系的系主任名字了,不需要主键的另外一个字段课程名称(姓名,系名,系主任这三个字段只是部分依赖于主键)。所以不符合第二范式中的要求。
3.第三范式:在满足第二范式的基础上。所有字段都应该只完全依赖于主键,而不能对除主键外的字段有完全依赖关系。
我们通过主键字段学号可以查询到这个学号对应学生所在系的系主任的名字(系主任字段完全依赖于主键字段),而通过非主键字段系名,我们也可以查询到该系的系主任的名字(系主任字段也完全依赖于一个非主键字段系名)。所以不符合第三范式的要求。