views:

132

answers:

3

How can I prove that my database schema actually is in 3rd normal form?

+3  A: 

Does any non-key field depend on another field that is not part of the key? If so, then the schema is not in 3NF.

Quick Joe Smith
this is still 1NF. if it depends on WHOLE keys, it is only 2NF
Anwar Chandra
No he is right, copied from wikipedia: "Requiring that non-key attributes be dependent on "the whole key" ensures that a table is in 2NF; further requiring that non-key attributes be dependent on "nothing but the key" ensures that the table is in 3NF."
Felix Kling
Sorry, I was assuming 2NF.
Quick Joe Smith
+2  A: 

Your database is in 3NF if you meet the rules of 1NF, 2NF and 3NF.

As a rough guide.

  1. Have no duplicate data in a single row. (columns where the same data is displayed in different way)
  2. Eliminate data subsets that are recurring multiple times (i think of this as 'reference' data such as lookups. Things like CustomerRelationshipType)
  3. Remove any data that is not directly related to the key of the table (This is a check to ensure your not carrying anything un-necessarily or possibly storing somthing in the wrong table).
Leigh Shayler
+1  A: 

If all non key attributes are dependent on the key, the whole key, and nothing but the key, then it should be in third normal form.

Of course, atomicity is already assumed.

Raj More