Normalizacja

31
Normalizacja Następne wcielenie

description

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. - PowerPoint PPT Presentation

Transcript of Normalizacja

Page 1: Normalizacja

NormalizacjaNastępne wcielenie

Page 2: Normalizacja

1. Bez powtórzeń

2. Pola zależą od klucza

3. Od całego klucza

4. I niczego innego, tylko klucza

Page 3: Normalizacja

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

Page 4: Normalizacja

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.

Page 5: Normalizacja

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.

Page 6: Normalizacja

Diagramy - zależności funkcyjne

Page 7: Normalizacja

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.

Page 8: Normalizacja

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.

Page 9: Normalizacja

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

Page 10: Normalizacja

Jeśli jednak zależność funkcyjna lub niefunkcyjna występuje w obydwu

kierunkach, to wybieramy jeden z nich.

NrPrac NrTelWewn

Page 11: Normalizacja

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

Page 12: Normalizacja

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.

Page 13: Normalizacja

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

Page 14: Normalizacja
Page 15: Normalizacja

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.

Page 16: Normalizacja

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.

Page 17: Normalizacja

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.

Page 18: Normalizacja
Page 19: Normalizacja

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.

Page 20: Normalizacja

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.

Page 21: Normalizacja

• Postać normalna Boyce'a/Codda określa przede wszystkim, że nie mogą istnieć zależności funkcjonalne między kluczami kandydującymi

Page 22: Normalizacja

IdDostawcy

IdProduktu

NazwaDost

IdProduktu

Ilość

CenaJedn

Page 23: Normalizacja

Dostawcy

Produkty

Page 24: Normalizacja

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.

Page 25: Normalizacja

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.

Page 26: Normalizacja

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

Page 27: Normalizacja

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

Page 28: Normalizacja
Page 29: Normalizacja

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

Page 30: Normalizacja

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

Page 31: Normalizacja

Dealer Firma Pojazd

Jones Ford Osobowy

Jones Renault Furgonetka

Smith Ford Furgonetka

Smith Renault Furgonetka