[数据库]数据库范式
什么是数据库范式? 关系数据库的设计规范。不同的规范要求被称为不同的范式,越高的范式数据库冗余越小。 作用? 减少数据库中数据冗余的过程; 数据库范式 1、第一范式(1NF): 在关系模式R中,当且仅当所有属性只包含原子值,即每个分量都是不可再分的数据项,则称R满足1NF。 例如表所示的教师职称情况关系就不满足1NF。原因在于,该关系模式中的“高级职称人数”不是一个原子属性,若将其拆分为“教授”和“副教授”两个属性,则就满足1NF。 系名称 高级职称人数 教授 副教授 计算机系 1 2 电子系 3 4 2、第二范式(2NF): 满足1NF的关系模式会有许多重复值,修改数据可能引起疏漏。为了消除这种数据冗余和避免更新数据的遗漏,需要使用更加规范的2NF。当且仅当关系模式满足1NF,且每个非键属性(既不属于任何候选键的属性,也称为非主属性)完全依赖于候选键时,则称R满足2NF。 例如,有选课关系模式SC(Sno,Cno,Grade,Credit),其中(Sno,Cno)->Grade,Cno->Credit。因此,SC的候选键为(Sno,Cno)。这样Cno->Credit就构成了Credit对候选键(Sno,Cno)的部分函数依赖。因此,SC不满足2NF。若要将SC转化为2NF,可以将它拆分为SC1(Sno,Cno,Grade)和SC2(Cno,Grade)。 3、第三范式(3NF)