Normalizację stosuje się, aby sprawdzić, czy zaprojektowane tabele mają prawidłową strukturę. Proces normalizacji rozpoczynamy, gdy zostanie utworzony wstępny projekt tabel. Pozwala ona określić. czy informacje przewidziane w projekcie bazy zostały przydzielone do właściwych tabel. Natomiast nie da odpowiedzi na pytanie, czy projekt bazy danych jest prawidłowy.
Korzyści płynące z normalizacji table są następujące:
- zlikwidowanie problemu powtarzania danych,
- optymalizacja objętości bazy danych,
- optymalizacja efektywności obsługi bazy danych,
- minimalizacja zagrożenia błędami przy wprowadzaniu danych.
Stosowane są cztery reguły normalizacji, ale w większości projektów baz danych wystarczy sprawdzić trzy pierwsze.
Dla każdej z nich stosowane są określenia: pierwsza postać normalna (I PN), druga postać normalna (II PN) i trzecia postać normalna (III PN).
Pierwsza postać normalna: tabela jest w pierwszej postaci normalnej (I PN), gdy pojedyncze pole tabeli zawiera informację elementarną.
Oznacza to, że w komórce tabeli nie może wystąpić lista wartości, na przykład w polu książki_zamowione można umieścić dwóch tytułów, a należy to rozbić na dwa wpisy w tabeli.
Druga postać normalna: tabela jest w drugiej postaci normalnej (II PN), jeżeli jest w pierwszej postaci normalnej oraz każde z pól niechodzących w skład klucza podstawowego zależy od całego klucza, a nie od jego części.
Każda tabela powinna przechowywać dane dotyczące tylko konkretnej klasy obiektów.
Ta reguła służy do sprawdzenia, czy w tabeli i bazie danych nie doszło do redundacji, czyli niepotrzebnego powtarzania danych. Ponieważ II PN odnosi się do klucza podstawowego, należy najpierw określić ten klucz dla tabeli. Jeżeli klucz podstawowy składa się z jednego pola, tabela jest w II PN, ponieważ wszystkie pola, poza polem klucza podstawowego, muszą odnosić się do pola klucza podstawowego.
Trzecia postać normalna: Tabela jest w trzeciej postaci normalnej (III PN), jeżeli w pierwszej i w drugiej postaci normalnej oraz każde z pól niewchodzących w skład klucza podstawowego niesie informację bezpośrednio o kluczu i nie odnosi się do żadnego innego pola.