- 第一范式
数据表的每一列都要保持它的原子特性,也就是列不能再被分割。
这张表就不符合第一范式规定的原子性,不符合关系型数据库的基本要求,在关系型数据库中创建这个表的操作就不能成功。不得不将数据表设计为如下形式
根据第一范式修改
第二范式
属性必须完全依赖于主键,消除部分依赖。下表问题在哪?
分数依赖:学号、课名(相当于联合主键) 姓名依赖:学号(主键)
- 表中的第一行数据都存储了系名、系主任,数据的冗余太大 如果有一个新的系还没有开始找到学生,那么不能讲该系的信息添加到数据表中去,从数据表中看不到该系的存在 如果将某个系的学生信息全部删除,那么这个系在数据表里也就不存在了,但这个系还存在。 如果某个人要转系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据
修改
第三范式
消除传递依赖,上表问题?
修改