Boyce-Codd Normal Form
Boyce-Codd Normal Form
Pre-Requisite: First Normal Form, Second Normal Form, Third Normal Form
Application of the general definitions of 2NF and 3NF may identify additional redundancy caused by dependencies that
violate one or more candidate keys. However, despite these additional constraints, dependencies can still exist that will
cause redundancy to be present in 3NF relations. This weakness in 3NF resulted in the presentation of a stronger normal
form called the Boyce-Codd Normal Form (Codd, 1974).
Although, 3NF is an adequate normal form for relational databases, still, this (3NF) normal form may not remove 100%
redundancy because of X−>Y functional dependency if X is not a candidate key of the given relation. This can be solved
by Boyce-Codd Normal Form (BCNF).
Boyce-Codd Normal Form (BCNF)
Boyce–Codd Normal Form (BCNF) is based on functional dependencies that take into account all candidate keys in a
relation; however, BCNF also has additional constraints compared with the general definition of 3NF.
Rules for BCNF
Rule 1: The table should be in the 3rd Normal Form.
Rule 2: X should be a superkey for every functional dependency (FD) X−>Y in a given relation.
Note: To test whether a relation is in BCNF, we identify all the determinants and make sure that they are candidate
keys.
BCNF in DBMS
You came across a similar hierarchy known as the Chomsky Normal Form in the Theory of Computation. Now,
carefully study the hierarchy above. It can be inferred that every relation in BCNF is also in 3NF. To put it another
way, a relation in 3NF need not be in BCNF. Ponder over this statement for a while.
To determine the highest normal form of a given relation R with functional dependencies, the first step is to check
whether the BCNF condition holds. If R is found to be in BCNF, it can be safely deduced that the relation is also
in 3NF, 2NF, and 1NF as the hierarchy shows. The 1NF has the least restrictive constraint – it only requires a relation
R to have atomic values in each tuple. The 2NF has a slightly more restrictive constraint.
The 3NF has a more restrictive constraint than the first two normal forms but is less restrictive than the BCNF. In this
manner, the restriction increases as we traverse down the hierarchy.
Examples
Here, we are going to discuss some basic examples which let you understand the properties of BCNF. We will discuss
multiple examples here.
Example 1
Let us consider the student database, in which data of the student are mentioned.
Stu_ID Stu_Branch Stu_Course Branch_Number Stu_Course_No
101 201
Stu_ID Stu_Course_No
101 202
102 401
102 402
Example 2
Find the highest normal form of a relation R(A, B, C, D, E) with FD set as:
{ BC->D, AC->BE, B->E }
Explanation:
Step-1: As we can see, (AC)+ ={A, C, B, E, D} but none of its subsets can determine all attributes of the
relation, So AC will be the candidate key. A or C can’t be derived from any other attribute of the relation,
so there will be only 1 candidate key {AC}.
Step-2: Prime attributes are those attributes that are part of candidate key {A, C} in this example and others
will be non-prime {B, D, E} in this example.
Step-3: The relation R is in 1st normal form as a relational DBMS does not allow multi-valued or composite
attributes.
The relation is in 2nd normal form because BC->D is in 2nd normal form (BC is not a proper subset of candidate key
AC) and AC->BE is in 2nd normal form (AC is candidate key) and B->E is in 2nd normal form (B is not a proper subset
of candidate key AC).
The relation is not in 3rd normal form because in BC->D (neither BC is a super key nor D is a prime attribute) and in
B->E (neither B is a super key nor E is a prime attribute) but to satisfy 3rd normal for, either LHS of an FD should be
super key or RHS should be a prime attribute. So the highest normal form of relation will be the 2nd Normal form.
Note: A prime attribute cannot be transitively dependent on a key in BCNF relation.
Consider these functional dependencies of some relation R
AB ->C
C ->B
AB ->B
Suppose, it is known that the only candidate key of R is AB. A careful observation is required to conclude that the above
dependency is a Transitive Dependency as the prime attribute B transitively depends on the key AB through C. Now,
the first and the third FD are in BCNF as they both contain the candidate key (or simply KEY) on their left sides. The
second dependency, however, is not in BCNF but is definitely in 3NF due to the presence of the prime attribute on the
right side. So, the highest normal form of R is 3NF as all three FDs satisfy the necessary conditions to be in 3NF.
Example 3