1

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)
1
  • 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
    Commented May 1, 2015 at 8:53

1 Answer 1

1

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
1
  • 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. Commented Jan 31, 2015 at 10:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.