Sunteți pe pagina 1din 44

Algebra relaional

Reuniune, intersecie, diferen

Redenumire, selecie, proiecie, jonciune

Interogri n algebra relaional

Valori NULL n algebra relaional

Vederi
Actualizare - funcie care pornind de la o baz
de date produce o alt baz de date (fr a-i
modifica schema).

Interogare - funcie care returneaz o relaie,


plecnd de la o baz de date.
Algebra relaional

Se bazeaz pe o colecie de operatori ce sunt aplicai


relaiilor, producnd relaii.

Pentru formularea unor interogri complexe se vor construi


expresii ce implic mai muli operatori.

Operatorii algebrici relaionali se mpart n urmtoarele clase:


Operatori clasici din teoria mulimilor reuniune, intersecie,
diferen;
Operatori de redenumire, selecie, proiecie;
Operatorul join (jonciune), mpreun cu variantele sale
jonciune natural, produs cartezian, theta jonciune i jonciune
extern.
Reuniune, intersecie, diferen
Reuniune, intersecie, diferen - se aplic doar
asupra perechilor de relaii definite pe aceleai atribute.

GPS RADIO Reuniune?


Productor MODEL Productor MODEL
Nokia N2310 Nokia N4215
Samsung S5100 Samsung S2110
Samsung S5600 Samsung S5600
Nokia N4215 Samsung S1100

Diferen?
Intersecie?
Reuniune, intersecie, diferen
Definiii

Reuniunea a dou relaii r1(X) i r2(X) este relaia notat


r1 r2 care conine tupluri ce aparin fie lui r1 fie lui r2, fie
ambelor relaii r1 i r2.

Intersecia dintre relaiile r1(X) i r2(X) este relaia notat r1 r2


format din tuplurile comune relaiilor r1 i r2.

Diferena dintre relaiile r1(X) i r2(X) este relaia notat r1 - r2


care conine tuplurile din r1 care nu se regsesc n r2.
Redenumire
Operaia de redenumire ()
Limitrile impuse operatorilor standard din teoria mulimilor pot fi restrictive
n anumite situaii.
Exemplu
S considerm cele dou relaii din figura 3.1.
TATA_COPIL MAMA_COPIL
Tata Copil Mama Copil
Adam Dan Eva Dan
Adam Marian Eva Lucian
TATA_COPIL U MAMA_COPIL ??
Radu Cristi Maria Cristi
Radu Catalin Carmen Catalin

Figura 3.1 Reuniune logic, dar incorect

Ar avea sens executarea unei reuniuni ntre cele dou relaii cu scopul de a obine
toate perechile printe copil din baza de date.
Acest lucru nu este ns posibil deoarece atributul denumit de noi printe are
numele tata ntr-o relaie i numele mama n cealalt relaie.
Redenumire

Operatorului de redenumire adapteaz numele


atributelor atunci cnd este necesar aplicarea unui operator
din teoria mulimilor.

Obs. Acest operator modific numele atributelor lsnd intact coninutul


relaiei.

Exemplu
TATA_COPIL ParinteTata (TATA_COPIL)
Tata Copil Parinte Copil
Adam Dan Adam Dan
Adam Marian Adam Marian
Radu Cristi Radu Cristi
Radu Catalin Radu Catalin

Fig.3.2 Exemplu de redenumire


Redenumire

Definiie

Fie r o relaie definit pe mulimea X de atribute i fie Y o alt mulime


de atribute avnd aceeai cardinalitate ca i X; fie secvenele ordonate
i A1A2...Ak , B1B2...Bk formate din atributele mulimii X respectiv Y.

Redenumirea A A ... A B B ... B ( r ) conine pentru fiecare tuplu t din r un


1 2 k 1 2 k

tuplu t definit pe Y astfel nct t ' [ Bi ] = t[ Ai ], i = 1, k .

n practic, cele dou secvene A1A2...Ak i B1B2...Bk vor conine doar


atributele ce urmeaz a fi redenumite i noile lor nume.
Selecie
Operatorul de selecie ()
Rezultatul unei selecii conine tuplurile relaiei operand ce satisfac
condiia asociat operatorului.

Exemplu
Se consider relaia ANGAJAT din figura urmtoare:

ANGAJAT
Nume Prenume Varsta Salariu
Ionescu Maria 25 2000
Popescu Lucia 40 3000
Diaconescu Nicu 36 4500
Ionescu Marin 40 3900

Virsta<30 Salariu >4000 ( ANGAJAT ) ??


Selecie
Operatorul de selecie ()

Exemplu

ANGAJAT
Virsta<30 Salariu >4000 ( ANGAJAT )

Nume Prenume Varsta Salariu Nume Prenume Varsta Salariu


Ionescu Maria 25 2000 Ionescu Maria 25 2000
Popescu Lucia 40 3000 Diaconescu Nicu 36 4500
Diaconescu Nicu 36 4500
Ionescu Marin 40 3900

Fig.3.3 Exemplu de selecie

Dup cum se poate observa, sunt selectate tuplurile din relaia ANGAJAT
care ndeplinesc condiia: Varsta < 30 sau Salariu > 4000 (formul
propoziional).
Selecie

Definiii

Fiind dat o relaie r definit pe o mulime de atribute X, spunem c o


formul propoziional F definit pe X este o formul compus din condiii
atomice de tipul AB sau Ac legate prin conectorii (OR), (AND) i
(NOT), n care:

este un operator de comparaie ( = , , < , , > , );

A i B sunt atribute din X compatibile (conin valori pentru care are


sens comparaia);

c este o constant compatibil cu domeniul atributului A.


Selecie

Definiii

Fiind dat formula propoziional F i tuplul t, se definete valoarea


de adevr a lui F pe t:

AB este adevrat dac i numai dac t[A] este n relaia cu t[B];

Ac este adevrat dac i numai dac t[A] este n relaia cu c;

F1 F2, F1F2 i F1 au semnificaia uzual.

O selecie F(r) produce o relaie care are aceleai atribute ca


relaia r i care conine acele tupluri din r pentru care F este
adevrat.
Proiecie

Operatorul de proiecie ()
Definiie

Fie dat relaia r definit pe mulimea de atribute X i o submulime Y a


lui X.
Proiecia relaiei r pe Y (notat Y (r ) ) reprezint mulimea tuplurilor
definite pe Y obinute din tuplurile lui r lund n considerare numai valorile
corespunztoare atributelor din Y:

Y (r ) = {t[Y ]/ t r}

ANGAJAT
Nume Prenume Departament Sef
Ionescu Maria Vanzari Luca Departament ,Sef (ANGAJAT) ??
Popescu Lucia Vanzari Luca
Diaconescu Maria Personal Damian
Ionescu Marin Personal Damian
Proiecie
Situaii n care numrul de tupluri ale rezultatului este egal, respectiv mai
mic dect numrul de tupluri ale operandului:

ANGAJAT Departament ,Sef (ANGAJAT)


Nume Prenume Departament Sef Departament Sef
Ionescu Maria Vanzari Luca Vanzari Luca
Popescu Lucia Vanzari Luca Personal Damian
Diaconescu Maria Personal Damian
Ionescu Marin Personal Damian

Fig.3.4 Exemplu de proiecie cu mai puine tupluri dect operandul

ANGAJAT Varsta , Salariu (ANGAJAT)


Nume Prenume Varsta Salariu Varsta Salariu
Ionescu Maria 25 2000 25 2000
Popescu Lucia 40 3000 40 3000
Diaconescu Nicu 36 4500 36 4500
Ionescu Marin 45 3900 45 3900

Fig.3.5 Exemplu de proiecie cu acelai numr de tupluri ca i operandul


Proiecie

Propoziie

Y (r ) conine acelai numr de tupluri ca i r dac i numai dac Y este


o super-cheie pentru r.

Demonstraie

Presupunem Y super-cheie pentru r r nu conine perechi de tupluri


egale pe Y, deci fiecare tuplu va contribui la rezultatul proieciei.

Presupunem c proiecia are acelai numr de tupluri ca i operandul


fiecare tuplu din r a contribuit la proiecie cu valori diferite r nu conine
perechi de tupluri egale pe Y, deci Y este o super-cheie.
Jonciune
Operatorul jonciune join
Permite realizarea unei conexiuni ntre datele coninute de diverse relaii.

Jonciunea natural ( ) natural join - coreleaz datele din relaii


diferite pe baza valorilor egale asociate atributelor cu acelai nume.
CONTRAVENTIE AUTOVEHICUL
Cod Data Cadru Judet NrInmat NrInmat Judet Proprietar Adresa
143256 25/10/92 567 IS 02 AAA 03 BBB IS Maftei Eduard Nicolina 30
987554 26/10/92 456 IS 02 AAA 01 CCC IS Maftei Eduard Nicolina 30
987557 26/10/92 456 IS 03 BBB 02 AAA IS Luca Marian Primaverii 4
630876 15/10/92 456 VS 03 BBB 03 BBB VS Melinte Dan Primaverii 17
539856 12/10/92 567 VS 03 BBB

CONTRAVENTIE >< AUTOVEHICUL


Cod Data Cadru Judet NrInmat Proprietar Adresa
143256 25/10/92 567 IS 02 AAA Luca Marian Primaverii 4
987554 26/10/92 456 IS 02 AAA Luca Marian Primaverii 4
987557 26/10/92 456 IS 03 BBB Maftei Eduard Nicolina 30
630876 15/10/92 456 VS 03 BBB Melinte Dan Primaverii 17
539856 12/10/92 567 VS 03 BBB Melinte Dan Primaverii 17
Jonciune
Operatorul jonciune join
Permite realizarea unei conexiuni ntre datele coninute de diverse relaii.
Exist dou versiuni principale ale acestui operator, care, oricum, se pot
obine una din cealalt.

Jonciunea natural ( ><) natural join - coreleaz datele din relaii


diferite pe baza valorilor egale asociate atributelor cu acelai nume.

Definiie
Fie r1(X1) i r2(X2) dou relaii. Jonciunea natural r1 >< r2 este o relaie
definit pe X1X2 (reuniunea dintre X1 i X2) astfel nct:

r1 >< r2 = {t definit pe X 1 X 2 / t1 r1 , t2 r2 , a. i. t[ X 1 ] = t1 si t[ X 2 ] = t2 }

Pe scurt putem scrie:

r1 >< r2 = {t definit pe X 1 X 2 / t[ X 1 ] r1 si t[ X 2 ] r2 }
Jonciune

Tuplurile relaiei rezultat provin din combinarea tuplurilor din operanzi avnd
valori egale pentru atributele comune.

Notm X 1,2 = X 1 X 2 mulimea atributelor comune.

Condiiile t[ X 1 ] = t1 i t[ X 2 ] = t2 implic (deoarece X 1,2 X 1 i X 1,2 X 2 )


t[ X 1,2 ] = t1[ X 1,2 ] i t[ X 1,2 ] = t2 [ X 1,2 ], deci t1 [ X 1,2 ] = t2 [ X 1,2 ] .

Fie n gradul jonciunii naturale dintre relaiile r1 i r2, n1 gradul relaiei r1 i n2


gradul relaiei r2; atunci: n n1 + n2
Jonciune
Exemplu
CONTRAVENTIE AUTOVEHICUL
Cod Data Cadru Judet NrInmat NrInmat Judet Proprietar Adresa
143256 25/10/92 567 IS 02 AAA 03 BBB IS Maftei Eduard Nicolina 30
987554 26/10/92 456 IS 02 AAA 01 CCC IS Maftei Eduard Nicolina 30
987557 26/10/92 456 IS 03 BBB 02 AAA IS Luca Marian Primaverii 4
630876 15/10/92 456 VS 03 BBB 03 BBB VS Melinte Dan Primaverii 17
539856 12/10/92 567 VS 03 BBB
CONTRAVENTIE >< AUTOVEHICUL

Cod Data Cadru Judet NrInmat Proprietar Adresa


143256 25/10/92 567 IS 02 AAA Luca Marian Primaverii 4
987554 26/10/92 456 IS 02 AAA Luca Marian Primaverii 4
987557 26/10/92 456 IS 03 BBB Maftei Eduard Nicolina 30
630876 15/10/92 456 VS 03 BBB Melinte Dan Primaverii 17
539856 12/10/92 567 VS 03 BBB Melinte Dan Primaverii 17

Jonciunea natural a celor dou relaii s-a obinut prin combinarea fiecrui tuplu din
CONTRAVENIE cu exact un tuplu din AUTOVEHICUL:
cu cel mult unul deoarece atributele Judet i NrInmat formeaz o cheie a
relaiei AUTOVEHICUL;
cu cel puin unul datorit constrngerii de referin dintre atributele Judet i
NrInmat din CONTRAVENTII i relaia AUTOVEHICUL.
Jonciune
Definiie. Fie r1(X1) i r2(X2) dou relaii. Spunem c jonciunea natural
r1 ><r2 este complet dac:
t1 r1 , t r1 ><r2, a.i. t[ X 1 ] = t1
t2 r2 , t ' r1 ><r2, a.i. t '[ X 2 ] = t2

r1 r2
Angajat Departament Departament Sef
Ionescu vanzari productie Manole
Balint productie vanzari Burlacu
Baltag productie

r1 ><r2
Angajat Departament Sef
Ionescu vanzari Burlacu
Balint productie Manole
Baltag productie Manole

Fig.3.6 Exemplu de jonciune natural complet


Jonciune

r1 r2
Angajat Departament Departament Sef
Ionescu vanzari productie Manole
Balint productie depanare Burlacu
Baltag productie

r1 ><r2
Angajat Departament Sef
Balint productie Manole
Baltag productie Manole

Exemplu de jonciune natural incomplet


Jonciune

r1 r2
Angajat Departament Departament Sef
Ionescu vanzari marketing Manole
Balint productie depanare Burlacu
Baltag productie

r1 ><r2
Angajat Departament Sef

Exemplu de jonciune vid


Jonciune

Exist urmtoarele cazuri limit:


rezultatul s nu conin nici un tuplu;
fiecare tuplu al unui operand se poate combina cu fiecare tuplu din
cel de-al doilea operand cardinalitatea relaiei rezultat este dat de
produsul cardinalitilor celor doi operanzi.

Observaii

jonciunea dintre r1 i r2 conine un numr de tupluri cuprins ntre 0


i r1 r2 ;
dac jonciunea este complet atunci | r1 >< r2 | max(| r1 | , | r2 |) ;
dac X 1 X 2 conine o cheie pentru r2 atunci | r1 >< r2 | | r1 | ;
dac X 1 X 2 este cheie primar pentru r2 i exist constrngeri de
referin ntre X 1 X 2 din r1 i r2 atunci | r1 >< r2 | = | r1 | ;
Jonciune

r1 r2
Angajat Proiect Proiect Sef
Ionescu A A Manole
Balint A A Burlacu
Baltag A

r1 ><r2
Angajat Proiect Sef
Ionescu A Manole
Balint A Manole
Baltag A Manole
Ionescu A Burlacu
Balint A Burlacu
Baltag A Burlacu

Exemplu de jonciune cu r1 r2 tupluri


Jonciune
Jonciunea extern outer join
Operatorul de jonciune exclude tuplurile unei relaii ce nu au
corespondent n cellalt operand.

Operatorul de jonciune extern - asigur prezena n relaia rezultat a


tuturor tuplurilor unei relaii, acestea fiind completate cu valori NULL
atunci cnd nu au corespondent n cealalt relaie.

Acest operator are trei variante :


jonciune extern la stnga extinde doar tuplurile primului operand;
jonciune extern la dreapta extinde doar tuplurile celui de-al doilea
operand;
jonciune extern complet extinde toate tuplurile.
Jonciune
Exemplu
r1 r2
Angajat Departament Departament Sef
Ionescu vanzari productie Manole
Balint productie achizitii Burlacu
Luca productie

r1 >< LEFT r2 r1 >< RIGHT r2


Angajat Departament Sef Angajat Departament Sef
Ionescu vanzari null Balint productie Manole
Balint productie Manole Luca productie Manole
Luca productie Manole null achizitii Burlacu

r1 >< FULL r2
Angajat Departament Sef
Ionescu vanzari null
Balint productie Manole
Luca productie Manole
null achizitii Burlacu

Fig.3.7 Exemple de jonciuni externe


Jonciune

Jonciune n-ar, intersecie i produs cartezian


Proprieti ale jonciunii naturale:
comutativitatea - r1 >< r2 = r2 >< r1
asociativitate - (r1 >< r2 ) >< r3 = r1 >< (r2 >< r3 )
innd cont de aceste proprieti putem scrie
r1 >< r2 ><... >< rn sau ><ni=1 ri - jonciune n-ar.

dac X1 = X2 atunci jonciunea coincide cu intersecia:

r1( X1) >< r2 ( X2 ) = r1( X1) r2 ( X2 )

dac X 1 X 2 = , rezultatul jonciunii este definit pe reuniunea X 1 X 2


fiecare tuplu va fi derivat din dou tupluri, cte unul din fiecare operand
condiia ca tuplurile s aib aceleai valori n atributele comune va fi satisfcut
ntotdeauna jonciunea devine produs cartezian.
Jonciune
Thetajonciune i echijonciune
n general produsul cartezian nu prezint interes deoarece combin
tuplurile celor doi operanzi ntr-o manier lipsit de semnificaie.

ANGAJAT PROIECT
Angajat Proiect Cod Nume
Ionescu A A Venus
Balint A B Marte
Balint B

ANGAJAT >< PROIECT


Angajat Proiect Cod Nume
Ionescu A A Venus
Balint A A Venus
Balint B A Venus
Ionescu A B Marte
Balint A B Marte
Balint B B Marte

Figura 3.8 Produs cartezian


Jonciune

Operatorul de thetajonciune - produs cartezian urmat de o selecie.

r1 ><F r2 = F (r1 >< r2 )

F este condiia de selecie

ANGAJAT PROIECT
Angajat Proiect Cod Nume
Ionescu A A Venus
Balint A B Marte
Balint B

Proiect=Cod (ANGAJAT >< PROIECT)


Angajat Proiect Cod Nume
Ionescu A A Venus
Balint A A Venus
Balint B B Marte

Figura 3.9 Produs cartezian urmat de o selecie


Jonciune

Echijonciunea - o thetajonciune n care condiia de selecie F este o


conjuncie de atomi de egalitate, fiecare atom implicnd cte un atribut din
fiecare operand.
A treia relaie din figura anterioar - rezultat al unei echijonciuni.

Obs.

1. Majoritatea sistemelor de gestiune a bazelor de date nu exploateaz


avantajele numelor atributelor n combinarea relaiilor theta i echi
jonciunea au o importan deosebit.

2. interogrile SQL corespund echi jonciunilor.

3. Jonciunea natural a devenit disponibil doar n versiunile recente de


SQL.
Interogri n algebra relaional
Interogarea - funcie care, aplicat asupra unei instane
a unei baze de date, produce o relaie;

Fiind dat o schem R a unei baze de date, o interogare este


o funcie care, pentru fiecare instan r a lui R, produce o
relaie definit pe o mulime X de atribute.

n algebra relaional, interogrile unei scheme R de


baze de date sunt formulate cu ajutorul unor expresii,
ale cror atomi sunt relaii din R.
Interogri n algebra relaional
Exemple
Se consider o baz de date format din relaiile:
ANGAJAT (NrInreg, Nume, Varsta, Salariu)
SUPERVIZOR (NrSup, NrAng)

ANGAJAT SUPERVIZOR
NrInreg Nume Varsta Salariu NrSup NrAng
101 Maria Ionescu 34 40 210 101
103 Maria Balint 23 35 210 103
104 Lucia Popescu 38 61 210 104
105 Nicu Luca 44 38 231 105
210 Marcel Burlacu 49 60 301 210
231 Alin Lupu 50 60 301 231
252 Nicu Luca 44 70 375 252
301 Andrei Popa 34 70
375 Maria Ionescu 50 65

Fig.3.10 Baz de date pentru exemplificarea


interogrilor n algebra relaional
Interogri n algebra relaional

1) S se gseasc numerele de nregistrare pentru supervizorii acelor


angajai ce ctig mai mult de 40.

ANGAJAT (NrInreg, Nume, Varsta, Salariu)


SUPERVIZOR (NrSup, NrAng)

NrSup ( SUPERVIZOR >< NrAng = NrInreg ( Salariu >40 ( ANGAJAT )))


Interogri n algebra relaional

2) S se gseasc numerele de nregistrare i numele supervizorilor ce au


numai subalterni ce ctig mai mult de 40.

ANGAJAT (NrInreg, Nume, Varsta, Salariu)


SUPERVIZOR (NrSup, NrAng)

Vom proceda n felul urmtor:


se gsesc toi supervizorii pentru care toi subalternii ctig maxim 40;
se aplic operatorul de diferen ntre submulimea supervizorilor i
mulimea obinut la pasul anterior.

NrInreg , Nume ( ANGAJAT ><NrInreg =NrSup ( NrSup (SUPERVIZOR)


NrSup ( SUPERVIZOR ><NrAng =NrInreg ( Salariu40 ( ANGAJAT )))))
Valori NULL n algebra relaional
n cele discutate anterior am presupus c expresiile algebrice sunt aplicate
unor relaii ce nu conin valori NULL.
innd cont de importana valorilor NULL n aplicaii, vom vedea care este
impactul lor asupra limbajelor de interogare i actualizare a datelor.
Exemplu. S considerm relaia din figura urmtoare
PERSOANA
.

Nume Varsta Salariu


Ionescu 35 500
Popescu 27 600
Popa NULL 500

Figura 3.12 Relaie cu valori NULL

i selecia Varsta >30 ( PERSOANA)


- Primul tuplu va contribui la rezultatul seleciei, iar al doilea tuplu nu.
- Ce putem spune despre al treilea tuplu (valoarea NULL avnd
semnificaia unei informaii pe care o ignoram)?
Valori NULL n algebra relaional

n raport cu interogrile prezentate anterior vom utiliza o logic


trivalent n locul celei bivalente:
O formul poate avea valorile de adevr TRUE (T), FALSE (F) sau
UNKNOWN (U).
Rezultatul unei condiii atomice va avea valoarea de adevr
UNKNOWN dac cel puin un termen al comparaiei are valoarea
NULL.
Revenind la exemplul anterior, expresia va produce o relaie format
din primul tuplu, pentru care valoarea de adevr a expresiei a fost
TRUE.
Tabelele de adevr n logica trivalent pentru conectorii not, and i or
sunt:

not and T U F or T U F
U U T T U F T T T T
F T U U U F U T U U
T F F F F F F T U F
Valori NULL n algebra relaional
Este de notat c aceast logic trivalent pentru operatorii algebrici
prezint unele dezavantaje. PERSOANA
Nume Varsta Salariu
Exemplu Ionescu 35 500
S considerm expresia Popescu 27 600
Popa NULL 500

Varsta >30 ( PERSOANA) Varsta30 ( PERSOANA)

Logic, aceast expresie ar trebui s returneze relaia PERSOANA.

Pe de alt parte, dac cele dou subexpresii sunt evaluate separat,


al treilea tuplu va produce un rezultat necunoscut pentru fiecare
subexpresie, deci i pentru reuniune.

Numai prin intermediul unei evaluri globale (abordare care nu este


practic n cazul expresiilor complexe) putem ajunge la concluzia c
un astfel de tuplu trebuie s apar n rezultat.
Valori NULL n algebra relaional
Cea mai bun metod practic de a depi astfel de dificulti este de a
trata valorile NULL din punct de vedere pur sintactic.
n acest sens sunt introduse dou noi condiii atomice de selecie pentru a
verifica dac o valoare este specificat sau este NULL:
A is NULL este adevrat pentru tuplul t dac t[A] = NULL i fals n
rest;
A is NOT NULL este adevrat pentru tuplul t dac t[A] NULL i fals
n rest.

Exemplu
Varsta >30 ( PERSOANA) - returneaz persoanele cu vrsta peste 30 ani.
Varsta >30 Varsta IS NULL ( PERSOANA) - returneaz persoanele care au sau
care pot avea peste 30 ani.

Aceast abordare este utilizat n versiunile recente de SQL care suport


logica trivalent.
VEDERI

n cele prezentate anterior am vzut c se pot construi reprezentri diferite


ale datelor, reprezentri ce vor fi disponibile utilizatorilor prin
intermediul relaiilor derivate.
Tipuri de relaii ntr-o baz de date relaional
relaii de baz - coninutul este autonom i stocat n baza de date
relaii derivate - coninutul este definit pe baza coninutului altor
relaii
Exist dou tipuri principale de relaii derivate:
vederi materiale - relaii derivate stocate n baza de date;
vederi (relaii virtuale) relaii definite prin intermediul unor funcii
(expresii ale limbajului de interogare) care nu sunt stocate n baza de
date, dar pot fi folosite n interogri ca i cum ar exista fizic.
Vederi

Vederile materiale ofer un avantaj cnd numrul cererilor de interogare


este mai mare dect operaiile de actualizare ale relaiei pe care se
bazeaz vederea.

Deoarece nu se pot specifica tehnici generale de pstrare a consistenei


ntre relaiile de baz i vederile materiale, majoritatea sistemelor
comerciale ofer mecanisme numai pentru relaiile virtuale (vederi).

Vederile sunt definite n sistemele relaionale ca fiind expresii ale unui limbaj
de interogare.
Vederi
Utilizarea vederilor poate fi util din mai multe motive:

un utilizator interesat numai de o poriune din baza de date poate evita


contactul cu componentele ce nu prezint interes;

Exemplu

ntr-o baz de date cu dou relaii avnd schemele

ANGAJAT (NrAngajat, Departament)


MANAGER (Departament, NrSupervizor),

un utilizator interesat doar de angajai i de supervizorii lor ar putea fi


ajutat de existena unei vederi definit astfel:

NrAngajat , NrSupervizor ( ANGAJAT >< MANAGER)


Vederi

vederile permit implementarea unui mecanism de protecie a datelor


din baza de date;

n cazul restructurrii unei baze de date, este convenabil definirea


unor vederi corespunztoare relaiilor ce nu mai exist dup
restructurare;
n acest caz, aplicaiile deja scrise ce fac referire la versiunea
anterioar a schemei pot fi utilizate pe noua schem fr a necesita
modificri.

Exemplu

Presupunem c schema R ( ABC ) este nlocuit de schemele


R1 ( AB ), R2 ( BC ); putem defini vederea R = R1 ><R2 i astfel nu va
trebui s modificm aplicaiile ce fac referire la R.
Vederi

Interogarea vederilor similar interogrii relaiilor.


Actualizarea vederilor - nu se poate da o semantic.
Motiv
Fie vederea definit anterior
NrAngajat , NrSupervizor ( ANGAJAT >< MANAGER)

S presupunem c dorim s inserm un tuplu n aceast vedere


se dorete de fapt inserarea a dou tupluri n relaiile de baz care s
genereze noul tuplu din vedere;
acest lucru nu este posibil deoarece tuplul din vedere nu implic atributul
Departament, atribut care este utilizat n realizarea legturii dintre cele dou
relaii de baz.

n general, problema actualizrii vederilor este extrem de complex


toate sistemele impun limitri severe n ceea ce privete actualizarea
vederilor.