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