# Normalization to 2NF and 3NF

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)
``````
• Hi @chris if this or any answer has solved your question please consider accepting it by clicking the check-mark. This indicates to the wider community that you've found a solution and gives some reputation to both the answerer and yourself. There is no obligation to do this. – EagleOne May 1 '15 at 8:53

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 as `AB`

## 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:

``````R1 (the previous big table) (**A**:R3,**B**:R2, C)
AB -> C
``````

(`:R2` indicates a foreign key)

In this table we can find the `AB -> C` functional dependency.

``````R2 (**B**,F, G, H)
B -> F,
F -> GH

R3 (**A**, D, E, I, J)
A -> DE,
D -> IJ
``````

## 3NF Normalization

``````R1 (**A**:R3, **B**:R2, C)
AB -> C

R2 (**B**, F:R4)
B -> F

R3 (**A**, D:R5, E)
A -> DE

R4 (**F**, G, H)
F -> GH

R5 (**D**, I, J)
D -> IJ
``````
• I've edited yopur answer, mainly the format. I agree on the results (2nf and 3nf) but I disagree that there is any choice in the original table. The only candidate key is `AB`. +1 none the less. – ypercubeᵀᴹ Jan 31 '15 at 10:39