那些数据库的书介绍的数据库范式,实在是晦涩难懂,我在这里给出一个通俗的描述:
1NF:一个table中的列是不可再分的(即列的原子性)
2NF:一个table中的行是可以唯一标示的,(即table中的行是不可以有重复的)
3NF:一个table中列不依赖以另一个table中的非主键的列,还是不通俗!巨寒!!
举个例子吧:有一个部门的table,我们叫它tbl_department, 它有这么几列 (dept_id (pk),dept_name,dept_memo...) 有一个员工table,我们叫它tbl_employee,在这个table中有一列dept_id(fk)描述关于部门的信息,若tbl_employee要满足3NF, 则在tbl_employee中就不得再有除dept_id列的其它有关部门信息的列!一般数据库的设计满足3NF即可!(个人觉得应该尽可能的满足3NF,一家之言^_^)
教材摘要:
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。