Database Management

Boyce-Codd Normal Form[]

Boyce Codd normal for is used in Database Normalization. It is more strongly normalized than third normal form and less restrictive than fourth normal form.  Boyce-Codd normal form is when you have an overlap of functional dependencies, every determinant is a candidate key, and you have two or more dependencies on two or more sets of candidate keys.  It reduces redundancy in the functional dependencies.[2] If there is only one candidate key, third normal form and Boyce-Codd normal form are identical. To normalize through Boyce-Codd normal form, a separate relation for each determinant with all the attributes it determines is created. However, each new relation should still have the ability to recreate the original relation through the use of joins. [4]


  • lending = (branch_name, branch_city, assets, customer_name, loan_number, amount)
  • branch_name=(assets branch_city)
  • loan_number=(amount branch_name)
  • candidate key is {loan_number, customer_name}
  • So we replace lending by:

branch = (branch_name, branch_city, assets)

loan_info = (branch_name, customer_name, loan_number, amount)

  • For loan_info
  • The functional dependency

·         loan_number=(amount branch_name)

·         holds on loan_info but loan_number is not a key for loan_info, so we replace loan_info by

  • loanb = (loan_number, branch_name, amount)

borrower = (customer_name, loan_number)

  • loanb and borrower are in BCNF [1][3]

Cons of Boyce-Codd Normal Form[]

You lose the modeling of some meaningful relationships (dependencies). When these functional dependencies are lost in the decomposition necessary to normalize through BCNF, two or more tables must be joined to re-enforce that functional dependency within the database, and important constraints could be lost. [4]

Pros of Boyce-Codd Normal Form[]

The basis for BCNF's creation was to eliminate anomalies that were not otherwise dealt with by 3NF. Which is to say the candidate keys that weren't determinants. It eliminated non-trivial dependencies.

Remembering BCNF[]

"The key, the whole key, and nothing but the key, so help me Codd."

"In CODD we trust!"


[1] Silberschatz, Korth, Sudarshan (2006). Database System Concepts. New York: McGraw-Hill[2]Coronel, Carlos& Rob, Peter(2009). Database Systems: Design, Implementation and Management.  Cengage Learning[3]Truong, Thanh (2006). Boyce-Codd Normal Form

[4] Ricardo, Catherine (2012). Databases Illuminated, 2nd ed. Sudbury, MA: Jones & Bartlett Learning, LLC