Normalizacja to w zasiądzie zbiór standardów projektowania baz danych, zwanych postaciami normalnymi. Proces normalizacji polega na przekształcaniu danych tak oby pasowały do zaprezentowanych standardów.  Ogólnie używa się jedynie pięciu postaci normalnych, chociaż zaprezentowano ich znacznie więcej.

Normalizację należy przeprowadzać zgodnie z kolejnością postaci normalnych czyli od pierwszej do piątej. Przejść do następnej powinniśmy dopiero wtedy gdy upewnimy się, że zostały spełnione wymagania w przypadku poprzedniej. Jeżeli dane spełniają wymagania pierwszej reguły oznacza to że są w pierwszej postaci normalnej. Zaś jeżeli są spełnione wymagania trzeciej postaci normalnej oznacza to że spełniają one wymagania równiej pierwszej i drugiej postaci normalnej.

Stosowanie do zaleceń dotyczących normalizacji na ogół oznacza podział tabel na dwie lub więcej, z mniejszą liczbą kolumn. Taki podział związków klucz główny- klucz obcy w nowej mniejszej tabeli pozwala potem je połączyć za pomocą operacji złączenia.

Jedną z wielu zalet podziału tabel zgodnie z zaleceniami normalizacji jest zmniejszenie redundancji danych w tabelach. Oznacza to, że niektóre dane w tabelach się powtarzają taki zabieg ma na celu uniknięcie takich powtórzeń przy pomocy utworzenia nowej tabeli gdzie będą przechowywane dane do których możemy się odwołać w każdym monecie kiedy będą nam potrzebne.

Pierwsza postać normalna

Normalizacja bazy danych

Rys. Przykłada pierwszej postaci normalnej

Pierwsza postać normalna wymaga aby w każdym przecięciu wiersza i kolumny występowała tylko jedna wartość i była to wartość atomowa (Patrz rys.5). W tabeli spełniającej takie warunki nie może być powtarzających się grup danych. Pierwsza postać normalną można przedstawić na przykładzie tabel zamówienia i klienci. Tabele reprezentują relacje jeden do wielu. Klienci mogą wypożyczyć wiele samochodów, nie są ograniczani grupą kolumn Id samochodu.

Druga postać normalna

Zasadą drugiej postaci normalnej jest, że każda kolumna która nie należy do klucza (niekluczowa) musi zależeć od całego klucza głównego. Jest to rezultatem tego, że tabela nie może zawierać kolumny niekluczowej, która odnosi się tylko do jakiejś części złożonego klucza głównego. Doprowadzenie tabeli do drugiej postaci normalnej wymaga upewnienia się, że wszystkie kolumny wchodzą w skład klucza głównego odnoszą się do całego klucza głównego, a nie tylko do jednej jego składowej. Oznacza to, że kolumny tabeli nie są w całości powiązane z kluczem głównym.

Trzecia postać normalna

Trzecia postać normalna po części jest związana z zasadą zawartą w drugiej postaci normalnej w bardziej ogólny sposób: nie jest ograniczona tylko do złożonych kluczy głównych. Trzecie postać normalna wymaga, aby żadna kolumna niekluczowa nie zależała od innej kolumny niekluczowej (Patrz rys. 6). Każda kolumna nie będąca kluczem musi być związana z kolumną klucza głównego. Polega to na rozbiciu encji na tabele, które nie będą uzależnione od klucza. Trzecia postać normalna wystarczy aby usunąć wszystkie powtórzenia i zapewnić elastyczność. Analizując strukturę tabel widzimy, że spełniają one wymagania, drugiej oraz trzeciej postaci normalnej. Spełnione są wymagania drugiej postaci normalnej, ponieważ każda kolumna nie będąca kluczem zależy od całego klucza głównego. Trzecia postać normalna też jest spełniona gdyż żadna z kolumn nie będących kluczem nie zależy od innej kolumny nie będącej kluczem.

trzecia-postac-normalna

Rys. Przykład trzeciej postaci normalnej

Czwarta i piąta postać normalna

Czwarta postać normalna nie dopuszcza budowania niezależnych związków jeden do wiele między kolumnami klucza głównego i kolumnami niekluczowymi.

Piąta postać normalna podprowadza proces normalizacji do logicznego końca. Wszystkie tabele są podzielone na najmniejsze możliwe kawałki co ma na celu pozbycie się redundancji występującej w tabelach. Zaletą takiej normalizacji jest możliwość panowania nad spójnością bazy danych oraz mamy pewność, że każdy element w bazie pojawia się tylko raz. W taki sposób nie musimy się martwić czy wszystkie powtórzenia zawarte w bazie będą uaktualnione. Ponieważ każda tabela ma kilka kolumn za każdym razem musimy wielokrotnie powtarzać te same klucze, aby można było w łatwy sposób połączyć tabele ze sobą w celu uzyskania informacji.

Dodaj komentarz