Normalizacja
description
Transcript of Normalizacja
NormalizacjaNastępne wcielenie
1. Bez powtórzeń
2. Pola zależą od klucza
3. Od całego klucza
4. I niczego innego, tylko klucza
Przysięga normalizacji
The key, the whole key
and nothing but the key.
So help me … Codd
Klucz, cały klucz i tylko klucz
…tak mi dopomóż Codd
Diagramy zależności• Klasyczna normalizacja jest opisana jako proces rozkładu
odwracalnego. Metoda rozkładu rozpoczyna się od jednej (uniwersalnej) relacji
• Rozkład odwracalny jest więc procesem projektowania, który gwarantuje, że utworzony zbiór danych będzie wolny od anomalii
• Metoda rozkładu ma jednak kilka wad, sprawia trudności zwłaszcza wówczas, gdy chcemy ją konsekwentnie stosować w praktyce jako metodę projektowania bazy danych:
1. Wymaga, aby cały zbiór danych był w pełni określony, zanim rozpocznie się proces.
2. Dla dużego zbioru danych proces ten jest:
a) bardzo czasochłonny,
b) trudny do zastosowania,
c) podatny na błędy popełnione przez człowieka.
Metoda graficzna• Główną zaletą metody diagramów zależności jest to, że określa
mechanizm przyrostowego projektowania bazy danych.
• Nie jest konieczny pełny zbiór elementów danych, aby móc rozpocząć proces projektowania.
• Analityk danych może rozpocząć pracę z małym zbiorem elementów danych mających centralne znaczenie.
• Następnie stopniowo może dodawać nowe elementy danych do tworzonego diagramu dopóty, dopóki wszystkie zależności nie będą w pełni udokumentowane.
• Diagram, który dokumentuje zależności (determinowanie) między elementami danych, nazywa się diagramem zależności lub diagramem determinowania.
• Zależność funkcyjną między dwoma elementami danych oznaczamy za pomocą strzałki łączącej determinujący element danych z zależnym elementem danych.
Diagramy - zależności funkcyjne
Zależności niefunkcyjne
• Mówimy, że element danych B jest niefunkcyjnie zależny od elementu danych A, jeżeli dla każdej wartości elementu danych A istnieje ograniczony zbiór wartości elementu danych B. Odwzorowanie nie jest już funkcyjne, ponieważ jest jeden do wiele.
NrPrac i JęzykPrac znajdują się w związku zależności niefunkcyjnej lub wielowartościowej. Innymi słowy, dla każdego NrPrac możemy zidentyfikować ograniczony zbiór kodów języków, które stosują się do tego pracownika.
Często okazuje się, że to, co jest jednowartościową zależnością w jednym kierunku, jest wielowartościową
zależnością w przeciwnym kierunku.
W takich wypadkach zawsze wybieramy kierunek zależności funkcyjnej. Powoduje to, że ewentualny
schemat relacyjny będzie o wiele prostszy. Jak się okaże, redukuje to liczbę wymaganych kluczy złożonych.
NrPrac NazwaWydz
Jeśli jednak zależność funkcyjna lub niefunkcyjna występuje w obydwu
kierunkach, to wybieramy jeden z nich.
NrPrac NrTelWewn
Zależności przechodnie• Istnieje zależność funkcyjna z NrPrac do NazwaDziału, z
NazwaDziału do lokalizacja i z NrPrac do lokalizacja.• Każdy układ, w którym A determinuje B, B determinuje C
i A determinuje również C, możemy uprościć do łańcucha od A do B i od B do C.
• Wykrycie i usunięcie zależności przechodnich między atrybutami upraszcza złożone diagramy zależności i jest ważną częścią procesu normalizacji
Zależności złożone• Dość często jeden element danych nie
wystarcza, aby w pełni zdeterminować wartości jakiegoś innego elementu danych. Kombinacja dwóch lub więcej elementów danych daje nam związek zależny.
Akomodacja
• Akomodacja - proces przekształcenia diagramu zależności w zbiór struktur tabel lub schemat relacyjny
• Akomodacja zależności funkcyjnych - każdy funkcyjnie determinujący element staje się kluczem głównym tabeli.
• Wszystkie bezpośrednio zależne od niego elementy danych stają się niegłównymi atrybutami tabeli - reguła Boyce'a-Codda
Klucze kandydujące• Klucz kandydujący jest dowolnym elementem danych,
który może pełnić funkcję klucza głównego tabeli.• Za pomocą diagramów zależności klucze kandydujące
są reprezentowane przez determinujące elementy danych.
• Wybieramy jeden z nich, aby był faktycznym kluczem tabeli, a drugi traktujemy jak zależny element danych w tabeli.
Reguła Boyce'a-Codda, powinna być zatem wyrażona następująco:
każdy funkcyjnie determinujący element staje się kluczem kandydującym relacji.
Innymi słowy:
z pewnej liczby kluczy kandydujących wybieramy jeden, aby pełnił funkcję klucza głównego.
Akomodacja zależności niefunkcyjnych
• Zależności niefunkcyjne przekształcamy stosując następującą regułę: Każdy niefunkcyjny determinujący element staje się częścią klucza głównego tabeli.
• Mówiąc dokładniej, tworzymy klucz złożony z determinującego elementu danych i zależnych elementów danych wchodzących w skład związku niefunkcyjnego.
Kolejne postacie normalne
• Pierwsza, druga i trzecia postać normalna dotyczą zależności funkcyjnych, czwarta i piąta postać normalna - zależności niefunkcyjnych.
• Pierwsza postać normalna dotyczy powtarzających się grup. Jeżeli zależności funkcyjne dokumentują związki jeden do wiele między danymi, to są one jawną reprezentacją powtarzających się grup.
• Druga postać normalna dotyczy zależności od części klucza. Tutaj wydobywamy zależności funkcyjne z klucza złożonego.
• Trzecia postać normalna dotyczy zależności przechodnich między danymi. Tutaj identyfikujemy determinujące elementy wśród niegłównych atrybutów tabeli.
Postać normalna Boyce’a/Codda
• BCNF traktowan jest jako odmiana 3NF i dotyczy szczególnego rodzaju relacji z wieloma kluczami kandydującymi
• Aby móc zastosować BCNF muszą być spełnione warunki:
– Relacja musi mieć co najmniej dwa klucze kandydujące,
– Co najmniej dwa klucze kandydujące muszą być kluczami złożonymi,
– Klucze kandydujące muszą mieć wspólne atrybuty.
• Postać normalna Boyce'a/Codda określa przede wszystkim, że nie mogą istnieć zależności funkcjonalne między kluczami kandydującymi
IdDostawcy
IdProduktu
NazwaDost
IdProduktu
Ilość
CenaJedn
Dostawcy
Produkty
Czwarta postać normalna
• Aby przejść z trzeciej postaci normalnej do czwartej, szukamy tabel, które zawierają dwie lub więcej niezależnych zależności wielowartościowych. Zależności wielowartościowe występują na szczęście rzadziej niż zależności od części klucza lub zależności przechodnie.
Czwarta postać normalna c.d.
• Przypuśćmy, że chcemy zaprojektować bazę danych pracowników Komisji Unii Europejskiej, która przechowuje informacje na temat umiejętności pracowników i języków, jakimi potrafią się posługiwać.
• Pracownik prawdopodobnie będzie posiadał kilka umiejętności (np. pisanie na maszynie, edytowanie tekstów, wykonywanie operacji arkusza kalkulacyjnego) i od większości pracowników wymaga się, aby mówili przynajmniej dwoma językami.
NrPracownika Umiejętność Język
0122443 Pisanie na maszynie Angielski
0122443 Pisanie na maszynie Francuski
0122443 Dyktowanie Angielski
0221133 Pisanie na maszynie Niemiecki
0221133 Dyktowanie Francuski
0332222 Pisanie na maszynie Francuski
0332222 Pisanie na maszynie Angielski
Pracownicy UE
NrPrac
UmiejPrac
JezykPrac
• W czwartej postaci normalnej te dwa związki nie mogą być reprezentowane w jednej tabeli
• Występowanie dwóch niezależnych zależności wielowartościowych oznacza, że musimy podzielić tabelę na dwie tabele
NrPracownika UmiejętnościPracownika
0122443 Pisanie na maszynie
0122443 Dyktowanie
0221133 Pisanie na maszynie
0221133 Dyktowanie
0332222 Pisanie na maszynie
NrPracownika Język
0122443 Angielski
0122443 Francuski
0221133 Niemiecki
0221133 Francuski
0332222 Francuski
0332222 Angielski
UmiejętnościUE
JęzykiUE
Piąta postać normalna
tabela w czwartej postaci normalnej jest w piątej postaci normalnej, jeżeli nie istnieje jej
rozkład odwracalny na zbiór mniejszych tabel
Dealer Firma Pojazd
Jones Ford Osobowy
Jones Renault Furgonetka
Smith Ford Furgonetka
Smith Renault Furgonetka