I have a table like this: L(A, B, C, D, E)
and functional dependencies are:
AB -> CDE
C -> D
D -> B
D -> E
I need to transform this table into 3NF. I think it's not even in 2NF. I found 3 candidate keys:
- first one is obviously
AB
- from
D->B
we can changeAB->CDE
toAD->BCE
. So another candidate key isAD
- using similar logic we get another key
AC
(I am not sure if I did this correct).
From D -> E
(I think there are more dependencies like that) I assume that this table is not in 2NF. What is the correct way to split this table up to get 3NF?
Best Answer
I would take following approach.
From left side of the relations we see 3 primary keys:
AB
withAB->CDE
relation is represented inLAB
table.C
withC->D
relation is represented inLC
table.D
withD->E
andD->B
relations are represented inLD
table.Does it make sense?