Zaleznosci funkcyjne
Transkrypt
Zaleznosci funkcyjne
Zależności funkcyjne Plan wykładu • Pojęcie zależności funkcyjnej • Dopełnienie zbioru zależności funkcyjnych • Postać minimalna zbioru zależności funkcyjnych • Domknięcie atrybutu relacji względem zależności funkcyjnych • Pojęcie klucza • Rozkładalność schematów relacyjnych 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 (?) Wyprowadzenie zależności funkcyjnych Mając zadany zbiór ZF (zależności funkcyjnych): F {X 1 A1, X 2 A2,..., Xn An} Chcemy wiedzieć, czy zależność: Y B spełniona jest w każdej relacji R, w której spełnione są wszystkie zależności ze zbioru F Wyprowadzenie zależności funkcyjnych - przykład Przykładowo mając dany ZF: F {A B, B C} łatwo dowieść z definicji, że spełniona jest również zależność: AC Wyprowadzanie zależności funkcyjnych przez wnioskowanie • Problem: Zadany jest zbiór zależności funkcyjnych F nad zbiorem atrybutów U. Należy wyznaczyć zbiór wszystkich zależności funkcyjnych będący konsekwencją zbioru F. Taki zbiór będziemy oznaczać F+ • Reguły wyprowadzania dla zależności funkcyjnych zostały zaproponowane przez Armstronga i nazywane są aksjomatami Armstronga. Aksjomaty Armstronga Niech dany będzie zbiór zależności funkcyjnych F nad zbiorem atrybutów U. Niech : X, Y, Z U Wówczas: F1 (zwrotnosc) : Y X X Y F2(poszerzalnosc) : X Y XZ YZ F3(przechodniosc) : X Y Y Z X Z Aksjomaty Armstronga cd Z aksjomatów Armstronga można wyprowadzić następujące reguły: F4 (pseudoprzechodnosc): X Y YW Z XW Z F5(addytywnosc): X Y X Z X YZ F6(dekompozycyjnosc): X YZ X Y X Z Zbiór F+ może być generowany przez różne zbiory zależności funkcyjnych. Można mówić o minimalnym generatorze F+ Zależności funkcyjne – przykład wnioskowania Niech: U = {P, I, O, E, G, S} P – przedmiot egzaminu Zbiór zależności funkcyjnych: I – numer indeksu F = {P ->GS, GS -> P, PI->O, O – ocena z egzaminu GI->PS, PGS->E} E – numer identyfikacyjny egzaminatora G – godzina egzaminu Zależności pochodne: S – sala egzaminu P->G, P->S, GSI->O GI->E Postać minimalna zależności funkcyjnych • Postać minimalna to najmniejszy zbiór zależności funkcyjnych, z których można wyprowadzić wszystkie zależności funkcyjne. Postać minimalna zależności funkcyjnych cd. • Zbiór zależności F jest minimalny jeżeli: – Prawa strona każdej zależności w F jest pojedynczym atrybutem (gwarancja, że żaden atrybut po prawej stronie nie jest redundantny); – Nie istnieje takie X->A w F taka, że zbiór F – {X->A} jest równoważny z F (gwarancja, że nie ma redundantnych zależności w F); – Nie istnieje takie X->A w F oraz taki podzbiór Z zawierający się w X, że: F {X A} {Z A} jest równoważny z F (gwarancja, że nie ma redundantnych atrybutów po lewej stronie) Postać minimalna zależności funkcyjnych - przykład Dany niech będzie zbiór zależności F F = {A->B, B->A, B->C, A->C, C->A} Jaka jest postać minimalna F? Można wyeliminować: B->A oraz A->C, gdyż: B->C i C->A dają B->A oraz A->B i B->C dają A->C F’ = {A->B, B->C, C->A} Postać minimalna zależności funkcyjnych – przykład cd Dany niech będzie zbiór zależności F F = {A->B, B->A, B->C, A->C, C->A} Jaka jest postać minimalna F? Można wyeliminować: B->C, gdyż: B->A i A->C dają B->C F” = {A->B, B->A, A->C, C->A} 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 Problem: Dany jest zbiór zależności funkcyjnych F oraz zbiór atrybutów X. Dla X wyznaczyć zbiór atrybutów X+ zależnych funkcyjnie od X. Metoda: •Rozpoczynamy przyjmując, że: X+ = X •Indukcja: Poszukujemy wszystkie te zależności funkcyjne, których lewe strony są podzbiorami bieżącego zbioru X+ i do X+ dołączamy wszystkie atrybuty należące do prawych stron tych zależności. Jeśli na przykład: Y B, Y X to X X {B} 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} 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 Postać minimalna zależności funkcyjnych – przykład cd Dany niech będzie zbiór zależności F F = {AB->C, B->A, A->B} Problem: Jaka jest postać minimalna F? Eliminujemy A z AB->C. Wtedy mamy: F’= {B->C, B->A, A->B} Dowód wynika to z faktu, że B jest kluczem relacji, gdyż: B+ = {ABC}. W związku z tym C jest zależne od B, a więc można zamiast AB->C napisać B->C. Wtedy bowiem z B->C mamy AB->AC, a z tego AB->A i AB->C. Na tej samej zasadzie można wyeliminować B z AB->C. Wówczas: F”= {A->C, B->A, A->B} Rozkładalność schematów relacyjnych • Wyróżniamy trzy rodzaje rozkładalności: – Rozkładalność bez straty danych – Rozkładalność bez straty zależności – Rozkładalność bez straty danych i zależności Rozkładalność bez straty danych Mówimy, że schemat relacyjny R = (U, F) jest rozkładalny bez straty danych na dwa schematy R[X] i R[Y] wtedy i tylko wtedy gdy: 1) 2) X Y U R R[ X ] R[Y ] Twierdzenie o rozkładalności Dany niech będzie schemat relacyjny R=(U,F) i niech XYZ=U i Y Z . Jeśli: X Y F Wówczas R jest rozkładalny bez straty danych na R[XY] oraz R[XZ] Zastosowanie twierdzenia o rozkładalności - przykład Egzamin NrStud Nazwisko Przedmiot Ocena 10 10 11 12 Kowalski Kowalski Nowak Wróbel Algebra Analiza Algebra Algebra 3 4 3 3 Można rozłożyć według zależności: Egza min NrStud Nazwisko Zastosowanie twierdzenia o rozkładalności - przykład Można rozłożyć według zależności: Egza min NrStud Nazwisko Ocena Student NrStud Przedmiot Ocena NrStud Nazwisko 10 Algebra 3 10 Kowalski 10 Analiza 4 11 Nowak 11 Algebra 3 12 Wróbe; 12 Algebra 3 Testowanie rozkładu bez straty danych • Dany jest schemat relacyjny R = (A1, …, An), zbiór zależności funkcyjnych F oraz dekompozycja na relacje R1, …, Rk. Problem: • Należy sprawdzić, czy dekompozycja jest bez straty danych. Metoda: • Konstruujemy tabelę zawierającą n kolumn i k wierszy. Kolumna j odpowiada atrybutowi Aj, a wiersz i odpowiada relacji Ri. W wiersz i oraz kolumnę j należy wstawić symbol aj jeżeli Aj jest w Ri. W przeciwnym wypadku należy wstawić symbol bij. • Dla każdej zależności funkcyjnej X->Y należy znaleźć te same symbole w tabeli dla atrybutu X. Jeśli się je znajdzie należy zmodyfikować w tym wierszu symbole dla atrybutu Y w taki sposób, żeby miały te same wartości. I tak jeśli w którymś z wierszy jest aj, to należy zmienić wszystkie pozostałe na aj. Jeśli bij, to należy zmienić na bij. • Jeśli w wyniku poprzedniego kroku tabela nie jest już dalej modyfikowana, wówczas jeśli istnieje w niej wiersz w którym występuje wiersz a1,…ak wówczas rozkład jest bez straty danych. W przeciwnym przypadku rozkład jest ze stratą danych. Testowanie rozkładu bez straty danych Rozważmy rozkład relacji R = (SAIP) na R1 = (SA) i R2 = (SIP) Zakładamy następujące zależności funkcyjne: S->A, SI->P Tabela inicjująca wygląda następująco: S A I P a1 a2 b13 b14 a1 b22 a3 a4 Zastosowanie S->A: Skoro w S w obydwu wierszach jest a1, wówczas zmieniamy w A wartość w drugim wierszu b22 na a2. Mamy więc: S A I P a1 a2 b13 b14 a1 a2 a3 a4 Wiersz drugi zawiera wartości a1,…a4, a więc rozkład jest bez straty danych Następny wykład Postacie normalne