1 Relacyjny model danychWykład 2 S. Kozielski
2 Relacja X, Y – zbiory, Iloczyn kartezjański X Y = {(x,y): xX yY}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
3 Model relacyjny – opis formalnyAtrybuty: 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
4 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} 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)))", "width": "800" } 28 Drzewo rozbioru wyrażenia algebry relacji – plan realizacji zapytania { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/432884/1/images/28/Drzewo+rozbioru+wyra%C5%BCenia+algebry+relacji+%E2%80%93+plan+realizacji+zapytania.jpg", "name": "Drzewo rozbioru wyrażenia algebry relacji – plan realizacji zapytania", "description": "Drzewo rozbioru wyrażenia algebry relacji – plan realizacji zapytania", "width": "800" } 29 Optymalizacja wyrażeń algebry relacji { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/432884/1/images/29/Optymalizacja+wyra%C5%BCe%C5%84+algebry+relacji.jpg", "name": "Optymalizacja wyrażeń algebry relacji", "description": "Optymalizacja wyrażeń algebry relacji", "width": "800" } 30 P2= nazwisko (nazwa = ‘Pr.gen.’ (Pracownicy Wypłaty Tematy)) P2= nazwisko (Pracownicy Wypłaty (nazwa = ‘Pr.gen.’ (Tematy))) { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://slideplayer.pl/432884/1/images/30/P2%3D+%EF%81%B0nazwisko+%28%EF%81%B3nazwa+%3D+%E2%80%98Pr.gen.%E2%80%99+%28Pracownicy+%EF%81%B7%EF%81%B6+Wyp%C5%82aty+%EF%81%B7%EF%81%B6+Tematy%29%29.jpg", "name": "P2= nazwisko (nazwa = ‘Pr.gen.’ (Pracownicy Wypłaty Tematy))", "description": "P2= nazwisko (Pracownicy Wypłaty (nazwa = ‘Pr.gen.’ (Tematy)))", "width": "800" } 31 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.pl/1/432884/slides/slide_32.jpg", "name": "", "description": "", "width": "800" } 32 { "@context": "http://schema.org", "@type": "ImageObject", "contentUrl": "http://images.slideplayer.pl/1/432884/slides/slide_33.jpg", "name": "", "description": "", "width": "800" } 33 Proste reguły optymalizacji wyrażeń algebry relacjiPrzenieść 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
5 Wypłaty Dnrp Dnrt Dkwota2 300 3 150 1 200 Wypłaty Dnrp Dnrt Dkwota
6 Relacja jako zbiór krotekr(R) = {t1, t2, t3, …, tk} (A, B, C) ———— a1 b1 c krotka t1 a2 b2 c krotka t2 a3 b3 c krotka t3
7 Różne formy opisu stosowane w modelu relacyjnymOpis formalny Opis tablicowy Opis fizyczny (fizycznych struktur d.) relacja tablica (tabela) plik krotka wiersz rekord atrybut kolumna pole schemat relacji nagłówek tablicy typ rekordu
8
9 Algebra relacji Dane relacje: r(R), s(S) Selekcjaw – warunek selekcji (wyrażenie logiczne) w(r) = {t : t r w(t) = True } = p(R)
10 Przykład selekcji A B C 2 1 C=2
11 Projekcja Niech X R X = { u : t r u = t [X] } = q (X)
12 Przykład projekcji A B C AC
13 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)
14 Przykład złączenia naturalnegor (A, B, C) s (C, D) z (A, B, C, D) ———— ——— = ————— a1 b1 c c1 d a1 b1 c1 d1 a2 b2 c c5 d a4 b4 c1 d1 a3 b3 c3 a4 b4 c1
15 Ogólna postać złączenia ( - złączenie)r w s = w (r s) lub r AB s = AB (r s) , gdzie A R, B S
16 Dzielenie Niech będą dane relacje: r(XY), s(Y)r s = { u : w s t r t [Y] = w t [X] = u }
17 Przykład dzielenia w (nrp, nrt) t (nrt) w t = z (nrp) ———— ——— ——————— ——— ——— 2 2 2 3 3 1 3 2 3 3
18 Operatory mnogościoweNiech będą dane relacje: r(R), s(R) Suma: r s Różnica: r \ s Iloczyn: r s
19 Pytanie Z1 jako wyrażenie algebry relacjiZ1 = nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))
20 Złączenie tabel Pracownicy Wypłaty nrp nrt kwota 2 300 3 150 1 200 nrpnazwisko adres nrz 1 Lipowski Ruda 2 Grabski Zabrze 3 Jaworek Gliwice
21 Pracownicy Wypłaty nrp nazwisko adres nrz nrt kwota 2 GrabskiZabrze 1 300 3 Jaworek Gliwice 150 Lipowski Ruda 200
22 Pracownicy Wypłaty Tematynrp nazwisko adres nrz nrt kwota nazwa kier. 2 Grabski Zabrze 1 300 Pr. przetwor. 3 Jaworek Gliwice 150 Pr. reaktora Lipowski Ruda Pr. zasilacza 200
23 nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy)nrp nazwisko adres nrz nrt kwota nazwa kier. 3 Jaworek Gliwice 1 150 Pr. reaktora 2 200 Pr. przetwor.
24 nazwa (nazwisko = ‘Jaworek’ (Pracownicy Wypłaty Tematy))Pr. reaktora Pr. przetwor.
25 Własności operatorów algebry relacjir(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)
26 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))
27 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)))
28 Drzewo rozbioru wyrażenia algebry relacji – plan realizacji zapytania
29 Optymalizacja wyrażeń algebry relacji
30 P2= nazwisko (nazwa = ‘Pr.gen.’ (Pracownicy Wypłaty Tematy)) P2= nazwisko (Pracownicy Wypłaty (nazwa = ‘Pr.gen.’ (Tematy)))
31
32
33 Proste reguły optymalizacji wyrażeń algebry relacjiPrzenieść 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