1

Got a question on DBMS Normalization. I tried searching but couldn't clear my doubt. So I have a set of functional dependencies for relation R(C, D, E, F, P, R, S) :

F->D
D->F
E->C
P->RC
E->F
S->EFD
PR->EF

So I have to convert this to 3NF. My doubt is that when finding 2NF do we find all the non-prime attributes that are dependent on a particular partial key i.e. do we take it's closure and create new relations for each partial dependency? If we do that then there are overlapping attributes in the resultant relations in this case I found the relations in 2NF as :
R1(P, S)
R2(P, R, C, E, F)
R3(S, E, F, D, C)

But when I just used the FDs as they are given (no closure) I found :

R1(P, S)
R2(P, R, C)
R3(S, E, F, D)

Which one is correct, please help.

Comments
  • 1
    @exceptionalGuy remember how much you hated this stuff lol
  • 1
    Yeah nobody fucking does it this way, the actual keys help a lot, but rule of thumb is, duplicate dependencies are okay in 2nf.
  • 1
    You'd need still E->C for R3 to remove C from R3.

    And PR->EF to remove EF from R2.
Add Comment