Plan Normalizacja Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski 1. Cel normalizacji. 2. Klucze schematów relacyjnych atrybuty kluczowe i niekluczowe. 3. 2PN druga postać normalna. 4. 3PN trzecia postać normalna. 5. PNBC postać normalna Boyce a-codda 6. Podsumowanie T. Pankowski, Normalizacja 1 T. Pankowski, Normalizacja 2 Cel normalizacji 1. Normalizacja jest jednym z etapów projektowania schematu relacyjnej bazy danych. 2. Celem projektowania schematów relacyjnych jest wyeliminowanie redundancji i anomalii. 3. Redundancja oznacza wielokrotne pamiętanie tych samych danych. Redundancja jest najczęściej niepożądane i szkodliwa, choć niekiedy może być uzasadniona. 4. Anomalie (wady): anomalia dołączania nie można dołączyć krotki, gdyż obok jednego rodzaju danych muszą być w niej umieszczone inne dane, których jeszcze nie znamy anomalia aktualizacji dane zmieniane są w jednym miejscu, ale w innych pozostają w poprzedniej postaci (związek z redundancją) anomalia usuwania usunięcie krotki powoduje niepożądaną usunięcie istotnych danych innego rodzaju Pojęcie klucza a) od klucza K muszą być funkcyjnie zależne wszystkie atrybuty relacji, b) K musi być minimalny, tzn. żaden jego właściwy podzbiór nie może mieć właściwości identyfikowalności, c) każdy zbiór K o właściwościach a) i b) nazywany jest często kluczem kandydującym, spośród takich kluczy wybieramy klucz główny (ang. primary key). T. Pankowski, Normalizacja 3 T. Pankowski, Normalizacja 4
Właściwości klucza głównegog 1. Minimalna liczba atrybutów 2. Żaden z atrybutów nie może przyjmować wartości pustej (NULL) Przykład: W relacji (tabeli) Osoba(, Imię, DataUr, Pesel, Nip, ), kluczami kandydującymi są: {, Imię, DataUr} {Pesel}, (11 znaków, np. 81031654323) {Nip}, (13 znaków, np. 782-234-12-78) Jako klucz główny można wybrać Pesel (krótsza wartość niż Nip). Lepiej utworzyć dodatkowy atrybut o jednoznacznych wartościach lokalnie (np. w danej firmie) IdOs. Ostatecznie więc: Osoba(IdOs,, Imię, DataUr, Pesel, Nip, ) Atrybuty kluczowe i niekluczowe 1. Atrybuty należące do któregoś z kluczy (kandydujących) nazywamy atrybutami kluczowymi. 2. Atrybuty, które nie należą do żadnego klucza nazywamy atrybutami niekluczowymi. 3. Atrybuty należące do klucza głównego są często podkreślane. 4. Podstawą normalizacji jest analiza zależności funkcyjnych między atrybutami kluczowymi a niekluczowymi, a także zależności między atrybutami niekluczowymi. Wynik tej analizy uwzględnia się w procesie normalizacji. T. Pankowski, Normalizacja 5 T. Pankowski, Normalizacja 6 Druga Postać Normalna 2PN Wady relacji nie będącej b w 2PN Schemat relacyjny, który nie jest w 2PN Egzamin(,,,, ) Egzamin(,,,, ) Klucz główny: {, } Atrybuty kluczowe:, Atrybuty niekluczowe:,, i zależą funkcyjnie od (tj. od części klucz głównego) zależy funkcyjnie od całego klucza głównego. Taka niejednorodność jest źródłem wielu anomalii. T. Pankowski, Normalizacja 7 Anomalia dołączania nie można dołączyć informacji o studencie dopóki nie zda co najmniej jednego egzaminu (atrybut kluczowy nie może być NULL-em). Redundancja pewne informacje ( i ) pamiętane są wielokrotnie, problemy z wprowadzaniem i modyfikacją danych. Anomalia usuwania usunięcie informacji o zdanym egzaminie (np. Nowaka) powoduje usunięcie wszystkich informacji o studencie (jeśli to był jedyny jego egzamin). T. Pankowski, Normalizacja 8
Druga Postać Normalna 2PN Pełna zależność funkcyjna Sprowadzanie do 2PN Egzamin(,,,, ) Definicja 2PN Wniosek: schemat relacyjny, w którym każdy klucz jest jednoelementowy jest w 2PN 9 Jest to rozkład bez straty danych, gdyż jest sterowany zależnością funkcyjną:, (Patrz twierdzenie o rozkładalności!) T. Pankowski, Normalizacja 10 Sprowadzanie do 2PN - algorytm Sprowadzanie do 2PN - przykład Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w 2PN równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w 2PN. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje niepełna zależność funkcyjna X A F (naruszenie warunku 2PN!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). X A F niepełna zależność funkcyjna R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X = {}, X + = {,, } T. Pankowski, Normalizacja 12
Sprowadzanie do 2PN - uwagi Wady relacji w 2PN brak 3PN Schemat relacyjny, którego każdy klucz jest jednoelementowy jest w 2PN. Proces sprowadzania do 2PN nie jest jednoznaczny dla jednego schematu może istnieć wiele równoważnych informacyjnie układów projekcji tego schematu w 2PN. Spośród równoważnych układów schematów relacyjnych w 2PN w zasadzie wybieramy ten, który ma najmniejszą liczbę elementów. Student jest w 2PN (klucz 1-elementowy), ale występuje redundancja (kolumna Województwo) i anomalie. Przyczyna - zależność funkcyjna od atrybutu niekluczowego: Miasto Województwo T. Pankowski, Normalizacja 13 T. Pankowski, Normalizacja 14 Wady relacji w 2PN brak 3PN Tranzytywne zależno ności funkcyjne Zależności funkcyjne:,,, Wykonawca jest w 2PN (klucz 1-elementowy), ale występuje redundancja (kolumna ) i anomalie. Przyczyna - zależność funkcyjna od atrybutu niekluczowego: Np. Nie można wprowadzić danych o koszcie projektu dopóki nie zostanie określony co najmniej jeden jego wykonawca. K X A Uwaga: Jeśli A jest tranzytywnie zależny od K, to oczywiście A jest zależny od K również w zwykłym sensie. Tutaj podkreślamy jedynie, że istnieje wówczas pośredniczący zbiór X. T. Pankowski, Normalizacja 15 T. Pankowski, Normalizacja 16
Definicja 3PN Sprowadzanie do 3PN Wykonawca(,,,, ) Właściwość: Schemat relacyjny R = (U,F) jest w 3PN, w.i t.w. gdy dla każdej zależności X A F + zachodzi jeden z poniższych warunków: A X (zależność trywialna), albo X jest nadkluczem (zawiera klucz), albo A jest atrybutem kluczowym. Jest to rozkład bez straty danych, gdyż jest sterowany zależnością funkcyjną: (Patrz twierdzenie o rozkładalności!) T. Pankowski, Normalizacja 17 T. Pankowski, Normalizacja 18 Sprowadzanie do 3PN - algorytm Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w 3PN równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w 3PN. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje tranzytywna zależność funkcyjna X A F (naruszenie warunku 3PN!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). Sprowadzanie do 3PN - przykład Wykonawca(,,,, ) X A F tranzytywna zależność funkcyjna R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X =, X + = {, } T. Pankowski, Normalizacja 20
PNBC - Postać Normalna Boyce a-codda DEFINICJA Mówimy, że schemat relacyjny jest w PNBC, jeśli dla każdej nietrywialnej zależności X A należącej do F, X jest nadkluczem. nietrywialna oznacza, że A nie należy do X, nadklucz oznacza, że X zawiera klucz (jest superkluczem). Uwaga: Każdy schemat relacyjny w PNBC musi być w 3PN. T. Pankowski, Normalizacja 21 Sprowadzanie do PNBC - algorytm Wejście: - schemat relacyjny. Wyjście: Zbiór schematów relacyjnych w PNBC równoważny R. Kroki: 1. Ω = {R = (U,F)}, Γ = 2. Czy Ω jest pusty? Tak koniec algorytmu, każdy schemat relacyjny w Γ jest w PNBC. Nie przejdź do (3) 3. Weź dowolny schemat R = (U,F) z Ω. 4. Czy istnieje nietrywialna zależność funkcyjna X A F, taka że X + U (X nie jest wtedy nadkluczem, naruszenie warunku PNBC!). Tak przejdź do (5) Nie usuń R z Ω i dołącz do Γ 5. Rozłóż R na dwie projekcje: R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), X + U - zbiór wszystkich atrybutów zależnych od X, F 1 zawiera wszystkie te ZF ze zbioru F +, których atrybuty zawarte są w X +. Podobnie dla F 2. 6. Przejdź do (2). Graficzna interpretacja dekompozycji do PNBC X A F, X + U R 1 =(X +, F 1 ) i R 2 = ((U X + ) X, F 2 ), R 1 Właściwości PNBC Schemat relacyjny w PNBC jest w 3PN Uwzględnia zależności również atrybutów kluczowych (w 2PN i w 3PN rozpatruje się tylko zależności, w których po prawej stronie występują jedynie atrybuty niekluczowe). Uwzględnienie zależności atrybutów kluczowych może niekiedy okazać się niekorzystne może prowadzić do zbytniego rozdrobnienia schematów relacyjnych. Ilustruje to następny przykład, gdzie mamy utratę zależności funkcyjnych. U-X + X X + -X R 2 R T. Pankowski, Normalizacja 23 T. Pankowski, Normalizacja 24
PNBC a 3PN Konsekwencje utraty zależno ności funkcyjnych {Miasto, Ulica} Kod Kod Miasto Klucze: {Miasto, Ulica} {Ulica, Kod} Relacja Kody jest w 3PN, gdyż w zależności Kod Miasto, Miasto jest atrybutem kluczowym. Zależność Kod Miasto narusza jednak warunek PNBC, {Kod} + = {Kod, Miasto}. Po sprowadzeniu do PNBC otrzymujemy: Kody1 = ({Miasto, Kod}, Kod Miasto) Kody2 = ({Ulica, Kod}, ) Problem: Tracimy zależność {Miasto, Ulica} Kod. Rozkład ze stratą zależności. T. Pankowski, Normalizacja 25 W następujących tabelach nie jesteśmy w stanie bezpośrednio wymusić zależności: Miasto,Ulica Kod Dopiero po złączeniu Kody1 i Kody2 według atrybutu Kod widzimy, że zależność Miasto,Ulica Kod nie jest spełniona : Mimo, że żadna ZF nie została naruszona w poszczególnych relacjach, to jednak Miasto,Ulica Kod została naruszona w bazie danych jako całości. T. Pankowski, Normalizacja 26 Podsumowanie 1. Decyzja o tym, czy pozostawić schemat w 3PN, czy sprowadzać go do PNBC musi być starannie przemyślana. 2. Praktyka pokazuje, że 3PN jest najczęściej najlepszym rozwiązaniem. 3. Czasem okazuje się, że korzystne jest pozostawienie relacji w niższej postaci normalnej (w 2PN lub nawet tylko w 1PN). Niekiedy wykonuje się wręcz proces denormalizacji. Przykładem są analityczne bazy danych (hurtownie danych). 4. Wybór konkretnej postaci normalnej powinien być jednak dokonany w sposób świadomy, z uwzględnieniem wszystkich tego konsekwencji. T. Pankowski, Normalizacja 27