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

Given E(ABCDE) ABC are candidate keys

Normalize into 2NF and 3NF

As far as 2NF is concerned the solution is quite easy:

E1(BD), E2(DE), E3(ABC) 

But with regard to 3NF I think I'm wrong if I say that nothing should be done.

Maybe the 3NF schema is:

E1(ABC), E2(BD) 

Is it correct?

Thanks a lot

So according to @OliverAsmus the 3NF result should be:

E1(ABC), E2(BD) 

But if what I wrote is correct, am I right in thinking that the 3NF (in this particular case) doesn't preserve all the attributes? E doesn't depend upon any key so I got rid of it...

Is that correct? Thanks

share|improve this question
Surely this must be homework? The only normal forms that are of any interest are 6NF, 5NF and BCNF, unless you are an old school academic or are being taught by one ;) – onedaywhen Jan 24 '12 at 8:59

You're on the right track. Look closely at your 2NF result - this is where the 3NF result will come from. Your next task would be to take the 2NF result and eliminate the fields that do not depend on the key.

There are numerous sources for how and why to do this, but I prefer Microsoft's explanation the best:

share|improve this answer

Do you mean that there are three candidate keys: A, B and C? If so, your FDs are A-> BCDE, B-> ACDE and C-> ABDE. If there are no other FDs connecting these attributes, you can stop there: you are already in BCNF (and also 3NF).

share|improve this answer

Your Answer


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

Not the answer you're looking for? Browse other questions tagged or ask your own question.