Plan Zależności funkcyjne 1. Zależności funkcyjne jako klasa ograniczeń semantycznych odwzorowywanego świata rzeczywistego. 2. Schematy relacyjne = typ relacji + zależności funkcyjne. 3. Rozkładalność schematów relacyjnych i rozkładalność relacji. Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski funkcyjne 1 funkcyjne 2 Definicja Pojęcie zależności funkcyjnej Niech U będzie skończonym zbiorem atrybutów. Zależnością funkcyjną nazywamy każdy napis o postaci X Y, gdzie X, Y U. Mówimy wówczas, że Y zależy funkcyjnie od X lub, że X determinuje funkcyjnie Y. Przykłady: NrPESEL DataUrodzenia NrPESEL Nazwisko IdStud Kierunek, Dziekan, Wydział IdStud, NrPrzedmiotu, Data Ocena funkcyjne 3 Definicja Spełnianie zależności funkcyjnej Niech dana będzie tabela R tupu 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 r 1, r 2 R, zachodzi π X (r 1 ) = π X (r 2 ) π Y (r 1 ) = π Y (r 2 ), tzn. z równości krotek na atrybutach ze zbioru X wynika równość tych krotek na atrybutach ze zbioru Y. Uwaga: Zamiast π X (r) stosujemy często zapis: r[x] projekcja krotki r na zbiór atrybutów X. funkcyjne 4
Spełnianie zależności funkcyjnej - przykład Egzamin IdStud Nazwisko IdPrzed Ocena 10 Kubiak mat 3 10 Kubiak fiz 4 11 Nowak mat 3 12 Pawlak mat 3 Egzamin IdStud Nazwisko Egzamin IdStud, IdPrzed Ocena? Egzamin IdPrzed Ocena nie, nie jest to niezmiennicza właściwość tabeli Egzamin Wyprowadzanie zależności funkcyjnych - motywacja 1. Przy projektowaniu bazy danych powinniśmy wiedzieć, jakie zależności funkcyjne powinny być spełnione w relacjach o projektowanym schemacie. 2. Mając zadany zbiór ZF: F = {X 1 A 1, X 2 A 2,, X n A n }, chcemy wiedzieć, czy zależność X A spełniona jest w każdej takiej taeli, w której spełnione są wszystkie zależności ze zbioru F. Przykład: Jeśli zbiór zależności F = {A B, B C} spełniony jest w R, to łatwo dowieść (z definicji), że w R spełniona jest również zależność A C. (Pokaż to!) funkcyjne 5 funkcyjne 6 Domknięcie zbioru zależności funkcyjnych Wyznaczanie domknięcia X+ Problem: Dany jest zbiór zależności funkcyjnych F oraz zbiór atrybutów X. Dla X wyznaczyć zbiór X + złożony z atrybutów zależnych funkcyjnie od X. Metoda: Rozpoczynamy przyjmując: X + = X. Indukcja: Poszukujemy wszystkie te ZF, których lewe strony są podzbiorami bieżącego zbioru X + i do X + dołączamy wszystkie atrybuty należące do prawych stron tych ZF. Jeśli np. Y X + oraz Y B, to: X + = X + {B}. funkcyjne 7 funkcyjne 8
Wyznaczanie domknięcia X+ Schematy relacyjne Y B X + nowe X + funkcyjne 9 funkcyjne 10 Przypadki schematów relacyjnych Przypadki schematów relacyjnych przykład funkcyjne 11 funkcyjne 12
Rozkładalność schematów relacyjnych Rozkładalność bez straty danych funkcyjne 13 funkcyjne 14 Twierdzenie o rozkładalności Zastosowanie twierdzenia o rozkładalność Sprz π IdKli,IdTow (Sprz) π IdKli,Data (Sprz) IdKli IdTow Data a x 1 a x 2 a y 2 b y 3 IdKli IdTow IdKli Data a x a 1 a y a 2 b y b 3 π IdKli,IdTow (Sprz) π IdKli,Data (Sprz) IdKli IdTow Data a x 1 a x 2 a y 1 a y 2 b y 3? funkcyjne 15 W Sprz nie jest spełniona ani zależność funkcyjna IdKli IdTow, ani IdKli Data. Nie jest więc spełnione założenia twierdzenia o rozkładalności. 16
Zastosowanie twierdzenie o rozkładalność przykład Zastosowanie twierdzenie o rozkładalność przykład (c.d.) 18 Zastosowanie twierdzenie o rozkładalność - przykład (c.d.) Zastosowanie twierdzenie o rozkładalność przykład (c.d.) funkcyjne 19 funkcyjne 20
Zastosowanie twierdzenie o rozkładalność przykład podsumowanie funkcyjne 21