>So let's have BCNF;
>Luckily I dealt with this one the other day, and so far I feel strong ;) However, I know I am challenging here, and expected some response. So :
>
>BCNF is all about candidate keys, at least, it looks like it. Looking for the good examples and explanations is rather difficult (I found the other day), but, in the end I found some (over the Internet). Now I'd like to ask you Jim, prepare me some (whatever NF) indluding CK's, and I will work it out for you. Agreed ? when I can I win, when I can't you win. Not that someone wants to win, but I'm prepared, and I state that BCNF doesn't even exist. Reading the description(s) carefully, it's already in the definition itself. Your turn.
Peter,
Ok the design for a database requires that all tables have a non-meaningful Primary key (Surrogate PK). Below is the design of the customer table;
CustID I PK
CustNo C(10) CK
Name C(35)
...
Virtually every table in this database will have a PK and some other cobination of fields that could be the PK (defined as CK).
You are correct in that BCNF to fix a violation will require that certain CKs be removed to new entities, however it is BCNF does not disallow the existance of a CK.