Relacyjny model danych

1 Relacyjny model danychWykład 2 S. Kozielski ...
Author: Kassia Czapnik
0 downloads 3 Views

1 Relacyjny model danychWykład 2 S. Kozielski

2 Relacja X, Y – zbiory, Iloczyn kartezjański X Y = {(x,y): xX  yY}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: 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  AB s =  AB (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=3kwota>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