极小函数依赖集
对关系模式R(U,R),如果函数依赖集F满足下列条件,则称F为R的一个 极小函数依赖集(或称为最小依赖集、最小覆盖),记为F
条件:
- F中每个函数依赖的右部仅含有一个属性
- F中每个函数依赖的左部不存在多余的属性,即不存在这样的函数依赖XA,X有真子集Z使得F与等价
- F中不存在多余的函数依赖即不存在这样的函数依赖,使得F与等价
计算极小函数依赖集的算法:
- 使F中的每个函数依赖的右部只有一个属性
- 去掉各函数依赖左部多余的属性
- 去掉多余的函数依赖
范式
第一范式
不包含非原子项属性的关系是第一范式(1NF)的关系
第二范式
如果R(U,F)1FN,并且R中的每个非主函数属性都完全依赖于主键则R(U,F)2FN。
非第二范式分解为第二范式:
- 用组成主键的属性集合的每一个子集作为主键构成一个关系模式
- 将依赖于这些主键的属性放置到相应的关系模式中
- 最后去掉只由主键的子集构成的关系模式
第三范式
如果R(U,F)2FN,并且所有的非主属性都不依赖于主键,则R(U,F)3F。
当关系模式中存在传递函数依赖时,这个关系仍然有操作异常,因此,还需要对其进一步分解,使其成为第三范式关系方法如下:
- 对于不是候选键的每个决定因子,从关系模式中删去依赖它的所有属性
- 新建一个关系模式,新关系模式包含原关系模式中所有依赖于该决定因子的属性
- 将决定因子作为新关系模式的主键