BC正規形式 BoyceCodd范式英語BoyceCodd normal form缩写BCNF是数据库规范化的一种正规形式是在第三范式的基础上加上稍微更严格约束每个BCNF关系需满足第三范式BCNF去除了属性间的不必要的函数依赖 BCNF的定义是 如果对于关系模式R中存在的任意一个非平凡函数依赖XA都满足X是R的一个超键那么关系模式R就属于BCNF 对上述定义可以理解为平凡函数依赖关系是指如果属性集合X包含了属性集合A那么就一定有XA超键是指能够唯一确定表中各行的属性集合因此一个超键的最小化就是一个候選鍵BCNF是说如果一个属性集合X能不平凡地推导出另一个属性集合A而且X还不能唯一区分表的各行那么这个表中一定包含了一些冗余信息 BCNF与第三范式的不同之处在于第三范式中不允许非主属性被另一个非主属性决定但第三范式允许主属性被非主属性决定而在BCNF中任何属性包括非主属性和主属性都不能被非主属性所决定 任何一个BCNF必然满足 所有非主属性都完全函数依赖于每个候选键 所有主属性都完全函数依赖于每个不包含它的候选键 没有任何属性完全函数依赖于非候选键的任何一组属性