ITBlog

IT Blog w tematach różnych...

  • O blogu…
  • Edukacja
    • Moodle – stare
    • Moodle2
    • Testy
  • Firma

Bazy danych – Pierwsza postać normalna (1NF)

Napisane przez Igor Brzeżek on 2 listopada 2025
Napisane w: Bazy danych.

Contents
  1. 1. dlaczego potrzebujemy normalizacji? problem redundancji i anomalii
  2. Trzy główne typy anomalii:
  3. 2. czym jest pierwsza postać normalna (1NF)?
  4. 3. identyfikacja naruszeń 1NF – studium przypadku
  5. 4. proces transformacji do 1NF
  6. Metoda 1: spłaszczenie tabeli (powielenie wierszy)
  7. Metoda 2: utworzenie nowych tabel (dekompozycja)
  8. 5. podsumowanie i znaczenie 1NF

1. dlaczego potrzebujemy normalizacji? problem redundancji i anomalii

Samo umieszczenie danych w tabelach nie gwarantuje, że struktura bazy danych jest dobra. Źle zaprojektowane tabele cierpią na redundancję danych, czyli niepotrzebne powtarzanie tych samych informacji. Redundancja jest nie tylko marnotrawstwem miejsca, ale przede wszystkim prowadzi do poważnych problemów z utrzymaniem spójności danych, zwanych anomaliami.

Normalizacja to formalny, krok po kroku proces dekompozycji (rozbijania) tabel w celu zminimalizowania redundancji i wyeliminowania anomalii.

Trzy główne typy anomalii:

        • – Anomalia wstawiania (Insertion Anomaly): Niemożność dodania pewnych faktów do bazy, dopóki nie pojawią się inne. Przykład: Nie możemy dodać nowego działu, dopóki nie zatrudnimy w nim pierwszego pracownika.
        • – Anomalia usuwania (Deletion Anomaly): Utrata pewnych faktów przy usuwaniu innych. Przykład: Usunięcie ostatniego pracownika z działu powoduje utratę informacji o istnieniu samego działu.
      • – Anomalia modyfikacji (Modification Anomaly): Konieczność aktualizacji tych samych danych w wielu miejscach, co grozi niespójnością. Przykład: Zmiana nazwy działu wymaga modyfikacji wszystkich wierszy pracowników tego działu.

Anomalia wstawiania (Insertion Anomaly): Niemożność dodania pewnych faktów do bazy, dopóki nie pojawią się inne. Przykład: Nie możemy dodać nowego działu, dopóki nie zatrudnimy w nim pierwszego pracownika.

  • Anomalia usuwania (Deletion Anomaly): Utrata pewnych faktów przy usuwaniu innych. Przykład: Usunięcie ostatniego pracownika z działu powoduje utratę informacji o istnieniu samego działu.
  • Anomalia modyfikacji (Modification Anomaly): Konieczność aktualizacji tych samych danych w wielu miejscach, co grozi niespójnością. Przykład: Zmiana nazwy działu wymaga modyfikacji wszystkich wierszy pracowników tego działu.

2. czym jest pierwsza postać normalna (1NF)?

Pierwsza Postać Normalna (1NF) to absolutne minimum, które musi spełniać każda tabela w relacyjnej bazie danych. Stanowi ona fundament dla dalszych etapów normalizacji.

Definicja 1NF: Relacja (tabela) jest w Pierwszej Postaci Normalnej wtedy i tylko wtedy, gdy:

  1. Posiada zdefiniowany klucz główny, który unikalnie identyfikuje każdy wiersz.
  2. Wszystkie atrybuty (kolumny) zawierają wartości atomowe (niepodzielne).

Warunek atomowości oznacza, że żadna komórka w tabeli nie może zawierać listy, zbioru, tablicy ani innej złożonej struktury. Każde przecięcie wiersza i kolumny musi zawierać dokładnie jedną wartość.

3. identyfikacja naruszeń 1NF – studium przypadku

Rozważmy tabelę Projekty_Pracownikow, która przechowuje informacje o pracownikach i projektach, w których biorą udział.

ID_Pracownika Nazwisko Projekty Telefony
101 Kowalski Projekt Alfa, Projekt Beta 111-222-333, 444-555-666
102 Nowak Projekt Alfa 777-888-999

Ta tabela narusza 1NF z dwóch powodów:

  • Atrybut wielowartościowy (grupa powtarzalna): Kolumna Projekty dla pracownika 101 zawiera listę dwóch projektów. To samo dotyczy kolumny Telefony. Przechowywanie danych w ten sposób uniemożliwia efektywne wyszukiwanie (np. „znajdź wszystkich pracowników projektu Beta”) i zarządzanie danymi.

4. proces transformacji do 1NF

Aby doprowadzić tabelę do 1NF, musimy wyeliminować atrybuty wielowartościowe. Istnieją na to dwie główne metody.

Metoda 1: spłaszczenie tabeli (powielenie wierszy)

Jest to najczęstsze i najbardziej poprawne podejście. Tworzymy nowy, oddzielny wiersz dla każdej wartości z atrybutu wielowartościowego.

Tabela po spłaszczeniu (w 1NF)
ID_Pracownika Projekt Nazwisko Telefon
101 Projekt Alfa Kowalski 111-222-333
101 Projekt Beta Kowalski 111-222-333
101 Projekt Alfa Kowalski 444-555-666
101 Projekt Beta Kowalski 444-555-666
102 Projekt Alfa Nowak 777-888-999

Analiza: Tabela jest teraz w 1NF. Każda komórka zawiera jedną wartość. Kluczem głównym stał się klucz złożony {ID_Pracownika, Projekt, Telefon}. Zauważmy jednak, że ta metoda drastycznie zwiększyła redundancję (dane Kowalskiego są powtórzone cztery razy). Ta redundancja zostanie wyeliminowana w kolejnych krokach normalizacji (2NF i 3NF).

Metoda 2: utworzenie nowych tabel (dekompozycja)

Lepszym podejściem, które od razu prowadzi do wyższych postaci normalnych, jest utworzenie oddzielnych tabel dla atrybutów wielowartościowych.

Tabela: Pracownicy
ID_Pracownika Nazwisko
101 Kowalski
102 Nowak
Tabela: Przydzialy_Projektow
ID_Pracownika_FK Projekt
101 Projekt Alfa
101 Projekt Beta
102 Projekt Alfa
Tabela: Telefony_Pracownikow
ID_Pracownika_FK Telefon
101 111-222-333
101 444-555-666
102 777-888-999

Analiza: To podejście jest znacznie lepsze. Wszystkie trzy tabele są w 1NF, a ponadto od razu spełniają warunki 2NF i 3NF, ponieważ nie ma w nich zależności częściowych ani przechodnich.

5. podsumowanie i znaczenie 1NF

Pierwsza Postać Normalna jest fundamentem, na którym buduje się całą strukturę relacyjnej bazy danych. Jej głównym celem jest zapewnienie, że dane są przechowywane w sposób ustrukturyzowany i atomowy, co umożliwia ich efektywne przetwarzanie za pomocą języka SQL.

Chociaż samo osiągnięcie 1NF nie eliminuje wszystkich problemów z redundancją, jest niezbędnym pierwszym krokiem. Ujawnia ono ukryte zależności i przygotowuje grunt pod dalsze etapy normalizacji (2NF i 3NF), które prowadzą do stworzenia dobrze zaprojektowanego, spójnego i wolnego od anomalii schematu bazy danych.

Nawigacja

← Bazy danych – Druga postać normalna (2NF)
Bazy danych – Model relacji (inne podejście) →
  • Szukaj

  • Kategorie

    • IT ogólnie (110)
      • Bezpieczeństwo (19)
        • Model AAA (7)
        • Szyfrowanie (1)
      • CCTV (3)
      • Hardware (2)
      • Sieci (25)
        • Cisco (4)
          • Obsługa haseł (2)
        • MikroTik (8)
        • Pomiary w sieciach LAN (6)
          • iptraf-ng (3)
        • Protokół ARP (3)
        • Symulator sieci GNS3 (2)
      • Software (53)
        • Bazy danych (12)
        • Programowanie (3)
        • Systemy operacyjne (15)
          • Linux Debian (14)
        • Windows (7)
      • WiFi (2)
      • Wirtualizacja (26)
    • Różne (1)
  • Ostatnie wpisy

    • Małe wprowadzenie do baz danych
    • Bazy danych – Model relacyjny
    • Bazy danych – Elementy modelowania
    • Bazy danych – Ewolucja systemów zarządzania danymi
    • Bazy danych – Wstęp do normalizacji
  • Strona odwiedzona

    od 11.01.2013

  • Doskonała platforma e-learningowa Uzyskaj certyfikat IT

Proudly powered by WordPress Theme: Parament by Automattic.
7ads6x98y