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 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. Y ZALEŻNOŚCI FUNKCYJNE IdPrac NazwiskoPrac Nazwisko Adres (Firma, Towar) Cena 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). (Dzień, Godzina, Sala) Prowadzący, Grupa) (Przedmiot, 1
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. DOMKNIĘCIE ZBIORU ZALEŻNOŚCI Pewne zależności funkcyjne implikują inne, (Firma, Towar) (Firma, Towar) (Firma, Towar) (Cena, Waga) Cena 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 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. Reguły te są zupełne i znaczące. 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 2
NIEREDUKOWALNE ZBIORY ZALEŻNOŚCI Zbiór zależności funkcyjnych S jest nieredukowalny wtedy i tylko wtedy, gdy ma trzy własności: CELE NORMALIZACJI usunięcie redundancji, 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+. 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). PRZYKŁAD - PRZEDMIOTY Przedmiot IdPrac NamePrac IdStud NameStud Ocena Rodzaj Bazy danych 12 Boltuc 23123 Kowalski 5 Lab Bazy danych 12 Boltuc 23123 Kowalski 4 Wyk PRZYKŁADY ANOMALII Anomalie przy usuwaniu usuwając studenta występującego w tabeli tylko raz powoduje utratę danych o przedmiocie i wykładowcy, 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 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
NORMALIZACJA 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 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. 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
ROZKŁAD STRATNY I BEZSTRATNY Firma Status Miasto A Białystok B Warszawa ROZKŁAD BEZSTRATNY Proces rozkładu jest procesem rzutowania, Operatorem ponownego składania jest złączenie naturalne względem atrybutów o tej samej nazwie. Firma A B Firma Status Status Firma A B Status Miasto Białystok Warszawa Miasto 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). A Białystok B 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. 1NF Niektóre atrybuty posiadają wiele wartości, np. IdStud, NameStud, Ocena i Rodzaj 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
1NF - PROPOZYCJA PODZIAŁU Przedmiot IdStud NameStud Ocena Rodzaj 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 DRUGA POSTAĆ NORMALNA 2NF 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 Należy zbadać tabele, które mają klucze złożone i usuwać zależności od części klucza, Tabela ma klucz złożony (Przedmiot, IdStud i Rodzaj), 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. 2NF PRZYKŁAD PODZIAŁU Przedmiot IdStud Ocena Rodzaj 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 Przedmioty Przedmiot IdPrac NamePrac Bazy danych 12 Boltuc Metody optymalizacji 12 Boltuc Programowanie w Javie 4 Kornilowicz Studenci IdStud NameStud 23123 Kowalski 23456 Iksinski 23678 Nowak 23190 Podolski 6
TRZECIA POSTAĆ NORMALNA 3NF 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 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. 3NF PRZYKŁAD PODZIAŁU Przedmiot IdStud Ocena Rodzaj 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 Przedmioty Przedmiot Bazy danych 12 Metody optymalizacji 12 Programowanie w Javie 4 IdPrac Wykładowcy IdPrac Studenci IdStud NameStud 23123 Kowalski 23456 Iksinski 23678 Nowak 23190 Podolski NamePrac 12 Boltuc 4 Kornilowicz POSTAĆ NORMALNA BOYCE A-CODDA BCNF 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. 7
BCNF Schemat w 3NF dla zagadnienia ścieżek edukacyjnych IdStud Ścieżka IdPrac 23123 Informatyka stosowana 12 23456 Informatyka teoretyczna 2 23123 Inżynieria oprogramowania 4 23456 Grafika komputerowa 5 23190 Informatyka w medycynie 8 Anomalie: aktualizacji, wstawiania, usuwania spowodowane nakładającymi się kluczami kandydującymi. BCNF PRZYKŁAD PODZIAŁU IdStud Ścieżka 23123 Informatyka stosowana 23456 Informatyka teoretyczna 23123 Inżynieria oprogramowania 23456 Grafika komputerowa 23190 Informatyka w medycynie IdPrac Ścieżka 12 Informatyka stosowana 2 Informatyka teoretyczna 4 Inżynieria oprogramowania 5 Grafika komputerowa 8 Informatyka w medycynie 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
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 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, IdPrac Umiejętność 12 programowanie 12 programowanie 12 projektowanie 4 programowanie 4 projektowanie 8 programowanie IdPrac Język 12 ang 12 niem 12 ang 4 fr 4 niem 8 ang Zależnościami złączenia nazywamy powiązane między sobą zależności wielowartościowe, Przykłady: *(dealer, marka, rodzaj_pojazdu). PIĄTA POSTAĆ NORMALNA 5NF 5NF - PRZYKŁAD Relacja jest w 5NF jeżeli jest w postaci 4NF i nie posiada już anomalii, które można by usunąć przy pomocy rzutowania. 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
WYKŁ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