0

The functional dependencies are :

  • BCD -> A (I stated this is a SK since BCD+=ABCDEFG)
  • BC -> E (also SK since BC+=ABCDEFG)
  • A -> F (not SK or prime)
  • F -> G
  • C -> D (not sk or prime)
  • A -> G (not sk or prime)

My steps:

  1. 1:(A,F),(ABCDEG)

  2. (A,F),(C,D),(ABCEG)

  3. (A,F),(C,D),(A,G),(ABCE) (so is this one in 3nf?)

I am only trying to set it to 3nf and not go any further.

Mike Sherrill 'Cat Recall'
  • 91,602
  • 17
  • 122
  • 185
Alex
  • 7
  • 3
  • *"I am only trying to set it to 3nf and not go any further. "* Normalization doesn't work that way. Aiming for 2NF might yield relations in 5NF. – Mike Sherrill 'Cat Recall' Mar 26 '17 at 11:58
  • When some FDs hold, other ones (given by Armstrong's axioms) must also hold. You need to follow a 3NF normalizing algorithm as given by some reference. What reference are you using? – philipxy Mar 27 '17 at 06:17

1 Answers1

0

When you decompose your dependencies, you should convert them into minimal set of functional dependency.

As you have stated, BCD and BC are both super keys, thus the D in BC is not really needed. Further, between A->F, F->G, A->G you can remove A->G, as that is implied by the the other two(you can't remove F->G, you will lose this dependency).

So the minimal set becomes: (BC->AE), (A->F), (F->G), (C->D)

Now you can decompose into 4 relations: (ABCE),(AF),(FG),(CD).

This will be in the 3NF.

maigar
  • 197
  • 10