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.
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..