Definicja
Normalizacja to proces dzielenia tabel na mniejsze, eliminujące powtórzenia danych, przy zachowaniu integralności.
Formy normalne
| Forma | Reguła | Problem który rozwiązuje |
|---|---|---|
| 1NF | Atomowe wartości, brak powtórzeń kolumn | "telefon1, telefon2, telefon3" → tabela telefonów |
| 2NF | 1NF + każdy atrybut zależy od CAŁEGO klucza | Mieszanie danych zamówienia i klienta w jednej tabeli |
| 3NF | 2NF + brak zależności przechodnich | Miasto zależy od kodu pocztowego, nie od klienta |
| BCNF | Każdy determinant jest kluczem kandydującym | Rzadkie anomalie z wieloma kluczami |
Przykład: przed i po normalizacji
Przed (0NF):
| Zamówienie | Klient | Adres | Produkt1 | Cena1 | Produkt2 | Cena2 |
|---|---|---|---|---|---|---|
| 001 | Kowalski | Warszawa | Laptop | 3999 | Mysz | 49 |
Po (3NF): 3 tabele: Zamówienia, Klienci, PozycjeZamówień
Denormalizacja w Data Warehouse
W hurtowniach danych celowo denormalizujemy (star schema) dla wydajności zapytań analitycznych. Normalizacja = OLTP, denormalizacja = OLAP.