以R(A,B,C,D,E)为例,函数依赖A→B,BC→D,DE→A。
1.求候选键(码)
ACE,BCE,CDE
2.非键属性是否部分依赖于候选键,是则为1NF,否则进行下一步。
该题没有非键属性,所以进行下一步。
我们举另两个个例子,方便大家理解:
①R(A,B,C,D),函数依赖B→D,D→B,AB→C,可求出候选键为AB,AD,则非键属性为C,由于AB→C,所以C全部依赖于候选键AB。
②若候选键为AB,函数依赖B→C,则C部分依赖于候选键。
3.非键属性是否传递依赖于候选键,是则为2NF,否则进行下一步。
该题没有非键属性,所以进行下一步。
我们举个例子,方便大家理解:
R(A,B,C),函数依赖A→B,B→A,A→C,候选键A,B,非键属性C。C依赖于A,A依赖于B,符合传递,但不符合B非依赖于A。所以非键属性不传递依赖于候选键。
4.所有依赖项的左边是否全为候选键,是则为BCNF,否则为3NF。
所有依赖项的左边为A,BC,DE
候选键为ACE,BCE,CDE
显然所有依赖项的左边不全为候选键,所以该关系模式R为3NF。