CATEGORII DOCUMENTE |
Astronomie | Biofizica | Biologie | Botanica | Carti | Chimie | Copii |
Educatie civica | Fabule ghicitori | Fizica | Gramatica | Joc | Literatura romana | Logica |
Matematica | Poezii | Psihologie psihiatrie | Sociologie |
OPERATORI RELATIONALI
Operatiile definite in capitolul precedent nu opereaza asupra relatiilor, ele opereaza asupra tuplurilor. In acest capitol vom introduce operatori care opereaza asupra relatiilor in intregime. Rezultatul unui operator este o alta relatie (propietatea de inchidere). Aceasta propietate este foarte importanta, deorece outputul oricarui operator este un obiect de acelasi tip ca la intrare. Cu alte cuvinte operatorii relationali ne permit sa scriem expresii "nested", adica expresii in care operanzii sunt reprezentati de alte expresii si asa mai departe pana cand in final operanzii sunt nume de relatii. Vom arata ca operatiile obisnuite din teoria multimilor se aplica si la relatii si apoi vom defini trei operatori relationali speciali: selectia, proiectia si unirea etc.
3.1. Operatii booleene
Doua relatii care au aceeasi schema, pot fi considerate ca multimi de date ale aceluiasi univers, descris de multimea tuturor tuplurilor posibile ale schemei ce-l caracterizeaza. Daca r si s sunt doua relatii de schema R, atunci r s, r s, r-s sunt relatii de schema R.
Multimea r s este relatia q(R) a tuturor tuplurilor care apartin lui r sau lui s.
Multimea r s este relatia q(R) a tuturor tuplurilor care apartin in acelasi timp si lui r si lui s.
Relatia r-s este relatia q(R) formata din tuplurile care apartin lui r si nu apartin lui s. Se observa ca intersectia mai poate fi scrisa si astfel: r s=r-(r-s).
Fie dom(R) multimea
tuturor tuplurilor posibile in raport cu atributele schemei si domeniile
lor. Complementara relatiei r(R) se poate defini prin diferenta:
Totusi, daca un atribut A din R are un domeniu infinit, atunci dom(R) este infinit si nu va fi relatie in sensul definitiei introduse. Versiunea modificata a complementarei, numita activa, este intotdeauna relatie.
Fie r(A1,A2,,An) o relatie si Di=dom(Ai), 1≤i≤n se numeste domeniu activ al atributului Ai in raport cu r este multimea:
adom(Ai,r)=
Exemplul 3.1. Fie schema R=(ABC) si relatiile r si s de schema R.
r( A B C ) s( A B C )
a1 b1 c1 a1 b2 c1
a1 b2 c1 a2 b1 c2
a2 b1 c2 a2 b2 c2
atunci operatiile r s, r s, r-s sunt:
r s( A B C ) r s( A B C ) r-s( A B C )
a1 b2 c1 a1 b1 c1 a1 b1 c1
a2 b1 c2 a1 b2 c1
a2 b1 c2
a2 b2 c2
Fie dom(A)= dom(B)= dom(C)=pentru care se da dom(R), adom(R),
dom(R) ( A B C
)
a1 b1 c1 a1 b1 c2 a1 b1 c1 a1 b1 c2
a1 b1 c2 a1 b2 c2 a1 b1 c2 a1 b2 c2
a1 b2 c1 a1 b3 c1 a1 b2 c1 a2 b1 c1
a1 b2 c2 a1 b3 c2 a1 b2 c2 a2 b2 c1
a1 b3 c1 a2 b1 c1 a2 b1 c2 a2 b2 c2
a1 b3 c2 a2 b2 c1 a2 b2 c1
a2 b1 c1 a2 b2 c2 a2 b2 c2
a2 b1 c2 a2 b3 c1
a2 b2 c1 a2 b3 c2
a2 b2 c2
a2 b3 c1
a2 b3 c2
Multimea relatiilor care au aceeasi schema este inchisa fata de reuniune, intersectie, complementara activa si diferenta simetrica, totusi aceste operatii nu pastreaza cheia.
3.2. Operatorul de selectie
Selectia este un operator unar de relatie. Operatorul de selectie aplicat unei relatii r produce o relatie s de aceiasi schema care contine tuplurile din relatia r ce verifica conditia data ca argument.
Definitia 3.1. Fie relatia r de schema R, un atribut AIR si un element aIdom(A). Operatorul de selectie face sa corespunda relatiei r(R) relatia sA=a(r) formata din tuplurile lui r care au valoarea atributului A egala cu a.
Considerand tuplurile ca transformari, operatorul de selectie se poate defini astfel:
sA=a(r)=.
Exemplul 3.2 Fie relatia orar, data in tabelul 2:
orar ( NR PD PA OD OA )
70 Bucuresti Cluj 16 18
75 Cluj Bucuresti 7 9
85 Craiova Bucuresti 7 8
95 Bucuresti Timisoara 18 20
Dam rezultatul aplicarii operatorului spunct_decolare=Bucuresti(orar).
orar ( NR PD PA OD OA )
70 Bucuresti Cluj 16 18
80 Bucuresti Craiova 16 17
95 Bucuresti Timisoara 18 20
3.3. Operatorul de proiectie
Operatorul de proiectie este de asemenea un operator unar de relatii. Proiectia este un operator specific relatilor care ne permite sa suprimam atribute dintr-o relatie data. El face sa corespunda unei relatii de grad n o alta relatie de grad mai mic p<n. Deci ne permite sa trecem de la un spatiu cu n dimensiuni la un spatiu cu mai putine dimensiuni.
Daca operatorul de selectie permite alegerea unei multimi de tupluri (linii) dintr-o relatie, operatorul de proiectie permite alegerea unei submultimi de atribute (coloane).
Definitia 3.2. Fie relatia r de schema R si X R o submultime de atribute din R. Relatia q(X) obtinuta din r prin inlaturarea coloanelor R-X si a tuplurilor (liniilor) care se repeta se numeste proiectia relatiei r in raport cu X. Daca consideram tuplurile ca transformari, atunci:
px(r)=
Fie relatia r(R) si X1 X2 X3 Xk R, atunci:
p X1 (pX2 pX3 pXk(r))= pX (r)
Proiectia comuta cu selectia cand atributul sau atributele pentru selectie se afla printre atributele multimii X dupa care se face proiectia. Daca A X, X R si r este o relatie de schema R, atunci:
pX sA=a(r))= pX
sA=a pX(r))
Observatie: Afirmatia nu este adevarata daca A nu se afla in X.
3.4. Operatorul de unire(JOIN)
Unirea a doua relatii este cel mai important operator din algeba relationala si cel mai dificil de realizat de sistemele de gestiune care il implementeaza. Unirea poate fi conceputa intuitiv ca o completare a produsului cartezian cu o conditie care ne permite sa comparam anumite atribute. Operatorul de unire a doua relatii produce o a treia relatie care contine toate concatenarile de tupluri din cele doua relatii initiale care satisfac o conditie specificata.
Conditia trebuie sa permita desigur alipirea celor doua relatii si deci sa fie de forma ;
Atribut1 operator atribut2 ,
unde atributul1 apartine relatiei1 si atributul2 apartine relatiei2. Dupa natura operatorului pot fi impartite in echi-uniri si inechi-uniri.
Vom ilustra acesta printr-un exemplu: presupunem ca avem o baza de date despre liniile aeriene, care este ipotetic formata din doua liste:
- lista de tipuri de avioane care pot fi folosite la fiecare linie;
- lista de tipuri de avioane pe care fiecare pilot are drept de conducere.
Fie relatiile: utilizare(CURSA, TIP_AVION) si drept_conducere(PILOT, TIP_AVION).
utilizare( CURSA, TIP AVION ) drept-conducere( PILOT, TIP_AVION )
80 BAC111 TICA BAC111
85 IAR500 TICA ROMBAC
88 ROMBAC ION IAR500
90 IAR100 RADU IAR500
Relatia Optiune(CURSA, TIP_AVION, PILOT).
Optiune( CURSA TIP AVION PILOT )
80 BAC111 Tica
85 IAR500 Ion
ROMBAC Tica
90 IAR100 Radu
Calculul proiectiei p CURSA, PILOT(Optiune):
p CURSA, PILOT Optiune)( NR CURSA PILOT )
80 Tica
85 Ion
88 Tica
90 Radu
Fie relatiile, r de schema R si s de schema S. Notam cu T=R S.
Definitia 3.3. Relatia q de schema T, care pentru orice tuplu tIq exista tuplurile trIr si tsIs, astfel incat t(R)=tr, t(S)=ts se numeste unirea relatiei r cu s si se noteaza cu
r
Fiecare tuplu tIq este o combinatie de doua tupluri trIr si tsIs.
Se vede usor ca este adevarata
egalitatea varianta=utilizare
Exemplul 3.3. Fie relatiile
r (A B ) s( C D ) r
a1 b1 c1 d1 a1 b1 c1 d1
a2 b2 c2 d2 a1 b1 c2 d2
c3 d3 a1 b1 c3 d3
a2 b2 c1 d1
a2 b2 c2 d2
a2 b2 c3 d3
Operatia selectie poate fi inlocuita prin unire. Fie relatia r(R) din care trebuie sa selectam sA=a (r), definim mai intai relatia s(A) cu un singur tuplu t(a)=a.
Atunci r
r
Daca alegem doua atribute A si
B din R luam in calitate de s relatia s(AB) cu un singur tuplu t,
t(A)=a si t(B)=b, atunci: r
r
Din simetria operatiei de unire rezulta ca operatorul de unire este comutativ. De asemenea, pentru orice q, r si s avem proprietatea de asociativitate:
q
Introducem unirea unei secvente finite de relatii.
Definitia 3.4. Fie relatiile s1(S1),..,sm(Sm), schema de relatie R=S1 S2 Sm si S secventa S1,,Sm. Fie o secventa de tupluri tiIsi cu 1≤i≤m. Spunem ca tuplurile ti 1≤i≤m se pot uni pe S, daca exista un tuplu t de schema R astfel incat ti=t(Si) cu 1≤i≤m. Tuplul t se numeste rezultatul unirii tuplurilor t1,,tm pe S.
Exemplul 3.4. Fie relatiile s1(A B), s2(B C), s3(A C)
s1( A B ) s2 ( B C ) s3 ( A C )
a1 b1 b1 c2 a1 c2
a1 b2 b2 c2 a1 c1
a2 b2 a2 c1
Tuplurile <a1,b1>, <b1,c2>, <a1,c2> din s1, s2, s3 unite cu rezultatul (a1,b1,c2) si <a1,b2>, <b2,c1>, <a2,b2> sunt unite cu rezultatul (a1,b2,c1).
s1
a1 b1 c2
a2 b2 c1
Daca in definitia de mai sus m=2 si daca tuplurile t1 si t2 sunt unite pe S=S1 S2 cu rezultatul t, atunci t1=t(S1) si t2=t(S2).
Din definitia
unirii rezulta ca tuplul t trebuie sa apartina lui s1
Lema
3.1. Relatia s1
Nu toate tuplurile fiecarei selectii pot sa intre in unire. Relatiile s1,..,sm sunt complet unite daca orice tuplu din fiecare relatie este componenta a unei secvente unite pe S.
Exemplul 3.5. In exemplul 3.5 se observa ca unirea celor trei selectii s1,s2 si s3 nu este completa. Daca unim tuplurile <a1,a2> din s1 si <b2,c1> din s2 trebuie sa adaugam tuplul <a1,c1> la s3 atunci relatia devine completa, unita cum se vede mai jos:
s1(
A B ) s2 ( B C ) s3 ( A C ) s1
a1 b1 b1 c2 a1 c1 a1 b1 c2
a1 b2 b2 c1 a1 c2 a1 b2 c1
a2 b1 a2 c2 a2 b1 c2
Operatiile de unire si proiectie nu sunt reciproc inversabile, ele formeaza functii complementare.
Fie relatiile r(R) si
s(S) si q=r
Exemplul 3.6. Incluziunea aratata mai sus este stricta r' r.
r( A B ) s( B C ) r
a1 b1 b1 c1 a1 b1 c1 a1 b1
a1 b2
Incluziunea devine egalitate daca si numai daca, pentru orice tuplu trIr exista un tuplu tsIs cu tr(R S)=ts(R S). Incluziunea poate deveni egalitate fara ca r si s sa fie complet unite.
Aratam mai jos cazul in care are loc egalitatea:
r( A B ) s( B C ) r
a1 b1 b1 c1 a1 b1 c1 a1 b1
a1 b2 b2 c2 a1 b2 c2 a1 b2
Totusi daca s'=ps(q) atunci conditia r=r' si s=s' este echivalenta cu conditia ca r si s sa fie complet unite.
Fie q o relatie de schema
R S si r=pR(q) si s=pS(q). Punem q'=r
Daca
q=q' atunci spunem ca relatia q se descompune fara
pierderi in raport cu schemele R si S. Inaintand inca un pas, fie
r'=pR(q') si s'=pS(q)
si q''=r'
Fie T=R S, atunci pT(r)= pT pR(r))= pT(r)= pT pS(r))= pT(s). Prin urmare, r si s sunt complet unite, deoarece pentru orice trIr exista tsIs astfel incat tR(T)=tS(T) si invers. Prin urmare r=r' si s=s' deci q si q'' coincid, de unde rezulta ca procedura de proiectie-unire este idempotenta, rezultatul aplicari primei uniri coincide cu rezultatul aplicarii celei de a doua.
3.5. Operatorul de echiunire
In definitia operatorului de unire, relatiile sunt unite sau nu cand au o multime de atribute comune. Operatia de unire naturala este o operatie de unire a doua relatii r si s in raport cu multimea de atribute commune. Valorile ne comune sunt eliminate din rezultatul unirii celor doua relatii.
Definitia 3.5. Fie relatiile r(R) si s(S) cu AiIR si BiIS, dom (Ai)=dom(Bi),1≤i≤m si Ai si Bi se presupune ca sunt diferite. Relatia:
q(RS)=
se numeste echiunirea relatiilor r si s in raport cu A1=B1,,Am=Bm. Ea se noteaza cu r[A1=B1,,Am=Bm]s.
Exemplul 3.7. Consideram proiectia relatiei 'ORAR' in raport cu atributele 'PUNCT_DECOLARE (PD)', 'PUNCT_ATERIZARE (PA)', ' NUMAR_CURSA (NC)', numita 'ruta' si relatia 'adresa' de atribute 'PILOT (PL)' si 'AEROPORT (A)'.
Ruta ( NC PD PA ) Adresa ( PL A )
70 Bucuresti Craiova Luca Bucuresti
75 Craiova Bucuresti Lupu Cluj
80 Bucuresti Cluj Lica Craiova
85 Cluj Bucuresti Lari Timisoara
90 Iasi Timisoara Dorin Iasi
Relatia 'poate_sa_zboare' arata in ce oras traieste pilotul si directia cursei.
Poate-sa-zboare ( NC PD PA PL A )
70 Bucuresti Craiova Luca Bucuresti
75 Craiova Bucuresti Lica Craiova
80 Bucuresti Cluj Luca Bucuresti
85 Cluj Bucuresti Lupu Cluj
90 Iasi Timisoara Dorin Iasi
Aceasta relatie este calculata prin echiunire dupa atributele PD si A. Echiunirea se mai numeste si unire naturala. Unirea nu repeta coloanele unite, si prin aceasta difera de echiunire.
Pana acum singurul operator de comparare a valorilor unui domeniu a fost egalitatea. Se pot compara valorile unui domeniu folosind comparatorii <, ≤, > Pentru o examinare generala a comparatorilor se introduce o multime Q de simboluri pentru operatiile binare pe perechi de domenii. Daca qI Q si A si B doua atribute spunem ca A este q comparabil cu B, daca q este o relatie binara in dom(A) x dom(B).
3.6. Operatorul de q unire
Operatia de q-unire defineste o relatie ce contine tuplurile produsului cartezian rxs ce
satisfac un predicat P de forma r.Aiqs.Bj unde q este un comparator.
r
Simbolul cel mai utilizat din multimea Q pentru comparare este '='. Compararile vor fi folosite si pentru generalizarea operatorului de selectie si unire. Echiunirea este o extindere a operatorului de unire, iar operatorul q-unire este o extindere a operatorului de echiunire.
Exemplul 3.8. Presupunem ca sunt date orele de zbor a avioanelor intre orasele A si B si intre orasele B si C care au legatura prin calcularea relatiei tranzit intre A si C.
Timp( A B) ( NC OD OA )
75 9:30 10:30
76 12:45 14:40
81 16:00 18:00
91 20:00 22:00
97 21:00 23:00
Tabelul 1 : Zbor intre orasele A si B:
Timp( B C )( NC OD OA )
62 8:00 12:00
75 11:00 12:00
99 19:00 20:00
110 23:30 00:30
Tabelul 2 : Zbor intre orasele B si C:
Tranzit ( A C) ( NC OD OA NC' OD' OA')
Tabelul 3 : Zborurile de tranzit intre A si C:
Definitia 3.6. Fie r(S) si s(S) pentru care R S= si AIR si BIS sunt q-comparabile pentru qIQ. Relatia
q(RS)=
se numeste r q-unita cu s si se noteaza cu r[AqB]s.
Fie A1,A2,,Am R si B1,B2,,Bm S si operatiile qiIQ, 1≤i≤m. Se numeste calificare si se noteaza cu
Q=A1q B1 A2q B2 Amqm Bm.
Unirea relatiilor r(R) si s(S) in raport cu calificarea Q este relatia:
q(RS)=
Aceasta operatie esentiala in realizarea sistemelor relationale este notata cu:
JOIN(r,s/Q)
si se reprezinta grafic:
Unirea
naturala a lui r si s, notata simplu cu r
Exemplul 3.9 Fie relatiile material(COD_MATERIAL, DENUMIRE_MATERIAL, PRET) si reper( COD_REPER, DENUMIRE_REPER, COD_MATERIAL, CANTITATE_MATERIAL).
In urma unirii se obtine o relatie care specifica din ce material este construit fiecare reper.
3.7. Operatorul de impartire
Operatorul de impartire se aplica in putine situatii practice.
Definitia 3.7. Fie schemele de relatii R, S si S R si R'=R-S, si relatiile r(R) si s(S). Relatia
r'(R')=
se numeste catul impartirii relatiei r la s si se noteaza cu r s.
Exemplu 3.10 Fie relatia r(PILOT, TIP_AVION) si s(TIP_AVION):
r( PILOT TIP AVION ) s( TIP AVION )
Dan Rombac Rombac
Dan BAC111 BAC111
Dan IAR500 IAR500
Dragos Rombac
Dragos IAR500
Dragos BAC111
Mihai Rombac
Daca dorim sa gasim acei piloti care au drept de conducere pe toate avioanele calculam r s.
r s( PILOT )
Dan
Dragos
Operatorul de impartire poate fi exprimat cu ajutorul operatorilor dati anterior.
Fie R, S, S R si r(R) si s(S). Atunci:
r s=pR'(r)- pR' pR'(r )
Operatorul de impartire se reprezinta grafic astfel:
Operatorul de selectie extinsa
Daca in locul simbolului '=' din operatorul de selectie σA=a(r) punem simbolul q, obtinem un operator de selectie extins notat σAqa
Definitia 3.8. Fie relatia r de schema R si atributul A. Presupunem ca valorile lui sunt q-comparabile , atunci relatia:
Aqa(r)=
se numeste selectie extinsa (q-selectie).
O selectie a relatiei R in raport cu o calificare Q=A1q a1 Amqm am este o relatie de aceeasi schema ale carei tupluri sunt acelea din R care satisfac calificarea Q.
Sunt utilizate urmatoarele notatii pentru selectia extinsa:
- Q(r);
-SELECT(r/ A1q a1 Amqm am
-SELECT(r/Q).
Selectia extinsa se reprezinta grafic prin:
3.9. Relatii constante
In proprietatile operatorului de unire s-a aratat ca, rezultatul unei operatii de selectie se poate obtine prin unirea relatiei cu o relatie constanta. Introducem un procedeu de descriere a unei relatii constante reprezentata direct in expresii.
Definitia 3.9. Fie A1,A2,,An, n atribute diferite iar ci sunt constante din dom(Ai), 1 i n, atunci <c1:A1,c2:A2,,cn:An> reprezinta tuplul constant <c1,c2,,cn> de schema A1A2An. Fie cijIdom(Ai), 1 i n, 1 j k. Atunci:
reprezinta relatia constanta si are forma:
A1 A2 .. An
===============
c11 c21 ....cn1
c12 c22 ... cn2
..
c1k c2k ...cnk
Relatia constanta cu numar oarecare de tupluri si un numar de atribute poate fi construita din relatii constante cu un singur atribut si un singur tuplu cu ajutorul operatorilor de unire si reuniune.
Exemplul 3.11.
PILOT TIP_AVION
Dan Rombac
Vali BAC111
poate fi reprezentata prin <Vali:PILOT>
3.10 Operatorul de redefinire a atributelor
Sa consideram relatia utilizare care specifica ce avion este utilizat intr-o cursa intr-o anumita zi.
Definitia 3.10. Fie relatia r de schema R, A IR si B un atribut care nu apartine lui R si R'=(R-A) B. Schimband pe A cu B in relatia r obtinem relatia notata cu dA←B(r) care este data de relatia:
r'(R')=
Sa consideram relatia utilizare data in tabelul 1 care indica ce avion poate fi utilizat intr-o cursa data, intr-o zi dintr-un orar dat.
Presupunem ca, pentru un orar dat trebuie sa aflam cursele care folosesc acelasi avion in aceeasi zi.
Tabelul 1: Relatia de 'Utilizare' indica ce avion poate fi folosit pentru o cursa data.
Utilizare ( NC DATA TIP AVION )
70 7-01 Rombac
75 8-01 Rombac
78 7-01 Rombac
80 7-01 IAR500
85 7-01 IAR400
86 8-01 IAR300
88 8-01 IAR100
90 7-01 Rombac
91 8-01 BAC11
Pentru a formaliza cererea de mai sus se utilizeaza operatorul de redefinire.
Fie relatia r de schema R care contine atributele A1, A2, , Ak. Fie atributele B1, B2, , Bk diferite cu dom( Ai)= dom(Bi), 1 i k. Notam relatia de redefinire a atributelor A1, A2, , Ak cu B1, B2, , Bk in relatia r cu :
dA1, , Ak← B1, , Bk(r).
3.11. Algebra relationala
Operatorii de reuniune, intersectie, diferenta, complementara activa, proiectie, selectie, unire, q-unire, echiunire, impartire si redefinire, impreuna cu relatiile constante si relatiile regulate ce permit formarea expresiilor relationale.
Orice expresie construita corect cu ajutorul acestor operatori si relatii se numeste expresie algebrica. Pentru orice expresie algebrica E si valorile curente date tuturor relatiilor din E in raport cu care E se poate calcula se obtine o relatie unica.
Prin urmare E reprezinta o transformare a unei multimi de relatii intr-o singura relatie.
Fie U multimea tuturor atributelor care descriu un univers, D o multime de domenii si fie dom o functie completa din U in D. Fie in continuare R= o multime de scheme de relatii diferite, unde Ri U, 1 i p si d= o multime de relatii astfel incat relatia ri este de schema Ri. Fie Q o multime de comparatori definiti pe domeniile din D care contine cel putin o relatie de egalitate si de inegalitate pentru fiecare domeniu.
Definitia 3.11. Se numeste algebra relationala in raport cu U, D, dom, R, d si Q septetul B=( U, D, dom, R, d, Q O), unde O este multimea opratorilor enuntati mai sus ce folosesc atributele din U si relatiile din d.
Definitia 3.12. Se numeste expresie algebrica in raport cu B orice expresie corect construita din relatii care apartin lui d si relatii constante cu schema din U care folosesc operatori din O
In expresii se admit paranteze rotunde si se presupune ca nici un operator binar nu are prioritate in executare fata de celalalt cu exceptia fata de Chiar putem sa eliminam parantezele pentru secvente legate prin unul si acelasi operator daca operatia este asociativa.
Se observa ca doua relatii cu una si aceeasi schema nu sunt permise. Numele relatiilor este analog unei variabile dintr-un program unde ri reprezinta o relatie de schema Ri, unde i ia valori de la 1 la n.
Deoarece rezultatul fiecarei operatii relationale este o relatie atunci orice expresie algebrica se defineste ca o functie care transforma o multime de relatii intr-o relatie. Schema de relatie depinde de schemele relatiilor care compun expresia E.
Notam cu sch(E) schema expresiei algebrice E care se poate defini recursiv conform urmatoarelor reguli:
1. Daca E este ri atunci sch(E)=Ri.
2. Daca E este relatia constanta atunci sch(E) este schema relatiei constante.
3. Daca E=E1 E2, E1 E2, E1E2, E1sau c(E1) unde c este o multime de conditii,
atunci sch(E)= sch(E1).
4. Daca E=pX(E1) atunci sch(E)=X.
Daca E=E1
sch(E1) sch(E2).
6. Daca E=E1 E2 atunci sch(E)=sch(E1)-sch(E2).
7. Daca E=dA1A2 Ak B1B2Bk(E1) atunci sch(E)= (sch(E)-A1Ak) B1Bk.
Daca E este o expresie algebrica intre schemele relatiilor s1, s2,, sk notate S1, S2, , Sk atunci E este o transformare :
E:Rel( S1)* Rel( S2)** Rel(Sk) Rel( sch(E)),
unde Rel( R) reprezinta multimea tuturor relatiilor de schema R. Uneori se pune problema folosirii relatiei de complementare in algebra relationala care se numeste algebra relationala complementara.
Multimea operatorilor formata din: reuniune, diferenta, proiectie, selectie si unire naturala se numeste multimea primara de operatori si se noteaza cu Op.
Dupa cum s-a observat in capitolul precedent operatorii relationali nu sunt independenti. Exista multimi restranse de operatori care au aceeasi putere ca si multimea intreaga.
Observatia 1. Rezultatul oricarei operatii de selectie extinsa poate fi obtinut prin folosirea operatorului de selectie σAqB sau σAqa si a unor operatori din Op din care s-a eliminat selectia obisnuita, presupunand ca multimea relatiilor binare este inchisa fata de negatie.
Observatia 2. Operatorul de impartire poate fi scris cu ajutorul proiectiei, diferentei si unirii, astfel:
r s=pR'(r)- pR' pR'(r )
Teorema 3.1. Pentru orice expresie de relatie E(s1,s2,,sq) in raport cu algebra relationala B, exista o expresie E'(s1,s2,,sq) in raport cu algebra de relatii B care defineste aceleasi functii si care utilizeaza numai relatii constante cu un singur atribut cu un tuplu, operatori de selectie cu un singur criteriu de comparare, unire naturala, proiectie, reuniune, diferenta si redefinire
Demonstratie: Toate relatiile constante din E se inlocuiesc cu expresii care contin relatii constante cu un atribut si un singur tuplu si operatori de reuniune si unire.Operatorul de selectie generalizat se exprima numai cu operatori din Op(Obs. 1). Din (1) rezulta ca operatorul de impartire se poate exprima cu ajutorul proiectiei, unirii si diferentei. Complementul activ se exprima cu ajutorul diferentei. Observam ca unirea este produs cartezian.
Corolar 3.1. Fie E o expresie in raport cu algebra de relatie B =[U, D, dom, R, d,Q,O] Atunci exista expresia E' in raport cu B, care defineste aceeasi functie de s1,s2,,sq si care foloseste numai relatii constante cu atribute unice si formate numai dintr-un singur tuplu, operatori de selectie cu o singura comparatie, operatorii de unire, proiectie, unire naturala, complement si redefinirea.
Demonstratie: Din
teorema 3.1 rezulta ca singurul operator, care trebuie sa fie
scos din E, este diferenta. Se mai observa ca E1-E2=
3.12. Operatorul SPLIT
Operatorul SPLIT are ca argument o singura relatie si ca rezultat al aplicarii se obtin doua relatii.
Definitia 3.12. Fie r o relatie de schema R si b(t) un predicat pe R, relatiile s si s' se obtin prin spargerea lui r in raport b si se noteaza cu SPLIT(r: b),unde
s=, s'= este evident ca s'=r-s.
Exemplul 3.13. Fie relatia drept-de-cond(PILOT,TIP_AVION), fie
b (t)=t(TIP_AVION=Rombac sau TIP_AVION=BAC111) atunci se obtin relatiile s si s' :
s( PILOT TIP AVION ) s'( PILOT TIP AVION )
Dan Rombac Dan IAR500
Dan BAC111 Lica IAR500
Lica Rombac
Lica BAC111
Lupu Rombac
Lupu BAC111
Exercitii;
Fie relatiile r(ABC) si s(BCD), aI dom(A), bI dom(B). Care din urmatoarele relatii sunt corecte?
a) r
s, b) pB( r)-pB(s), c) sB=b( r), d) sA=a,B=b ( r), e) r
f) pA( r)
Fie relatiile r si s
r( A B C ) s(B C D )
a b c b' c' d
a b' c' b'' c' d
a' b' c b'' c d
3. Calculati urmatoarele expresii din exercitiul 1 si
4. Fie relatia r( R) AIR a,a'Idom(A). Sa se demonstreze ca :
sA-a,A=a'(r )= sau sA-a,A=a'(r )= sA-a(r ).
Fie relatiile r si s de schema R si K o cheie comuna. Care din urmatoarele
relatii au cheie? r s , r s
,r-s, r
Fie relatiile r si s de schema R aratati ca: sA=a (rqs)= sA-a(r )q sA-a(s ) unde q
este un operator boolean.
7. Elaborati algoritmul pentru operatorul nerelational split.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1625
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved