1.第一范式(1NF)
定义:如果关系R的每一个属性值是不可再分的最小数据单位,则称R为第一范式(1NF)。第一范式是一个不含重复组的关系,也不存在嵌套结构。第一范式中是既存在函数依赖,又存在部分函数依赖和传递依赖。
2.第二范式(2NF)
定义:若R€1NF,且R中的每个非主属性都完全依赖于R的任一候选码,则R€2NF。第二范式中存在着非主属性对候选码的传递依赖。
3.第三范式
定义:如果关系R中的任何一个非主属性不传递依赖于它的任何一个候选码,则R€3NF。
4.BCNF
一般来说第三范式的关系大多数能解决插入和删除异常问题,但也存在一些例外。为了解决3NF有时出现的插入和删除异常等问题,提出了3NF的改进形式BCNF。
定义:关系模式R<U,F>€1NF.若函数依赖集合F中的所有函数依赖X->Y(Y¢X)的左部都包含R任一候选码,则R€BCNF。
5.函数完全依赖
定义:在R(U)中,如果X->Y,并且对X的任何一个真子集X`,都有X′不能推导出Y,则称Y完全函数依赖于X。
例如:C#→SNAME,S#→CLASS,这样的都是完全函数依赖。
对左部由多属性组合而成的函数依赖,就要看其真子集能否决定右部属性。
例如:(C#,S#)→GRADE是一个完全函数依赖,因为S#→GRADE,C#≠>GRADE,
(C#,S#)→SNAME是部分函数依赖,因为S#→SNAME,C#→SNAME。