Author
adelina-nicoleta-neacsu
View
212
Download
0
Embed Size (px)
8/18/2019 Curs Algebra Relationala
1/34
Algebra relaţională
8/18/2019 Curs Algebra Relationala
2/34
Algebra relaţională
Algebra relaţională cuprinde un ansamblu deoperatori ce operează pe relaţii (tabele sursă) şiproduc noi relaţii (tabele rezultat).
Tabelele sunt mulţimi ce au anumite particularităţi,ca urmare algebra relațională poate f considerată unsubset al algebrei generice pe mulţimi.
8/18/2019 Curs Algebra Relationala
3/34
Clasifcarea operatorilor
E. . Codd a propus opt operaţii de bază !n algebra relaţională,dintre care cinci sunt considerate operaţii primare şi trei suntoperaţii derivate (ce pot f e"primate pe baza operaţiilorprimare).
Operaţii primare# $euniunea %i&erenţa 'rodusul cartezian elecţia 'roiecţia Operaţii derivate# ntersecţia Compunerea %i*iziunea
8/18/2019 Curs Algebra Relationala
4/34
Alte tipuri de operaţii
+n a&ară de operaţiile menţionate, mai e"istă operaţiide grupare, agregare, sortare, eliminare aduplicatelor şi operaţii de redenumire care nu seconsideră a &ace parte din algebra relaţională, darcare sunt &rec*ent &olosite !n cadrul limbaelorspecializate de interogare a bazelor de date cum ar fSQL (tructured -uer /anguage) şi QBE (-uer 0E"ample) .
8/18/2019 Curs Algebra Relationala
5/34
1. $euniunea
$euniunea a doua relaţii compatibile (ce au aceeaşi structură)are ca rezultat o relaţie ce conţine totalitatea tuplurilor celordouă, find e"cluse tuplurile comune (identice).
Notaţie:
$1 U $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.
Reprezentarea reuniunii a două tabele:
8/18/2019 Curs Algebra Relationala
6/34
$euniune 5 E"emplu
Clienti 4 urnizori
$e*enire
8/18/2019 Curs Algebra Relationala
7/34
2. %i&erenţa
'rin di&erenţa doua relaţii compatibile ($1 şi $2) se obţine orelaţie ($3) care conţine tuplurile din $1 care nu se regăsesc !n$2.
Notaţie:
$1 \ $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.
Reprezentarea diferenţei dintre două tabele:
8/18/2019 Curs Algebra Relationala
8/34
%i&erenţa 5 E"emplu
$e*enire
urnizori 6 acturi
8/18/2019 Curs Algebra Relationala
9/34
3. 'rodusul cartezian
'rodusul cartezian a doua relaţii ($1 şi $2) are ca rezultat orelaţie ($3) ce conţine toate perec7ile de tupluri din $1 şi $2.
Notaţie:
$1 X $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.
Reprezentarea produsului cartezian a două tabele:
8/18/2019 Curs Algebra Relationala
10/34
'rodusul cartezian 5 E"emplu
$e*enire
tudenti 8 acultati
8/18/2019 Curs Algebra Relationala
11/34
9. elecţia
elecţia aplicată unei tabele ($1) generează o nouă tabelă ($2)a*:nd aceeaşi structură ca şi $1, dar care conţine doar tuplurilecare !ndeplinesc condiţia specifcată de selecţie.
Notaţie:
$2 = E/ECT C ($1) 4nde#
Reprezentarea operaţiei de selecţie aplicată unei tabele:
5 $1 este tabelul asupra căruia se aplicăselecţia
5 C este condiţia5 $2 este tabelul rezultat, alcătuit din
tuplurile tabelului $1 care !ndeplinesccondiţia C
8/18/2019 Curs Algebra Relationala
12/34
elecţia 5 E"emplu
$e*enire
Tabel rezultat elecţie ; E/ECT /ocalitateurnizor;
8/18/2019 Curs Algebra Relationala
13/34
>. 'roiecţia
'roiecţia aplicată unei tabele ($1) generează o nouă tabelă ($2)care conţine tuplurile ce conţin un subset al atributelor tabelei $1.
Notaţie:
$2 = '[email protected] L ($1) 4nde#
Reprezentarea operaţiei de proiecţie aplicată unei tabele:
5 $1 este tabelul asupra căruia se aplicăproiecţia
5 / este subsetul de atribute5 $2 este tabelul rezultat, cuprinz:nd doar
atributele din lista /
8/18/2019 Curs Algebra Relationala
14/34
'roiecţia 5 E"emplu
$e*enire
Tabel rezultat 'roiecţie ; '$?ECTE %enumireurnizor, Tele&onurnizor(urnizori)
8/18/2019 Curs Algebra Relationala
15/34
. ntersecţia
ntersecţia a două relaţii compatibile 5 a*:nd aceeaşi structură($1 şi $2) generează o nouă relaţie ($3) care conţine doar !nregistrările comune (identice) pentru cele două relaţii.
Notaţie:
$1 $2 = $3 4nde $1 şi $2 sunt tabelele sursă, iar $3 estetabelul rezultat.
Reprezentarea intersecţiei dintre două tabele:
8/18/2019 Curs Algebra Relationala
16/34
ntersecţia 5 E"emplu
$e*enire
Clienti urnizori
8/18/2019 Curs Algebra Relationala
17/34
B. Compunerea
Compunerea dintre două tabele ($1 şi $2) generează o nouă tabelă($3) care combină tuplurile celor două tabele sursă, find alese doaracelea care !ndeplinesc o anumită condiţie specifcată !n cadrulcompunerii.
Notaţie:
$3 = $1 ?D C $2 4nde#
Reprezentarea operaţiei de compunere:
5 $1 şi $2 sunt tabelele de bază asupracărora se aplică compunerea5 C este condiţia care poate să conţină
operatori logici şi aritmetici, precum şiagregări de date
5 $3 este tabelul rezultat
8/18/2019 Curs Algebra Relationala
18/34
Compunerea 5 E"emplu
$e*enire
urnizori ?D %ataactura 1>F12F2G11 acturi
8/18/2019 Curs Algebra Relationala
19/34
B. Tipuri particulare deCompunere
+n &uncţie de natura condiţiilor, e"istă mai multecazuri particulare de compunere, dintre care, !nalgebra relaţională prezintă o importanţă deosebităurmătoarele#
B.1. Ec7icompunerea
B.2. Compunerea naturală
B.3. Compunerea e"ternă
8/18/2019 Curs Algebra Relationala
20/34
B.1. Ec7icompunerea
Ec7icompunerea este compunerea pentru care condiţia este alcătuitănumai din egalităţi.
Reprezentarea operaţiei de ecicompunere:
8/18/2019 Curs Algebra Relationala
21/34
B.2. Compunerea naturală
Compunerea naturală este ec7icompunerea a două tabele, pentru care e"istă celpuţin c:te un c:mp a*:nd acelaşi nume şi tip şi !n care, din rezultat, se eliminăc:mpurile identice.
Reprezentarea operaţiei de compunere naturală:
8/18/2019 Curs Algebra Relationala
22/34
B.2. Compunerea e"ternă
Compunerea e"ternă este o ec7icompunere care afşează şi tuplurile care nu aucorespondent !n cadrul celor două tabele sursă. +n tabelul rezultat, pentru tuplurilecare nu au corespondent se completează *aloarea D4//.
Reprezentarea operaţiei de compunere e!ternă:
8/18/2019 Curs Algebra Relationala
23/34
H. %i*iziunea
%i*iziunea presupune !mpărţirea unei tabele ($1), denumită de!mpărţit, la otabelă denumită !mpărţitor ($2), rezult:nd o altă tabelă ($3) denumită c:t,ast&el !nc:t orice tuplu al tabelei c:t ($3) trebuie să se regăsească !n cadrultuplurilor tabelei de!mparţit ($1) !n combinaţie cu fecare tuplu din tabela
!mpărţitor ($2). 'entru a putea să aibă sens di*iziunea, tabela !mpărţitor($2) trebuie să aibă ca atribute un subset al atributelor tabelei de!mpărţit($1).
Notaţie:
$3 = $1I $2 4nde $1 şi $2 sunt tabelele sursă, iar $3 este tabelulrezultat.
Reprezentarea operaţiei de di"iziune:
8/18/2019 Curs Algebra Relationala
24/34
%i*iziunea 5 E"emplu
$e*enire
/inie actura I 'rodus
8/18/2019 Curs Algebra Relationala
25/34
$ealizarea operatorilor relaţionali !n -/
8/18/2019 Curs Algebra Relationala
26/34
$ealizarea operatorului Reuniune
$euniunea a două tabele se realizează cu autorul clauzei UN#$N.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' C/EDT.%Client As %, C/EDT.%enumireClient As %enumire,C/EDT./ocalitateClient As /ocalitate, C/EDT.Tele&onClient As Tele&on
(R$) C/EDT
UN#$N
&%L%C'
4$DJ?$.%urnizor As %, 4$DJ?$.%enumireurnizor As %enumire,4$DJ?$./ocalitateurnizor As /ocalitate, 4$DJ?$.Tele&onurnizor As
Tele&on
(R$) 4$DJ?$K
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
27/34
$ealizarea operatorului *iferenţa
'entru realizarea diferenţei a două tabele nu e"istă o clauză -/ specifcă.?peratorul Diferenţă poate f realizat prin utilizarea unei interogări cusubinterogare, !n care condiţia conţine N$' #N.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor
(R$) 4$DJ?$
+,%R% 4$DJ?$.%urnizor N$' #N
-&%L%C' %urnizor
$?M ACT4$.K
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
28/34
$ealizarea operatorului /rodusulcartezian
?peratorul Produsul cartezian se realizează !n -/ prin enumerarea tabelelor !n cadrul clauzei $?M, &ără specifcarea anumitor condiţii.
?bser*aţie# 4tilizarea unor condiţii determină selecţia unui set particular de*alori, constituind, de &apt, reprezentarea !n -/ a operatorului Compunere.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' T4%EDT.Codtudent, T4%EDT.Dumetudent,T4%EDT./ocalitate, AC4/TAT.Codacultate,AC4/TAT.%enumireacultate
(R$) T4%EDT, AC4/TATK
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
29/34
$ealizarea operatorului &elecţie
?peratorul Selecţie se realizează !n -/ cu autorul clauzei +,%R%.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor
(R$) 4$DJ?$
+,%R% 4$DJ?$./ocalitateurnizor;N0ucurestiNK
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
30/34
$ealizarea operatorului /roiecţie
?peratorul Proiecţie se realizează !n -/ prin intermediul clauzei &%L%C'0 !ncadrul căreia se *or preciza c:mpurile după care se &ace proiecţia.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' 4$DJ?$.%enumireurnizor, 4$DJ?$.Tele&onurnizor
(R$) 4$DJ?$K
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
31/34
$ealizarea operatorului#ntersecţie
?peratorul Intersecţie se realizează !n -/ prin intermediul clauzei +,%R%0cu autorul operatorului #N şi a subinterogărilor.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' C/EDT.%Client, C/EDT.%enumireClient,C/EDT./ocalitateClient, C/EDT.Tele&onClient
(R$) C/EDT
+,%R% C/EDT.%enumireClient
#N
-&%L%C' 4$DJ?$.%enumireurnizor
(R$) 4$DJ?$.K
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
32/34
$ealizarea operatoruluiCompunere
?peratorul Compunere se realizează !n -/ prin intermediul condiţiilor decompunere din clauza +,%R%1
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' 4$DJ?$.%urnizor, 4$DJ?$.%enumireurnizor,4$DJ?$./ocalitateurnizor, 4$DJ?$.Tele&onurnizor,ACT4$.Dumarerieactura, ACT4$.%ataactura
(R$) 4$DJ?$, ACT4$
+,%R% 4$DJ?$.%urnizor ; ACT4$.%urnizor AndACT4$.%ataacturaO12F1>F2G11OK
ClicL pentru E"emplu
8/18/2019 Curs Algebra Relationala
33/34
$ealizarea operatorilor Compunerenaturală 2i Compunere e!ternă
?peratorul Compunere naturală se realizează !n -/ prin intermediuloperatorului #NN%R 3$#N.
?peratorul Compunere eternă se realizează !n -/ prin intermediuloperatorilor L%(' 3$#N şi R#4,' 3$#N.
A se *edea e"emplele din cursul Limba5ul &6L.
8/18/2019 Curs Algebra Relationala
34/34
$ealizarea operatorului *i"iziune
?peratorul Diviziune se realizează !n -/ prin intermediul interogărilor cusubinterogări.
%!emplu:
inta"a -/ a&erentă e"emplului
&%L%C' P/DE ACT4$AQ.Dumaractura
(R$) '$?%4 DDE$ ?D P/DE ACT4$AQ
$N '$?%4.Cod'rodus ; P/DE ACT4$AQ.Cod'rodus
4R$U/ 78 P/DE ACT4$AQ.Dumaractura
,A9#N4 Count(P/DE ACT4$AQ.Cod'rodus);
-&%L%C' Count('rodus.Cod'rodus)
(R$) '$?%4.K
ClicL pentru E"emplu