Normalizacja baz danych. Reguły normalizacji


Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 47

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /home/platne/serwer318421/public_html/zeszyt.jedlikowski.com/wp-content/plugins/latex/latex.php on line 49

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 (N1NFNon-First Normal Form). Przykład tabeli doprowadzonej do N1NF:

tbl_klient
ID Imię Nazwisko Preferowana marka
1 Aleksander Głowacki
BMW
Audi
Mercedes-Benz
2 Stefan Żeromski
BMW
Fiat
3 Stanisław Wokulski
Żuk
Łada
Warszawa

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).

tbl_klient
ID Imię Nazwisko Preferowana marka
1 Aleksander Głowacki BMW, Audi, Mercedes-Benz
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.

2 myśli nt. „Normalizacja baz danych. Reguły normalizacji

  1. Pingback: [SQL] Normalizacja bazy danych – co to, po co i dlaczego to wszystko | JonyT

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.