1.1 将关系模型R分解成2NF模式
例 R(ABCDE),其中 {A->B, A->C, CD->E},问是否满足2NF?
- 候选键:AD ,非主属性:BCE
判断是否存在非主属性对候选键的局部依赖
- 因为:AD->BC ,所以不属于2NF
- 分解成R1{A,B,C} R2 {A,D,E} R1.R2都属于2NF
1.2 将关系模式R分解成3NF模式集
例 R{S,P,D,M} ,其中 FD={SP->D, SD->M}
- 候选键:SP,非主属性:M
消除非主属性对候选键的传递依赖
- 因为 SP->D ,SD->M 所以不属于3NF
- 分解: R1(SPD),R2 (SDM) 则 R1.R2都属于3NF
1.3 将关系模式R无损分解成BCNF模式集
例R(UF)属于1NF,若对于任何X->Y 属于F,C或X->A 属于F
当Y不属于x或者A不属于x时,x必含有候选键,则称R属于BCNF范式。
例R(ABC)FD={AB->C, C->A} 求是否满足BCNF模式
- 候选键: AB
- 因不含候选键 C->A 所以不满足BCNF
- 无传递依赖, 所以属于3NF
1.4 将关系模式R无损分解且保持函数依赖地分解成3NF
例:R(ABCDE) R的最小依赖集{A->B, C->D},R中可得候选键为ACE。
可以得出最后模式为:p={AB,CD,ACE}