I am struggling with the concept of 2NF form. Lets say I have a set of functional dependencies for R1(A,B,C,D,E,H,M,K) Where :

B  -> M,C
AB -> D
DH -> E
H  -> K
A  -> H

Whenever I try to decompose it, I directly get 3NF tables. What are the rules to get something in 2NF, with minimal set of tables ?

Now how do I take this further to 3NF or BCNF?

  • If the table is in 3NF then it is also in 2NF and 1NF. Your decomposition algorithm should take you to BCNF. – Damir Sudarevic May 15 '14 at 19:43
  • I agree, but how do I just stop at 2NF ? or what are the minimal set of tables for 2NF. You dont have to answer this question, just show me the algorithm or rules to do so. – user2159192 May 15 '14 at 19:52
  • Simple, you do not stop before BCNF -- why would you? – Damir Sudarevic May 15 '14 at 20:13
  • The point is that I am trying to understand what rules take a relationship from 1 NF to 2 NF. I am just looking at a systematic approach to move from 1 NF to 2 NF to 3 NF to BCNF. If you dont want to answer thats fine, but please let other respond. – user2159192 May 15 '14 at 20:26

To simplify, say we have


AB -> C
A  -> D

Relation R is NOT in 2NF -- the KEY is {AB}, but {D} is dependent only on part of the key.

Now decomposition

  • Step 1. R1 {ABC} R2 {AD}

  • Done.

So, both R1 and R2 are in 6NF and therefore in 5,4,3,2,1. There is no in-between -- it may happen that in some specific example you may see "progress" 1, 2, 3, BCNF; but that is an exception, not the rule.

... looking at a systematic approach to move from 1 NF to 2 NF to 3 NF to BCNF ...

is a common misunderstanding.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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