1.最小函数依赖集
如果函数依赖集F满足下列条件,则称F为一个最小函数依赖集,亦称为极小依赖集或最小覆盖:
(1)每个函数依赖右边都只有一个属性
(2)每个函数依赖左边都没有多余的属性
(3)函数依赖集中不存在多余的函数依赖
求最小函数依赖集的方法
1、右边属性单一化;
2、消除部分函数依赖和传递函数依赖
2.第一范式(1NF):每一个分量必须是不可分的数据项(关系中每个属性都是不可再分的简单项)。
3.第二范式(2NF):若R满足第一范式,且每一个非主属性完全函数依赖于任何一个候选码。
推论:候选码为单属性或者全码,则属于2NF。
特点:不存在非主属性对候选码的部分函数依赖。
1NF→2NF:消除非主属性对候选码的部分函数依赖,把部分函数依赖投影出来单独成表。(一事一表)
4.第三范式(3NF):若R满足第二范式,且它的每一个非主属性都不传递依赖于任何候选码。
定义:关系模式R<U,F>属于第一范式,若R中不存在这样的码X,属性组Y及非主属性Z(Y不包含于Z)是的X→Y,Y→Z成立,Y/→X,则称R属于3NF。
定义理解:3NF的定义由1NF推过来的,不太好理解,判定的话用上上行2NF推导过来的就可以了,这个定义同时也可以证明,若R属于3NF,则R必属于2NF。
特点:每一个非主属性对候选码没有部分函数依赖,也没有传递函数依赖。
缺点:3NF只限制了非主属性对键的依赖关系,而没有限制主属性对键的依赖。
2NF→3NF:消除非主属性对键的传递函数依赖,把传递依赖投影出来单独成表。(一事一表)