Take the 2-minute tour ×

I have a table with 5 columns as A, B, C, D, and E. The functional dependencies are:

  1. AB -> C,D,E
  2. BCD -> A
  3. BCE -> A,D
  4. BD -> E

I think AB is the candidate key. I can't find any other candidates. Since I have a two-column key, BCE cannot be a candidate. Am I Right? What I am trying to do is to normalize this table to BCNF but I couldn't figure this table out. It looks like there is no repetitive data and also there is no transitive dependencies. This table looks like BCNF but I think I am missing something. I find it difficult to understand BCNF so can you please help?


share|improve this question
BCE is a candidate as well. And so is BCD –  ypercube May 7 at 9:09
But I thougt the candidates must be minimal. When I have two-column candidate (which is AB), can the three-columns be candidate as well? If so, ABC, ABD, and ABE can be candidates, too. However, using ABC while I have AB feels pointless/senseless for me. –  iso_9001_ May 7 at 9:13
Minimal means that no subset is a candidate. No subset of BCE is a candidate, so that is fine. One having 2 and the other 3 attributes, is fine. About ABC, you are right, is not minimal and thus it's pointless. –  ypercube May 7 at 9:20
Got it, thanks. What about the table. Is it BCNF or maybe 3NF? Should I consider the normal form conditions for each candidates separately or should I chose a candidate and go over it? –  iso_9001_ May 7 at 9:33
The FD BD->E violates BCNF. –  Ken P Nov 17 at 21:55

Your Answer



Browse other questions tagged or ask your own question.