Boyce-Codd Normal Form



next up previous
Next: Third Normal Form Up: Normalization Using Functional Previous: Repetition of Information

Boyce-Codd Normal Form

  1. A relation scheme is in Boyce-Codd Normal Form (BCNF) with respect to a set of functional dependencies if for all functional dependencies in of the form , where and , at least one of the following holds:
  2. A database design is in BCNF if each member of the set of relation schemes is in BCNF.

  3. Let's assess our example banking design:

    Customer-scheme and Branch-scheme are in BCNF.

  4. Let's look at Borrow-scheme:
  5. If we decompose into

    we have a lossless-join decomposition. (Remember why?)

    To see whether these schemes are in BCNF, we need to know what functional dependencies apply to them.

    We also no longer have the repetition of information problem. Branch name and loan amount information are not repeated for each customer in this design.

    For the entire design to be in BCNF, we must also decompose Deposit-scheme into

  6. Now we can give a general method to generate a collection of BCNF schemes.

  7. This algorithm generates a lossless-join BCNF decomposition. Why?

  8. Let's apply this algorithm to our earlier example of poor database design:

    The set of functional dependencies we require to hold on this scheme are

    A candidate key for this scheme is {loan#, cname}.

    We will now proceed to decompose:

  9. Not every decomposition is dependency-preserving.

    This shows us that not every BCNF decomposition is dependency-preserving.

  10. It is not always possible to satisfy all three design goals:
  11. We can see that any BCNF decomposition of Banker-scheme must fail to preserve

  12. Some Things To Note About BCNF



next up previous
Next: Third Normal Form Up: Normalization Using Functional Previous: Repetition of Information



Page created and maintained by Osmar R. Zaï ane
Last Update: Mon Oct 16 17:18:28 PDT 1995