Search code examples
bcnf

A short summary of what BCNF is?


For my exam I am revising for in January I will need to know all about Boyce-Codd Normal Form and possibly have to write a short summary about what it is. In a paragraph or so, what exactly is BCNF as I have looked on many sites and the descriptions are quite complex so it's not easy to get my head around. Thank you for any help.


Solution

  • Boyce–Codd Normal Form (BCNF) A relation R(X) is in Boyce–Codd Normal Form if for every non-trivial functional dependency Y → Z defined on it, Y contains a key K of R(X).

    That is, Y is a superkey for R(X).

    Example: Person1(SI#, Name, Address)

         The only FD is SI# → Name, Address
    

    Since SI# is a key, Person1 is in BCNF

    Anomalies and redundancies, as discussed earlier, do not occur in databases with relations in BCNF.

    Non-BCNF examples:

    Person(SI#,Name,Address,Hobby)

    The FD SI# → Name,Address does not satisfy conditions for BCNF since the key is {SSN,Hobby}

    HasAccount(AcctNum,ClientId,OfficeId)
    
    The FD AcctNum → OfficeId does not satisfy
    BCNF conditions if we assume that keys for
    HasAccount are {ClientId,OfficeId} and
    {AcctNum,ClientId}, rather than AcctNum.
    

    You can refer to below link for detailed explanation. http://www.cdf.toronto.edu/~csc343h/fall/08/lectures/wk12/wk12_BCNF2-up.pdf

    Hope it helps..