kluczem ocenił
Transkrypt
kluczem ocenił
Postacie normalne Plan wykładu • • • • • • Zależności funkcyjne Cel normalizacji Pierwsza postać normalna Druga postać normalna Trzecia postać normalna Postać normalna Boyca - Codda Pojęcie zależności funkcyjnej Definicja 1: Niech U będzie skończonym zbiorem atrybutów relacji R. Zależnością funkcyjną nazywamy każdy zapis postaci: X Y gdzie: X ,Y U Mówimy wówczas, że Y zależy funkcyjnie od X lub że X determinuje funkcyjnie Y Spełnienie zależności funkcyjnej Definicja 2: Niech dana będzie relacja R(U) i niech: X , Y U Mówimy, że w R spełniona jest zależność funkcyjna: X Y co zapisujemy: R X Y jeśli dla każdych dwóch krotek: r1, r 2 R zachodzi: r1[ X ] r 2[ X ] r1[Y ] r 2[Y ] Spełnienie zależności funkcyjnej przykład Egzamin NrStud Nazwisko Przedmiot Ocena 10 10 11 12 Kowalski Kowalski Nowak Wróbel Algebra Analiza Algebra Algebra 3 4 3 3 Egza min NrStud Nazwisko Czy zachodzi zależność odwrotna? Egzamin NrStud, Przedmiot Nazwisko Egzamin Przedmiot Ocena (?) Domknięcie zbioru atrybutów względem zależności funkcyjnych Zbiór: X { A U : X A} nazywamy domknięciem zbioru X względem zbioru zależności funkcyjnych. Twierdzenie: X Y Y X Wyznaczanie domknięcia przykład Dany niech będzie zbiór zależności F F = {A->B, B->C, C->A} Obliczamy domknięcie atrybutu A względem zbioru F. 1) A+ = {A} 2) Na podstawie A->B mamy A+ = {AB} 3) Na podstawie B->C mamy A+ = {ABC} Wyznaczanie domknięcia przykład Dany niech będzie zbiór zależności F: F = {AB->C, C->A, BC->D, ACD->B, D->EG, BE->C, CG->BD, CE->AG} Obliczamy domknięcie atrybutów BD względem zbioru F. 1) BD+ = {BD} 2) Na podstawie D->EG mamy BD + = {BDEG} 3) Na podstawie BE->C mamy BD + = {BCDEG} 4) Na podstawie CE->AG mamy BD + = {ABCDEG} Cele normalizacji • Normalizacja jest jednym z etapów projektowania. • Eliminowanie redundancji i anomalii. • Redundancja danych występuje wtedy, gdy te same dane są zapisane w bazie wiele razy. • Mogą występować następujące anomalie: – Anomalia dołączania: Nie można dołączyć danych, bo nie istnieją inne dane z nimi związane; – Anomalia aktualizacji: Dane zmieniają się w jednym miejscu, ale pozostają nieaktualne w drugim; – Anomalia usuwania: Usunięcie krotki z danymi powoduje usunięcie danych innego rodzaju. Pojęcie klucza Dany niech będzie schemat relacyjny: R = (U, F). Zbiór atrybutów K U nazywamy kluczem schematu R wtedy i tylko wtedy, gdy spełnione są następujące warunki: K U F X U F ( X K ) 1) Jednoznaczna identyfikalność 2) Minimalność Z warunku 1) wynika, że: K U Właściwości klucza • Klucz posiada minimalną liczbę atrybutów. • Atrybuty relacji należące do klucza nazywamy atrybutami kluczowymi. • Atrybuty relacji nie należące do klucza nazywamy atrybutami niekluczowymi. • Żaden atrybut należący do klucza nie może przyjmować wartości NULL. • Przy normalizacji badane są zależności funkcyjne pomiędzy atrybutami kluczowymi a niekluczowymi oraz zależności pomiędzy atrybutami niekluczowymi. Pierwsza postać normalna 1PN Relacja jest w pierwszej postaci normalnej, jeśli wartości atrybutów poszczególnych krotek są wartościami atomowymi. Przykład relacji nie będącej w 2PN Egzamin NrStud Nazwisko Wydział Przedmiot Ocena 10 Kowalski PPT Algebra 3 10 Kowalski PPT Analiza 4 11 Nowak IZ Algebra 3 12 Wróbel Chemiczny Algebra 3 Zależności funkcyjne: NrStud Nazwisko,Wydzial Atrybuty kluczowe: {NrStud, Przedmiot} NrStud, Przedmiot Ocena Atrybuty niekluczowe: {Nazwisko, Wydział, Ocena} Klucz: {NrStud, Przedmiot} Atrybut Ocena zależy od całego klucza Atrybuty: Nazwisko, Wydział zależą od części klucza. To jest źródłem anomalii Anomalie występujące w przypadku braku 2PN Egzamin NrStud Nazwisko Wydział Przedmiot Ocena 10 Kowalski PPT Algebra 3 10 Kowalski PPT Analiza 4 11 Nowak IZ Algebra 3 12 Wróbel Chemiczny Algebra 3 13 Przybylski Chemiczny NULL NULL Anomalia dołączania: Dodanie studenta, który jeszcze nie zdał żadnego egzaminu jest niemożliwe, gdyż atrybut kluczowy Przedmiot przyjąłby wtedy wartość NULL. Anomalie występujące w przypadku braku 2PN Egzamin NrStud Nazwisko Wydział Przedmiot Ocena 10 Kowalski PPT Algebra 3 10 Kowalski PPT Analiza 4 11 Nowak IZ Algebra 3 12 Wróbel Chemiczny Algebra 3 Anomalia usuwania: Usunięcie krotki o zdanym egzaminie Nowaka powoduje usunięcie wszystkich danych związanych z Nowakiem (jeśli to był jego jedyny egzamin) Anomalie występujące w przypadku braku 2PN Egzamin NrStud Nazwisko Wydział Przedmiot Ocena 10 Kowalski PPT Algebra 3 10 Kowalski PPT Analiza 4 11 Nowak IZ Algebra 3 12 Wróbel Chemiczny Algebra 3 Redundancja danych: Pewne dane zapisane są w bazie kilka razy. Jeśli więc Kowalski zmieni wydział, wówczas trzeba to zmienić w kilku miejscach. Druga postać normalna (2PN) • Definicja pełnej zależności funkcyjnej. Niech X i Y będą rozłącznymi zbiorami atrybutów. Mówimy, że Y jest w pełni funkcyjnie zależny od X lub że istnieje pełna zależność funkcyjna z X do Y, jeśli Y jest zależnie funkcyjny od X i nie jest zależny od żadnego właściwego podzbioru X. • Definicja 2PN. Schemat relacyjny R=(U,F) jest w 2PN jeśli każdy niekluczowy atrybut jest w pełni funkcyjnie zależny od każdego klucza tego schematu. • W związku z tym schemat relacyjny, którego klucz jest jednoargumentowy jest w 2PN. Sprowadzenie do 2PN - algorytm Dany niech będzie schemat relacyjny: R = (U, F) X A F Jeśli istnieje niepełna zależność funkcyjna: Schemat R jest podzielony na dwa schematy: R1 ( X , F 1) i R2 ((U X ) X , F 2) X U - zbiór wszystkich atrybutów zależnych od X F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty zawarte są w X+. Podobnie jest dla F2. Jeśli R1 i R2 nie są w 2PN, algorytm jest powtarzany. Sprowadzenie do 2PN Egzamin NrStud Nazwisko Wydział Przedmiot Ocena 10 Kowalski PPT Algebra 3 10 Kowalski PPT Analiza 4 11 Nowak IZ Algebra 3 12 Wróbel Chemiczny Algebra 3 Niepełna zależność funkcyjna od klucza: NrStud Nazwisko Zgodnie z algorytmem: bo NrStud, Przedmiot Nazwisko R1 ( X , F 1) i R2 ((U X ) X , F 2) Mamy: X ={NrStud}, X+ = {NrStud, Nazwisko, Wydział} Sprowadzenie do 2PN Z relacji Egzamin powstają dwie : Ocena i Student Ocena Student NrStud Przedmiot Ocena NrStud Nazwisko Wydzial 10 Algebra 3 10 Kowalski PPT 10 Analiza 4 11 Nowak IZ 11 Algebra 3 12 Wróbel Chemiczny 12 Algebra 3 Każda z tych relacji jest w 2PN. Wnioski – 2PN • Jeśli klucz jest jednoargumentowy, to schemat jest w 2PN. • Proces sprowadzania do 2PN nie jest jednoznaczny – dla jednego schematu może istnieć wiele równoważnych projekcji w 2PN. Anomalie występujące w przypadku braku 3PN Wykonawca IdWykon Nazwa IdProj Koszt 10 IBM 20 200000 11 Intel 20 200000 12 Mac 21 400000 13 SAP 22 500000 Zależności funkcyjne: IdWykon Nazwa, IdProj, Koszt IdProj Koszt Anomalie występujące w przypadku braku 3PN Wykonawca IdWykon Nazwa IdProj Koszt 10 IBM 20 200000 11 Intel 20 200000 12 Mac 21 400000 13 SAP 22 500000 Relacja jest w 2PN, bo występuje klucz jednoargumentowy, ale występuje redundancja i anomalia. Przyczyną jest zależność: IdProj Koszt Anomalie występujące w przypadku braku 3PN Wykonawca IdWykon Nazwa IdProj Koszt 10 IBM 20 200000 11 Intel 20 200000 12 Mac 21 400000 13 SAP 22 500000 NULL NULL 23 700000 Anomalia dołączania: Aby wprowadzić dane projektu, należałoby mieć wykonawcę tego projektu. Tranzytywne zależności funkcyjne Definicja. Atrybut A jest tranzytywnie zależny od klucza K w schemacie relacyjnym R = (U, F), jeśli istnieje zbiór atrybutów X nie będący kluczem i taki, że: A X i X A F Oczywiście z zależności tranzytywnej wynika zależność „zwykła”. Tak więc atrybut A jest zależny od K także w „zwykłym sensie”. Należność tranzytywną można zobrazować w sposób następujący: K XA Definicja 3PN Schemat relacyjny R=(U,F) jest w 3PN jeśli jest w 2PN i żaden niekluczowy atrybut nie jest tranzytywnie zależny od żadnego klucza relacji. Sprowadzenie do 3PN - algorytm Dany niech będzie schemat relacyjny: R = (U, F) Jeśli istnieje tranzytywna zależność funkcyjna: X A F Schemat R jest podzielony na dwa schematy: R1 ( X , F 1) i R2 ((U X ) X , F 2) X U - zbiór wszystkich atrybutów zależnych od X F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty zawarte są w X+. Podobnie jest dla F2. Jeśli R1 i R2 nie są w 3PN, algorytm jest powtarzany. Sprowadzenie do 3PN Wykonawca IdWykon Nazwa IdProj Koszt 10 IBM 20 200000 11 Intel 20 200000 12 Mac 21 400000 13 SAP 22 500000 W wyniku działania algorytmu mamy: X = IdProj, X+ = {IdProj, Koszt} Sprowadzenie do 3PN Z relacji Wykonawca powstają dwie : Projekt i Wykonanie Projekt Wykonanie IdProj Koszt IdWykon Nazwa IdProj 20 200000 10 IBM 20 21 400000 11 Intel 20 22 500000 12 Mac 21 13 SAP 22 Każda z tych relacji jest w 3PN PNBC – Postać Normalna Boyce’a Codda Definicja. Mówimy, że schemat relacyjny R = (U, F) jest w PNBC, jeśli dla każdej nietrywialnej zależności X->A należącej do F, X jest nadkluczem. 1) Nietrywialna oznacza, że A nie należy do X 2) Nadklucz oznacza, że X zawiera klucz Sprowadzenie do PNBC - algorytm Dany niech będzie schemat relacyjny: R = (U, F) Jeśli istnieje nietrywialna zależność funkcyjna: X A F taka, że X nie jest nadkluczem, wówczas schemat R jest podzielony na dwa schematy: R1 ( X , F 1) i R2 ((U X ) X , F 2) X U - zbiór wszystkich atrybutów zależnych od X F1 zawiera wszystkie te ZF ze zbioru F+, których atrybuty zawarte są w X+. Podobnie jest dla F2. Jeśli R1 i R2 nie są w PNBC, algorytm jest powtarzany. PNBC - Przykład Kody Ulica Miasto Kod Kołłątaja Poznań 80-288 Rydla Kraków 12-333 Rydla Poznań 80-900 Słoweńska Warszawa 22-111 Zależności funkcyjne: Klucze: Miasto, Ulica Kod {Miasto, Ulica} Kod Miasto {Ulica, Kod} PNBC - Przykład Kody Ulica Miasto Kod Kołłątaja Poznań 80-288 Rydla Kraków 12-333 Rydla Poznań 80-900 Słoweńska Warszawa 22-111 Rozpatrzmy klucz: {Miasto, Ulica} Występuje 3PN. Nie zachodzi PNBC, gdyż: Kod Miasto Zależność jest nietrywialna, a atrybut Kod nie jest nadkluczem. Sprowadzenie do PNBC Z relacji Wykonawca powstają dwie : Kod1 i Kod2 Kod1 Kod2 Miasto Kod Ulica Kod Poznań 80-288 Kołłątaja 80-288 Kraków 12-333 Rydla 12-333 Poznań 80-900 Rydla 80-900 Warszawa 22-111 Słoweńska 22-111 Podsumowanie • Decyzja czy pozostawić relację w 3PN czy w PNBC powinna być przemyślana. • Praktyka pokazuje, ze 3PN jest najlepszym rozwiązaniem • Projektowanie obiektowe z reguły od razu daje w rezultacie postać 3PN • W niektórych przypadkach korzystniejsze jest pozostawienie relacji w niższych postaciach (1PN lub 2PN). Dziękuję