330 likes | 522 Views
Relacyjny model danych. Wyk ł ad 2 S. Kozielski. Relacja. X, Y – zbiory, Iloczyn kartezjański X Y = {(x,y): x X y Y} Dwuczłonowa relacja w X Y = {(x,y): x X y Y x y} X Y N – członowa relacja:
E N D
Relacyjny model danych Wykład 2 S. Kozielski
Relacja X, Y – zbiory, Iloczyn kartezjański X Y = {(x,y): xX yY} Dwuczłonowa relacja w X Y = {(x,y): xX yY x y} X Y N – członowa relacja: podzbiór iloczynu kartezjańskiego X1 X2 X3 ... XN
Model relacyjny – opis formalny Atrybuty: A1, A2, A3, np.: nazwisko, nrp, kwota, adres Dziedziny atrybutów: DA1, DA2, DA3, ... Schemat relacji: R = { A1, A2, ..., Ap} – podzbiór zbioru atrybutów Relacja r(R): podzbiór iloczynu kartezjańskiego dziedzin atrybutów tworzących schemat DA1 DA2 ... DAp r(R) DA1 DA2 ... DAp
Przykład: R = {nrp, nrt, kwota} Dnrp= {1, 2, 3}, Dnrt= {1, 2, 3}, Dkwota= {150, 200, 300} Dnrp Dnrt Dkwota= {1, 1, 150 2, 1, 150 3, 1, 150 … 3, 3, 150 3, 3, 200 3, 3, 300}
Wypłaty Wypłaty Dnrp Dnrt Dkwota
Relacja jako zbiór krotek r(R) = {t1, t2, t3, …, tk} (A, B, C) ———— a1b1 c1- krotka t1 a2b2 c2- krotka t2 a3b3 c3- krotka t3
Algebra relacji Dane relacje: r(R), s(S) Selekcja w – warunek selekcji (wyrażenie logiczne) w(r) = {t : t r w(t) = True } = p(R)
A B C A B C 2 C=2 2 1 2 2 Przykład selekcji
A B C A C AC Przykład projekcji
Złączenie (naturalne) r s = { u : t r w s t [R S] = w [R S] u[R] = t u[S] = w} = z (R S)
Przykład złączenianaturalnego r (A, B, C) s (C, D) z (A, B, C, D) ———————=————— a1b1 c1 c1 d1a1 b1 c1 d1 a2b2 c2 c5 d5a4 b4 c1 d1 a3b3 c3 a4b4 c1
Ogólna postać złączenia ( - złączenie) r w s = w(r s) lub r ABs = AB (r s) , gdzie A R, B S
Dzielenie Niech będą dane relacje: r(XY), s(Y) r s = { u : w s t r t [Y] = w t [X] = u }
Przykład dzielenia w (nrp, nrt) t (nrt) wt =z (nrp) —————————— 1 11 1 1 22 3 1 3 3 2 2 2 3 3 1 3 2 3 3
Operatory mnogościowe Niech będą dane relacje: r(R), s(R) Suma: r s Różnica: r \ s Iloczyn: r s
Pytanie Z1 jako wyrażenie algebry relacji Z1 = nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))
Pracownicy Wypłaty nrp nrt kwota nrp nazwisko adres nrz 2 2 300 1 Lipowski Ruda 2 3 3 150 2 Grabski Zabrze 1 1 1 150 3 Jaworek Gliwice 1 3 2 200 1 3 200 Złączenie tabel
nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy)
nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))
Własności operatorów algebry relacji r(R), s(S), z(Z) – dane relacje 1) Przemienność złączeń: r s = s r 2) Łączność złączeń: (r s) z = r (s z)
3) Przemienność selekcji i złączeń dla wyrażenia w(r s) Niech atr(w) – zbiór atrybutów występujących w w Jeśli atr(w) R, to w(r s) = (w(r )) s Jeśli atr(w) S, to w(r s) = r (w(s )) Jeśli w= w1 w2 oraz atr(w1) R i atr(w2) S, to w(r s) = (w1(r )) (w2(s))
Przykłady równoważnej postaci wyrażeń P1=nazwisko (nrz=3kwota>2000 (Pracownicy Wypłaty)) P1= nazwisko ((nrz=3 (Pracownicy)) (kwota>2000 (Wypłaty))) P2= nazwisko (nazwa = ‘Pr.gen.’ (Pracownicy Wypłaty Tematy)) P2= nazwisko (Pracownicy Wypłaty (nazwa = ‘Pr.gen.’ (Tematy)))
Drzewo rozbioru wyrażenia algebry relacji – plan realizacji zapytania
P2= nazwisko (nazwa = ‘Pr.gen.’ (Pracownicy Wypłaty Tematy)) P2= nazwisko (Pracownicy Wypłaty (nazwa = ‘Pr.gen.’ (Tematy)))
Proste reguły optymalizacji wyrażeń algebry relacji • Przenieść selekcje (i projekcje) jak najwyżej w drzewie rozbioru wyrażenia • Wykonać projekcje razem ze złączeniami lub selekcjami • Dobrać kolejność złączeń według selekcji najsilniej redukujących