Trei dintre operatiile pe multimi - uniunea, intersectia si diferenta, pot opera nuami cu doua relatii cu scheme compatibile
1.Sceme relationale compatibile
- Doua relatii r(R) si s(S) sunt compatibile (au scheme compatibile), daca, intre R si S, exista o corespondenta biunivoca f: pentru orice atribut A din R, exista in S un atribut B incit dom(A) = dom(B), B=f(A) si A=f - (B).
2. Uniunea
- Este o operatie clasica a teoriei multimilor adaptata la relatii. Este o operatie binara.
- Uniunea a doua relatii r(R) si s(S) se poate nota r U s si reprezinta multimea tuturor tuplurilor care se gasesc in cel putin una din relatii:
r U s = {t | t ∈ r U t ∈ s}.
- Aceasta operatie se poate aplica numai in cazul in care r(R) si s(S) au scheme compatibile. Daca atributele au nume se cere ca, in plus, cele doua liste de nume sa coincida si rezultatul va avea aceeasi lista de nume pentru atribute.
- Uniunea are doua proprietati: este comutativa si asociativa.
- Uniunea are doua relatii speciale: r ∪ = ; si r ∪ s = s , daca r ⊆ s.
3. Diferenta
- Se aplica asupra doua relatii cu scheme compatibile.
- Diferenta a doua relatii compatibile r(R) si s(S), notata cu r \ s, este o relatie definita pe multimea de atribute R sau S si are, in calitateb de tupluri, toate tuplurile de relatia r care nu sunt in s, adica:
r \ s = {t | t ∈ r & t s}.
- Diferenta nu este comutativa si nici asociativa
- Diferenta are cazuri speciale: \ r = ; r \ = r;
4.Intersectia
- Se aplica asupra doua relatii cu scheme compatibile.
- Fiind date doua relatii r(R) si s(S), intersectia lor, notata r ∩ s, este o relatie definita pe schema R sau S si care contine tuplurile care sunt sin in r sin in s:
r ∩ s = {t | t ∈ r & t ∈ s}.
- Intersectia este comutativa: r ∩ s = s ∩ r
asociativa (r ∩ s) ∩ q = r ∩ (s ∩ q ); r ∩ (s ∪ q) = (r ∩ s) ∪ (s ∩ q )
- Intersectia are cazuri speciale: r ∩ = ; r ∩ s = r; daca r ⊆ s
- Este opertie redundanta, deoarece este posibila obtinerea ei de la diferenta
r ∩ s = r \ ( r \ s);
r ∩ s = s \ ( s \ r);
5.Produsul cartezian
- Produsul cartezian al doua relatii r(R) si s(S), denuimita si jonctiune incrucisata (CROSS JOIN), este multimea tuplurilor obtinute prin concatenarea fiecarui tuplu din relatia r(R) cu toate tuplurile relatiei s(S). Formal, produsul cartezian al relatiilor r si s, este notat cu r x s si definit astfel:
r x s = { ( tr, ts ) | tr ∈ r(R) & ts ∈ s(S)}.
Rezulta de aici urmatoarele
- Numarul de atribute ale lui r x s etse egal cu suma numereleor de atribute ale schemelor R si S.
- Numarul de tupluri ale lui r x s egal cu produsul numerelor de tupluri ale lui r si s.
- Daca in R si S sunt atribute cu acelasi nume, in schema relatiei produsul cartezian r x s vor fi atribute cu acelasi nume. Pentru a le deosebi, se prefixeaza numele atributului cu cel al relatiei din care provine.
- Produsul cartezian este comutativ si asociativ.
- Numarul de tupluri in rezultat este exact card(r) * card(s), unde card(r) - reprezinta cardinalitatea relatiei r (numarul de tupluri in r)
6.Operatia de redenumire
- Redenumirea atributelor poate fi utilizata la rezolvarea conflictelor de nume si pentru definirea unor operatii prevazute in algebra relationala. redenumirea rprezinta un mecanism utilizat la schimbarea nnumelor relatiilor sau atributelor. Limitarile impuse operatorilor standart din teoria multimilor pot fi restrictive in anumite situatii. Scopul operatiei de redenumire consta in adaptarea numelor atributelor atunci cind etse necesara aplicarea unui operator din teoria multimilor. Aceasta operatie modifica numele atributelor, lasind intact continutul relatiei
- Fie o relatie r(R), A ∈ R si atributul B R \ {A}. Atunci relatie r cu atributul A redenumit in B este urmatoarea relatiei definita pe schema R \ {A} ∪ {B}:
δA<-B(r) = {t1 | ∃t ∈ r & t1 [R \ {A}] = t [R \ {A}] & t1[B] = t[A]}
7.Complementul
- Complementul permite obtinerea tuplurilor care nu apartin unei relatii. Se presupune a priori ca domeniile sunt finite. Astfel, complementul unei relatii reprezinta multimea tuplurilor din produsul cartezian al domeniilor asociate atributelor relatiei, care nu figureaza in extensia relatiei considerate.
- Fie relatia r(R), unde R = {A1,...,An} Complementul relatiei r, notat cu ,este
= tup(R) \ r,
Unde tup(R) = dom(A1)x..x dom(An), adica consta in construirea unei relatii-rezultat de tupluri, care nu apratin relatiei r.
7.Proiectia
- Este o operatie nativa si permite suprimarea atributelor din relatii. Actioneaza asupra unei singure relatii r si defineste o relatie care contine o submultime a lui r, extragind valorile atributelor specificate
- Fie data relatie r definita pe schema R si o submultime X ⊆ R. Proiectia relatiei r asupra multimii de atribute X (notata cu x(r)) reprezinta o relatie cu schema X ce consta din X - valorile tuturor tuplurilor din r:
x(r) = {t[X] | t∈ r}.
- Este evident ca operatie proiectia suprima atributele. In principui, numarul de tupluri, in rezultatul obtinut, este acelasi ca si relatia initiala. Dar exista o problema: intructit rezultatul trebuie sa fie o relatie , ea nu poate contine tupluri identice. Se poate intimpla, ca dupa aplicarea operatiei proiectia, doua tupluri care, initial, erau distincte pot deveni identice, daca atributele care le distingeau au fost suprimate. In acest caz se pastreaza numai unul din tuplurile identice.
- Cazuri speciale:
- In multimea de atribute pentru o proiectie poate sa apara toate atributele relatiei. In acest caz, se obtine o relatie cu acelasi continut cu cea initiala: daca X=R. atunci x(r) = r.
- In cazul in care relatia initiala nu contine tupluri, atunci si rezultatul proiectiei este vid: daca r = , atunci x(r) = .
- Daca multimea de atribute X = , atunci proiectia (r) este indefinita, fiindca schema unei relatii nu poate fi o multime vida. Schema unei relatii, produsa de operatia proiectia, are cel putin un atribut.
- In cazul in care R ⊂ X, operatie proiectia, de asemenea, este indefinita. Multimea asupra careia se face proiectia trebuie sa fie o submultime a schemei relatiei initiale
- Fie relatia r(R) si Y ⊆ X ⊆ R. Atunci are loc y(x(r) = y(r).
- Daca relatie r este definita pe o multime de atribute ce include multimile X si Y, atunci poate fi realizata cascaderea proiectiilor - o proiectie poate fi transformata intr-o cascada de proiectii care elimina atribute in diverse faze: x(r) = x(xy(r).
- Distributivitatea proiectii in raport cu uniunea x(r ∪ s) = x(r) ∪ x(s)