![Page 1: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/1.jpg)
Bazy danych
Andrzej Grzybowski
Instytut Fizyki, Uniwersytet Śląski
![Page 2: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/2.jpg)
Bazy danych. Wykład 1 2
Wykład 1
Algebra relacyjnych baz danych
jako podstawa języka SQL i jego implementacji w systemach baz danych
Oracle
![Page 3: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/3.jpg)
Bazy danych. Wykład 1 3
Algebra relacyjnych baz danych W teorii mnogości (teorii zbiorów)
relacją R określoną:• w zbiorze A nazywamy dowolny podzbiór
iloczynu kartezjańskiego A×A: R A×A
• w zbiorach A, B nazywamy dowolny podzbiór iloczynu kartezjaskiego A×B:
R A×B • w zbiorach A1, A2, ... , An nazywamy
dowolny podzbiór iloczynu A1×A2 × ... ×An: R A1×A2 × ... ×An
![Page 4: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/4.jpg)
Bazy danych. Wykład 1 4
Algebra relacyjnych baz danych• Relację R relacyjnej bazy danych (RBD)
można z punktu widzenia teorii zbiorów wstępnie traktować jako nazwany dowolny podzbiór iloczynu kartezjańskiego zbiorów D1, D2, ... , Dn, będących dziedzinami (zbiorami wartości) odpowiednio atrybutów A1, A2, ... , An.
• Jednak należy pamiętać, że wykorzystanie w tej definicji iloczynu kartezjańskiego D1×D2 × ... ×Dn nie jest precyzyjne. Jest tak głównie dlatego, że kolejność atrybutów A1, A2, ... , An relacji RBD nie ma znaczenia.
![Page 5: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/5.jpg)
Bazy danych. Wykład 1 5
Algebra relacyjnych baz danych
Tabelaryczna reprezentacja relacji RBD
Dziedziny atrybutów:DA=D(A)={a1,a2,a3}
DB=D(B)={b1,b2}
DC=D(C)={c2,c3}
![Page 6: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/6.jpg)
Bazy danych. Wykład 1 6
Algebra relacyjnych baz danych Wymagane cechy, aby relacja R była
relacją RBD: 1) atomowość: elementy krotek relacji R
reprezentują pojedyncze wartości,2) każdy atrybut A ma rozróżnialną nazwę,3) wszystkie wartości atrybutu A pochodzą
z tej samej dziedziny (domeny) D,4) porządek atrybutów w relacji jest nieistotny,5) każda krotka jest różna,6) porządek krotek w relacji jest nieistotny.
![Page 7: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/7.jpg)
Bazy danych. Wykład 1 7
Kompatybilność relacji
• Schemat relacji inaczej nagłówek relacji R to zbiór nazw atrybutów A1, A2, ... , An relacji R:
N(R)={A1, A2, ... , An}
• Relacje R i S nazywamy kompatybilnymi, gdy mają takie same nagłówki: N(R)=N(S)
tzn. D(R.A1)=D(S.A1), D(R.A2)=D(S.A2), …, D(R.An)=D(S.An)
![Page 8: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/8.jpg)
Bazy danych. Wykład 1 8
Działania algebry RBD Oparte na teorii zbiorów: 1) Unia 2) Przecięcie (iloczyn)3) Różnica 4) Produkt (iloczyn kartezjański) Dotyczące informacji o strukturze krotek:5) Przypisanie (alias)6) Projekcja (rzutowanie)7) Selekcja8) Złączenie9) Dzielenie
![Page 9: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/9.jpg)
Bazy danych. Wykład 1 9
UniaNiech R i S są relacjami kompatybilnymi. Unią relacji R i S jest relacja R S o takim samym nagłówku, zawierająca wszystkie krotki znajdujce się w R, S lub w obydwu relacjach.
Standard SQL i Oracle SQL:
select X,Y,Z from R
union
select X,Y,Z from S;
![Page 10: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/10.jpg)
Bazy danych. Wykład 1 10
Przecięcie (iloczyn)Niech R i S są relacjami kompatybilnymi. Przecięciem relacji R i S jest relacja R S o takim samym nagłówku, zawierająca te krotki, które znajdują się zarówno w R, jak i w S.
Standard SQL i Oracle SQL:
select X,Y,Z from R
intersect
select X,Y,Z from S;
![Page 11: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/11.jpg)
Bazy danych. Wykład 1 11
RóżnicaNiech R i S są relacjami kompatybilnymi. Różnicą relacji R i S jest relacja R – S o takim samym nagłówku, zawierająca wszystkie krotki z relacji R, których nie ma w relacji S.
Standard SQL i Oracle SQL:
select X,Y,Z from R
minus
select X,Y,Z from S;
![Page 12: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/12.jpg)
Bazy danych. Wykład 1 12
Produkt (iloczyn kartezjański)Niech relacje R i S mają nagłówki odpowiednio N(R)={X1,X2,...,Xn} i N(S)={Y1,Y2,...,Ym}.Iloczynem kartezjańskim relacji R i S jest relacja R × S o nagłówku N(R×S)= {R.X1,R.X2,...,R.Xn, S.Y1,S.Y2,...,S.Ym}, zawierająca krotki będące wszystkimi możliwymi połączeniami krotek z relacji R i S.
Jeśli nazwy atrybutów relacji R i S są różne, to wówczas nagłówek iloczynu kartezjańskiego można zapisać w postaci:N(R×S)= {X1,X2,...,Xn,Y1,Y2,...,Ym}
![Page 13: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/13.jpg)
Bazy danych. Wykład 1 13
Produkt (iloczyn kartezjański)
Standard SQL i Oracle SQL:
select R.X,R.Y,R.Z,S.X,S.Y,S.Z from R, S;
![Page 14: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/14.jpg)
Bazy danych. Wykład 1 14
Alias (przypisanie) relacjiAliasem relacji R nazywamy nadanie tej relacji innej nazwy, np. R=A
Oracle SQL:
select A.X,A.Y,A.Z from R A;
![Page 15: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/15.jpg)
Bazy danych. Wykład 1 15
Alias (przypisanie) atrybutuAliasem atrybutu X relacji R nazywamy nadanie temu atrybutowi innej nazwy, np. X=Xnowy
Oracle SQL:
select X as Xnowy,Y,Z from R;
lub
select X Xnowy,Y,Z from R;
![Page 16: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/16.jpg)
Bazy danych. Wykład 1 16
Alias (przypisanie) atrybutuAliasem atrybutu X relacji R nazywamy nadanie temu atrybutowi innej nazwy, np. X=Xnowy
Oracle SQL:
select X as Xnowy,Y,Z from R;
lub
select X Xnowy,Y,Z from R;
![Page 17: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/17.jpg)
Bazy danych. Wykład 1 17
Alias (przypisanie) atrybutuAliasem atrybutu X relacji R nazywamy nadanie temu atrybutowi innej nazwy, np. X=Xnowy
Oracle SQL:
select X as Xnowy,Y,Z from R;
lub
select X Xnowy,Y,Z from R;
![Page 18: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/18.jpg)
Bazy danych. Wykład 1 18
Projekcja (rzutowanie)Niech relacje R ma nagłówek N(R)={X1,X2,...,Xn}. Projekcja relacji R na atrybuty Xi1,Xi2,...,Xik,
gdzie {Xi1,Xi2,...,Xik} {X1,X2,...,Xn}, jest relacją T=R[Xi1,Xi2,...,Xik] o nagłówku N(T)= {Xi1,Xi2,...,Xik}, zawierajcą krotki t spełniające warunek:
krotki r R pojedyncza krotka t T:
t(Xij)=r(Xij) j: 1 j k.
Inna często używana notacja projekcji relacji R na atrybuty Xi1,Xi2,...,Xik: Xi1,Xi2,...,Xik(R)
![Page 19: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/19.jpg)
Bazy danych. Wykład 1 19
Projekcja (rzutowanie)
Standard SQL i Oracle SQL:
select X,Y from S;
![Page 20: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/20.jpg)
Bazy danych. Wykład 1 20
SelekcjaNiech relacja R ma nagłówek N(R)={X1,X2,...,Xn}. Selekcja relacji R zgodnie z kryterium C jest relacją T = R gdzie C o tym samym nagłówku co relacja R, zawierającą krotki s spełniajce warunek selekcji C, który może przyjmować następujące postaci:1) C może być dowolnym porównaniem:
Xi Xj lub Xi x, gdzie x D(Xi) - dziedziny atrybutu Xi, a operator porównania może być następujący: <, >, =, <=, >=, <>; w Oracle’u można stosować także operator różności: !=
2) Jeżeli C’ i C” są warunkami selekcji, wówczas można utworzyć nowy warunek C w postaci:
C’ i C” (C’ and C”), C’ lub C” (C’ or C”), nie C (not C). Inna często używana notacja selekcji relacji R zgodnie z kryterium C: C(R)
![Page 21: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/21.jpg)
Bazy danych. Wykład 1 21
Selekcja
Standard SQL i Oracle SQL:
select X,Y,Z from Rwhere X=x1 and Y=y2;
![Page 22: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/22.jpg)
Bazy danych. Wykład 1 22
Złączenia• Złączenie naturalne (odnosi się zwykle do identycznie
nazwanych atrybutów w relacjach wchodzących w to złączenie)• Złączenie wewnętrzne (inaczej: proste złączenie), tu wynikiem
są krotki spełniające dokładnie warunek złączenia• Złączenia zewnętrzne (nadzbiór złączenia wewnętrzego): - złączenie zewnętrzne lewostronne, - złączenie zewnętrzne prawostronne, - złączenie zewnętrzne obustronne• Równozłączenie (do porównania atrybutów współdzielonych
używamy operatora: =)-złączenia, w tym typie złączenia do porównania atrybutów współdzielonych używamy operatora : - jeśli operatorem jest: <, >, <=, >=, to mówimy
o semizłączeniu (półzłączeniu)- jeśli operatorem różności <> (!=), to mówimy
o antyzłączeniu• Samozłączenie (złączenie relacji samej z sobą)
![Page 23: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/23.jpg)
Bazy danych. Wykład 1 23
Złączenie naturalne wewnętrzneNiech relacje R i S mają nagłówki odpowiednio N(R)={X1,X2,...,Xn,Z1,Z2,...,Zk} i N(S)={Z1,Z2,...,Zk,Y1,Y2,...,Ym}, gdzie n,k,m0 oraz {Z1,Z2,...,Zk} jest zupełnym podzbiorem atrybutów współdzielonych przez obie relacje. Złączenie (naturalne) R i S jest relacją R S o nagłówku N(R S) = {X1,X2,...,Xn,Z1,Z2,...,Zk,Y1,Y2,...,Ym}, zawierającą jedynie takie krotki t, dla których spełniony jest warunek równozłączenia, tzn.
krotki r R oraz s S: r(Zi)=s(Zi) i: 1 i k
wówczas t R S: t(X1,X2,...,Xn,Z1,Z2,...,Zk,Y1,Y2,...,Ym)
Zdefiniowane powyżej ZŁĄCZENIE NATURALNE należy do ZŁĄCZEŃ WEWNĘTRZNYCH oraz RÓWNOZŁĄCZEŃ, ale należy pamiętać, że ZŁĄCZENIE NATURALNE może dotyczyć szerszej kategorii złączeń.
ZŁĄCZENIE NATURALNE bywa utożsamiane po prostu ze ZŁĄCZENIEM, jednak częściej, tak jak np. w Oracle SQL, ZŁĄCZENIE utożsamia się ze ZŁĄCZENIEM WEWNĘTRZNYM!
![Page 24: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/24.jpg)
Bazy danych. Wykład 1 24
Złączenie naturalne wewnętrzne
![Page 25: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/25.jpg)
Bazy danych. Wykład 1 25
Złączenie naturalne wewnętrzneJedyna możliwość w starszych wersjach Oracle SQL:select X, R.Z1, R.Z2, Y from R, Swhere R.Z1=S.Z1 and R.Z2=S.Z2;Nowe możliwości Oracle SQL inspirowane przez Standard SQL:select X, Z1, Z2, Y from R natural join S;select X, R.Z1, R.Z2, Y from R inner join S on R.Z1=S.Z1 and R.Z2=S.Z2;select X, R.Z1, R.Z2, Y from R join S on R.Z1=S.Z1 and R.Z2=S.Z2;
![Page 26: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/26.jpg)
Bazy danych. Wykład 1 26
Złączenie (naturalne) zewnętrzne lewostronne
![Page 27: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/27.jpg)
Bazy danych. Wykład 1 27
Złączenie (naturalne) zewnętrzne lewostronne
Jedyna możliwość w starszych wersjach Oracle SQL:select X, R.Z1, R.Z2, Y from R, Swhere R.Z1=S.Z1(+) and R.Z2=S.Z2(+);Nowe możliwości Oracle SQL inspirowane przez Standard SQL:select X, R.Z1, R.Z2, Y from R left join S on R.Z1=S.Z1 and R.Z2=S.Z2;select X, R.Z1, R.Z2, Y from R left outer join S on R.Z1=S.Z1 and R.Z2=S.Z2;A nawet:select X, Z1, Z2, Y from R natural left join S;select X, Z1, Z2, Y from R natural left outer join S;
![Page 28: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/28.jpg)
Bazy danych. Wykład 1 28
Złączenie (naturalne) zewnętrzne prawostronne
![Page 29: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/29.jpg)
Bazy danych. Wykład 1 29
Złączenie (naturalne) zewnętrzne prawostronne
Jedyna możliwość w starszych wersjach Oracle SQL:select X, R.Z1, R.Z2, Y from R, Swhere R.Z1(+)=S.Z1 and R.Z2(+)=S.Z2;Nowe możliwości Oracle SQL inspirowane przez Standard SQL:select X, R.Z1, R.Z2, Y from R right join S on R.Z1=S.Z1 and R.Z2=S.Z2;select X, R.Z1, R.Z2, Y from R right outer join S on R.Z1=S.Z1 and R.Z2=S.Z2;A nawet:select X, Z1, Z2, Y from R natural right join S;select X, Z1, Z2, Y from R natural right outer join S;
![Page 30: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/30.jpg)
Bazy danych. Wykład 1 30
Złączenie (naturalne) zewnętrzne obustronne
![Page 31: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/31.jpg)
Bazy danych. Wykład 1 31
Złączenie (naturalne) zewnętrzne obustronne
Jedyna możliwość w starszych wersjach Oracle SQL:select X, R.Z1, R.Z2, Y from R, Swhere R.Z1=S.Z1(+) and R.Z2=S.Z2(+)unionselect X, R.Z1, R.Z2, Y from R, Swhere R.Z1(+)=S.Z1 and R.Z2(+)=S.Z2;
Nowe możliwości Oracle SQL inspirowane przez Standard SQL:select X, R.Z1, R.Z2, Y from R full join S on R.Z1=S.Z1 and R.Z2=S.Z2;select X, R.Z1, R.Z2, Y from R full outer join S on R.Z1=S.Z1 and R.Z2=S.Z2;A nawet:select X, Z1, Z2, Y from R natural full join S;select X, Z1, Z2, Y from R natural full outer join S;
![Page 32: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/32.jpg)
Bazy danych. Wykład 1 32
Uwaga o implementacji złączenia naturalnego w Oracle SQL
Złączenie naturalne relacji w Oracle SQL odbywa się względem atrybutów współdzielonych o takich samych nazwach, gdy takie nie istnieją, to wykonany zostaje iloczyn kartezjański relacji.
Dozwolone jest również wykorzystanie złączeń naturalnych do wykonania złączeń zewnętrznych relacji. Jednak aby uzyskać taki wynik, muszą istnieć w tych relacjach współdzielone atrybuty o takich samych nazwach, w przeciwnym razie zostanie wykonany iloczyn kartezjański.
![Page 33: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/33.jpg)
DzielenieNiech relacje R i S mają nagłówki odpowiednio N(R)={X1,X2,...,Xn,Z1,Z2,...,Zk} i N(S)={Z1,Z2,...,Zk},
tzn. N(S) N(R).
Relacja T = R÷S o nagłówku N(T)= {X1,X2,...,Xn} jest rezultatem dzielenia R przez S, jeżeli T zawiera dokładnie te krotki t, dla których spełniony jest warunek:
RS R: |Rs| = |S| |Rs[X1,X2,...,Xn]|=1
( krotki s S r RS: r(Zi)=s(Zi) i: 1 i k )wówczas pojedyncza krotka t R ÷ S: t(X1,X2,...,Xn).
W Oracle SQL nie istnieje operator dzielenia.
Bazy danych. Wykład 1 33
![Page 34: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/34.jpg)
Dzielenie
Bazy danych. Wykład 1 34
![Page 35: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/35.jpg)
Przydatne własności
Prawo łączności:
iloczynu kartezjańskiego: (R S) T = R (S T)
złączenia: (R S) T = R (S T)
Prawo przemienności:
iloczynu kartezjańskiego: R S = S R
złączenia: R S = S R
Bazy danych. Wykład 1 35
![Page 36: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/36.jpg)
PRIORYTETY DZIAŁANIA OPERATORÓW
NAJWYŻSZY PROJEKCJASELEKCJA
ILOCZYN KARTEZJAŃSKIZŁĄCZENIE, DZIELENIE
RÓŻNICANAJNIŻSZY PRZECIĘCIE, UNIA
Bazy danych. Wykład 1 36
Przykładowo: R[X,Y] gdzie Z=5 jest niepoprawne (wynik projekcji R[X,Y] nie ma już atrybutu Z). Poprawny zapis to: (R gdzie Z=5)[X,Y]
Oczywiście niekiedy konieczne jest STOSOWANIE NAWIASÓW.
![Page 37: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/37.jpg)
Zupełny zbiór działań
ZUPEŁNY ZBIÓR DZIAŁAŃ ALGEBRY RELACYJNYCH BAZ DANYCH tworzą:
• UNIA• RÓŻNICA• PRODUKT (ILOCZYN KARTEZJAŃSKI)• PROJEKCJA (RZUTOWANIE)
• SELEKCJA
• ALIAS (PRZYPISANIE)
Przy pomocy tych 6 działań można wyrazić pozostałe 3:
PRZECIĘCIE (ILOCZYN), ZŁĄCZENIE, DZIELENIE.
Bazy danych. Wykład 1 37
![Page 38: Bazy danych - USNETprac.us.edu.pl/~agrzybow/BD_W1.pdf · relacją RBD: 1) atomowość: elementy krotek relacji R reprezentują pojedyncze wartości, 2) każdy atrybut A ma rozróżnialną](https://reader033.vdocuments.mx/reader033/viewer/2022041908/5e64faaa2eccba74fe2134cf/html5/thumbnails/38.jpg)
Bazy danych. Wykład 1 38
Wybrane podręczniki
1. C. J. Date, Wprowadzenie do systemów baz danych, WNT, Warszawa
2001.
2. J. D. Ullman, Jennifer Widom, Podstawowy wykład z systemów baz danych,
WNT, Warszawa 2000.
3. H. Garcia-Molina, J.D. Ullman, J. Widom, Systemy baz danych. Pełny
wykład, WNT, Warszawa 2006.
4. J. Widom , H. Garcia-Molina , J. D. Ullman Implementacja systemów baz
danych, WNT Warszawa 2003.
5. T. M. Connolly, C. E. Begg, Systemy baz danych, Warszawa, RM 2004.
6. S. Allen, Modelowanie danych, Helion, Gliwice 2006
7. T.Pankowski; Podstawy baz danych, PWN, Warszawa 1992.
8. J. Kukuczka, Relacyjne bazy danych,Wydawnictwo Pracowni Komputerowej
Jacka Skalmierskiego, Gliwice 2000.
9. K. Czapla, Bazy danych. Podstawy projektowania i języka SQL, Helion,
Gliwice 2015.
10. H. Landayi, SQL. Księga eksperta, Wydawnictwo Helion, Gliwice 2000.