I solved this example to determine 2NF and 3NF. I would like to check if my answer is correct. Can somebody check the 2NF and 3NF of this example, please?
R( A B C D E F G H I J)
with functional dependencies:
AB -> C
A -> DE
B -> F
F -> GH
D -> IJ
My result:
2NF:
R1 (AB -> C , A -> E)
R2 (B -> F , F -> GH)
R3 (D -> I)
3NF:
R1 (AB -> C , A -> E)
R2 (B -> F)
R4 (F -> GH)
R3 (D -> I)
Best Answer
Firstly, i suggest you the steps to quickly find a correct normalization of the table, using the example that you brought, showing you the correct normalization.
Define the key
The key is usually defined by its usefulness, or its role in operations like joins (if we need a join lot of times we could choose a key instead of another).
I choose
A U B
as a key. I usually underline the key, but, because in this board we can't underline text, I will write the key asAB
Define the functional dependencies
You already found the FD, so we can go to the next step.
2NF Normalization
Looking at the FD the correct normalization is:
(
:R2
indicates a foreign key)In this table we can find the
AB -> C
functional dependency.3NF Normalization