Baze de date

Previzualizare laborator:

Extras din laborator:

Pentru formularea interogarilor bazelor de date s-au dezvoltat doua formalisme, ca limbaje abstracte de interogare, algebra relationala si calculul relational. Algebra relationala exprima interogarile prin aplicarea unor operatori specializati (operatorii algebrei relationale) asupra relatiilor. Rezultatul unei operatii din algebra relationala este tot o relatie, asigurand astfel proprietatea de inchidere a operatiilor. Calculul relationa l este bazat pe calculul predicatelor si exprima o interogare formuland o definitie a rezultatului dorit (de regula o relatie) printr-o expresie de calcul relational. Aceste limbaje de interogare abstracte , algebra relationala, calculul relational sunt echivalente din punct de vedere al capacitatii de exprimare a interogarilor, diferentele constand in modul de formulare a acestora. S-a demonstrat ca, pentru orice expresie de algebra relationala, se poate gasi o expresie de calcul relational echivalenta si invers. In continuare se va studia algebra relationala pe care se bazeaza majoritatea comenzilor SQL.

1.1 Algebra relationala

Algebra relationala consta dintr-o multime de operatii care au ca operanzi relatii, iar rezultatul este tot o relatie. E.F. Codd a propus opt operatii ale algebrei relationale, grupati in doua categorii:

Operatii pe multimi: reuniunea (union), intersectia (intersection), diferenta (difference) si produsul cartezian (Cartesian product). Aceste operatii reprezinta adaptarea operatiilor corespunzatoare din teoria multimilor si actioneaza asupra relatiilor vazute ca multimi de elemente (tupluri), fara a lua in consideratie compozitia fiecarui element.

Operatii relationale speciale : restrictia (restriction), proiectia (projection), jonctiunea (join) si diviziunea (division). Aceste operatii iau in consideratie compozitia tuplurilor, formate din valori ale atributelor relatiilor.

Reunuinea (union) a doua relatii compatibile R si S este o relatie T = R ? S care contine toate tuplurile care apartin fie relatiei R, fie relatiei S, fie ambelor relatii. Tuplurile care apartin ambelor relatii se introduc in relatia rezultat o singura data, adica nu se duplica. Operatia de reuniune se exprima in SQL ca o reuniune a doua tabele obtinute ca rezultat a doua comenzi SELECT, cu sintaxa:

SELECT lista_coloane_1 FROM tabel_1 [WHERE conditie_1] UNION SELECT lista_coloane_2 FROM tabel_2 [WHERE conditie_2];

Intersectia (intersection) a doua relatii compatibile R si S este o relatie T = R ? S care contine toate tuplurile care apartin atat relatiei R cat si relatiei S. La fel ca si reuniunea, operatia de intersectie se exprima in SQL ca intersectie a doua tabele obtinute ca rezultat a doua instructiuni SELECT, cu sintaxa:

SELECT lista_atribute_1 FROM tabel_1 [WHERE conditie_1] INTERSECT SELECT lista_atribute_2 FROM tabel_2 [WHERE conditie_2];

Diferenta (difference) a doua relatii compatibile R si S este o relatie T=R-S care contine toate tuplurile care apartin relatiei R, dar nu apartin relatiei S. Operatia de diferenta se exprima in SQL ca diferenta a doua tabele obtinute ca rezultat a doua comenzi SELECT, cu sintaxa:

SELECT lista_atribute_1 FROM nume_tabel_1[WHERE conditie_1]

MINUS SELECT lista_atribute_2 FROM nume_tabel_2[WHERE conditie_2];

Produsul cartezian (Cartesian product). Produsul cartezian al doua relatii R(A1, A2, An) si S(B1, B2, Bm) este o relatie T: R - S = T (A1, A2, An, B1, B2, Bm) care are ca atribute toate atributele primei relatii plus toate atributele celei de-a doua relatii, deci gradul relatiei rezultat este egal cu suma gradelor celor doua relatii operanzi. Pentru a se obtine relatia rezultat se combina (se concateneaza) valorile atributelor fiecarui tuplu din prima relatie cu valorile tuturor atributelor unui tuplu din cea de-a doua relatie. In limbajul SQL, produsul cartezian a doua tabele R si S se obtine ca o varianta a instructiunii SELECT, intr-una din formele:

SELECT * FROM R,S; SELECT lista_coloane FROM R,S;

In prima forma, limbajul SQL admite operatia produs cartezian si in situatia in care in cele doua relatii operand exista doua atribute cu acelasi nume, subintelegandu-se calificarea atributelor cu numele fiecarei relatii. Pentru cea de-a doua forma, atributele cu acelasi nume trebuie sa fie calificate cu numele relatiei respective.

Restrictia (restriction) este o operatie unara care selecteaza dintre tuplurile relatiei operand acele tupluri care indeplinesc o conditie data. Operatia de restrictie se noteaza: sq (R), unde q este o expresie booleana specificata asupra atributelor relatiei R. In relatia rezultat sunt selectate acele tupluri ale relatiei R pentru care expresia q are valoarea 1 (TRUE). Relatia rezultat are aceleasi atribute ca si relatia operand. Operatia de restrictie se mai numeste si selectie (si, intr-adevar, restrictia face o selectie a tuplurilor), dar este mai bine sa fie evitata aceasta denumire care se poate confunda

Download gratuit

Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.

Structură de fișiere:
  • Baze de date.pdf
Alte informații:
Tipuri fișiere:
pdf
Diacritice:
Nu
Nota:
9/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
7 pagini
Imagini extrase:
7 imagini
Nr cuvinte:
3 981 cuvinte
Nr caractere:
23 490 caractere
Marime:
32.99KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Laborator
Domeniu:
Calculatoare
Tag-uri:
sql, informatii
Predat:
la facultate
Materie:
Calculatoare
Sus!