数据库中设计一个好的标准化范式能大大减少数据冗余,增强数据的易操作性。
范式的演变:
第一范式:表中没有重复数据组 属性不可以再分,具有一个主键(主键组)
例如:
出现从重复的数据组,把它转换为第一范式如
这样就可以顺利的应用在数据库中了。
第二范式:在第一范式的基础上,必须消除局部依赖也就是说,非主键(非主属性)必须完全依赖主键(码)不能只依赖主键的一部分。
例如:x 除x本身所有属性全部函数依赖与x x就是这个表中的码,一个表中可以有多个码。(学号 和课程)就是码
(学号 课程)→成绩
(学号 )→姓名 (这就存在局部依赖)
想要符合第二范式化为:
第三范式:在第二范式的基础上,要求非主属性不依赖其他非主属性,也就是
不存在传递依赖。
通过学号可以推出姓名 系 系主任
但通过系 直接就可以退出系主任
也就是说非主属性与非主属性之间存在传递依赖
这样的表就符合第三范式