Po zaprojektowaniu bazy danych należy sprawdzić, czy spełnione są zasady normalizacji baz danych. W teorii istnieje sześć podstawowych zasad normalizacji i jedna dodatkowa. Zasady normalizacji (zwane postaciami normalnymi) określone są jako NF (Normal Form), np. 1NF
(First Normal Form). Każda kolejna reguła implikuje poprzednie. W praktyce doprowadza się bazy do trzeciej postaci normalnej, w szczególnych przypadkach sprawdza się, czy baza danych spełnia reguły IV, V lub VI postaci normalnej.
Korzyści wynikające z normalizacji baz danych:
- zlikwidowanie problemu powtarzania danych
- optymalizacja objętości bazy danych
- optymalizacja efektywności obsługi bazy danych
- minimalizacja zagrożenia błędami przy wprowadzaniu i usuwaniu danych (uniknięcie anomalii)
UWAGA: w szczególnym przypadku, gdzie bardzo ważnym zagadnieniem jest wydajność obsługi bazy danych, doprowadza się ją do niepierwszej postaci normalnej (N1NF - Non-First Normal Form). Przykład tabeli doprowadzonej do N1NF:
tbl_klient | ||||||
ID | Imię | Nazwisko | Preferowana marka | |||
---|---|---|---|---|---|---|
1 | Aleksander | Głowacki |
|
|||
2 | Stefan | Żeromski |
|
|||
3 | Stanisław | Wokulski |
|
Reguły normalizacji baz danych:
Pierwsza postać normalna: baza danych spełnia 1. regułę normalizacji, jeśli każda tabela w niej zawarta jest relacją, tzn. spełnia postulaty Codd'a dotyczące projektowania tabel (patrz: poprzednie lekcje) i pojedyncze pole tabeli powinno zawierać informację elementarną (jednostkową) (niektórzy dodają, że pola, które można obliczyć z innych danych zawartych w bazie danych nie przechowuje się w bazie danych).
|
Ta tabela nie jest znormalizowana - kolumna preferowana marka zawiera pole wielowartościowe. |
UWAGA: jeśli baza danych lub tabela spełnia I regułę normalizacji, to mówimy, że znajduje się ona w pierwszej postaci normalnej. Proces doprowadzenia tabeli do wybranej postaci normalnej nazywa się normalizacją bazy danych (normalizacją tabel).
Do domu: dwa przykłady normalizacji do 1NF.
Druga postać normalna: występuje wtedy, gdy każde z pól niewchodzących w skład klucza głównego złożonego zależy w pełni funkcyjnie od całego klucza, a nie jego części. Problem rozwiązuje się sam, gdy stosujemy klucze główne proste. Jeśli baza danych spełnia I i II regułę normalizacji mówimy, że znajduje się ona w drugiej postaci normalnej.
Trzecia postać normalna: wtedy i tylko wtedy, gdy tabela jest w 2NF oraz gdy wszystkie pola niebędące polami klucza potencjalnego są od niego zależne bezpośrednio.
W zapisie formalnym 3NF ma postać: relacja jest w 3NF, gdy spełnia 1NF i 2NG oraz dla każdej nietrywialnej zależności funkcyjnej ( - czyt. z atrybutów relacji wynikają atrybuty , ale atrybuty relacji nie wchodzą w skład atrybutów relacji ) odpowiadającej relacji przynajmniej jeden z warunków jest spełniony:
- zbiór atrybutów jest superkluczem relacji
- jest kluczowym atrybutem relacji lub częścią superklucza.
UWAGA: Jeśli tabela spełnia 1NF, 2NF i 3NF, to mówimy, że znajduje się ona w trzeciej postaci normalnej.
Pingback: [SQL] Normalizacja bazy danych – co to, po co i dlaczego to wszystko | JonyT
Warto dodać, że najczęściej 3 postać normalna jest wystarczająca w normalizacji baz danych.