Documente Academic
Documente Profesional
Documente Cultură
Cuza Iai
Facultatea de Economie i Administrarea Afacerilor
Departamentul de Contabilitate, Informatic economic i
Statistic
Limbaje de
interogare a
bazelor
de date
Algebra
relaional
i
SQL (2)
Marin
Fotache
Tutoriale video
11a_LimbajeInterogare_Operatori1
http://1drv.ms/1oCrZA3
11b_Reuniune-Proiectie
http://1drv.ms/1oCs7zo
11c_Theta-Echi-Jonctiune
http://1drv.ms/1oCsn1e
Limbaje de interogare
Vizeaz:
D.p.d.v. al implementrii:
QBE
Quel
SQL
OQL
Algebra relaional
Reprezint baza (teoretic a) SQL
Dispune de operatori care se aplic
asupra relaiilor (tabelelor)
n urma aplicrii unui operator asupra a
una sau dou relaii se obine o nou
relaie
Noua relaie poate fi argumentul unui
alt (sau aceluiai) operator
Din pcate, nu exist instrumente
software care s compileze i s
execute comenzi AR
Rezultat
(tabel)
Operanzi
(numere reale)
Operanzi
(tabele)
R1
Operator
(+,-, *, - ...)
Operator
(reuniune,selecie,
jonciune,...)
R2
SELECIE
PRODUS
CARTEZIAN
Operatorii principali ai AR
Ansambliti
Reuniune
Intersecie
Diferen
Produs cartezian
Relaionali
Selecie
Proiecie
Jonciune
Diviziune
n SQL:
D RO P TABLE IF EXISTS r1; D RO P TABLE IF EXISTS r2;
CREATE TABLE r1 ( A N U M ERIC(4), B VARCH AR(6),
C N U M ERIC (4) ) ;
CREATE TABLE r2 ( C N U M ERIC(4), D VARCH AR(6),
E N U M ERIC (4) ) ;
IN SERT IN TO
IN SERT IN TO
IN SERT IN TO
IN SERT IN TO
IN SERT IN TO
IN SERT IN TO
R1 i R2 sunt unicompatibile
R1 ( A1, A2, ..., An,) i
R2 (B1, B2, ..., Bm) sunt dou relaii
unicompati-bile dac:
n=m
pt. orice i={1,2, ..., n}, Ai i Bi sunt de acelai tip (sunt
definite pe un domeniu comun)
Operatorii
Reuniune,
Intersecie,
Diferen se aplic numai asupra a dou
relaii unicompatibile
Reuniune - AR
Reuniune - SQL
SELECT * FRO M r1
U N IO N
SELECT * FRO M r2
!!!
SELECT * FRO M r1
U N IO N ALL
SELECT * FRO M r2
Tupluri
duplicate
Intersecie - AR
Intersecie - SQL
SELECT * FRO M r1
IN TERSECT
SELECT * FRO M r2
Diferen - AR
Diferen - SQL
SELECT * FRO M r1
EXCEPT
SELECT * FRO M r2
SELECT * FRO M r1
M IN U S
SELECT * FRO M r2
Inoperabil n PostgreSQL
Produs cartezian - AR
SELECT *
FRO M r1 CRO SS JO IN r2
Selecie AR (1)
SELECT *
FRO M r1
W H ERE a > 20
AN D c > 20
Selecie AR (2)
Care sunt judeele din Moldova ?
SELECT *
FRO M judete
W H ERE regiune =
M oldova
Proiecie - AR
Ce regiuni ale rii sunt preluate n baz ?
Proiecie - SQL
SELECT regiune
FRO M judete
Tupluri
duplicat
e
Clauza
DISTINC
T
SELECT Telefon
FRO M clienti
W H ERE D enCl=
'Client 2 SA'
SELECT CodPr
FRO M liniifact
W H ERE N rFact = 1111
IN TERSECT
SELECT CodPr
FRO M liniifact
W H ERE N rFact = 1117
Jonciune
Jonciune intern
Theta-jonciune
Echi-jonciune
Jonciune natural
Semi-jonciune
Jonciune extern
La stnga
La dreapta
Total
Theta-jonciune - AR
Theta-jonciune SQL-89
SELECT * FRO M r1, r2 W H ERE r1.a > = r2.e
Theta-jonciune SQL-92
SELECT * FRO M r1 IN N ER JO IN r2 O N r1.a > = r2.e
T1
T2
Tabelele T1 i T2
Echi-jonciune - AR
Echi-jonciune - SQL
Notaia SQL-89:
SELECT *
FRO M r1, r2
W H ERE r1.a = r2.e
Notaia SQL-92:
SELECT *
FRO M r1 IN N ER JO IN r2 O N r1.a = r2.e
Jonciune natural - AR
Soluie 2 AR optimizat
SQL-89
SQL-92
SELECT *
FROM facturi f1 INNER JOIN facturi f2
ON f1.datafact=f2.datafact
AND f1.NrFact=1120
AP