一、数据库的三范式

第一范式(1NF)

数据表的每一列都要保持保持它的原子特性,也就是列不能再分割。

第二范式(2NF)

概率:属性必须完全依赖于主键。
下面这张表不符合二范式的要求
image.png
缺点:

  • 表中的第一行数据都存储了系名、系主任,数据的冗余太大。
  • 如果有一个新的系还没有开始找到学生,那么不能将该系的信息添加到数据表中,从数据表中看不到该系的存在
  • 如果将某个系的学生信息全部删除,那么这个系在数据表里也就不存在了,但这个系还存在。
  • 如果某个人要转系,那么为了保证数据库中数据的一致性,需要修改三条记录中系与系主任的数据。

第三范式(3NF)

所有的非主属性不能依赖于其他的非主属性
传递函数依赖
设x,y,z是关系R中互不相同的属性集合。存在x->Y(Y!->X),Y->Z,则称Z传递函数依赖于X
在改进后的学生表中:
主属性:学号
非主属性:姓名、系名、系主任