第一范式(1NF):表中的每一列都是不可分割的原子项。
例:员工(工程号,工程名称,职工号,姓名,职务,小时工资率,工时)
第二范式(2NF):在1NF的基础上,第二范式需要保证表中的每一列都与主键有关,并且不是只与主键的某一部分有关。(当主键数量>1)
这张表中描述了多件事情,不符合第二范式。应改为:
工程(工程号,工程名称)
职工(职工号,姓名,职务,小时工资率)
工时(工程号,职工号,工时)
第三范式(3NF):在2NF的基础上,任何非主属性不依赖于其他非主属性,即消除传递依赖。第三范式需要保证表中的每一列数据都和主键是直接关系,而不是间接关系。
工资率依赖于职务,不直接依赖于职工号。当职务改变时,工资率也要改变。所以将第二范式改为第三范式:
工程(工程号,工程名称
职工(职工号,姓名,职务)
职务(职务,小时工资率)
工时(工程号,职工号,工时)