Normalisation is a process used to produce the most optimal design for a database.

It requires that tables should be organised as so data is not duplicated in the same table or different tables; permitting complex queries to be made.

There are three fundamental stages.

1NF

  • No repeating attributes
  • Attributes must be atomic

2NF

  • No partial dependencies

3NF

  • No non-key dependencies