390 likes | 795 Views
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
E N D
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 • Później - postać normalna Boyce’a – Codda, czwarta i piąta postać normalna wprowadzona przez Fagina dr Paweł Drozda
Po co normalizować? (1) 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 dr Paweł Drozda
Po co normalizować? (3) Rozwiązanie: 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) 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,…,AnB • Gdy: A1,…,AnB1 … A1,…,AnBm, to zapisujemy A1,…,AnB1,…,Bm dr Paweł Drozda
Zależności funkcyjne – przykład (1) 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 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) dr Paweł Drozda
Klucze – przykład (1) 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) 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 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,…,AnB1,…,Bm A1,…,AnBi, i=1,…,m nrindeksu nazwisko, adres można podzielić: nrindeksu nazwisko, nrindeksu adres • Łączenie– odwrotność podziału dr Paweł Drozda
Reguły dotyczące zależności funkcyjnych (2) • Reguła zależności trywialnych • Typy zależności dla A1,…,AnB1,…,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,…,AnB1,…,Bm zbiór B można ograniczyć do podzbioru elementów nie należących do A 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) 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}+ dr Paweł Drozda
Reguły dotyczące zależności funkcyjnych (5) • Domknięcie – przykład Relacja z atrybutami A,B,C,D,E,F,G Szukane domknięcie dla zbioru {A,B} z zależnościami funkcyjnymi: AB D, ACD E, D C, EF G 1. X={A,B} dodane D z zależności ABD 2. X={A,B,D} dodane C z zależności DC 3. X={A,B,D,C} dodane E z zależności ACDE 4. X={A,B,D,C,E}={A,B}+ - kolejnych atrybutów nie można już dodać 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ści Jeśli w relacji R zachodzą zależności A1,…,AnB1,…,Bm i B1,…,BmC1,…,Ck to również w tej relacji zachodzi: A1,…,AnC1,…,Ck • Klucz relacji • zbiór {A1,…,An}+ zawiera wszystkie elementy relacji • usunięcie elementu ze zbioru {A1,…,An} skutkuje zmniejszeniem się zbioru {A1,…,An}+ 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 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 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) dr Paweł Drozda
Przekształcenie do 2NF - przykład 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 dr Paweł Drozda
Przekształcenie do 3NF - przykład dr Paweł Drozda
Dekompozycja relacji • Podział atrybutów na dwa schematy nowych relacji • Podział krotek przez rzutowanie • {A1,…,An}={B1,…,Bm} suma {C1,…,Ck} 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 dr Paweł Drozda
BCNF – przykład (1) • Relacja: adresmiasta(kod,miasto,ulicanr) • Zależności funkcyjne kod miasto, miasto,ulicakod Klucz (miasto, ulica) • Relacja nie jest w BCNF ponieważ pierwsza zależność jest niezgodna z definicją dr Paweł Drozda
BCNF – przykład (2) 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 dr Paweł Drozda
BCNF – dekompozycja - przykład Nrindeksu, przedmiot ocena nrindeksu nazwisko 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 B np. dla relacji osoba: Pesel kat.prawajazdy • Jeśli w relacji są co najmniej dwie zależności wielowartościowe - redundancja dr Paweł Drozda
Zależności wielowartościowe (2) na jednej trasie – dwa typy samolotów Modyfikacja – dodatkowy dzień (czwartek) dodatkowy typ samolotów (333) dr Paweł Drozda
Zależności wielowartościowe (3) Doszło 5 krotek. Rozwiązanie: Dekompozycja dr Paweł Drozda
Zależności wielowartościowe (4) • Konsekwencja 1NF – nie dopuszcza aby krotki zawierały atrybuty wielowartościowe • Zależność trywialna XY jest trywialna, gdy: Y jest podzbiorem X lub X suma Y =R 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 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) lub R1 iloczyn R2 (R2-R1) dr Paweł Drozda