步骤
1.假如给出的依赖集F存在左右项均出现一项以上属性,那么先要将依赖集F转为最小函数依赖集(最小函数依赖集可看另一篇博客)
2.在保证F是最小函数依赖集的前提下,将关系模式转为3NF且保持函数依赖:①按左部相同原则分组;②将具有包含关系的依赖集进行合并;③判断最后的依赖集是否包含候选键,不包含的话为3NF且保持函数依赖
3.不包含的话为3NF且保持函数依赖,假如要转为3NF且无损分解且保持函数依赖,只要加上一个候选键即可(原先就有候选键的不用加,因为已经是3NF且无损分解且保持函数依赖)
4.将关系模式转为BCNF且保持函数依赖:从最小函数依赖集F中,选一项不为候选键的进行推理,以此类推,最后推到只剩一项为候选键时结束