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 | 銀色 |
上述關系在 1NF、2NF、3NF 中,但不在 BCNF 中。原因如下:
功能依賴?{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 格式。
表的候選鍵是 Package 和 Ground
的候選鍵表是?{Ground, Begin_Time} 和?{Ground, End_Time}
由于我們在關系。
以上就是博伊斯-科德范式 (BCNF)的詳細內容,更多請關注www.92cms.cn其它相關文章!