Database normalization serves the purpose of eliminating redundancies among data tables in relational databases. When various types of redundancies are elminated, the database is said to be in an appropriate normal form. There are 5 normal forms. Each normal form assumes that the database is in the previous normal form as well. E.g. A database that is in 3rd normal form is also in 1st and 2nd normal form.
The most frequently needed are the first 3 normal forms. In general, every database should be in 3rd normal form before it can be considered for use.
- First Normal Form (1NF): Eliminate fields with array values
- Second Normal Form (2NF): Eliminate duplicate field values depending on only a part of primary key
- Third Normal Form (3NF): Eliminate duplicate field values that uniquely depend on a non-key field.
Generally, a database being in 3NF does not guarantee that it is a good representation of the problem domain. It simply makes sure that there are no obvious flaws (redundancies) in the chosen representation (data table layout). But the correctness of the representation depends on the effectivness of the database designer.