Plan wykładu azy danych Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych. Dokoczenie SQL Zalenoci wielowartociowe zwarta posta normalna Dekompozycja do 4NF Przykład sprowadzanie do postaci normalnej Małgorzata Krtowska Katedra Oprogramowania e-mail: mmac@ii.pb.bialystok.pl azy danych (studia zaoczne) 2 Podzapytania - wskazówki Wewntrzne zapytanie musi by ujte w nawiasy i musi wystpowa po prawej stronie warunku W podzapytaniu nie wolno stosowa klauzuli ORDER Y. Obowizuje zasada jednej klauzuli ORDER Y dla całego polecenia SELET. Jeli jest potrzebna umieszczamy j jako ostatni Kolumny wystepujce na licie wyboru wewntrznego zapytania musz wystpowa w klejnoci zgodnej z kolejnoci kolumn ujtych w nawiasy warunku zapytania głównego. Musi równie wystpowa zgodno co do liczby i typu kolumn wybieranych w bloku wewntrznym i kolumn bloku zewntrznego porównywanych z nimi. Podzapytania po FROM Podzapytania mog wystpowa po WHERE, HVING i FROM: FROM tabela1, (podzapytanie1) alias1, (podzapytanie2) alias2... azy danych (studia zaoczne) 3 azy danych (studia zaoczne) 4
Operator EXISTS Powtórzenie NF i 3NF W przypadku zapyta skorelowanych czasami nie interesuje nas wynik zapytania, ale jedynie czy wiersz o zadanych przez nas warunkach istnieje. Wówczas wykorzystujemy operator EXISTS. Relacja R jest w postaci normalnej NF wtedy i tylko wtedy, gdy dla kadej nietrywialnej zalenoci 1, 2,..., n, zbiór { 1, 2,..., n } jest nadkluczem R EXISTS (podzapytanie) - zwraca true jeeli podzapytanie zwróci przynajmniej jeden wiersz NOT EXISTS(podzapytanie) zwraca true jeeli podzapytanie nie zwróci adnego wiersza Mówimy, e relacja jest w trzeciej postaci normalnej (3NF) wtedy i tylko wtedy, gdy jest spełniony nastpujcy warunek: jeli 1, 2,..., n jest zalenoci nietrywaln, to albo { 1, 2,..., n } jest nadkluczem albo jest elementem pewnego klucza. azy danych (studia zaoczne) 5 azy danych (studia zaoczne) 6 Nowa forma redundancji Moe si okaza, e schemat relacji ma posta NF, ale wystpuje w nim redundancja Najpowszechniejszym ródłem redundancji s tzw zalenoci wielowartociowe (ZW), które wyraaj zaleno pomidzy krotkami istniejcej relacji, która to relacja stara si reprezentowa wicej ni jeden zwizek wiele do wielu. W takich sytuacjach niektóre atrybuty s od siebie niezalene i ich wartoci musz powtórzy si w relacji we wszystkich moliwych kombinacjach. Zalenoci wielowartociowe definicja Zaleno wielowartociowa 1 2... n ->-> 1 2... m zachodzi w relacji R wówczas, gdy wybierajc z relacji R te krotki, które s zgodne dla atrybutów typu, zbiór wartoci atrybutów typu nie zaley od adnych wartoci tych atrybutów z R, których nie ma ani w zbiorze, ani w. Dla kadej pary krotek t i u z relacji R, które maj takie same wartoci atrybutów typu, mona znale w R tak krotk v, której składowe maj wartoci równe: wartociom atrybutów typu w krotkach t i u wartociom atrybutów typu krotki t wartociom tych składowych krotki u, które nie s ani typu, ani typu. azy danych (studia zaoczne) 7 azy danych (studia zaoczne) 8
Zalenoci wielowartociowe ->-> pozostałe t u v Wnioskowanie z zalenoci wielowartociowych Reguła zalenoci trywialnych jeli w pewnej relacji zachodzi zaleno 1 2... n ->-> 1 2... m to wówczas, gdy 1 2... k s wszystkimi atrybutami oraz cz z nich jest typu, zachodzi równie 1 2... n ->-> 1 2... k Reguła przechodnioci jeli zachodz zalenoci 1 2... n ->-> 1 2... m i 1 2... m ->-> 1 2... k to zachodzi równie zaleno 1 2... n ->-> 1 2... k Zalenoci wielowartociowe nie spełniaj reguły podziału i łczenia. azy danych (studia zaoczne) 9 azy danych (studia zaoczne) 10 Wnioskowanie z zalenoci wielowartociowych cd Kada zaleno funkcyjna jest zalenoci wielowartociow, czyli jeli 1 2... n -> 1 2... m to 1 2... n ->-> 1 2... m Reguła dopełnienia jeli 1 2... n ->-> 1 2... m zachodzi dla relacji R, to w R zachodzi równie 1 2... n ->-> 1 2... k, gdzie atrybuty typu s wszystkimi tymi atrybutami R, które nie s ani typu, ani typu. Przykład: Relacja ktorzy (nazwisko, ulica, miasto, tytuł, rok) Zalenoci wielofunkcyjne nazwisko->-> ulica miasto, z reguły dopełnienia mamy te zaleno nazwisko ->-> tytuł rok, która jest równie spełniona zwarta posta normalna Zaleno wielowartociow w relacji R: 1 2... n ->-> 1 2... m okrelamy jako nietrywialn, jeli: aden atrybut typu nie jest typu Kady atrybut R jest albo typu, albo typu. Relacja R jest w czwartej postaci normalnej (4NF), wtedy i tylko wtedy, gdy: 1 2... n ->-> 1 2... m jest nietrywialn zalenoci wielowartociow; { 1 2... n } jest nadkluczem w R. azy danych (studia zaoczne) 11 azy danych (studia zaoczne) 12
Dekompozycja do czwartej postaci normalnej Znajdujemy zaleno, która nie spełnia 4NF np. 1 2... n ->-> 1 2... m, gdzie { 1 2... n } nie jest nadkluczem (moe by to zaleno np. wyprowadzona z pewnej zalenoci funkcyjnej). Wówczas schemat relacji R dzielimy na dwa schematy: pierwszy schemat zawiera wszystkie atrybuty typu i typu. Drugi schemat zawiera wszystkie atrybuty typu oraz te wszystkie atrybuty z R, które nie s atrybutami ani typu, ani typu Pierwsza posta normalna Relacja jest w pierwszej postaci normalnej, jeli kada warto atrybutu w kadej krotce tej relacji jest wartoci atomow azy danych (studia zaoczne) 13 azy danych (studia zaoczne) 14 Druga posta normalna Pełna zaleno funkcyjna trybut relacji r jest w pełni funkcyjnie zalezny od zbioru atrybutów X, jeli jest funkcyjnie zaleny od niego, ale nie jest funkcyjnie zalezny od adnego podzbioru zbioru X. Trzecia posta normalna Dana relacja jest w trzeciej postaci normalnej, jeli jest ona w drugiej postaci normalnej i kady jej atrybut nie wchodzcy w skład adnego klucza nie jest przechodnio funkcyjnie zaleny od adnego klucza tej relacji. Dana relacja jest w drugiej postaci normalnej, jeli kady atrybut tej relacji nie wchodzcy w skład adnego klucza jest w pełni funkcyjnie zaleny od wszystkich kluczy tej relacji. W celu uzyskania drugiej postaci normalnej naley podzieli relacj na zbiór takich relacji, których wszystkie atrybuty bd w pełni funkcyjnie zalene od kluczy. Przechodnia zaleno funkcyjna Zalenoci funkcyjne dwóch relacji w 3NF azy danych (studia zaoczne) 15 azy danych (studia zaoczne) 16
Pierwsza posta normalna Druga posta normalna Posta nieznormalizowana; struktury danych nie s dwuwymiarowe do 1PN Relacja R D klucz D do 2PN D Usunicie danych nieelementarnych Usunicie niepełnej zalenoci funkcyjnej azy danych (studia zaoczne) 17 azy danych (studia zaoczne) 18 Trzecia posta normalna do 3PN Usunicie przechodniej zalenoci funkcyjnej azy danych (studia zaoczne) 19