博伊斯-科德范式 (BCNF)
BCNF 是第三范式 (3NF) 的扩展,比 3NF 稍强。
关系 R 属于 BCNF,如果 P -> Q 是平凡的函数依赖,P 是 R 的超键。
如果关系在 BCNF 中,则意味着基于函数依赖的冗余已被删除,但一些冗余仍然存在。
让我们看一个例子 -
地面Begin_TimeEnd_Time封装G0107:0009:00金色G0110:0012:00金色G0110:3011:00青铜G0210:1511:15银色G0208:0009:00银色上述关系在 1NF、2NF、3NF 中,但不在 BCNF 中。原因如下:
功能依赖 {Package->Ground}
它具有决定性属性 Package on which Ground取决于既不是候选键也不是候选键的超集。
封装地面金色G01银色G02青铜G01地面Begin_TimeEnd_TimeG0107:0009:00G0110:0012:00G0110:3011:00G0210:1511:15G0208:0009:00
现在以上表格采用 BCNF 格式。
表的候选键是 Package 和 Ground
的候选键表是 {Ground, Begin_Time} 和 {Ground, End_Time}
由于我们在关系。