CURS 4.docx

17
CURS 4. Operatorii modelului relaţional 3.2 Operatorii modelului relaţional Limbajele de interogare sunt procedurale sau ne-procedurale. În limbajele procedurale utilizatorul indică sistemului succesiunea de operaţii asupra BD pentru a determina rezultatul dorit. În limbajele ne-procedurale, utilizatorul descrie rezultatul dorit, fără a indica procedura prin care acesta este obţinut Modelul relaţional oferă două colecţii de operatori pe relaţii: - algebra relaţională; - calcul relaţional: calcul relaţional orientat pe tuplu; calcul relaţional orientat pe domeniu. Algebra relaţională este un limbaj procedural, pe când calculul relaţional pe tupluri şi calculul relaţional pe domenii sunt limbaje ne-procedurale În acest curs va fi tratat doar cazul algebrei relaţionale. Algebra relaţională este o colecţie de operaţii pe relaţii, fiecare operaţie având drept operanzi una sau mai multe relaţii, rezultatul fiind o altă relaţie. Există mai multe criterii de grupare a operaţiilor: - operaţii de bază: reuniunea; diferenţa; produsul cartezian etc. - operaţii derivate: intersecţia; diviziunea etc. sau - operaţii tradiţionale pe mulţimi (reuniune, intersecţie, diviziune, produs cartezian) - operaţii relaţionale speciale (selecţia, proiecţia, joncţiunea, etc.) Reuniunea

Transcript of CURS 4.docx

CURS 4. Operatorii modelului relaional

3.2 Operatorii modelului relaional

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 obinutModelul relaional ofer dou colecii de operatori pe relaii: algebra relaional; calcul relaional: calcul relaional orientat pe tuplu; calcul relaional orientat pe domeniu. Algebra relaional este un limbaj procedural, pe cnd calculul relaional pe tupluri i calculul relaional pe domenii sunt limbaje ne-proceduralen acest curs va fi tratat doar cazul algebrei relaionale.Algebra relaional este o colecie de operaii pe relaii, fiecare operaie avnd drept operanzi una sau mai multe relaii, rezultatul fiind o alt relaie. Exist mai multe criterii de grupare a operaiilor: operaii de baz: reuniunea; diferena; produsul cartezian etc. operaii derivate: intersecia; diviziunea etc.sau operaii tradiionale pe mulimi (reuniune, intersecie, diviziune, produs cartezian) operaii relaionale speciale (selecia, proiecia, jonciunea, etc.)

Reuniunea

Reuniunea reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2, ambele cu aceeai schem, n urma creia se construiete o nou relaie R3, cu aceeai schem ca i R1 i R2 i avnd drept extensie tuplurile din R1 i R2, luate mpreun o singur dat. Notaii: R1U R2 OR (R1, R2) APPEND (R1, R2) UNION (R1, R2) Reprezentarea grafic

R1R3R2 Fig. 4.1. Reprezentarea grafic a operaiei de reuniune a dou relaii

Exemplu: Deoarece aplicaia AGENTIE IMOBILIARA luat ca exemplu n acest curs nu conine dou relaii cu aceeai structur, pentru a putea exemplifica operaia de reuniune se vor construi dou relaii ARHIVA_OFERTE i ARHIVA_CERERI populate cu informaiile aferente ofertelor respectiv cererilor soluionate (s-au ales doar patru atribute: id-ul ofertei sau a cererii, tipul operaiei(ofert sau cerere), cnp-ul clientului, tipul soluionrii). Pentru a afla care sunt toate ofertele i cererile soluionate, se realizeaz operaia de reuniune.

idtipulcnptip_solutionare1066oferta2660805270023Da1210oferta1881106300897DaREZ:ARHIVA_OFERTE:ARHIVA_CERERI:idtipulcnptip_solutionare1066oferta2660805270023Da1210oferta1881106300897Da220cerere2820506300898Da1316cerere1881106300897Daidtipulcnptip_solutionare220cerere2820506300898Da1316cerere1881106300897DaFig. 4.2. Reuniunea relaiilor ARHIVA_OFERTE i ARHIVA_CERERI

Diferena

Diferena reprezint o operaie a algebrei relaionale definit pe dou relaii R1 i R2, ambele cu o aceeai schem, n urma creia se construiete o nou relaie R3, cu schema identic cu R1 i R2, avnd drept extensie acele tupluri ale relaiei R1 care nu se regsesc n relaia R2.Notaii: R1 R2 REMOVE (R1, R2) MINUS (R1, R2)Reprezentarea grafic:

R1R3R2 -Fig. 4.3. Reprezentarea grafic a operaiei de diferen a dou relaii

Exemplu: Presupunnd c exist clieni care au nregistrri n ambele tabele (adic au oferit imobil spre vnzare, dar i au achiziionat un alt imobil n acelai timp), pentru a afla care au fost doar ofertanii de imobile, se aplic diferena dintre relaiile ARHIVA_OFERTE i ARHIVA_CERERI.

-idtipulcnptip_solutionare1210oferta1881106300897Da2066oferta2660805270023DaREZ:ARHIVA_OFERTE:ARHIVA_CERERI:idtipulcnptip_solutionare2066oferta2660805270023Daidtipulcnptip_solutionare0221cerere2820506300898Da1210cerere1881106300897Da3161cerere2690125270032DaFig. 4.4. Diferena relaiilor ARHIVA_OFERTE i ARHIVA_CERERI

Produsul cartezianProdusul cartezian reprezint o operaie a algebrei relaionale definit pe dou relaii R1 i R2, n urma creia se construiete o nou relaie R3, a crei schem se obine prin concatenarea schemelor relaiilor R1 i R2, avnd ca extensie toate combinaiile tuplurilor din R1 cu cele din R2 (operaie laborioas). Notaie: R1xR2 PRODUCT (R1, R2) TIMES (R1, R2)Reprezentarea grafic:

R1R3R2 Fig. 4.5. Reprezentarea grafic a produsului cartezian

Exemplu: Operaia de produs cartezian va fi exemplificat pe un exemplu independent de aplicaia AGENIA IMOBILIAR considerat. Astfel:

Localit:D1Jude:D1Baia MareMaramureBraovBraovTransport: D3Tarif: D4autobuz11 000troleibuz10 000Localit:D1Jude:D1Transport:D3Tarif: D4Baia MareMaramureautobuz11 000BraovBraovautobuz11 000Baia MareMaramuretroleibuz10 000BraovBraovtroleibuz10 000TRANSPORT:TARIFE:LOCALIT:Fig. 4.6. Produsul cartezian dintre relaiile LOCALIT i TARIFE

Proiecia

Proiecia reprezint o operaie a algebrei relaionale definit asupra unei relaii R, n urma creia se construiete o nou relaie P, n care se gsesc acele atribute din R specificate explicit n cadrul operaiei. Prin operaie de proiecie se trece de la o relaie de grad n (are n coloane) la o relaie de grad mai mic, p (p2

nchiderea tranzitiv

nchiderea tranzitiv este o operaie (adiional) a algebrei relaionale, definit asupra unei relaii R, a crei schem conine dou atribute A1 i A2 cu acelai domeniu asociat, operaie care const n adugarea la relaia R a tuplurilor care se obin succesiv prin tranzitivitate: dac n R exist tuplurile: i se va aduga la R tuplul .

Notaie: R+ CLOSE(R)

Exemplu:

a)Persoana: DUrma: DAnaMariaAnaIonIonVasileIonNicoletaMariaOanaPersoana: DUrma: DAnaMariaAnaIonIonVasileIonNicoletaMariaOanaAnaOanaAnaVasileAnaNicoletaR:

b)

Fig. 4.26. nchiderea tranzitiv a relaiei R