
BCNF 是第三范式 (3NF) 的扩展,比 3NF 稍强。
关系 R 属于 BCNF,如果 P -> Q 是平凡的函数依赖,P 是 R 的超键。
如果关系在 BCNF 中,则意味着基于函数依赖的冗余已被删除,但一些冗余仍然存在。
让我们看一个例子 -
| 地面 | Begin_Time | End_Time | 封装 |
| G01 | 07:00 | 09:00 | 金色 |
| G01 | 10:00 | 12:00 | 金色 |
| G01 | 10:30 | 11:00 | 青铜 |
| G02 | 10:15 | 11:15 | 银色 |
| G02 | 08:00 | 09:00 | 银色 |
功能依赖 {Package->Ground}
它具有决定性属性 Package on which Ground取决于既不是候选键也不是候选键的超集。
| 封装 | 地面 |
| 金色 | G01 |
| 银色 | G02 |
| 青铜 | G01 |
| 地面 | Begin_Time | End_Time |
| G01 | 07:00 | 09:00 |
| G01 | 10:00 | 12:00 |
| G01 | 10:30 | 11:00 |
| G02 | 10:15 | 11:15 |
| G02 | 08:00 | 09:00 |
现在以上表格采用 BCNF 格式。
由于我们在关系。










