Normalizacja Relacyjnych Baz Danych


    Normalizacja Relacyjnej Bazy Danych ma na celu eliminację powtarzających się danych. Polega ona na trzymaniu danych w jednym miejscu, a w razie potrzeby linkowania do nich, przez co zmniejsza się ryzyko powstania niespójności, anomalii. Normalizacja nie usuwa danych, a tylko zmienia schemat bazy danych (jest inny układ danych i inna relacja pomiędzy nimi). W praktyce wystarczy doprowadzić bazę do trzeciej postaci normalnej.

    Wprowadza się sześć postaci normalnych. Są to:
    • 0NF - baza nieznormalizowana, która posiada komórki z danymi złożonymi, wielokrotnymi

      nazwisko,imię,pesel,wiek,miasto,ulica,kod,stanowisko,stawka
      jan,nowak,xxxxxx,50,wieluń,polna,98-300,robotnik,7zł
      marek,kowalski,xxxxxx,39,poręba,polna,42-480,kierownik,12zł

    • 1NF - polega na rozbiciu danych na dane atomowe i usunięciu powtarzających się atrybutów.

      imię nazwisko pesel wiek miasto ulica kod stanowisko stawka
      jan nowak xxxxxx 50 wieluń polna 98-300 robotnik 7zł
      marek kowalski xxxxxx 39 poręba polna 42-480 kierownik 12zł

    • 2NF - polega na przeprowadzeniu analizy zależności atrybutów (kolumn) tabeli i na wykryciu podzależności.

      Analiza podzależności


      pesel* nazwisko imię wiek kod miasto ulica stanowisko stawka
      xxxx1 nowak jan 50 98-300 wieluń polna nauczyciel_mianowany 700
      xxxx2 kowalski marek 39 98-300 sieradz polna nauczyciel_mianowany 600

      W takiej tabeli dane w polach zaznaczonych na czerwono mogą się powtarzać i występuje tak zwana nadmiarowość (redundancja). Mogą wystapić anomalie modyfikacji polegające na fakcie, że zmiana stawki nauczyciela mianowanego pociąga konieczność zmian w całej tabeli. W przypadku pomyłkowego wpisania stawki dochodzi do niespójności danych. Mogą też występować anomalie usuwania danych, które prowadzą do utraty wszystkich informacji na dany temat (gdy pole nie może mieć wartości zero).

    • 3NF - polega na rozbiciu w/w tabeli (z drugiej postaci normalnej) na kilka tabel. W każdej z nich nie ma już podzależności i każdy atrybut niekluczowy jest bezpośrednio zależny od lokalnego klucza głównego. Tabele kod-miasto i stanowisko-stawka należy wypełnić danymi przed określeniem relacji pomiędzy tabelami.



      pesel* nazwisko imię wiek kod ulica stanowisko
      xxxx1 nowak jan 50 98-300 polna nauczyciel_mianowany
      xxxx2 kowalski marek 39 98-200 polna nauczyciel_kontraktowy

    • kod* miasto
      98-300 wieluń
      98-200 sieradz

      stanowisko* stawka
      nauczyciel_kontraktowy 600
      nauczyciel_mianowany 700

    • 4NF - gdy jest w trzeciej postaci normalnej oraz jeśli każda nietrywialna zależność wielowartościowa jest zależnością od klucza (niekoniecznie właściwego)
    • 5NF - Dana relacja r o schemacie R jest w piątej postaci normalnej wtedy i tylko wtedy, gdy jest w czwartej postaci normalnej i w przypadku występowania w niej połączeniowej zależności funkcjonalnej *R[R1, ..., Rm] zależność ta wynika z zależności atrybutów od klucza
    • 6NF - jest używana w bazach przechowujących dane zależne od czasu

    do góry