若关系模式R(U,F) 中不存在这样的码X, 属性组Y及非主属性Z(Z⊈Y) 使得X→Y,(Y↛X)Y→Z成立,则关系模式R∈3NF。
即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
例如:FIRST1∉3NF, 因为在分解后的关系模式FIRST1中有Sno → Status,Status → City, 存在着非主属性City传递依赖于码Sno。 若此时将FIRST1继续分解为:
FIRST11 (Sno,Sname,Status)∈3NF
FIRST12 (Status,City)∈3NF
通过上述分解,数据库模式FIRST转换为FIRST11(Sno,Sname,Status),FIRST12(Status, City),FIRST2(Sno,Pno,Qty)3个子模式。由于这3个子模式都达到了3NF, 因此称分解后的数据库模式达到了3NF。
可以证明,3NF的模式必是2NF的模式。产生冗余和异常的两个重要原因是部分依赖和传递依赖。因为3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,所以具有较好的性能。对于非3NF的1NF、2NF来说,其性能弱,一般不宜作为数据库模式,通常要将它们变换成为3NF或更高级别的范式,这种变换过程称为“关系模式的规范化处理”。