Académique Documents
Professionnel Documents
Culture Documents
Algebra relationala poate fi definita ca un set de operatori ce prelucreaza relatii, in scopul obtinerii altor relatii. Operatorii de baza se pot grupa in: A)operatori binari sau operatorii de asamblare sunt operatorii care primesc la intrare doua relatii si genereaza la iesire o singura relatie:reuniunea, intersectia, diferenta, produsul cartezian B)operatori unari se aplic asupra unei rela ii i genereaz o alt rela ie. Din aceast clas fac parte proiec ia i selec ia. C) Operatorii de extensie sunt :compunerea si diviziunea
REUNIUNEA a doua relatii R si S, cu aceeasi structura, unde R este formata din n tupluri, iar S din m tupluri, are ca rezultat o a treia relatie T, avand aceeasi structura cu a relatiilor sursa si continand n+m tupluri. RELATIA R RELATIA S
RELATIA T(RUS)
A a1 a2
B b1 b2
A a3 a4
B b3 b4
A a1 a2 a3 a4
B b1 b2 b3 b4
INTERSECTIA a doua relatii R si S avand aceeasi structura, este o relatie T continand tuplurile identice ce apartin atat lui R cat si lui S. RELATIA R RELATIA S RELATIA T
A a1 a2
B b1 b2
A a1 a3
B b1 b3
A a1
B b1
Diferenta a doua relatii R si S avand aceeasi structura (R-S) este o relatie T ce contine multimea tuplurilor apartinand lui R, dar neapartinand lui S.
Relatia R
Relatia S
Relatia T
a1 b1 c1 a2 b2 c2
A a3 a4 a5 a6
B b3 b4 b5 b6
C c3 c4 c5 c6
A a1 a2
B b1 b2
C c1 c2
Produsul cartezian a dou rela ii R i S (RxS) este o rela ie T stocnd mul imea perechilor ob inute prin concatenarea nregistr rilor apar innd lui R cu cele apar innd lui S. Relatia R Relatia S Relatia T
A a1 a2
B b1 b2
C c1 c2
D d1 d2
A a1 a1 a2 a2
B b1 b1 b2 b2
C c1 c2 c1 c2
D d1 d2 d1 d2
Compunerea condi ional (Join) a dou rela ii R1 i R2 dup calificatorul multiatribut Q este rela ia E ale c rei tupluri sunt cele ale produsului cartezian R1 x R2 care satisfac calificatorul Q. n func ie de calificatorul Q se disting mai multe tipuri de compuneri: dac Q este de forma Ai = Bj , se nume te echicompunere; dac Q este de forma Ai Bj : unde = < , , > , , se nume te compunere, i poate fi exprimat n func ie de operatorii de baz ; dac Q este de forma Ai = Aj se nume te autocompunere. Compunerea natural este o echicompunere pe R1 i R2 dup toate atributele avnd acela i nume n R1 i R2, urmat de o proiec ie care permite conservarea unuia dintre aceste atribute, egale ca nume.
Relatia R1
Relatia R2
A B C a1 b1 c1
B b1 b1
D d1 d2
A B C a1 b1 c1 a1 b1 c1
D d1 d2
Diviziunea rela iei R1 (A1, A2 An) de grad (p+m) prin rela ia R2 (Ap+1, , Am) de grad m este rela ia E (A1, A2, , Ap) de grad p, format din toate tuplurile care, concatenate cu fiecare tuplu din R2, dau totdeauna un tuplu din R1 (E = R1 R2).
Relatia RS
Relatia R
Relatia S
A a1 a2 a3
B b1 b2 b3
C c1 c2 c3
D d1 d2 d3
E e1 e2 e3
C c1 c2 c3
D d1 d2 d3
E A e1 a1 e2 a2 e3 a3
B b1 b2 b3
Operatorii unari Proiectia. Din relatia R se obtine o alta relatie R1, care va contine o submultime din atributele initiale din R, fara tupluri duplicate. Numarul de atribute din R1 este mai mic dect numarul de atribute din R.
Relatia R
R1 (R;A,B) Rela ia R1
A a1 a2 a3
B b1 b2 b3
C c1 c2 c3
D d1 d2 d3
A a1 a2 a3
B b1 b2 b3
Prin intermediul proiec iei, dintr-un tabel cu un anumit num r de coloane se ob ine unul cu un num r mai mic de coloane.
Selec ia rela iei R fa de criteriul Q este rela ia R1 cu aceea i structur ca i R, ale c rei tupluri satisfac criteriul specificat. R1 SELECTIE(R;A=a2 OR A=a3)
Relatia R
Rela ia R1
A a1 a2 a3
B b1 b2 b3
A a2 a3
B b2 b3
Realizarea operatorilor rela ionali n SQL Operatori binari Tabele pentru exemplificare
CLIENTI419
Realizare SQL: SELECT CLIENTI411.* FROM CLIENTI411 INNER JOIN CLIENTI419 ON CLIENTI411.CODC=CLIENTI419.CODC; Sau SELECT CLIENTI411.* FROM CLIENTI411, CLIENTI419 WHERE CLIENTI411.CODC=CLIENTI419.CODC Sau SELECT CLIENTI411.* FROM CLIENTI411 WHERE CODC IN (SELECT CODC FROM CLIENTI419)
2 3
B C
Cluj Cluj
Realizare SQL: SELECT CLIENTI411.* FROM CLIENTI411 LEFT JOIN CLIENTI419 ON CLIENTI411.CODC=CLIENTI419.CODC WHERE CLIENTI419.CODC IS NULL
Sau SELECT CLIENTI411.* FROM CLIENTI411 WHERE CODC NOT IN (SELECT CODC FROM CLIENTI419)
1 4
A D
Realizare SQL:
SELECT Clienti411.* FROM Clienti411 WHERE Oras=CLUJ
Operatorii de extensie
Compunere (CLIENTI419, FACTURI ; CLIENTI419.CODC=FACTURI.CODC )
CLIENTI419.CODC NUME ORAS 2 3 B C CLUJ CLUJ NRF 100 101 VALOARE 12.000.000,00 lei 13.000.000,00 lei FACTURI.CODC 2 3
Realizare SQL:
SELECT * FROM CLIENTI419 INNER JOIN FACTURI ON CLIENTI419.CODC=FACTURI.CODC
Compunere condi ionat Clauza LEFT OUTER JOIN, conserv toate nregistr rile tabelei din stnga
SELECT * FROM T1 LEFT OUTER JOIN T2 ON T1.A1 = T2.A3;
T1 A1
10 20
A2
15 25
T2
A3
10 15
A4
AA BB
REZULTAT
A1
10 20
A2
15 25
A3
10 NULL
A4
AA NULL
Clauza RIGHT OUTER JOIN, conserv toate linile tabelei din dreapta
SELECT * FROM T1 RIGHT OUTER JOIN T2 ON T1.A1 = T2.A3;
T1 A1
10 20
A2
15 25
T2
A3
10 15
A4
AA BB
RZULTAT
A1
10 NULL
A2
15 NULL
A3
10 15
A4
AA BB
Diviziunea este operatorul rela ional a c rei realizare n SQL este destul de dificil . Pentru a identifica clien ii care au cump rat ac iuni la ambele societ i avnd codul CABU i ADME va trebui s realiz m diviziunea tabelului Tranzac ie la tabelul ce con ine ca nregistr ri cele dou coduri de societ i