Sobes.tech
Junior

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:

  1. 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).
  2. 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.
  3. 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.