Documente Academic
Documente Profesional
Documente Cultură
Curs nr. 9
RELATIA T(RUS)
RELATIA S
A
a1
a2
B
b1
b2
A
a3
a4
B
b3
b4
a1
b1
a2
b2
a3
b3
a4
b4
RELATIA S
a1
a2
b1
b2
A
a1
a3
B
b1
b3
RELATIA T
A
a1
B
b1
Relatia R
Relatia S
a1 b1 c1
a2 b2 c2
A
a3
a4
a5
a6
B
b3
b4
b5
b6
Relatia T
C
c3
c4
c5
c6
A
a1
a2
B
b1
b2
C
c1
c2
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
Relatia R
A
a1
a2
a3
B
b1
b2
b3
C
c1
c2
c3
R1
(R;A,B)
Relaia R1
D
d1
d2
d3
A
a1
a2
a3
B
b1
b2
b3
Relatia R
A
a1
a2
a3
Relaia R1
B
b1
b2
b3
A
a2
B
b2
a3
b3
Compunerea
Compunerea a dou tabele R1 i R2 este o tabel R3 ce combin tuplurile celor
dou tabele surs, fiind alese doar acelea care ndeplinesc o anumit condiie
specificat n cadrul compunerii. Gradul relaiei obinute ca urmare a compunerii a
dou relaii este egal cu suma gradelor relaiilor surs. n funcie de natura
condiiilor, compunerea cunoate mai multe cazuri particulare :
echicompunerea;
compunerea natural;
compunerea extern.
Echicompunerea
Este compunerea pentru care condiia este alctuit numai din egaliti,
putnd conine una sau mai multe egaliti. n cazul echicompunerii n
tabela rezultat apar dou cmpuri ce au valori identice. Gradul relaiei
obinute ca rezultat al echicompunerii este egal cu suma gradelor celor doua
relaii surs.
Compunerea natural
Compunerea natural este echicompunerea a dou tabele,
pentru care exist cel puin cte un cmp avnd acelai nume
i tip i n care, din rezultat, se elimin cmpurile identice.
Gradul relaiei obinute ca rezultat al compunerii naturale este
mai mic dect suma gradelor celor dou relaii surs, deoarece
sunt eliminate cmpurile identice.
Compunerea extern
Compunerea extern este o echicompunere care,
spre deosebire de aceasta, afieaz i tuplurile care
nu au corespondent n cadrul celor dou tabele surs.
Compunerea extern poate s fie la stnga i n acest
caz se vor afia toate tuplurile din primul tabel, pentru
cele care nu au corespondent se completeaz cu
NULL valoarea atributelor lips, iar din al doilea tabel
se vor afia doar tuplurile care au corespondent n
primul tabel. Compunerea extern la dreapta
presupune acelai mecanism, cu deosebirea c se vor
afia toate tuplurile din tabelul doi chiar dac au sau
nu corespondent iar din tabelul unu se vor afia doar
tuplurile ce au corespondent.
Relatia RS
A
a1
a2
a3
B
b1
b2
b3
C
c1
c2
c3
Relatia R
D
d1
d2
d3
E
e1
e2
e3
C
c1
c2
c3
D
d1
d2
d3
Relatia S
E
A
e1
a1
e2
a2
e3
a3
B
b1
b2
c3
Nume
Oras
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) ;
Produs Cartezian
CLIENTI419 X PRODUSE
NUME
A
D
A
D
DENPROD
P1
P1
P2
P2
Realizare SQL:
SELECT NUME, DENPROD
FROM CLIENTI419, PRODUSE;
Nume
1
4
A
D
Realizare SQL:
SELECT CodC, Nume FROM Clienti419 ;
Realizare SQL:
SELECT Clienti411.* FROM Clienti411
WHERE Oras=CLUJ ;
NRF
VALOARE
FACTURI.CODC
CLUJ
100
12.000.000,00 lei
CLUJ
101
13.000.000,00 lei
Realizare SQL:
SELECT * FROM CLIENTI411 INNER JOIN FACTURI ON
CLIENTI419.CODC=FACTURI.CODC ;
Compunere condiionat
Clauza LEFT OUTER JOIN, conserv
toate nregistrrile tabelei din stnga
SELECT *
FROM T1 LEFT OUTER JOIN T2
ON T1.A1 = T2.A3;
T1
A3
A4
15
10
AA
25
15
BB
A1
A2
10
20
REZULTAT
T2
A1
A2
A3
A4
10
15
10
AA
20
25
NULL
NULL
A1
A2
10
20
RZULTAT
T2
A3
A4
15
10
AA
25
15
BB
A1
A2
A3
A4
10
15
10
AA
NULL
NULL
15
BB