1、第一范式
一句话:表中无表
其中 联系方式 这个属性还能继续被分割,所以它不满足第一范式。
2、第二范式
一句话,不能存在部分依赖
其中学号,课程号这两个属性是主键,这两个属性组成一个整体。
(学号,课程号)-------> 成绩
但是:(学号)-------> 姓名 这里就存在部分依赖了。不符合第二范式
弊端
比如说我们现在要新增一个学生,该学生还没有选课,因此就不能新增。课程号是关键码,又必须添加,产生了冲突。这是因为知道学号,姓名就确定一个学生,并不需要课程号。
3、第三范式
一句话:不能存在对主属性的传递依赖
(学号,课程号)------> 教师
教师 -----> 教师职称
导致:(学号,课程号)-----> 教师职称,这里就存在传递依赖,不符合第三范式。
弊端
老师职称改变了,要修改很多条数据。
没人选某个老师的课时候,该老师的职称记录就会被全部删除。
新来老师还没有定教哪门课,教师职称不知该保存到什么地方。
4、BC范式
一句话:不能存在主键决定主键
符合第三范式:
(仓库号,存储物品号) -------> (管理员号,数量)
(管理员号,存储物品号) -------> (仓库号,数量)
不符合BC范式:
(仓库号) -------> (管理员号)
(管理员号) -------> (仓库号)
弊端
仓库号和管理员号的映射关系变了,要改很多记录。