NORMALIZOWANIE BAZ DANYCH

Zależności funkcyjne

Zależności funkcyjne sa to związki występujące pomiędzy atrybutami relacji. Jako przykład można podać tabelę w której dwie osoby o takim samym nazwisku i imieniu funcjonują na tej samej liście. Osoby te mają różne nemery identyfikacyjne. Dlatego też imiona i nazwiska zależą funkcjonalnie od numerów do których zostały przypisane.

atrybut Aatrybut Batrybut C
l.p.NazwiskoImię
1.NowakAdam
2.NowakAdam
3.NowakEwa
4.PaluchTomasz

W powyższym przykładzie nie jesteśmy w stanie wyznaczyć osoby według imienia i nazswiska. jedyną możliwością jest wyznaczenie osoby wedgług numeru.
(artybuty B i C tworzą zależność od atrybutu A.

Pełna zależność funkcyjna

Występuje wówczas gdy po usunięciu jednego artybutu jesteśmy w stanie jednoznacznie zidentyfikować osobę

atrybut Aatrybut Batrybut C
NazwiskoImięwzrost
NowakAdam152
NowakAdam188
NowakEwa173
PaluchTomasz183

(usuwając z powyższej tabeli atrybut B nie jesteśmy w stanie określić który nowak jaki ma wzrost)

atrybut Aatrybut C
Nazwiskowzrost
Nowak152
Nowak188
Nowak173
Paluch183

W powyższym przykładzie nie zachodzi "Pełna zależność funkcyjna"

Przechodnia zależność funkcyjna

Zachodzi wówczas, gdy atrybut C jest zależny od atrybutu B, a atrybut B jest zależny od atrybutu A

atrybut Aatrybut Batrybut C
NrNazwiskoNr telefonu
1.Nowak721 376 700
2.Nowak722 700 376
3.Nowak513 492 356
4.Paluch514 356 492

W przykładzie tym atrybut C jest zależny od atrybutu A ponieważ gdy osoba (atrybut B) zmieni nr telefonu to ulegnie on również zmianie dla atrybutu A

Istnieją jeszcze inne zależności funkcyjne jak wieloartościowa i złączeniowa


NORMALIZOWANIE

Poziomy normalizacji baz danych (według narastającej normalizacji):

1NF - First Normal Form

Tabela musi być relacyjną i musi spełniać warunki

przykład:
NazwiskoNr telefonu
Nowak721 376 700
Nowak722 700 376
Nowak513 492 356
Paluch514 356 492


2NF - Second Normal Form

Wszytkie kolumny nie należące do klucza głównego muszą od niego zależeć i muszą być przez niego jednoznacznie identyfikowane. Dane mogą być redundantne (mogą się powtarzać, ale nie w kluczu głównym)

przykład:
ID_OsobyNazwiskoNr telefonu
1.Nowak721 376 700
2.Nowak722 700 376
3.Nowak513 492 356
4.Paluch514 356 492


3NF - Third Normal Form

Przykład tabeli nie spełniajcej normalizacji:
ID_OsobyNazwiskoImięNr telefonu
1.NowakAnna721 376 700
2.NowakAdam721 376 700
3.PaluchTomasz514 356 492

Powiyższą tabelę należy rozbić (zmiana nr telefou w krotce 2. nie pociągnie zmiany numeru telefonu w krotce 1.) na dwie mniejsze: osoby i numery telefonów. Wówczas zmiana telefonu wywoła zmianę we wszystkich krotkach

Przykład tabel spełniących normalizację 3NF:
ID_TelefonuNr telefonu
1.721 376 700
2.514 356 492
ID_OsobyNazwiskoImięID_Telefonu
1.NowakAnna1
2.NowakAdam1
3.PaluchTomasz2

W powyższej sytuacji zmieniając numer telefonu 1 zmieni się on dla obu "Nowaków" - co było naszym zamysłem.


BCNF - Boyce'a-Codda Normal Form

Postać relacji w której atrybut prosty lub złożony jest kluczem dla każdego innego atrybutu relacji. Inny atrybut (B, C, BC, ...) nie może być częścią klucza głównego lub innym podkluczem relacji. Innaczej: jeżeli relacja posiada klucz kandydujący (złożony z przynajmniej 2 atrybutów np. AB) będący jednocześnie kluczem głównym to postać BCNF jest spełniona, ale jeżeli zachodzi relacja że atrybu C może być kluczem dla atrybutu A to postać BCNF nie jest już spełniona

Przykład:
Postać BCNF nie spełniona:
ID_OsobyPrzedmiotWykładowca
Nowakj.ang.Holms
Kowalskij.angKlark
Paluchj.niem.Gutz
Postać BCNF spełniona:
ID_OsobyPrzedmiot
Nowakj.ang.
Kowalskij.ang
Paluchj.niem.

4NF - Fourth Normal Form

Czwarta forma normalizacji całkowicie eliminuje możliwość umieszczania wielowartościowych (MVD - multi-valued-dependency) danych w tabeli BCNF.

Przykład:
Postać 4NF nie spełniona:
ID_OsobyPrzedmioty
Nowakj.angielski, j.niemiecki
Kowalskij.angielski, j. hiszpański
Paluchj.niemiecki, j.włoski.
       Postać 4NF spełniona:
ID_OsobyZestaw
Nowak1
Kowalski2
Paluch3
ZestawJęzyk 1Język 2
1.j.angielskij.niemiecki
2.j.angielskij.hiszpański
3.j.niemieckij.włoski

5NF - Fivfth Normal Form i 6NF - Sixth Normal Form

Są używane przeważnie w teorii. W formach tych eleiminuje się zależności złączeniowe które mogą wystąpić w jakikolwiek sposób. Dodatkowo 6NF jest bazą temporalną co oznacza, że może uwględniać zależności czasowe lub interwały czasowe.

DKNF - Domain Key Normal Form

Ten typ bazy uzależnia indeksy baz od ich domen, czyli miejsc i sposobów przechowywania. Indeksy mogą być przechowywane w innych plikach, bazach, itp.


⇒ Spis treści ⇐

⇐ PREV NEXT ⇒