Bazy danych
Transkrypt
Bazy danych
2010-11-22 PLAN WYKŁADU Zależności funkcyjne Anomalie danych Normalizacja Postacie normalne Zależności niefunkcyjne Zależności złączenia BAZY DANYCH Wykład 5 dr inż. Agnieszka Bołtuć ZALEŻNOŚCI FUNKCYJNE Niech R będzie zmienną relacyjną, X i Y zaś dowolnymi podzbiorami zbioru atrybutów R. Mówimy, że Y jest funkcyjnie zależny od X: X Y wtedy i tylko wtedy, gdy dla każdej dopuszczalnej legalnie wartość R każda wartość X z R jest stowarzyszona z dokładnie jedną wartością Y. Element danych Y jest funkcyjnie zależny od elementu danych X, jeżeli dla każdej wartości X istnieje jedna, jednoznacznie określona wartość Y. Element X nazywamy elementem determinującym, zaś element danych Y – elementem zależnym (determinowanym). ZALEŻNOŚCI FUNKCYJNE IdPrac NazwiskoPrac Nazwisko (Firma, Towar) (Dzień, Godzina, Sala) Prowadzący, Grupa) Adres Cena (Przedmiot, 1 2010-11-22 ZALEŻNOŚCI FUNKCYJNE Zależność jest trywialna wtedy i tylko wtedy, gdy prawa strona jest podzbiorem lewej strony. X Y, Y X, Zależność jest prosta, gdy prawa strona jest pojedynczym atrybutem X Ai , Zależność jest przechodnia (tranzytywna) jeśli X Y oraz Y Z to X Z. REGUŁY WNIOSKOWANIA AMSTRONGA Niech A, B i C będą dowolnymi podzbiorami zbioru atrybutów relacji R, gdzie zapis AB oznacza sumę A i B. Wówczas zachodzą związki: zwrotność: jeżeli B A to A B dołączenie: jeżeli A B to AC BC przechodniość: jeżeli A B i B C to A C. DOMKNIĘCIE ZBIORU ZALEŻNOŚCI Pewne zależności funkcyjne implikują inne, (Firma, Towar) (Cena, Waga) (Firma, Towar) Cena (Firma, Towar) Waga Domknięcie S+ zbioru zależności to zbiór wszystkich zależności funkcyjnych implikowanych danym zbiorem S zależności funkcyjnych. REGUŁY WNIOSKOWANIA AMSTRONGA Reguły dodatkowe wyprowadzone na podstawie trzech głównych reguł: samookreślenie: A A rozkład: jeżeli A BC to A B i A C suma: jeżeli A B i A C to A BC złożenie: jeżeli A B i C D to AC BD Reguły te są zupełne i znaczące. 2 2010-11-22 NIEREDUKOWALNE ZBIORY ZALEŻNOŚCI CELE NORMALIZACJI Zbiór zależności funkcyjnych S jest nieredukowalny wtedy i tylko wtedy, gdy ma trzy własności: usunięcie redundancji, usunięcie anomalii przy usuwaniu (efektu ubocznego usunięcia), usunięcie anomalii przy modyfikacji usuwaniu (efektu ubocznej modyfikacji), usunięcie anomalii przy wstawianiu (efektu ubocznego wstawiania). element zależny (prawa strona) każdej zależności funkcyjnej w S ma tylko jeden atrybut, element determinujący (lewa strona) każdej zależności funkcyjnej w S jest nieredukowalny, nie można pominąć żadnego atrybutu z elementu determinującego bez wpływu na S+ - taka zależność jest lewostronnie nieredukowalna, nie można usunąć żadnej zależności funkcyjnej z S bez zmiany domknięcia S+. PRZYKŁAD - PRZEDMIOTY PRZYKŁADY ANOMALII Przedmiot IdPrac NamePrac IdStud NameStud Ocena Rodzaj Oceny Bazy danych 12 Boltuc 23123 Kowalski 5 Lab Bazy danych 12 Boltuc 23123 Kowalski 4 Wyk Bazy danych 12 Boltuc 23456 Iksinski 3 Lab Bazy danych 12 Boltuc 23678 Nowak 3 Lab Bazy danych 12 Boltuc 23678 Nowak 4 Wyk Metody optymalizacji 12 Boltuc 23123 Kowalski 4.5 Lab Metody optymalizacji 12 Boltuc 23123 Kowalski 2 Lab Programowanie w Javie 4 Korniłowicz 23190 Podolski 3 Wyk Anomalie przy usuwaniu– usuwając studenta występującego w tabeli tylko raz powoduje utratę danych o przedmiocie i wykładowcy, Anomalie przy modyfikacji – chcąc zmienić wykładowcę danego przedmiotu zmieniamy nie tylko jego nazwisko, ale i numer, Anomalie przy wstawianiu – nie można dodać nowego studenta dopóki nie będzie posiadał co najmniej jednego zaliczenia. 3 2010-11-22 NORMALIZACJA CECHY NORMALIZACJI Własność zachowania atrybutów - żaden atrybut nie zostanie zagubiony w trakcie procesu normalizacji. Własność zachowania informacji - dekompozycja relacji nie prowadzi do utraty informacji, tj. łącząc zdekomponowane relacje możemy odtworzyć oryginalną relację. Własność zachowania zależności - wszystkie zależności funkcyjne są reprezentowane w pojedynczych schematach relacji. Jest procesem identyfikowania logicznych związków między elementami danych i projektowania bazy danych, która będzie reprezentować takie związki, ale bez występowania anomalii. Proces normalizacji relacji można traktować jako proces, podczas którego schematy relacji posiadające pewne niepożądane cechy są dekomponowane na mniejsze schematy relacji o pożądanych własnościach ETAPY NORMALIZACJI Zbieranie zbioru danych, Przekształcenie zbioru danych w tabele w pierwszej postaci normalnej, Przekształcenie tabeli z pierwszej postaci normalnej w drugą postać normalną, Przekształcenie tabeli z drugiej postaci normalnej w trzecią postać normalną, Jeśli nadal występują anomalie dokonaj: Przekształcenie tabeli z trzeciej postaci normalnej w postać normalną Boyce’a-Codda, Przekształcenie tabeli z trzeciej postaci normalnej w czwartą postać normalną, Przekształcenie tabeli z czwartej postaci normalnej w piątą postać normalną. DEKOMPOZYCJA ODWRACALNA Proces przekształcenia nieznormalizowanego zbioru danych w pełni znormalizowana bazę danych nazywamy procesem dekompozycji odwracalnej, Polega to na podziale w każdym kroku struktury danych na coraz więcej tabel bez straty podstawowych związków zachodzących pomiędzy elementami danych. 4 2010-11-22 ROZKŁAD STRATNY I BEZSTRATNY Firma Status Miasto A prywatna Białystok B prywatna Warszawa ROZKŁAD BEZSTRATNY Firma Status Firma Miasto A prywatna A Białystok B prywatna B Warszawa Firma Status Status Miasto A prywatna prywatna Białystok B prywatna prywatna Warszawa PIERWSZA POSTAĆ NORMALNA 1NF Relacja występuje w pierwszej postaci normalnej 1NF wtedy i tylko wtedy, gdy wszystkie jej dziedziny zawierają wyłącznie wartości skalarne (atrybuty maja atomowe wartości). Relacja występuje w pierwszej postaci normalnej 1NF wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcyjnie zależny od klucza głównego. Proces rozkładu jest procesem rzutowania, Operatorem ponownego składania jest złączenie naturalne względem atrybutów o tej samej nazwie. Twierdzenie Heatha Niech R będzie relacją, zaś A, B i C zbiorami atrybutów. Jeśli R spełnia zależność funkcyjną A B, wówczas relacja R jest równa złączeniu swoich rzutów (A, B) i (A, C). 1NF Niektóre atrybuty posiadają wiele wartości, np. IdStud, NameStud, Ocena i RodzajOceny powtarzaja się względem Przedmiotu, Wymienione atrybuty nie są funkcyjnie zależne od klucza głównego (Przedmiot), Atrybuty IdPrac i NamePrac są funkcyjnie zależne, Należy utworzyć dwie tabele dla funkcyjnie zależnych i niezależnych atrybutów. 5 2010-11-22 1NF - PROPOZYCJA PODZIAŁU DRUGA POSTAĆ NORMALNA 2NF Oceny Przedmiot IdStud NameStud Ocena Rodzaj Oceny Bazy danych 23123 Kowalski 5 Lab Bazy danych 23123 Kowalski 4 Wyk Bazy danych 23456 Iksinski 3 Lab Bazy danych 23678 Nowak 3 Lab Bazy danych 23678 Nowak 4 Wyk Metody optymalizacji 23123 Kowalski 4.5 Lab Metody optymalizacji 23123 Kowalski 2 Lab Programowanie w Javie 23190 Podolski 3 Wyk Przedmioty Przedmiot IdPrac NamePrac Bazy danych 12 Boltuc Metody optymalizacji 12 Boltuc Programowanie w Javie 4 Kornilowicz 2NF Należy zbadać tabele, które mają klucze złożone i usuwać zależności od części klucza, Tabela Oceny ma klucz złożony (Przedmiot, IdStud i RodzajOceny), Potrzebujemy całego klucza aby zidentyfikować ocenę, ale Przedmiot nie ma wpływu na NameStud, które jest definiowane przez IdStud, Rozdzielamy determinujące i zależne elementy na dwie tabele. Relacja występuje w drugiej postaci normalnej 2NF wtedy i tylko wtedy, gdy jest w 1NF oraz każdy niekluczowy atrybut jest w pełni funkcyjnie zależny od klucza głównego (całego a nie jego części). Relacja ma druga postać normalna wtedy i tylko wtedy, gdy jest juz w 1NF oraz każdy niekluczowy atrybut jest nieredukowalnie zależny od klucza głównego (przy założeniu, ze istnieje jeden klucz kandydujący będący kluczem głównym). 2NF – PRZYKŁAD PODZIAŁU Oceny Przedmiot IdStud Ocena Rodzaj Oceny Bazy danych 23123 5 Lab Bazy danych 23123 4 Wyk Bazy danych 23456 3 Lab Bazy danych 23678 3 Lab Bazy danych 23678 4 Wyk Metody optymalizacji 23123 4.5 Lab Metody optymalizacji 23123 2 Lab Programowanie w Javie 23190 3 Wyk Studenci Przedmioty Przedmiot IdPrac NamePrac Bazy danych 12 Boltuc Metody optymalizacji 12 Boltuc Programowanie w Javie 4 Kornilowicz IdStud NameStud 23123 Kowalski 23456 Iksinski 23678 Nowak 23190 Podolski 6 2010-11-22 TRZECIA POSTAĆ NORMALNA 3NF 3NF Należy usuwać zależności przechodnie między danymi, Dla każdej pary niekluczowych elementów każdej tablicy zadajemy pytanie czy wartość pola A zależy od wartości pola B lub odwrotnie, jeśli tak to powiązane elementy przenoszone są do innej tabeli, IdPrac determinuje NamePrac, stąd NamePrac nie jest przechodnio zależny od Przedmiotu. Relacja występuje w trzeciej postaci normalnej 3NF, wtedy i tylko wtedy, gdy jest w 2NF oraz każdy niekluczowy atrybut jest bezpośrednio zależny (a nie przechodnio zależny) od klucza głównego. 3NF – PRZYKŁAD PODZIAŁU Oceny POSTAĆ NORMALNA BOYCE’A-CODDA BCNF Studenci Przedmiot IdStud Ocena Rodzaj Oceny IdStud NameStud Bazy danych 23123 5 Lab 23123 Kowalski Bazy danych 23123 4 Wyk 23456 Iksinski Bazy danych 23456 3 Lab 23678 Nowak 23190 Podolski Bazy danych 23678 3 Lab Bazy danych 23678 4 Wyk Metody optymalizacji 23123 4.5 Lab Metody optymalizacji 23123 2 Lab Programowanie w Javie 23190 3 Wyk Postać normalna Boyce’a-Codda jest silniejsza postacią normalną niż 3NF i ma na celu wyeliminowanie anomalii powstających w sytuacji istnienia kilku kluczy kandydujących w pewnym zbiorze wymagań dotyczących danych. Relacja znajduje się w postaci BCNF wtedy i tylko wtedy, gdy jedynymi elementami determinującymi są klucze kandydujące. Relacja ma postać BCNF wtedy i tylko wtedy, gdy elementem determinującym każdej nietrywialnej, lewostronnie nieredukowalnej zależności funkcyjnej jest klucz kandydujący. Wykładowcy Przedmioty Przedmiot IdPrac IdPrac NamePrac Bazy danych 12 12 Boltuc Metody optymalizacji 12 4 Kornilowicz Programowanie w Javie 4 7 2010-11-22 BCNF – PRZYKŁAD PODZIAŁU BCNF Schemat w 3NF dla zagadnienia ścieżek edukacyjnych IdStud Ścieżka 23123 Informatyka stosowana 23456 Informatyka teoretyczna IdStud Ścieżka IdPrac 23123 Inżynieria oprogramowania 23123 Informatyka stosowana 12 23456 Grafika komputerowa 23456 Informatyka teoretyczna 2 23190 Informatyka w medycynie 23123 Inżynieria oprogramowania 4 23456 Grafika komputerowa 5 23190 Informatyka w medycynie 8 IdPrac Ścieżka 12 Informatyka stosowana 2 Informatyka teoretyczna 4 Inżynieria oprogramowania 5 Grafika komputerowa 8 Informatyka w medycynie Anomalie: aktualizacji, wstawiania, usuwania – spowodowane nakładającymi się kluczami kandydującymi. ZALEŻNOŚCI NIEFUNKCYJNE (WIELOWARTOŚCIOWE) 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 funkcyjne, gdyż jest jeden do wielu. Niech R będzie relacja, zaś A,B i C będa dowolnymi podzbiorami zbioru atrybutów R. Mówimy, ze B jest wielowartościowo zależne od A A B wtedy i tylko wtedy, gdy zbiór wartości B odpowiadający danej parze (A,C) w R zależy od wartości A i jest niezależny od wartości C. Przykład: IdPrac Język, Przedmiot Podręcznik CZWARTA POSTAĆ NORMALNA 4NF Relacja jest w 4NF jeżeli jest w postaci BCNF i wszystkie zależności wielowartościowe są zależnościami funkcyjnymi wychodzącymi z kluczy kandydujących. 8 2010-11-22 4NF – PRZYKŁAD PODZIAŁU IdPrac Umiejętność Język 12 programowanie ang 12 programowanie niem 12 projektowanie ang 4 programowanie fr 4 projektowanie niem 8 programowanie ang IdPrac Umiejętność IdPrac Język 12 programowanie 12 ang 12 programowanie 12 niem 12 projektowanie 12 ang 4 programowanie 4 fr 4 projektowanie 4 niem 8 programowanie 8 ang PIĄTA POSTAĆ NORMALNA 5NF Relacja jest w 5NF jeżeli jest w postaci 4NF i nie posiada już anomalii, które można by usunąć przy pomocy rzutowania. ZALEŻNOŚĆ ZŁĄCZENIA Niech R będzie relacją, zaś A,B,..., Z będą dowolnymi podzbiorami zbioru atrybutów R. Mówimy, że R spełnia zależność łączenia: *(A, B, ..., Z) wtedy i tylko wtedy, gdy R jest równe złączeniu swoich rzutów na A,B, ..., Z, Zależnościami złączenia nazywamy powiązane między sobą zależności wielowartościowe, Przykłady: *(dealer, marka, rodzaj_pojazdu). 5NF - PRZYKŁAD Dealer Marka Rodzaj_samochodu A Ford osobowy A Fiat dostawczy B Ford dostawczy B Fiat osobowy Relacja jest w 5NF jeżeli jest w postaci 4NF i nie istnieje jej rozkład odwracalny na zbiór mniejszych tabel. 9 2010-11-22 W YKŁAD PRZYGOTOWANO NA PODSTAWIE P. Beynon-Davies, Systemy baz danych, WNT, 2003, C. J. Date, Wprowadzenie do systemów baz danych, WNT, Warszawa, 2000, http://wazniak.mimuw.edu.pl/index.php?title=Bazy_ danych. 10