BCNF is an extension of Third Normal Form (3NF) and is slightly stronger than 3NF.
Relation R belongs to BCNF if P -> Q is a trivial functional dependency and P is a superkey of R.
If the relation is in BCNF, it means that the redundancy based on functional dependencies has been removed, but some redundancy still exists.
Let’s see an example -
# #ground | Begin_Time | ##End_TimePackage | ##G01 |
07:00 | 09:00 | Gold | G01 |
10:00 | ##12:00 | ##GoldG01 | |
##11:00 |
Bronze |
G02 | ##10:15|
11:15
|
silver | ##G02 |
08:00 |
09:00 | Silver | ##The above relationship is in 1NF, 2NF, and 3NF, but not in BCNF. The reason is as follows: |
{Package->Ground}
It has the decisive property Package on which Ground depends on neither the candidate key nor the Not a superset of candidate keys.##Encapsulation
##Gold | G01 | ||||||||||||||||||
G02 |
##Bronze | ||||||||||||||||||
G01 |
ground | Begin_Time | End_Time |
G01 | 07:00 | 09:00 |
G01 | 10:00 | 12:00 |
G01 | ##10:3011:00 | |
10:15 | 11:15 | |
08:00 |
09:00 |
Now the above table is in BCNF format.
The candidate keys for table are Package and Ground
are {Ground, Begin_Time }
relationship.
The above is the detailed content of Boyce-Code Normal Form (BCNF). For more information, please follow other related articles on the PHP Chinese website!