Wykłd 6 RBD Relcyjne Bzy Dnych Bzy Dnych - A. Dwid 2011 1
Bzy Dnych - A. Dwid 2011 2 Sum ziorów A i B Teori ziorów B A R = ) ( Iloczyn ziorów A i B ( ) B A R =
Teori ziorów Różnic ziorów ( A) i B Iloczyn ziorów B i A ( ) R = A B R = B A Bzy Dnych - A. Dwid 2011 3
Teori ziorów Iloczynem krtezjńskim ( ) ziorów A i B nzywmy ziór 1 4 2 3 x 1 2 = 3 R = A B 12 11 13 21 32 33 22 23 31 42 41 43 Bzy Dnych - A. Dwid 2011 4
Relcyjne Bzy Dnych W relcyjnym modelu zy dnych dne reprezentowne są w postci dwuwymirowej teli, nzywnej relcją. Kżdą tlicę R i możn trktowć jko relcję w sensie mtemtycznym, jeżeli dl ziorów możliwych wrtości tryutów (kolumn teli) A i,1,a i,2,...,a i,n relcj R i zwier się/jest iloczynem krtezjńskim. R A A,..., A i i, 1 i,2 i, n Bzy Dnych - A. Dwid 2011 5
Relcyjne Bzy Dnych Relcyjny model zy dnych poleg n wyodręnieniu relcji między poszczególnymi telmi (relcjmi) R 1, R 2,..., R n R R R,..., 1 2 R n Kolejność występowni tych tel nie m znczeni. Bzy Dnych - A. Dwid 2011 6
Relcyjne Bzy Dnych R 2 B 5 7 9 R 1 A 1 3 C c6 c8 c10 B 2 4 Nzw relcji Ngłówek relcji złożony z nzw tryutów Krotk (ng. tuple) krotk Iloczyn krtezjński R = R 1 x R 2 = R A R 1.B R 2.B C 1 2 5 c6 1 2 7 c8 1 2 9 c10 3 4 5 c6 3 4 7 c8 3 4 9 c10 Bzy Dnych - A. Dwid 2011 7
R A R 1.B R 2.B C 1 2 5 c6 Relcyjne Bzy Dnych Dziedziny tryutów: 1 2 7 c8 1 2 9 c10 3 4 5 c6 3 4 7 c8 3 4 9 c10 D A =D(A)={1,3} D R1.B =D(R1.B)={2,4} D R2.B =D(R2.B)={5,7,9} D C =D(C)={c6,c8,c10} Dziedziną relcji nzywmy sumę dziedzin wszystkich tryutów relcji D( R) = D( A) D( R1. B) D( R2. B) D( C) Bzy Dnych - A. Dwid 2011 8
Relcyjne Bzy Dnych Cechy relcji: 1)Atomowość: elementy krotek relcji R reprezentują pojedyncze wrtości. 2)Kżdy tryut A jest jednozncznie nzwny. 3)Wszystkie wrtości tryutu A pochodzą z tej smej dziedziny (domeny) D. 4)Porządek tryutów w relcji jest nieistotny. 5)Kżd krotk jest różn 6)Porządek krotek w relcji jest nieistotny. 7)Musi się skłdć przynjmniej z jednego tryutu Bzy Dnych - A. Dwid 2011 9
Relcyjne Bzy Dnych Klucze Klucz główny - to jedn lu więcej kolumn teli, w których wrtości jednozncznie identyfikują kżdy wiersz w teli Kżd relcj musi mieć klucz główny, to zpewni niepowtrzlność krotek w relcji. Klucze kndydujące - to jedn lu więcej kolumn teli, które mogą występowć jko jednoznczny identyfiktor wierszy(krotek) w teli. Bzy Dnych - A. Dwid 2011 10
Relcyjne Bzy Dnych Klucz ocy jest kolumną lu grupą kolumn teli, któr czerpie swoje wrtości z tej smej dziedziny co klucz główny teli powiąznej z ni w zie dnych Klucze oce są sposoem łączeni dnych przechowywnych w różnych telch. Klucz główny Klucz kndydujący Klucz ocy A B C 1 3 2 2 3 3 C D 1 xx 2 xy 3 xyz Bzy Dnych - A. Dwid 2011 11
Komptyilność relcji Schemt (ngłowek) relcji R to ziór nzw tryutów A 1, A 2,..., A n ; N(R)={A 1, A 2,..., A n } Relcje R i S nzywmy komptyilnymi, gdy mją tkie sme ngłówki: N(R)=N(S) D(R.A)=D(S.A), D(R.B)=D(S.B), D(R.C)=D(S.C) R A B C 1 3 2 2 3 3 S A B C 1 2 2 2 3 3 Bzy Dnych - A. Dwid 2011 12
Dziłni lgericzne w relcyjnych zch dnych I. Teori ziorów 1) Uni 2) Przecięcie (iloczyn) 3) Różnic 4) Produkt II. Dotyczące informcji o strukturze krotek 1) Przypisni (lis) 2) Projekcj (rzutownie) 3) Selekcj 4) Złączenie 5) Dzielenie Bzy Dnych - A. Dwid 2011 13
UNIA R S R υ S A B C 1 3 2 2 3 3 A B C 1 2 2 2 3 3 Niech R i S są relcjmi komptyilnymi, to unią relcji R i S jest relcj R υ S o tkim smym nglówku, zwierjąc wszystkie krotki znjdujące się w R, S lu w oydwu relcjch. A B C 1 3 2 2 3 3 1 2 3 3 Bzy Dnych - A. Dwid 2011 14
Przykłd MySQL mysql> select * from oso; +----+--------+----------+------+ Nr Imie Nzwisko wiek +----+--------+----------+------+ 1 Tomsz Kowlski 24 2 Jn Nowk 24 3 Ann Znicz 28 +----+--------+----------+------+ mysql> select * from klient; +----+----------+-------------+------+ Nr Imie Nzwisko wiek +----+----------+-------------+------+ 1 Tomsz Kowlski 24 2 Tomsz Mzuriewicz 32 3 Wldemr Nwrot 41 +----+----------+-------------+------+ Bzy Dnych - A. Dwid 2011 15
Przykłd MySQL select * from klient union select * from oso; mysql> select * from klient union select * from oso; +----+----------+-------------+------+ Nr Imie Nzwisko wiek +----+----------+-------------+------+ 1 Tomsz Kowlski 24 2 Tomsz Mzuriewicz 32 3 Wldemr Nwrot 41 2 Jn Nowk 24 3 Ann Znicz 28 +----+----------+-------------+------+ 5 rows in set (0.00 sec) Bzy Dnych - A. Dwid 2011 16
Przecięcie (iloczyn) R S R S A B C A B C A B C 1 3 1 2 2 2 2 2 2 2 3 3 3 3 Niech R i S są relcjmi komptyilnymi, to przecięciem relcji R i S jest relcj R S o tkim smym nglówku, zwierjąc te krotki, które znjdują się zrówno w R jk i w S Bzy Dnych - A. Dwid 2011 17
Przykłd MySQL SQL stndrd select * from klient intersect select * from oso; mysql> select klient.imie,klient.nzwisko from klient inner join oso using(imie,nzwisko); +--------+----------+ Imie Nzwisko +--------+----------+ Tomsz Kowlski +--------+----------+ 1 row in set (0.22 sec) Bzy Dnych - A. Dwid 2011 18
Różnic R S R - S A B C A B C A B C 1 3 1 2 1 3 2 2 2 2 3 3 3 3 3 3 Niech R i S są relcjmi komptyilnymi, to róznicą relcji R i S jest relcj R - S o tkim smym ngłówku, zwierjąc wszystkie krotki z relcji R, których nie m w relcji S Bzy Dnych - A. Dwid 2011 19
Przykłd MySQL SQL stndrd select * from klient minus select * from oso; mysql> select distinct Imie,Nzwisko from klient where (Imie,Nzwisko) NOT IN (select Imie,Nzwisko from oso); +----------+-------------+ Imie Nzwisko +----------+-------------+ Tomsz Mzuriewicz Wldemr Nwrot +----------+-------------+ 2 rows in set (0.22 sec) Bzy Dnych - A. Dwid 2011 20
Produkt (iloczyn krtezjński) Niech relcje R i S mją ngłówki odpowiednio N(R)={A1,A2,...,An} i N(S)={B1,B2,...,Bm}. Iloczynem krtezjńskim relcji R i S jest relcj R S o ngłówku N(R S)= {R.A1,R.A2,...,R.An, S.B1,S.B2,...,S.Bm}, zwierjąc krotki ędące wszystkimi możliwymi połączenimi krotek z relcji R i S. Jeśli nzwy tryutów relcji R i S są różne, to wówczs ngłówek iloczynu krtezjńskiego możn zpisć w postci: N(R S)= {A1,A2,...,An,B1,B2,...,Bm} Bzy Dnych - A. Dwid 2011 21
Przykłd MySQL SQL stndrd select * from klient, oso; mysql> select * from klient,oso; +----+----------+-------------+------+----+--------+----------+------+ Nr Imie Nzwisko wiek Nr Imie Nzwisko wiek +----+----------+-------------+------+----+--------+----------+------+ 1 Tomsz Kowlski 24 1 Tomsz Kowlski 24 2 Tomsz Mzuriewicz 32 1 Tomsz Kowlski 24 3 Wldemr Nwrot 41 1 Tomsz Kowlski 24 1 Tomsz Kowlski 24 2 Jn Nowk 24 2 Tomsz Mzuriewicz 32 2 Jn Nowk 24 3 Wldemr Nwrot 41 2 Jn Nowk 24 1 Tomsz Kowlski 24 3 Ann Znicz 28 2 Tomsz Mzuriewicz 32 3 Ann Znicz 28 3 Wldemr Nwrot 41 3 Ann Znicz 28 +----+----------+-------------+------+----+--------+----------+------+ 9 rows in set (0.00 sec) Bzy Dnych - A. Dwid 2011 22
Alis (Przypisnie) Ndwnie dnej relcji R innej nzwy nzywmy przypisniem. Alisem tryutu X relcji R nzywmy ndnie temu tryutowi innej nzwy, np. Imie=NoweImie mysql> select Imie s NoweImie,Nzwisko from klient; +----------+-------------+ NoweImie Nzwisko +----------+-------------+ Tomsz Kowlski Tomsz Mzuriewicz Wldemr Nwrot +----------+-------------+ 3 rows in set (0.00 sec) Bzy Dnych - A. Dwid 2011 23
Projekcj (rzutownie) Niech relcje R m ngłówek N(R)={A1,A2,...,An}. Projekcj relcji R n tryuty 1,2,...,k, gdzie {1,2,...,k} {X1,X2,...,Xn}, jest relcj T=R[1,2,...,k] o ngłówku N(T)= {1,2,...,k}, zwierjcą krotki t spełnijące wrunek niepowtrzni się identycznych krotek ędących rzutem z relcji R n relcje T. π ( R) 1, 2,..., k Bzy Dnych - A. Dwid 2011 24
Przykłd MySQL mysql> select Nr,Imie,Nzwisko from klient; +----+----------+-------------+ Nr Imie Nzwisko +----+----------+-------------+ 1 Tomsz Kowlski 2 Tomsz Mzuriewicz 3 Wldemr Nwrot 4 Tomsz Kowlski 5 Tomsz Mzuriewicz 6 Wldemr Nwrot +----+----------+-------------+ mysql> select distinct Imie,Nzwisko from klient; +----------+-------------+ Imie Nzwisko +----------+-------------+ Tomsz Kowlski Tomsz Mzuriewicz Wldemr Nwrot +----------+-------------+ Bzy Dnych - A. Dwid 2011 25