330 likes | 612 Views
Normalizacja. Następne wcielenie. Bez powtórzeń Pola zależą od klucza Od całego klucza 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.
E N D
Normalizacja Następne wcielenie
Bez powtórzeń • Pola zależą od klucza • Od całego klucza • 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: • Wymaga, aby cały zbiór danych był w pełni określony, zanim rozpocznie się proces. • 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.
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 Ilość CenaJedn NazwaDost IdProduktu
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.
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 UmiejPrac NrPrac JezykPrac
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