Boyce–Codd Normal Form (BCNF)

Boyce–Codd Normal Form (BCNF)

BCNF是对第三范式(3NF)的扩展,比3NF略强。

如果关系R在BCNF中,那么P -> Q是一个平凡的函数依赖,并且P是关系R的超键。

如果一个关系在BCNF中,那么就意味着已经消除了基于函数依赖的冗余,但仍然存在一些冗余。

让我们看一个例子 −

** **

Ground **Begin_Time ** End_Time Package
G01 07:00 09:00 Gold
G01 10:00 12:00 Gold
G01 10:30 11:00 Bronze
G02 10:15 11:15 Silver
G02 08:00 09:00 Silver

上述关系在1NF、2NF和3NF中,但不在BCNF中。原因如下−

函数依赖 **{Package- >Ground} **

具有决定属性Package的关系Ground是非候选键且不是候选键的超集。

** **

Package Ground
Gold G01
Silver G02
Bronze G01

** **

**Ground ** 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范式中。

** ** 表的候选键是包和地面

表的候选键是 {Ground, Begin_Time}{Ground, End_Time}

由于在 关系中使用了包作为键,已消除异常。

阅读更多:MySQL 教程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

MySQL 教程