Normalizacja tabel

Normalizacja tabel

Normalizację stosuje się, aby sprawdzić, czy zaprojektowane tabele mają prawidłową strukturę. Proces normalizacji rozpoczynamy, gdy zostanie utworzony wstępny projekt tabel. Pozwala ona określić, czy informacje przewidziane w projekcie bazy zostały przydzielone do właściwych tabel. Natomiast nie da odpowiedzi na pytanie, czy projekt bazy danych jest prawidłowy.

Korzyści płynące z normalizacji tabel są następujące:

  • zlikwidowanie problemu powtarzania danych,
  • optymalizacja objętości bazy danych,
  • optymalizacja efektywności obsługi bazy danych,
  • minimalizacja zagrożenia błędami przy wprowadzaniu danych.

Normalizacja bazy danych wymaga rozbicia dużych tabel na mniejsze. Zmniejsza to wydajność bazy, dlatego w niektórych przypadkach nie normalizuje się tabel — szczególnie w systemach niekorzystających z modelu relacyjnego.

Stosowane są cztery reguły normalizacji, ale w większości projektów baz danych wystarczy sprawdzić trzy pierwsze. Zostaną one omówione poniżej.

Dla każdej z nich stosowane są określenia: pierwsza postać normalna (I PN), druga postać normalna (II PN) i trzecia postać normalna (III PN).

Pierwsza postać normalna

DEFINICJA Tabela jest w pierwszej postaci normalnej (I PN), gdy każdy wiersz w tabeli przechowuje informacje o pojedynczym obiekcie, a każde pole tabeli zawiera informację elementarną (atomową).

Oznacza to, że w komórce tabeli nie może wystąpić lista wartości, na przykład w polu Narodowość autora nie można umieścić dwóch narodowości — polskiej i angielskiej Załóżmy, że w projektowanej bazie danych dla księgarni została zaprojektowana tabela Realizacja zamówień z. polami: Nazwisko klienta, Imię, Adres, Telefon, PESEL, Tytuł książki, Liczba egzemplarzy, Cena. W polu Tytuł książki będą umieszczane tytuły książek zakupionych przez klienta. Gdy klient kupi dwie książki, w polu Tytuł książki należałoby wpisać dwa tytuły. Powstałaby lista wartości (rysunek 1.30). Tak zaprojektowana tabela nie iest w I PN. Nie bedzie możliwe prawidłowe przetwarzanie danvch w dwóch wierszach. W pierwszym wierszu w polu Tytuł książki należy wpisać tytuł pierwszej książki, w drugim — tytuł drugiej książki, natomiast nazwisko klienta nie powtórzone w liczbie wierszy równej liczbie zakupionych książek.

Druga postać normalna

Ta reguła i następna służą do sprawdzenia, czy w tabeli i bazie danych nie doszłe redundancji, czyli niepotrzebnego powtarzania danych. Ponieważ II PN odnosi się do klucza podstawowego, należy określić ten klucz dla tabeli, Jeżeli klucz podstaw: składa się z jednego pola, tabela jest w II PN, ponieważ wszystkie pola, poza pc klucza podstawowego, muszą odnosić się do pola klucza podstawowego.

W zaprojektowanej tabeli Realizacja zamówień kluczem podstawowym będzie kor nacja pól Nazwisko klienta, Imię oraz Tytuł książki. Pola niewchodzące w skład kh podstawowego (Adres, Telefon, PESEL) zależą od pól Nazwisko i Imię, natomiast zależą od pola Tytuł książki. Pole Cena zależy jedynie od pola Tytuł książki (rysu 1.32). Tylko pole Liczba egzemplarzy zależy zarówno od pól Nazwisko i Imię, jak pola Tytuł książki, Tabela nie jest w II PN.

Normalizacja polega na podzieleniu tabeli na takie tabele, które spełnią warunek II PN, Tabelę Realizacja zamówień należy podzielić na trzy tabele: Klient, z polami Nazwisko, Imię, Adres, Telefon, PESEL; Zamówienia, z polami Nazwisko klienta, Tytuł książki, Liczba egzemplarzy; oraz Książki, z polami Tytuł książki i Cena (rysunek 1.33). Kluczem podstawowym w tabeli Klient są pola Nazwisko i Imię, w tabeli Zamówienia pola Nazwisko klienta i Tytuł książki, a w tabeli Książki pole Tytuł książki. Zostało zlikwidowane powtarzanie danych w tabeli Realizacja zamówień i wszystkie tabele są w II PN.

Trzecia postać normalna

DEFINICJA Tabela jest w trzeciej postaci normalnej (III PN), jeżeli jest w pierwszej i w drugiej postaci normalnej oraz każde z pól niewchodzących w skład klucza podstawowego niesie informację bezpośrednio o kluczu i nie odnosi się do żadnego innego pola

Załóżmy, że w projektowanej bazie danych dla księgarni została zaprojektowana tabela Faktura z polami: Nazwisko klienta, Imię, Adres, PESEL, Numer faktury, Sposób płatności wartości elementarne, czyli tabela jest w I PN. Klucz podstawowy to pole Numer fakt Wszystkie pola niewchodzące w skład klucza zależą od całego klucza, czyli tabela w. II PN. Sprawdźmy, czy tabela jest w III PN. Pola Sposób płatności i Data wystawi, śzktury odnoszą się do faktury, czyli zawierają informacje o kluczu. Natomiast pola A i PESEL zawierają informacje na temat klienta, a nie faktury (rysunek 1.34), czyli niosą informacji bezpośrednio o kluczu. Tabela nie jest w III PN.

Normalizacja, podobnie jak w przypadku II PN, polega na podzieleniu tabeli na t: tabele, które spełnią warunek II PN.

Tabelę Faktura należy podzielić na dwie tabele: Faktura (z polami Numer faktury, Sposób płatności i Data wystawienia faktury) oraz Klient (z polami Nazwisko klienta, Imię, Ac PESEL) (rysunek 1.35). Zostało zlikwidowane powtarzanie danych o kliencie w tabeli Faktura. Dane o kliencie będą zapisane tylko raz, w tabeli Klient.