Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta. Więzy integralności a algebra relacji. Wielozbiory dlaczego są praktyczniejsze od zbirów, suma, iloczyn różnica dla wielozbiorów, rzutowanie wielozbiorów, iloczyn kartezjański wielozbiorów, złączenia wielozbiorów.
Działania w modelu relacyjnym Dotychczas rozważaliśmy bazy danych z punktu widzenia projektanta i zastanawialiśmy się jedynie nad tworzeniem bazy projekt koncepcyjny i logiczny. Teraz popatrzymy na bazy danych z perspektywy użytkownika. Główne działanie użytkownika polega na przeszukiwaniu bazy danych, to znaczy na pisaniu aplikacji, których wynikiem są odpowiedzi na pytania związane z bieżącą instancją bazy danych. W modelu relacyjnym danych istnieje zestaw operacji na danych. Operacje na danych zdefiniowane są w sposób algebraiczny i tworzą algebrę relacji.
Operacje teoriomnogościowe Trzy najpopularniejsze operacje teoriomnogościowe stanowią: suma, przecięcie i różnica. R S sumazbiorówrisjestzbioremelementów,z którychkażdynależydorlubs. R S przekrójzbiorówrisjestzbioremelementów,do któregonależątylkoteelementy,którenależądoris. R\S różnicazbiorówrisjestzbioremelementów,które należądorinienależądos. OperacjetemożemyzastosowaćtylkodlatychrelacjiRiS,które spełniają następujące warunki: schematy relacji muszą mieć te same atrybuty, atrybuty obu relacji muszą być uporządkowane w ten sam sposób.
Operacja rzutowania Z operacji rzutowania korzysta się przy tworzeniu nowej relacji, która powstaje z relacji R poprzez usunięcie niej pewnych kolumn. Nową relację będąca wynikiem rzutowania relacji R przez przepisanieatrybutówa 1,A 2,...,A n oznaczamy: π A1,A 2,...,A n (R). studio film budżet miasto śr temp. Giant Gwiezdne Wojny 180 Milpitas 24 Giant Odyseja kosmaiczna 50 Milpitas 24 Wheatstone Robocop 12 Vancouver 20 Wyrażenieπ studio,film,budżet (R)mapostać: studio film budżet Giant Gwiezdne Wojny 180 Giant Odyseja kosmaiczna 50 Wheatstone Robocop 12
Selekcja W wyniku zastosowania operacji selekcji dla relacji R powstaje nowa relacja, która zawiera tylko część krotek relacji R. Krotki relacji wynikowej są wybierane według kryterium, które określa warunek C narzucony na krotki relacji R. Nową relację będącą wynikiem selekcji oznaczamy: σ C (R). C jest wyrażeniem warunkowym, w którym operandami mogą być stałe lub atrybuty relacji. Wartość wyrażenia warunku C jest obliczanadlakażdejkrotkitrelacjirwtensposób,żewmiejsce atrybutów wstawiane są odpowiednie składowe krotki t. Jeśli wartośćwarunkudlakrotkitjestrównaprawdatokrotkatjest dołączonadozbioruσ C (R).
Przykład selekcji studio film budżet miasto śr temp. Giant Gwiezdne Wojny 180 Milpitas 24 Giant Odyseja kosmiczna 50 Milpitas 24 Wheatstone Robocop 12 Vancouver 20 MPM Rambo 32 Austin 26 MPM Rambo II 72 Austin 26 σ budżet>40 (R) studio film budżet miasto śr temp. Giant Gwiezdne Wojny 180 Milpitas 24 Giant Odyseja kosmiczna 50 Milpitas 24 MPM Rambo II 72 Austin 26
Operacja złączenia naturalnego Operacja złączenia naturalnego relacji R i S polega na połączeniu wparytychkrotekrelacjiris,któremająidentycznewartościdla określonych atrybutów. Złączenie naturalne relacji R i S oznacza się: R S Załóżmy,żeatrybutyA 1,A 2,...,A n występująwobuschematach relacjisir.wówczaskrotkarrelacjizostajepołączonawparęz krotkąsrelacjisjeśliwartościskładowychrisdlaatrybutów A 1,A 2,...,A n sątakiesame. KażdakrotkanależącądozłączeniaR S,którapowstałaze złączeniakrotkirisjestzgodnazkrotkąrnaatrybutachrelacjir izgodnazkrotkąsnaatrybutachrelacjis.
Przykład złączenia naturalnego Relacja R: A B C 1 2 3 6 7 8 9 7 8 Relacja S: B C D 2 3 4 2 3 5 7 8 10 ZłączenieR S: A B C D 1 2 3 4 1 2 3 5 6 7 8 10 9 7 8 10
Iloczyn kartezjański relacji Iloczyn kartezjański dwóch zbiorów R i S jest zbiorem wszystkich uporządkowanych par, z których pierwsza należy do zbioru R a drugadozbiorus. W przypadku relacji elementami są krotki, w których występować może wiele składowych stąd w przypadku iloczynu kartezjańskiego nowa dłuższa krotka zawiera wszystkie składowe krotki r a następnie wszystkie składowe krotki s. Jeślizdarzysię,żerelacjeSiRsąatrybutyotakiejsamejnazwie, wówczas dla jednego z powtarzających się atrybutów należy wprowadzić nową nazwę. Przykład Relacja R: A B C D 1 2 3 4 1 2 3 5 Relacja S: D E F G 5 2 7 4 4 2 1 5 RelacjaR S: A B C R.D S.D E F G 1 2 3 4 5 2 7 4 1 2 3 4 4 2 1 5 1 2 3 5 5 2 7 4 1 2 3 5 4 2 1 5
Złączenie teta Czasem konieczne jest złączenie krotek relacji według innego kryterium złączenia niż w przypadku złączenia naturalnego. PołączenietyputetarelacjiRiSoznaczamysymbolemR C Si określa się następująco: utworzyć iloczyn kartezjański relacji R i S, z iloczynu kartezjańskiego należy wybrać tylko te krotki, dla których spełniony jest warunek C. Relacja R: A B C 1 2 3 5 1 4 Relacja S: C D 5 2 4 3 RelacjaR S: A B R.C S.C D 1 2 3 5 2 1 2 3 4 3 5 1 4 5 2 5 1 4 4 3 RelacjaR B<D S: A B R.C S.C D 1 2 3 4 3 5 1 4 5 2 5 1 4 4 3
Tworzenie zapytań z połączeń operacji Algebra relacji nie byłaby użyteczna gdybyśmy operowali tylko podstawowymi operacjami. Algebra umożliwia tworzenie dowolnie złożonych wyrażeń. Przykład: relacja FILMY: tytuł rok długość typ filmu nazwisko gwiazdy Filadelfia 1993 125 kolor Tom Hanks Filadelfia 1993 125 kolor Denzel Washington Filadelfia 1993 125 kolor Antonio Banderas Ostatni samuraj 2003 154 kolor Tom Cruise Skazani na Shawshank 1994 142 kolor Tim Robbins Skazani na Shawshank 1994 142 kolor Morgan Freeman π tytuł,nazwiskogwiazdy (σ rok>1993 (FILMY) σ długść<150 (FILMY)) tytuł nazwisko gwiazdy Skazani na Shawshank Tim Robbins Skazani na Shawshank Morgan Freeman π tytuł,nazwiskogwiazdy (σ rok>1993anddługść<150 (FILMY))
Więzy relacji W algebrze relacji istnieją dwa sposoby określania więzów: 1 Wyrażenie R = stanowi więzy, które można interpretować, żerelacjarjestpusta,albowrelacjirniemażadnejkrotki, 2 WyrażenieS Roznacza,żekażdakrotkarelacjiSnależy również do relacji R. Te dwa sposoby zapisania więzów są równoważne, w obu przypadkach można zapisać te same więzy, ale czasem któreś z nich jest wygodniejsze: R S R\S =, R = R.
Więzy integralności odwołań Jeśli jedna encja A jest połączona więzami integralności odwołań z encją B to encja B musi istnieć. Mówiąc w terminologii modelu relacyjnego, więzy integralności odwołań wymagają, żeby istniała krotkasrelacjis,naktórąwskazujekrotkarrelacjir,gdzie pomiędzy relacjami R i S istnieją więzy integralności odwołań. Dla relacji: FILMY(tytuł, rok, długość, typ, nazwa studia, producent) FILM DYR(id,imię, nazwisko, adres) zakładam, że każdy producent musi należeć również do relacji FILM DYR. Tak określone więzy można zapisać: π producent (FILMY) π id (FILMDYR).
Zależność funkcyjna GWIAZDY(nazwisko, adres, płeć, data urodzenia) nazwisko adres. Oznaczatotylkotyle,żeniemawrelacjiGWIAZDYdwóchkrotek o tych samych nazwiskach a różnych adresach. Inaczej mówiąc równość nazwisk implikuje równość adresów. W algebrze relacyjne parę krotek określamy jako iloczyn kartezjański. Stąd, żeby wyrazić zależność funkcyjną musimy wykonać selekcję krotek iloczynu kartezjańskiego elementów tej samej relacji, które spełniają warunek równości atrybutów po lewej stronie zależności funkcyjnej i różności atrybutu po prawej stronie zależności. Żeby zależność funkcyjna była spełniona, relacja będąca wynikiem wspomnianej selekcji musi być pusta. Ponieważ mamy iloczyn kartezjański tej samej relacji ze sobą musimy dokonać przemianowania i wówczas: σ R1.nazwisko=R2.nazwiskoANDR1.adres =R2.adres =.
Operacje relacyjne na wielozbiorach Relacje jako zbiory krotek są prostym i naturalnym modelem danych, które mogą występować w bazach danych, ale w rozwiązaniach komercyjnych pojawiają się często wielozbiory- czyli zbiory, w których ten sam element może wystąpić więcej niż jeden raz. Wielozbiory w znaczny sposób przyspieszają wykonywanie operacji na relacjach. A B C 1 2 3 1 2 1 1 3 4 A B C 1 2 3 1 2 1 1 3 4 1 2 1 1 2 1
Dlaczego wielozbiory W przypadku rzutowania zastosowanie wielozbiorów umożliwia niezależne traktowanie poszczególnych krotek. Jeśli natomiast traktujemy relację jako zbiór wówczas musimy w przypadku każdej z krotek wykonać porównanie wyniku rzutowania z dotychczasowymi wynikami rzutowania, po to by upewnić się, że nowa krotka jeszcze nie jest dołączona do wyniku. Jeśli zadanie polega na wyznaczeniu wartości średniej składowych A relacji R to nie można traktować rzutowanej relacji w kategoriach zbioru, bo wówczas pominiemy wszystkie elementy wielokrotne. Sumowanie. Jeśli potraktujemy R S jak zbiór, wówczas każdą krotkę ze zbioru R musimy sprawdzić czy nie należy również do zbioru S. Jeśli pozwolimy aby wyniku sumy był wielozbiorem, to wystarczy skopiować wszystkie krotki relacji RirelacjiSdowyniku,bezwzględunatoczysątakiesame
Operacje sumy iloczynu i różnica dla wielozbiorów Suma R S zawiera wszystkie elementy należące do wielozbioruris.jeślikrotkatwystąpiwrnrazyzaśws mrazytowr Stwystąpin+mrazy. PrzekrójR S.JeślikrotkatwystąpiwRnrazyawSm razy to w iloczynie wystąpi min(n, m) razy. RóżnicaR\S.JeślikrotkatwystąpiwRnrazyawSmrazy towiloczyniewystąpimax(0,n m).
Operacje rzutowania, selekcji oraz iloczyn kartezjański złączenia wielozbiorów Operację rzutowania czy też selekcji dla wielozbiorów przeprowadza się niezależnie dla każdej z krotek, nie zwracając uwagi na pozostałe krotki. Wynikiem wykonania wymienionych operacji zarówno dla relacji rozumianych w sensie zbiorów jaki i wielozbiorów może ja ko wynik dać wielozbiór. Iloczyn kartezjański wielozbiorów tworzymy analogicznie jak w przypadku zbiorów przy czym nie zwracamy uwagi na powtarzające siękrotkiwynikowe.jeślijakaśkrotkarwrelacjirwystąpinrazy akrotkaswrelacjismrazytowr Sktorka (r,s)wystąpi n mrazy. Złączenie wielozbiorów wykonujemy analogicznie jak w przypadku relacji traktowanych jako zbiory, przy czym w tych złączeniach pewne elementy pojawią się wielokrotnie.