BAD 420 Projektowanie relacyjnych baz danych str.1 Projektowanie relacyjnych baz danych ZALEŻNOŚCI FUNKCYJNE Mówimy, że w relacji R typu U spełniona jest zależność funkcyjna XY, gdzie X,YU, jeśli dla każdych dwóch krotek r, sR r[X]=s[X] r[Y]=s[Y]. Oznaczenia: F{XY: X, YU} – zbiór zależności funkcyjnych F+ - najmniejszy zbiór zależności funkcyjnych domknięty ze względu na następujące reguły wyprowadzania: Aksjomaty Armstronga Niech X, Y, Z U A1. YX XYF+ (zwrotność) A2. XYF+ XZYZF+ (poszerzalność) A3. XYF+ YZF+ XZF+ (przechodniość) Jeżeli chcemy stwierdzić, które atrybuty są funkcjonalnie zależne od zbioru X to wyznaczamy domknięcie tranzytywne tego zbioru. Domknięciem tranzytywnym zbioru XU względem zbioru zależności funkcyjnych F nazywamy zbiór atrybutów X+ = {AU: XAF+ } Konstrukcja zbioru X+ pozwala stwierdzić, czy dana zależność XY wynika logicznie ze zbioru F, XYF+ YX+ Algorytm wyznaczania domknięcia tranzytywnego K1. X0 = X, i = 0 K2. Xi+1 = Xi {A: YZF+ AZ YXi } (dołączamy prawe strony tych zależności funkcyjnych, których lewa strona jest podzbiorem Xi) K3. Czy Xi = Xi+1? Jeśli tak to koniec (X+ = Xi), jeśli nie to i:=i+1, przejdź do kroku K2 Postacie normalne. Anomalie: redundancja, anomalia modyfikacji, anomalia wstawiania, anomalia usuwania 1PN (1NF): Relacja R jest w pierwszej postaci normalnej, jeśli dziedziną każdego atrybutu są wartości elementarne (nierozkładalne). Kluczem relacji R(U), o zbiorze zależności F nazywamy dowolny zbiór atrybutów KU taki, że (1) KUF+ (jednoznaczna identyfikowalność) (2) YK, YK, YUF+ (minimalność) Zbiór atrybutów XU spełniających warunek (1) nazywamy nadkluczem. A jest atrybutem głównym (kluczowym), jeżeli istnieje klucz K taki, że AK. W przeciwnym wypadku mówimy, że A jest atrybutem niekluczowym. XY jest pełną zależnością funkcyjną, jeśli nie istnieje zbiór ZX taki, że ZYF+. 2PN (2NF): Schemat R = (U, F) jest w drugiej postaci normalnej, jeśli każdy niekluczowy atrybut AU jest w pełni funkcyjnie zależny od każdego klucza tego schematu. BAD 420 Projektowanie relacyjnych baz danych str.2 3PN (3NF): Schemat R = (U, F) jest w trzeciej postaci normalnej, jeśli dla każdej zależności XAF+, (XU, AU) zachodzi: (1) AX (zależność trywialna), albo (2) X jest nadkluczem, albo (3) A jest atrybutem głównym (kluczowym). WNIOSEK: Schemat R = (U, F) jest w 3PN, jeśli jest w 2PN oraz nie zawiera zależności przechodnich (zależność XA nazywa się zależnością przechodnią, jeśli X nie jest ani podzbiorem, ani nadzbiorem żadnego klucza ; K XA – A atrybut niekluczowy). BCNF: Schemat R = (U, F) jest w postaci normalnej Boyce’a-Codda, jeśli dla każdej zależności XAF+, (XU, AU) zachodzi: (1) AX (zależność trywialna), albo (2) X jest nadkluczem. Oprócz zależności funkcyjnych rozważa się też zależności wielowartościowe (ozn. XY, czyt. X wyznacza wieloznacznie Y), które służą do zdefiniowania czwartej postaci normalnej. Zależność XY można interpretować jako regułę: jeśli krotki <x, y, z> oraz <x, y’, z’> R to y = y’. Podobnie zależność XY można interpretować jako regułę: jeśli krotki <x, y, z> oraz <x, y’, z’> R to również krotki <x, y, z’> oraz <x, y’, z> R Schemat relacyjny R = (U, F) jest rozkładalny na składowe niezależne S = (X, G) i T = (Y, H) w.i t.w. gdy: (1) XY = U (2) F+= (G+H)+ (3) Dla każdej relacji RINST(R), R = R[X] R[Y] (rozkład bez straty danych i zależności) Twierdzenie. Niech dany będzie schemat R = (U, F) oraz X, Y takie, że XY=U i XY. Projekcje R[X] = (X, G) oraz R[Y] = (Y, H) są niezależnymi składowymi schematu R w.i.t.w. gdy: (1) F+=(GH)+ (2) XYX F+ lub XYY F+ [Dla R(U) jeśli XY to rozkład R1(X+) i R2(U-X+X) jest rozkładem bez straty danych] Algorytm Bernsteina (wersja uproszczona) – generuje schemat relacji w 3PN wykorzystując rozkład bez straty danych i zależności. (K1) Eliminowanie zbędnych atrybutów (z lewej strony zależności funkcyjnych w F). Atrybut AX nazywamy zbędnym w zależności XYF+, jeżeli (X-A)YF+. Wynik – zbiór F’. (K2) Znajdowanie minimalnego generatora F0 zbioru F’. Ponieważ XYF+ YX+ zatem, kolejno dla każdej zależności za zbioru F’, badamy ten warunek korzystając z algorytmu wyznaczania domknięcia tranzytywnego. (K3) Podział. Elementy zbioru F0 dzielimy na grupy F1, ..., Fm w taki sposób, że wszystkie zależności jednej grupy mają identyczne lewe strony. (K4) Grupowanie. Każdą parę Fi, Fj z lewymi stronami odpowiednio X i Y łączymy w jedną grupę, jeżeli XYF0+ i YXF0+ (K5) Dla każdej grupy Fi tworzymy zbiór Ui złożony z atrybutów tej grupy. Wynik – docelowy schemat relacyjny TD = {Ri = (Ui, Fi), i=1, 2, ..., n} BAD 420 Projektowanie relacyjnych baz danych str.3 ZADANIA 1. Korzystając z aksjomatów Armstronga wyprowadzić następujące reguły: a) XYF+ YWZF+ XWZF+ (pseudo-przechodniość) b) XYF+ XZF+ XYZF+ (addytywność) c) XYZF+ XYF+ XZF+ (dekompozycyjność) d) XYF+ XZYF+ 2. Dany jest schemat relacyjny R = (U, F), gdzie U = {A, B, C, D, E, G}, F = {ABC, DEG, CA, BEC, BCD, CGBD, ACDB, CEAG}. Wyznaczyć domknięcia tranzytywne zbiorów: a) X1 = {B, D} b) X2 = {B} c) X3 = {D} 3. Udowodnić, ze jeżeli XY to X+Y+ (domknięcia oblicza się według tego samego zbioru atrybutów). 4. W której postaci normalnej są następujące schematy relacyjne: a) R = (U, F), gdzie U = {M, U, K}, F = {MUK, KM} b) R = (U, F), gdzie U = {A, B, C, D}, F = {ABC, BD, BCA} c) R = (U, F), gdzie U = {S, T, D, K}, F = {TSD, SDK} 5. Dany jest schemat relacyjny R = (U, F), gdzie U = {NrInd, Nazwisko_studenta, Wydział_nazwa, Wydział_adres}, F = {Nr_IndNazwisko_studenta,Wydział_nazwa, Wydział_nazwaWydział_adres}. Uzasadnij dlaczego schemat ten nie jest w 3PN i podaj rozkład na składowe niezależne w 3PN. 6. Dany jest schemat relacyjny R = (U, F), gdzie U = {P, G, S, I, E, O}, F = {PGS, GSP, PIO, PGSE, GIP, GIS, GSIO}. Stosując algorytm Bernsteina znaleźć rozkład tego schematu na składowe niezależne w 3PN.