Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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 '14 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 '14 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 '14 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 '14 at 9:33
The FD BD->E violates BCNF. – Ken P Nov 17 '14 at 21:55

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.