Bazy danych: Operacje algebraczne w relacyjnych bazach danych 1 Bazy danych systemy zarzadzana Wykład VI Operacje algebraczne w relacyjnych bazach danych Część II
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 2 Operacje łaczena tablc Łaczene tablc - dea Tablce relacyjnej bazy danych mogą być łączone. Łączene tablc wykonuje sę w celu uzyskana dostępu do nformacj zborczej znajdującej sę w dwóch lub węcej tablcach. Łączene tablc defnuje sę poprzez wskazane które rekordy jednej tablcy będą łączone z którym rekordam drugej tablcy. Podstawowy najczęścej spotykany schemat połączena to połączene wynkające z relacj klucz klucz obcy. W tabel nadrzędnej klucz dentyfkuje obekty nadrzędne, take jak wydzał, zbór, grupa. W tabel podrzędnej encje take jak pracownk, element, osoba mają swój dentyfkator, a ch przynależnośc do obektów nadrzędnych wskazana jest poprzez wartość klucza obcego (klucza z tablcy nadrzędnej pełnącego w tablcy podrzędnej rolę atrybutu). TABLE_SET TABLE_ITEM # SET_ID # ITEM_ID ATT 1 ATT 2 ATT N BTT 1 BTT 2... SET ID (FK)... BTT M Rysunek 1: Schemat podstawowy łączena tablc.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 3 Operacje łaczena tablc (jon) Operacja złaczena ( -jon) Technologa relacyjnych baz danych umożlwa łączene nformacj zawartej w welu tabelach; połączena defnuje sę pomędzy rekordam dwóch wybranych tabel. Najbardzej ogólną operacją łączena tabel jest operacja -złączena, gdze oznacza warunek dopuszczający połączene rekordów. Nech oraz będą dowolnym relacjam, przy czym,! " #. Nech będze warunkem logcznym określonym na atrybutach zboru! (nekoneczne wszystkch); będzemy psać $ %&'!(. Wynkem operacj -złączena relacj jest relacja )* +,-. zdefnowana w następujący sposób: / 021436587:9;=< >?136587:9;A@'/ <CB Tak węc, operacja -złączena pozwala połączyć te rekorty tabel oraz, które spełnają warunek dla wartośc wybranych atrybutów (selekcja przy warunku $ %&'!(. Jeżel warunek jest zawsze prawdzwy (lub ne został określony), to operacja -złączena daje jako wynk loczyn kartezjańsk relacj oraz. Jeżel warunek jest określony na pojedynczych atrybutach, np. D oraz E, to operację -złączena relacj oraz można zapsać w postac takej jak +,GFIHJ-LKMN lub O,.DP-QE. Logczna defncja operacj -złączena ma postać: R O, -TSVUXWZY\[ ] ^_ ^`a^`ib$ c^ibde R^_ ^` G R^`Ib$ ^`Ibd $ %&'!(.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 4 Przykład operacj -złaczena Rozważmy relację zadaną tablcą Pracownk: oraz tablcę Nagroda Nazwsko Imę Data ur Stawka Aback Adam 61-01-01 550,00 zł Abakowsk Alojzy 61-01-02 574, 00 zł Adamsk Anton 61-01-03 1275,00 zł Adamsk Arnold 61-01-03 1280,00 zł Adamsk Arnold 61-01-03 1295,00 zł Aron Antonna 61-01-03 575,00 zł Batman Bogusław 67-02-13 1224,00 zł Celńska Mrosława 69-03-08 975,00 zł Donzak Darusz 71-10-17 3000,00 zł Data ur Stawka1 Stawka2 Nagroda 61-01-03 300,- zł 1300,- zł 300,- zł 72-01-01 2999,- zł 3001,-zł 3000,- zł przy czym nech będze warunkem postac Pracownk.[Data ur] <= Nagroda.[Data ur] AND Pracownk.Stawka > Nagroda.Stawka1 AND Pracownk.Stawka < Nagroda.Stawka2. Wynkem operacj -złączena będze tabela Nazwsko Imę Data ur Stawka Data ur Stawka1 Stawka2 Nagroda Aback Adam 61-01-01 550,00 zł 61-01-03 300,- zł 1300,- zł 300,- zł Abakowsk Alojzy 61-01-02 574, 00 zł 61-01-03 300,- zł 1300,- zł 300,- zł Aron Antonna 61-01-03 575,00 zł 61-01-03 300,- zł 1300,- zł 300,- zł Donzak Darusz 71-10-17 3000,00 zł 72-01-01 2999,- zł 3001,- zł 3000,- zł
f f f f Bazy danych: Operacje algebraczne w relacyjnych bazach danych 5 Równozłaczene (equjon) Jednym z najczęstszych przypadków operacj -złączena jest operacja równozłaczena. W przypadku równozłączena warunek ma postać równośc wybranych atrybutów obu tabel. Nech oraz będą dowolnym relacjam, przy czym,!. Wynkem operacj równozłączena relacj po atrybutach schematu relacj jest relacja / 0j Tkmle 'n oraz atrybutach kmlnnpoqororn ksl < >? gf ze h f! ze schematu relacj Tksl=ẗn kmlnnporoqoqn Tak węc, operacja równozłączena pozwala połączyć te rekordy tabel oraz dla których wartośc wybranych atrybutów są równe. Zauważmy, że dla realzacj operacj równozłączena ne mus stneć wspólny atrybut dla obu relacj (może być! ). Jeżel warunek jest określony na pojedynczych atrybutach, np. D oraz E, to operację -złączena relacj oraz można zapsać w postac takej jak +, F HQu K Mv lub O, D u E. Operacja równozłączena jest szczególnym (ale najczęścej spotykanym) przypadkem operacj -złączena. Maksymalna lczba elementów w relacj wynkowej dla operacj -złączena wynos wzy^{ R wzyd^ R]. Jeżel atrybuty defnujące połączene z relacj tworzą klucz (lub ndeks jednoznczny), to maksymalna lczba elementów relacj wynkowej wynos w}y^ R] ; jeżel oba zbory atrybutów defnujących połączene stanową klucze, to maksymalna lczba elementów relacj wynkowej wynos ~ m Rw}y^ R wzy^{ R]. kml @'/ <CB
o ƒ o f f o ƒ o f f Bazy danych: Operacje algebraczne w relacyjnych bazach danych 6 Złaczene naturalne (natural jon) Operacja złączena naturalnego stanow z kole szczególny przypadek operacj równozłączena. Polega ona na połączenu dwóch relacj według wartośc wspólnych atrybutów. Nech oraz będą dowolnym relacjam, przy czym h,!. Istotnym założenem pozwalającym na realzację złączena naturalnego jest stnene wspólnych atrybutów w łączonych relacjach, tzn.: Nech zatem! relacj po atrybutach / 0jƒ ks o 'nporoqorn km o! f. Wynkem operacj równozłączena f jest relacja < > 58 _9?ƒ ks o 'nporoqoqn Tak węc, operacja złączena naturalnego pozwala połączyć te rekordy tabel oraz dla których wartośc wszystkch wspólnych atrybutów są równe. W tabel wynkowej powtarzające sę kolumny są pomjane (projekcja na atrybuty zboru! ). Zauważmy, że dla realzacj operacj złączena naturalnego mus stneć przynajmnej jeden wspólny atrybut dla obu relacj; ponadtdo, jeżel znane są schematy obu relacj, to zbór wszystkch wspólnych atrybutów jest zadany jednoznaczne ne trzeba go podawać jawne. Stosowane są wtedy zapsy: / 0 < / < ˆ Operacja złączena naturalnego jest szczególnym (ale najczęścej spotykanym) przypadkem operacj równozłączena. Maksymalna lczba elementów w relacj wynkowej jest ogranczana dentyczne jak w przypadku równozłączena. km o @'/ <CB
^ ^ Bazy danych: Operacje algebraczne w relacyjnych bazach danych 7 Przykład operacj złaczena naturalnego Rozważmu ponowne tablce dostawców odborców materałów budowlanych. ŠŒ` zw y ^z z 4 cegła ` z 4 $ z z 4 w 4~ 4 z 4 p 4 š ` $ z š w 4~ 4 š œ š p 4 oraz y ^z cegła Ÿz ` $ z Ÿz w 4~ 4 4~ w 4~ 4 Ÿz p 4 4~ p 4 Ÿz œ 4~ W wynku operacj złączena naturalnego dostanemy tabelę postac: ŠŒ` zw y ^z z 4 cegła Ÿz ` z 4 $ z Ÿz z 4 w 4~ 4 4~ z 4 w 4~ 4 Ÿz z 4 p 4 4~ z 4 p 4 Ÿz T ` a^ $ z Ÿz T a^ w 4~ 4 4~ T a^ w 4~ 4 Ÿz T a^ œ 4~ T a^ p 4 4~ T a^ p 4 Ÿz yw yw a^ a^ a^
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 8 Typy złaczena W rezultace złączena ( -złączena, równozłączena, złączena naturalnego) relacj relacj powstaje relacja wynkowa zawerająca tylko te konkatenacje rekordów obu tabel, dla których spełnone jest kryterum złączena. Jest to tzw. złaczene wewnętrzne (nner jon) jest ono przyjmowane jako domyślne. W praktycznych przypadkach, może zastneć potrzeba roszerzena relacj wynkowej o rekordy jednej lub drugej relacj ne pasujące do żadnego rekordu drugej tabel. Mamy wówczas możlwość utworzena czterech nnych typów złączeń: złaczene lewostronne zewnętrzne (left outer jon), tzn. złączene zawerające wszystke rekordy tablcy uzupełnone tym rekordam z tablcy, które spełnają warunek połączena, złaczene prawostronne zewnętrzne (rght outer jon), tzn. złączene zawerające wszystke rekordy tablcy uzupełnone tym rekordam z tablcy, które spełnają warunek połączena, złaczene zewnętrzne pełne (full outer jon), tzn. złączene zawerajace wszystke rekordy tablc oraz uzupełnone wartoścam typu NULL w przypadku gdy do danego rekordu ne pasuje żaden rekord z drugej tablcy; w stoce jest to kombnacja złączena lewo- prawostronnego, złaczene zewnętrzne typu unon, tzn. złączene zawerajace wszystke rekordy tablcy ne pasujące do żadnego rekordu uzupełnone tym rekordam z tablcy, które ne pasują do żadnego rekordu tablcy ; ten typ złączena stanow przecweństwo złączena wewnętrznego (dokładnej: uzupełnene do loczynu kartezjańskego). We wszystkch przypadkach pola puste wypełnane są wartoścam NULL.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 9 Przykłady złaczeń Rozważmy następujące tabele: ŠŒ` y ^z }w ` $ z a^} ` š $ z w 4~ 4 a^} š p 4 p 4 œ a^ 4y a^ oraz ŠŒ` zw ) 4 z 4 Ï Ï z 4 ªIª ª ª ªIª š «I««««I«I I I I "y a^ I I T zy a^ Wynkem złączena wewnętrznego (naturalnego) będze tabela postac: ŠŒd` y ^z a z8w ) 4 4 ` p z a^z 4 ` p z a^z 4 ª ª ª ª ª ª ` T p z a^ ««««««w ~ 4 a^z 4 w ~ 4 a^z 4 ª ª ª ª ª ª T $ a^ ««««««$ a^ $ a^ Wynkem złączena typu UNION będze tabela postac: ŠŒd` y ^z a z8w ) 4 4 y š zy a^ œ d 4y a^
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 10 Przykłady złaczeń Wynkem operacj lewostronnego złączena zewnętrznego będze tabela postac: ŠŒd` y ^z a z8w ) 4 4 ` p z a^z 4 ` p z a^z 4 ª ª ª ª ª ª ` T p z a^ ««««««w ~ 4 a^z 4 w ~ 4 a^z 4 ª ª ª ª ª ª T $ a^ ««««««$ a^ $ a^ œ d 4y a^ Wynkem operacj prawostronnego złączena zewnętrznego będze tabela postac: ŠŒd` y ^z a z8w ) 4 4 ` p z a^z 4 ` p z a^z 4 ª ª ª ª ª ª ` T p z a^ ««««««w ~ 4 a^z 4 w ~ 4 a^z 4 ª ª ª ª ª ª T $ a^ ««««««$ a^ $ a^ y š zy a^
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 11 Przykłady złaczeń Wynkem operacj złączena zewnętrznego pełnego będze tabela postac: ŠŒd` y ^z a z8w ) 4 4 ` p z a^z 4 ` p z a^z 4 ª ª ª ª ª ª ` T p z a^ ««««««w ~ 4 a^z 4 w ~ 4 a^z 4 ª ª ª ª ª ª T $ a^ ««««««$ a^ $ a^ œ d 4y a^ y š zy a^ W wynku poszukwana wszystkch materałów ch dostawców ne posadających telefonów otrzymamy tabelę: ŠŒd` y ^z a z8w ) 4 4 œ W wynku poszukwana wszystkch dostawców dostarczających określone materały, np. w 4~ 4 oraz $ posadających telefony dostanemy tabelę postac: ŠŒd` y ^z a z8w ) 4 4 w ~ 4 a^z 4 w ~ 4 a^z 4 ª ª ª ª ª ª T $ a^ ««««««$ a^ $ a^ c Anton Lgęza
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 12 Łaczene statyczne dynamczne tablc Defnowane połączeń pomędzy tablcam może odbywać sę na dwa sposoby: statyczne poprzez zdefnowane węzów ntegralnośc w defncjach odpowednch tabel wynkających z projektu dagramu ERD (za pomocą DDL; okenko Relacje w ACCESS-e), dynamczne poprzez zdefnowane na klku tablcach operacj realzującej zapotrzebowane na dane pochodzące z tych tablc (za pomocą DQL, DML; w systeme ACCESS w kwerendach szablon QBE). Statyczne węzy ntegralnośc zdefnowane na etape projektowana pozwalają kontrolować utrzymywać ntegralność danych dane w polu klucza obcego muszą być wcześnej zdefonoowane w polu klucza tablcy nadrzędnej. Dynamczne łączene tablc wykonuje sę w celu uzyskana dostępu do nformacj zborczej znajdującej sę w dwóch lub węcej tablcach. Łączene tablc defnuje sę za pomoca SQL lub w kwerendach, poprzez wskazane które rekordy jednej tablcy będą łączone z którym rekordam drugej tablcy. TABLE_SET TABLE_ITEM # SET_ID # ITEM_ID ATT 1 ATT 2 ATT N BTT 1 BTT 2... SET ID (FK)... BTT M Rysunek 2: Przykład defnowana łączena statycznego 1 N.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 13 Rodzaje połaczeń pomędzy tablcam Połaczena tablc jeden-do-jeden, jeden-do-welu, wele-dowelu 1 1 1 N N M Rysunek 3: Połączena typu 1 1, 1 N, N M.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 14 Redukcja połaczeń N M do 1 N Zamana połaczena N M na dwa połaczena jeden-do-welu N M 1 N N 1 Rysunek 4: Redukcja połączeń wele-do-welu
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 15 Wymuszane węzów ntegralnośc Węzy ntegralnośc W praktyce defnuje sę jedyne dwa typy połączeń mędzy tabelam, są to: połączena typu jeden-do-jeden, połączena typu jeden-do-welu. Połączena typy wele-do-welu realzowane są poprzez zdefnowane tablcy pośrednej (zamana połączena typu N N na dwa połączena 1 N, N 1). Istneje możlwośc wymuszena węzów ntegralnośc (ACCESS) nakładanych na zwązek dane w łączonych tabelach realzowane jest wtedy sprawdzane warunków zgodnośc danych. Warunk te są następujące: defnowany zwązek mus dotyczyć dwóch tabel w tej samej baze danych, pole (pola) łączące tabel głównej stanową klucz lub ndeks jednoznaczny, w odpowadających m polach tabel dołączanej (polach klucza obcego) ne mogą pojawać sę dane, ne występujące w tabel głównej, odpowadające sobe pola muszą być tego samego typu (Autonumer == Lczba całkowta długa). Po wymuszenu węzów ntegralnośc możlwe jest uaktywnene następujących opcj: kaskadowa aktualzacja powązanych pól, kaskadowe usuwane powązanych rekordów. Opcje te pozwalają automatyczne zachowywać spójność danych.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 16 Operacje agregujace W przypadku dużych tablc bazodanowych często stosuje sę operacje łączena danych z welu rekordów z wykorzystanem funkcj agregujących, takch jak suma, średna, czy zlczane. Pozwala to uzyskać nformację sumaryczną, loścową, na wysookm pozome abstrakcj. Zasady realzacj oparacj agregujących: grupy rekordów o dentycznej wartośc wskazanego atrybutu wg którego następuje grupowane zastąpowane są pojedynczym rekordem, dla tak powstałych rekordów sumarycznych wylczane są dane zagregowane, dane ndywdualne rekordów wyjścowych są pomjane (ne moga byc uwzględnone), grupy można formować herarchczne, wg klku atrybutów grupujących. Funkcje agregujące: sum(.) oblcza sumę, avg(.) oblcza średną, count(.) zlcza rekordy w grupe, mn(.), ma(.) wyznaczaja wartość mnmalną maksymalną w grupe, varance(.) wyznacza warancję, stddev(.) wyznacza odchylene standardowe. Argumentem powyższych funkcj może być atrybut tablcy (kolumna) lub wyrażene. Atrybut(y) wg którego należy dokonać grupowana wskazywany jest w opcj GROUP BY.
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 17 Własnośc operacj algebry relacj Operacje sumy uogólnonej ± (algebracznej dla relacj zgodnych) złączena naturalnego (lczynu kartezjańskego dla relacj o rozłącznych zborach atrybutów mają następujące własnośc: 1. Idempotentność: *±² + +, ³ +, 2. Łączność: ±O Rµ± )s R ²±²] ± ), ), 3. Przemenność: ²±* Oµ±, ¹ ³, 4. Prawa rozdzelnośc: R º±. R ±³ 5. Prawa demorgana: ) R»¼½ )»¼½ R ±²]»¼½ ] ] R»¼½¾, R ] R»¼½ s ²± ] R»¼½¾, m R )»¼ \±+ R ) ½ v R ±. R»¼½¾ ²±²) R»¼ Znane operacje algebraczne w relacyjnych bazach danych obejmują 12 operacj: ±Œ,,,,, O, -,,, ÀÁ fcâ, ÂJ À,, à ÄN R. Można je wyrazć za pomocą pęcu operacj elementarnych: sumy, różncy, projekcj, loczynu kartezjańskego, selekcj. Np. dopełnene R so Àr  Àr  Àr Â. Operację loczynu można zdefnować jako ² ÅaÆN Rà u R ]. Inna możlowść to ¹ ³ R ]. Operację różncy można zdefnować jako z wykorzystanem lewostronnego złączena zewnętrznego lub za pomocą selekcj gdy do budowy kryterum można wykorzystać negację warunek przynależnośc rekordu do zboru.,
Bazy danych: Operacje algebraczne w relacyjnych bazach danych 18 Problemy realzacj zapytań optymalzacj ch wykonana Ogólne zasady optymalzacj zapytań Dla optymalzacj zapytań należy stosować odpowedne zasady konstrukcj: należy unkać mnożena krotek (loczynu kartezjańskego, neprecyzyjnego -złączena, nepotrzebnych operacj złączena), operacje selekcj projekcj wykonywać na jak najnższym pozome (jak najwcześnej), dla częstych operacj wyszukwana lub zawerających ukryte wyszukwane posługwać sę ndeksam, operację selekcj oraz operację złączena następujące po nej operacje projekcj należy wykonywać łączne (jako jedną operację), unkać operacj wymagających (welokrotnego) dostępu do dysku. Wybrane zasady szczegółowe uszeregować kolejne warunk (krytera) selekcj od najslnejszych do najsłabszych (perwsze operacje elmnują maksmum rekordów), dokonywać możlwe wcześne projekcj na możlwe mały zestaw atrybutów (z opcją DISTINCT), operacje selekcj przesuwać do wewnątrz nnych operacj (np. loczynu kartezjańskego, sumy, różncy), operacje projekcj na wybrane atrybuty przesuwć do wewnątrz nnych operacj (np. loczynu kartezjańskego, sumy).