Sunteți pe pagina 1din 6

Cascaval Dumitru Inf1311G

Limbaj de interogare = limbaj n care un utilizator solicit informaii din baza de date (BD). De
obicei, limbajele de interogare sunt de nivel mai nalt dect limbajele standard de programare.
Limbajele de interogare sunt procedurale sau ne-procedurale. n limbajele procedurale utilizatorul
indic sistemului succesiunea de operaii asupra BD pentru a determina rezultatul dorit. n limbajele
ne-procedurale, utilizatorul descrie rezultatul dorit, fr a indica procedura prin care acesta este
obinut.
Cele mai multe sisteme relaionale de BD folosesc un limbaj de interogare n care sunt prezente
elemente ale ambelor abordri, att procedural, ct i ne-procedural. Limbaje foarte cunoscute:
SQL, QBE, Datalog.
n cele care urmeaz o introducere n limbajele fundamentale sau pure, respectiv algebra
relaional i calculul relaional; sunt limbaje matematice, formale, ambele asociate cu modelul
relaional de date. Algebra relaional este un limbaj procedural, pe cnd calculul relaional pe
tupluri i calculul relaional pe domenii sunt limbaje ne-procedurale. Ambele familii de limbaje sunt
concise i formale, fr a poseda cadrul sintactic al limbajelor comerciale de interogare; algebra
relaional i calculul relaional sunt ns limbaje care pun n eviden foarte bine tehnicile
principale folosite n procesul gsirii i extragerii informaiei din BD. Desigur, un limbaj complet
destinat manipulrii BD nu este limitat la operaiuni de interogare, ci ndeplinete i funciuni de
modificare a coninutului bazei de date. Astfel de funciuni const n inserarea i eliminarea de
tupluri n executarea unor comenzi de modificare a tuplurilor .a.
nainte de a prezenta operaiunile principale din algebra relaional, vom formula cteva observaii
privind unele modele de date, n contextul de aici. n abordarea obiectual, pentru definirea (sau
descrierea) datelor este folosit limbajul LDO (Limbaj de definire a obiectelor = ODL = Object
Definition Language). S comparm, pe scurt, abordrile modelelor entitate-asociere, obiectual i
relaional privind operaiunile asupra datelor:
- n modelul EA nu se precizeaz, de obicei, o metod specific pentru manipularea datelor;
- n LDO, deci n modelul obiectual, sunt folosite metode prin care se pot efectua orice
operaii asupra datelor;
- n modelul relaional, aa cum vom vedea, se folosete o familie standard de operaii
asupra datelor.
Observaia principal st n faptul c n abordarea relaional familia de operaii menionat nu este
complet din punct de vedere Turing. Cu alte cuvinte, exist operaiuni asupra informaiilor dintro BD, care nu pot fi exprimate n algebra relaional, dar pot fi exprimate n metode LDO codificate
n limbaje obinuite ca C++. Remarcm c acesta nu este rezultatul unei slbiciuni a algebrei
relaionale sau a modelului relaional n general. Avantajul restrngerii lrgimii (spaiului)
ocupat de operaiile relaionale const n posibilitatea de a optimiza frazele de interogare formulate
ntr-un limbaj de programare de nivel foarte nalt, aa cum este SQL.
Elemente de algebr relaional
Aa cum s-a afirmat anterior, algebra relaional este unul din cele dou limbaje formale de
interogare ale modelului relaional. Algebra relaional ofer mijloace puternice de a construi relaii
1

Cascaval Dumitru Inf1311G


noi din alte relaii date. Atunci cnd relaiile date sunt reprezentate de informaii memorate, relaiile
construite cu mijloacele algebrei pot fi rspunsuri la fraze de interogare asupra acestor informaii.

Cascaval Dumitru Inf1311G

Orice algebr permite construirea de expresii prin aplicarea unor operatori asupra unor operanzi
atomici sau asupra altor expresii algebrice. Adesea, pentru a grupa operatorii i operanzii sunt
folosite paranteze.
n algebra relaional, operanzii sunt:
a) variabile, care reprezint relaii;
b) constante, care sunt relaii finite.
n algebra relaional clasic toi operanzii i toate rezultatele expresiilor sunt mulimi. Vom
grupa operaiile din algebra relaional tradiional (sau clasic) n patru clase:
a) operaiunile specifice teoriei mulimilor (reuniune, intersecie, diferen), dar aplicate asupra
relaiilor;
b) operaiunile care ndeprteaz pri ale unei relaii (selecie, proiecie);
c) operaiunile care combin tuplurile a dou relaii (produs cartezian, jonciune)
d) operaiunea prin care sunt atribuite nume noi atributelor relaiei i/sau relaiei.
O proprietate fundamental n algebra relaional const n faptul c fiecare operator accept
nstanele unei (sau a dou) relaii n calitate de argumente i ntoarce ca rezultat o alt nstan de
relaie. Aceast proprietate permite folosirea compus (compunerea) operatorilor pentru a forma
fraze de interogare complexe. O astfel de fraz de interogare corespunde unei expresii algebrice
relaionale, care se definete recursiv ca fiind o relaie, un operator algebric unar aplicat unei
singure expresii, sau ca un operator algebric binar aplicat la dou expresii.
Operaiuni pe mulimi aplicate relaiilor
Reuniunea
Fie r, s relaii. Reuniunea este t r s, unde t = { tupluri ti, a. . ti r, ti r }. Condiii: r, s au
mulimi identice de atribute, cu aceleai domenii de valori. Exemplu:
r

nume
Vlad Ionescu
Raluca Cernat

adres
Str. Paris 20, Bucureti
Str. Horia 45, Cluj

gen
M
F

datanaterii
23/4/1942
15/6/1955

nume
Raluca Cernat
Dan Teodoru

adres
Str. Horia 45, Cluj
Str. Lung 38, Braov

gen
F
M

datanaterii
15/6/1955
8/11/1962

adres
Str. Paris 20, Bucureti
Str. Horia 45, Cluj
Str. Lung 38, Braov

gen
M
F
M

datanaterii
23/4/1942
15/6/1955
8/11/1962

Rezultatul reuniunii t = r s:
t

nume
Vlad Ionescu
Raluca Cernat
Dan Teodoru
Intersecia

Cascaval Dumitru Inf1311G

t = r s, unde t = { tupluri ti, a. . ti r ti s }. Rezultatul


interseciei t = r s:
nume
t
Raluca Cernat

adres
Str. Horia 45, Cluj

gen
F

datanaterii
15/6/1955

Cascaval Dumitru Inf1311G

Diferena
t = r s, unde t = { tupluri ti, a. . ti r ti s }.
t = s r, unde t = { tupluri ti, a. . ti s ti r }.
Observm c r s s r.
Exempl
e:
rs
sr

nume
Vlad Ionescu
nume

adres
Str. Paris 20, Bucureti
adres

gen
M
gen

datanaterii
23/4/1942
datanaterii

Dan Teodoru

Str. Lung 38, Braov

8/11/1962

Proiec
ia
Fie relaia r cu atributele A1, A2, ..., An. Fie, de asemenea, atributele A1, A2, ..., Ak, a. . { A1, A2, ...,
Ak } { A1, A2, ..., An }. Atunci, proiecia relaiei r pe atributele A1, A2, ..., Ak (sau pe coloanele
acestor atribute), notat cu A1, A2, ..., Ak (r), este relaia obinut din r prin extragerea coloanelor
atributelor A1, A2, ..., Ak.
Exemplu expresia nume, datanaterii(s) conduce la rezultatul:
nume
datanaterii
Raluca Cernat
15/6/1955
Dan Teodoru
8/11/1962
Not. Proiecia se poate defini formal ca fiind relaia:
i1,i2, ..., ik = { tupluri ti, a. . ti = (a1, a2, ..., ak), iar n r tuplul (b1, b2, ..., bn), aj = bj pentru j = 1... k }
Mai sus aj, respectiv bj, sunt valori ale atributelor corespunztoare din mulimile { A1, A2, ..., Ak }
i, evident, { A1, A2, ..., An }. Simbolurile i1, i2, etc. Reprezint coloane din r.
Selecia
Prin definiie, operaiunea de selecie aplicat unei relaii r, notat cu F(r), const n extragerea lui r
a acelor tupluri care ndeplinesc clauza (formula) F. Schema relaiei obinute este aceeai cu schema
relaiei r, atributele fiind aranjate prin convenie n aceeai ordine. Operanzii coninui n clauza
F sunt constante sau atribute din schema relaiei r. Operatorii sunt fie operatori aritmetici uzuali (de
comparaie), fie operatori logici.
Exemplu: datanaterii 23/4/1962 datanaterii > 15/6/1955(t), unde relaia t a fost calculat prin reuniune ntrun exemplu precedent. Rezultat:
nume
Vlad Ionescu
Dan Teodoru

adres
Str. Paris 20, Bucureti
Str. Lung 38, Braov

gen
M
M

datanaterii
23/4/1942
8/11/1962

Produsul cartezian
Fie relaiile r i s de ariti R1, R2. Fie n r i s tuplurile (ri1, ri2, ..., riK1), respectiv (si1, si2, ..., sik2).
Formal, produsul cartezian t = r s al relaiilor r i s se definete prin:

Cascaval Dumitru Inf1311G

t = { tupluri ti, a. . ti = (ri1ri2...riK1si1si2...siK2), cu (ri1ri2...riK1) r i (si1si2...siK2) s }. Exemplu:


A
a

r s

B
b

A
a
a

C
c

B
b
b

D
d

C
c
c

D
d

E
e

E
e

F
f

F
f

Observaie: numrul de tupluri ale produsului cartezian este produsul numerelor de tupluri ale
relaiilor r i s. Consecine privind timpul de execuie i memoria ocupat.
Situaie particular cea n care relaiile operand au atribute comune. Exemplu:
A
a

r s

B
b

A
a
a

C
c

B
b
b

C
q
c

r.C
c
c

s.C
q
c
q
c

D
e

D
e

E
f

E
f

Observm c n relaia rezultat, numele atributelor comune sunt completate cu numele relaiilor din
care provin (r.C, s.C).

S-ar putea să vă placă și