Czym jest normalizacja w bazie danych?
sobes.tech AI
Odpowiedź od AI
Normalizacja bazy danych to proces organizacji danych w relacyjnej bazie danych w celu zmniejszenia nadmiarowości (duplikacji danych) i poprawy integralności danych. Osiąga się to poprzez dzielenie dużych tabel na mniejsze i definiowanie między nimi relacji.
Głównym celem normalizacji:
- Zmniejszenie nadmiarowości danych: Unikanie powtarzania tych samych informacji w różnych miejscach.
- Poprawa integralności danych: Zapewnienie dokładności i spójności danych.
- Zapewnienie elastyczności: Ułatwienie zmian i rozszerzeń struktury bazy danych.
Normalizacja jest definiowana przez zestaw reguł zwanych formami normalnymi. Najczęściej stosowane są pierwsze trzy formy normalne:
-
Pierwsza forma normalna (1NF):
- Każda kolumna tabeli powinna zawierać wartości atomowe (niepodzielne).
- Nie powinno być powtarzających się grup kolumn.
- Każdy wiersz musi być unikalny (za pomocą klucza głównego).
-
Druga forma normalna (2NF):
- Tabela jest w 1NF.
- Wszystkie atrybuty niekluczowe zależą w pełni od klucza głównego (jeśli jest złożony). Nie ma zależności częściowych.
-
Trzecia forma normalna (3NF):
- Tabela jest w 2NF.
- Nie ma zależności przejściowych. Atrybuty niekluczowe nie zależą od innych atrybutów niekluczowych.
Istnieją wyższe formy normalne (BCNF, 4NF, 5NF, 6NF), ale zazwyczaj uważa się, że 3NF jest wystarczająca dla większości celów praktycznych.
Przykład (uproszczony):
Tabela nieznormalizowana zamówienia klienta:
| ID Zamówienia | Imię Klienta | Adres Klienta | Produkty | Ilość | Cena za jednostkę |
|---|---|---|---|---|---|
| 101 | Ivan | Moskwa | Laptop | 1 | 50000 |
| 101 | Ivan | Moskwa | Mysz | 2 | 1000 |
| 102 | Maria | Sankt Petersburg | Klawiatura | 1 | 3000 |
Po normalizacji (np. do 3NF):
Tabela Zamówień:
| ID Zamówienia | ID Klienta | Data Zamówienia |
|---|---|---|
| 101 | 1 | 2023-10-26 |
| 102 | 2 | 2023-10-26 |
Tabela Klientów:
| ID Klienta | Imię Klienta | Adres Klienta |
|---|---|---|
| 1 | Ivan | Moskwa |
| 2 | Maria | Sankt Petersburg |
Tabela Szczegółów Zamówienia:
| ID Szczegółu Zamówienia | ID Zamówienia | ID Produktu | Ilość | Cena za jednostkę |
|---|---|---|---|---|
| 1 | 101 | 10 | 1 | 50000 |
| 2 | 101 | 20 | 2 | 1000 |
| 3 | 102 | 30 | 1 | 3000 |
Tabela Produktów:
| ID Produktu | Nazwa Produktu |
|---|---|
| 10 | Laptop |
| 20 | Mysz |
| 30 | Klawiatura |
Denormalizacja to odwrotny proces normalizacji, czasami stosowany w celu optymalizacji wydajności odczytu danych kosztem zwiększenia nadmiarowości.