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: zachodzi: r 1[ X ] r2[ X ] r1[ Y ] r2[ Y r 1, r ] 2 R
Spełnienie zależności funkcyjnej - przykład Egzamin NrStud Nazwisko Przedmiot Ocena 10 Kowalski Algebra 3 10 Kowalski Analiza 4 11 Nowak Algebra 3 12 Wróbel Algebra 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ść: A C
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) : F2(poszerzalnosc): Y X F3(przechodniosc): X X Y Y X Y Y XZ YZ Z X Z
Aksjomaty Armstronga cd Z aksjomatów Armstronga można wyprowadzić następujące reguły: F4(pseudoprzechodnosc): X Y YW Z F5(addytywnosc): X Y X Z X YZ F6(dekompozycyjnosc): X YZ X Y X XW Z 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 I numer indeksu O ocena z egzaminu E numer identyfikacyjny egzaminatora G godzina egzaminu S sala egzaminu Zbiór zależności funkcyjnych: F = {P ->GS, GS -> P, PI->O, GI->PS, PGS->E} Zależności pochodne: 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). K U Zbiór atrybutów nazywamy kluczem schematu R wtedy i tylko wtedy, gdy spełnione są następujące warunki: 1) Jednoznaczna identyfikalność 2) Minimalność X U F K U F ( X K) 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 R Y U 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]
Egzamin Zastosowanie twierdzenia o rozkładalności - przykład NrStud Nazwisko Przedmiot Ocena 10 Kowalski Algebra 3 10 Kowalski Analiza 4 11 Nowak Algebra 3 12 Wróbel Algebra 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 NrStud Przedmiot Ocena 10 Algebra 3 10 Analiza 4 11 Algebra 3 12 Algebra 3 Student NrStud Nazwisko 10 Kowalski 11 Nowak 12 Wróbe;
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