Normalizacja

37
Normalizacja Wykład 4 Prowadzący: dr Paweł Drozda

description

Normalizacja. Wykład 4 Prowadzący: dr Paweł Drozda. Pojęcie normalizacji. Reguły projektowania relacyjnych baz danych Dekompozycja schematu relacji w celu pozbycia się niepożądanych cech Pierwotnie – trzy postacie normalne wprowadzone przez Codda - PowerPoint PPT Presentation

Transcript of Normalizacja

Page 1: Normalizacja

Normalizacja

Wykład 4Prowadzący: dr Paweł Drozda

Page 2: Normalizacja

dr Paweł Drozda

Pojęcie normalizacji Reguły projektowania relacyjnych baz

danych Dekompozycja schematu relacji w celu

pozbycia się niepożądanych cech Pierwotnie – trzy postacie normalne

wprowadzone przez Codda Później - postać normalna Boyce’a –

Codda, czwarta i piąta postać normalna wprowadzona przez Fagina

Page 3: Normalizacja

dr Paweł Drozda

Po co normalizować? (1)

Student

nrindeksu nazwisko adres przedmiot ocena

127000 Maliniak Świerkowa 6 Analiza 2

127000 Maliniak Świerkowa 6 Algebra 3

127000 Maliniak Świerkowa 6 Bazy danych

3

127000 Maliniak Świerkowa 6 W-F 5

123123 Kowal Akacjowa 1 Algebra 4

123123 Kowal Akacjowa 1 Bazy danych

5

123123 Kowal Akacjowa 1 W-F 3

666555 Nowak Różana 4/78 PTO 3

666555 Nowak Różana 4/78 Sieci 4

Page 4: Normalizacja

dr Paweł Drozda

Po co normalizować? (2)

nrindeksu, przedmiot – pole unikalne Problemy (anomalie):

Redundancja Przy wprowadzaniu danych Przy usuwaniu danych Przy aktualizacji

Rozwiązanie – rozkład relacji na relacje Student oraz Egzamin

Page 5: Normalizacja

dr Paweł Drozda

Po co normalizować? (3)

Student

nrindeksu nazwisko adres

127000 Maliniak Świerkowa 6

123123 Kowal Akacjowa 1

666555 Nowak Różana 4/78

Egzamin

nrindeksu przedmiot ocena

127000 Analiza 2

127000 Algebra 3

127000 Bazy danych 3

127000 W-F 5

123123 Algebra 4

123123 Bazy danych 5

123123 W-F 3

666555 PTO 3

666555 Sieci 4

Rozwiązanie:

Page 6: Normalizacja

dr Paweł Drozda

Po co normalizować? (4)

adres i nazwisko – tylko w jednej krotce (rozwiązanie redeundancji)

przy wstawianiu nowego studenta – niekoniecznie przedmiot i ocena (rozwiązanie problemu wstawiania)

usunięcie egzaminu nie usuwa studenta (rozwiązanie problemu usuwania)

aktualizacja adresu, nazwiska – tylko raz (rozwiązanie problemu aktualizacji)

Page 7: Normalizacja

dr Paweł Drozda

Zależności funkcyjne (1)

Definicja Jeśli dwie krotki relacji R są zgodne dla

atrybutów A1,…,An to muszą być zgodne w pewnym atrybucie B

Zapis

A1,…,An B

Gdy: A1,…,An B1 … A1,…,An Bm, to zapisujemy

A1,…,An B1,…,Bm

Page 8: Normalizacja

dr Paweł Drozda

Zależności funkcyjne – przykład (1)

Student

nrindeksu nazwisko adres przedmiot ocena

127000 Maliniak Świerkowa 6 Analiza 2

127000 Maliniak Świerkowa 6 Algebra 3

127000 Maliniak Świerkowa 6 Bazy danych 3

127000 Maliniak Świerkowa 6 W-F 5

123123 Kowal Akacjowa 1 Algebra 4

123123 Kowal Akacjowa 1 Bazy danych 5

123123 Kowal Akacjowa 1 W-F 3

666555 Nowak Różana 4/78 PTO 3

666555 Nowak Różana 4/78 Sieci 4

Page 9: Normalizacja

dr Paweł Drozda

Zależności funkcyjne – przykład (2)

Zależności funkcyjne nrindeksu nazwisko nrindeksu adres

ponieważ:

127000 Maliniak, Świerkowa 6

123123 Kowal, Akacjowa 1

666555 Nowak, Różana 4/78

Page 10: Normalizacja

dr Paweł Drozda

Klucze Nadklucz – podzbiór atrybutów w relacji od

którego wszystkie pozostałe zależą funkcyjnie

Zbiór atrybutów (A1,…,An) tworzy klucz relacji jeżeli: Pozostałe atrybuty są funkcyjnie zależne od

(A1,…,An) Nie istnieje podzbiór zbioru {A1,…,An}, od

którego pozostałe atrybuty są funkcyjnie zależne (klucz musi być minimalny)

Page 11: Normalizacja

dr Paweł Drozda

Klucze – przykład (1)

Zaliczenie

nrindeksu przedmiot Data ocena

12345 Analiza 2008-02-21 3,5

12345 Algebra 2008-02-21 3,5

12345 PTO 2008-02-01 5

12345 Bazy Danych 2008-02-01 5

54321 Bazy Danych 2008-02-08 5

54321 Algebra 2008-02-21 3,5

54321 PTO 2008-02-05 3

66666 Bazy Danych 2008-02-01 2

66666 PTO 2008-02-11 3

Page 12: Normalizacja

dr Paweł Drozda

Klucze – przykład (2)

Klucz – (nrindeksu, przedmiot) Pozostałe dwa pola zależne funkcyjnie

od nrindeksu i przedmiot nrindeksu, przedmiot data, ocena

(przy założeniu że dany student może mieć jedną ocenę z zaliczenia)

Page 13: Normalizacja

dr Paweł Drozda

Wykrywanie kluczy Dla relacji stworzonej ze zbioru encji –

atrybuty kluczowe tego zbioru encji Związki binarne:

Związek wiele do wiele – klucz tworzony z kluczy obu zbiorów encji

Związek wiele do jeden – klucze pochodzą ze zbioru encji po stronie wiele

Związek jeden do jeden – klucz dowolnego ze zbiorów encji brany pod uwagę

Związki wieloargumentowe – nie da się jednoznacznie określić klucza

Page 14: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (1)

Poprzez zastosowanie reguł otrzymane zbiory są równoważne z wejściowymi

Zasady podziału i łączenia Podział

A1,…,An B1,…,Bm A1,…,An Bi, i=1,…,m

nrindeksu nazwisko, adres można podzielić:

nrindeksu nazwisko, nrindeksu adres Łączenie – odwrotność podziału

Page 15: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (2)

Reguła zależności trywialnych Typy zależności dla A1,…,An B1,…,Bm:

Trywialna – gdy B jest podzbiorem A Nietrywialna – gdy choć jeden element ze zbioru

B nie należy do A Całkowicie nietrywialna – gdy żaden atrybut

zbioru B nie należy do zbioru A Reguła zależności:

Dla A1,…,An B1,…,Bm zbiór B można ograniczyć do podzbioru elementów nie należących do A

Page 16: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (3)

Domknięcie zbioru atrybutów nad zbiorem zależności S – ozn. {A1,…,An}+

- zbiór atrybutów spełniających wszystkie zależności ze zbioru S (zakładając występowanie zależności trywialnych)

Page 17: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (4)

Tworzenie domknięcia Start: X={A1,…,An}

X – zbiór domknięcia Dla dowolnych B1,…,Bk C, gdzie B1,…,Bk

należą do X a C nie należy do X, C zostanie dołączone do X

Poprzednia procedura powtarzana aż do momentu gdy nie da się dodać żadnego atrybutu do X – wtedy X={A1,…,An}+

Page 18: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (5)

Domknięcie – przykładRelacja z atrybutami A,B,C,D,E,F,GSzukane domknięcie dla zbioru {A,B} z zależnościami funkcyjnymi:AB D, ACD E, D C, EF G1. X={A,B} dodane D z zależności ABD2. X={A,B,D} dodane C z zależności DC3. X={A,B,D,C} dodane E z zależności ACDE4. X={A,B,D,C,E}={A,B}+ - kolejnych atrybutów nie można już dodać

Page 19: Normalizacja

dr Paweł Drozda

Reguły dotyczące zależności funkcyjnych (6)

Domknięcie informuje, czy dana zależność funkcyjna wynika z S

Reguła przechodniościJeśli w relacji R zachodzą zależnościA1,…,An B1,…,Bm i B1,…,Bm C1,…,Ck

to również w tej relacji zachodzi:A1,…,An C1,…,Ck

Klucz relacji zbiór {A1,…,An}+ zawiera wszystkie elementy

relacji usunięcie elementu ze zbioru {A1,…,An} skutkuje

zmniejszeniem się zbioru {A1,…,An}+

Page 20: Normalizacja

dr Paweł Drozda

Normalizacja

Dekompozycja relacji, aż do osiągnięcia pożądanych cech schematu – różnych dla każdej postaci normalnej

Własności normalizacji: zachowania atrybutów zachowania informacji zachowania zależności

Page 21: Normalizacja

dr Paweł Drozda

Pierwsza postać normalna – 1NF (1)

Definicja – relacja jest w pierwszej postaci normalnej wtw gdy każdy atrybut jest zależny funkcyjnie od klucza relacji

Oceny

Student Ocena

Nowak 2;4;3,5

Kowal 2;5

Oceny w 1NF

Student Ocena

Nowak 2

Nowak 4

Nowak 3,5

Kowal 2

Kowal 5

Page 22: Normalizacja

dr Paweł Drozda

Druga postać normalna - 2NF

Definicja – relacja jest w drugiej postaci normalnej wtw gdy jest w pierwszej postaci normalnej oraz każdy atrybut niekluczowy jest w pełni funkcyjnie zależny od klucza głównego (zależy o całego klucza, a nie od jego części)

Page 23: Normalizacja

dr Paweł Drozda

Przekształcenie do 2NF - przykład

Zaliczenie w 1NF

Nrindeksu przedmiot Nazwisko ocena

12345 Analiza Kowal 3,5

12345 Algebra Kowal 3,5

54321 Bazy Danych Nowak 5

54321 Algebra Nowak 3,5

Student w 2NF

nrindeksu Nazwisko

12345 Kowal

54321 Nowak

Zaliczenie w 2NF

nrindeksu przedmiot ocena

12345 Analiza 3,5

12345 Algebra 3,5

54321 Bazy Danych 5

54321 Algebra 3,5

Page 24: Normalizacja

dr Paweł Drozda

Trzecia postać normalna – 3NF

Definicja – relacja jest w trzeciej postaci normalnej wtw gdy jest w drugiej postaci normalnej oraz gdy każdy niekluczowy atrybut relacji jest bezpośrednio zależny od klucza relacji

Page 25: Normalizacja

dr Paweł Drozda

Przekształcenie do 3NF - przykładPrzedmioty w 2 NF

przedmiot pesel Nazwisko

Analiza 78071103350

Kowal

Algebra 78071103350

Kowal

Bazy Danych 68121103312

Nowak

Wykładowcy w 3NF

pesel Nazwisko

78071103350

Kowal

78071103350

Kowal

68121103312

Nowak

Przedmioty w 3NF

przedmiot pesel

Analiza 78071103350

Algebra 78071103350

Bazy Danych 68121103312

Page 26: Normalizacja

dr Paweł Drozda

Dekompozycja relacji

Podział atrybutów na dwa schematy nowych relacji

Podział krotek przez rzutowanie {A1,…,An}={B1,…,Bm} suma {C1,…,Ck}

Page 27: Normalizacja

dr Paweł Drozda

Postać normalna Boyce’a - Codda

Definicja – relacja jest w postaci normalnej Boyce’a – Codda wtw gdy dla każdej zależności nietrywialnej A1,…,An B zbiór {A1,…,An} jest nadkluczem tej relacji

Page 28: Normalizacja

dr Paweł Drozda

BCNF – przykład (1)

Relacja: adresmiasta(kod,miasto,ulicanr)

Zależności funkcyjnekod miasto, miasto,ulica kodKlucz (miasto, ulica)

Relacja nie jest w BCNF ponieważ pierwsza zależność jest niezgodna z definicją

Page 29: Normalizacja

dr Paweł Drozda

BCNF – przykład (2)

Wykładowcy w BCNF

pesel Nazwisko

78071103350

Kowal

78071103350

Kowal

68121103312

Nowak

Przedmioty w BCNF

przedmiot pesel

Analiza 78071103350

Algebra 78071103350

Bazy Danych 68121103312

Page 30: Normalizacja

dr Paweł Drozda

BCNF - dekompozycja Odnalezienie nietrywialnej zależności funkcyjnej:

A1A2...An B1B2...Bn, która narusza BCNF – tzn. A1A2...An nie jest nadkluczem

Dodanie do prawej strony wszystkich atrybutów zależnych funkcyjnie od A1A2...An – w ten sposób powstaje nowa relacja

Druga relacja będzie się składała z atrybutów A1A2...An oraz z pozostałych (poza B1B2...Bn) atrybutów relacji

Page 31: Normalizacja

dr Paweł Drozda

BCNF – dekompozycja - przykład

Zaliczenie

nrindeksu przedmiot Nazwisko ocena

Student w BCNF

nrindeksu Nazwisko

Zaliczenie BCNF

nrindeksu przedmiot ocena

Nrindeksu, przedmiot ocena nrindeksu nazwisko

Page 32: Normalizacja

dr Paweł Drozda

Zależności wielowartościowe (1) Oznaczenie:

A B – dla każdego zbioru argumentów A istnieje wiele różnych argumentów z Bnp. dla relacji osoba:Pesel kat.prawajazdy

Jeśli w relacji są co najmniej dwie zależności wielowartościowe - redundancja

Page 33: Normalizacja

dr Paweł Drozda

Zależności wielowartościowe (2)

Loty

Lot Dzień Typsamolotu

100 Poniedziałek 111

100 Wtorek 111

100 Poniedziałek 222

100 Wtorek 222

na jednej trasie – dwa typy samolotów

Modyfikacja – dodatkowy dzień (czwartek) dodatkowy typ samolotów (333)

Page 34: Normalizacja

dr Paweł Drozda

Zależności wielowartościowe (3)

Loty

Lot Dzień Typsamolotu

100 Poniedziałek 111

100 Wtorek 111

100 Czwartek 111

100 Poniedziałek 222

100 Wtorek 222

100 Czwartek 222

100 Poniedziałek 333

100 Wtorek 333

100 Czwartek 333

Doszło 5 krotek.

Rozwiązanie:

DekompozycjaLoty 1

Lot Dzień

100 Poniedziałek

100 Wtorek

100 Czwartek

Loty 2

Lot Typsamolotu

100 111

100 222

100 333

Page 35: Normalizacja

dr Paweł Drozda

Zależności wielowartościowe (4)

Konsekwencja 1NF – nie dopuszcza aby krotki zawierały atrybuty wielowartościowe

Zależność trywialnaXY jest trywialna, gdy:Y jest podzbiorem X lub X suma Y =R

Page 36: Normalizacja

dr Paweł Drozda

Czwarta postać normalna

Definicja:Relacja jest w 4NF wtw gdy:relacja jest w 3NF i każda zależnośćA1,…,An B1,…,Bm jest trywialna lub {A1,…,An} jest nadkluczem

Page 37: Normalizacja

dr Paweł Drozda

Dekompozycja na relacje w 4NF

Relacja R dekomponuje się na relacje R1 i R2 bez utraty informacji, gdy:

R1 iloczyn R2 (R1-R2) lubR1 iloczyn R2 (R2-R1)