Baze de date Microsoft Access
Baze de dateCurs 8
SQL (IV)Algebra relaional
XPSelecia
Microsoft Office Access 2010 2
Selecia aplicat unei tabele R1 genereaz o nou tabel R2 avnd aceeai structur ca i R1, dar care conine doar tuplurile ce ndeplinesc condiia specificat de selecie.Cardinalitatea relaiei rezultat R2 este mai mic sau egal cu cardinalitatea relaiei R1, n timp ce gradul relaiei este egal cu al relaiei surs. Notaia specific pentru selecie este R2 = SELECTC (R1), unde
R1 este tabelul (relaia) de baza asupra creia se aplica seleciaC este condiia ce se refer la atributele lui R2R2 este tabelul (relaia) rezultat, alctuit din tuplurile lui R1 care ndeplinesc condiia C;
XPRealizarea operatorilor relaionali
n SQL Selecia
Microsoft Office Access 2010 3
Societate
SELECT * FROM Societate WHERE LocalitateSocietate="Bucuresti"
SELECT LocalitateSocietate=Bucuresti (Societate)
XPProiecia
Microsoft Office Access 2010 4
Proiecia este o operaie unar ce returneaz tuplurile ceconin un subset al atributelor tabelei surs. Proiecia aplicatasupra unei tabele R1 genereaz o tabel R2 ce va aveagradul mai mic dect R1 dar cu acelai numr de tupluri(cardinalitate). Notaia specific pentru proiecie esteR2=PROIECTIEL (R2), unde:
R1 este tabelul (relaia) surs asupra creia se aplic proiecia ;L este subsetul de atribute (dintre atributele lui R2) ;
R2 este tabelul (relaia) rezultat, alctuit din tuplurile lui R2 cuprinznd doar atributele din lista L;
XPRealizarea operatorilor relaionali
n SQL Proiecia
Microsoft Office Access 2010 5
SELECT Oras
FROM Studenti
XPIntersecia
Microsoft Office Access 2007 6
Intersecia a dou relaii compatibile (avnd aceeaistructur) este tot o relaie ce conine doarnregistrrile comune (identice) pentru cele doutabele. Cardinalitatea relaiei obinute n urmainterseciei a dou tabele este mai mic sau celpuin egal cu minimul cardinalitilor celor doutabele. Gradul relaiei R3 este egal cu gradul relaieiR1 i respectiv al relaiei R2.
SELECT *
FROM Studenti
WHERE CodStudent
IN (SELECT CodStudent
FROM Doctoranzi)
XPAlgebra relaional - Compunerea
Microsoft Office Access 2010 7
SELECT NrCredit, DataCredit, valoareCredit,
Perioada_luni, Min_durata, Max_durata, TipCredit
FROM Credit, TipCredit
WHERE Perioada_luni>=Min_durata AND
Perioada_luni
XPAlgebra relaional - Compunerea
Microsoft Office Access 2010 8
Compunerea a dou tabele R1 i R2 este o tabel R3 cecombin tuplurile celor dou tabele surs, fiind alese doaracelea care ndeplinesc o anumit condiie specificat ncadrul compunerii. Gradul relaiei (numrul de coloane)obinute ca urmare a compunerii a dou relaii este egal cusuma gradelor relaiilor surs.Notaia specific pentru compunere este R3=R1 JOINC R2, unde
R1 i R2 sunt tabelele (relaiile) de baz asupra crora se aplic compunerea;C este condiia care poate s conin operatori logici i aritmetici precum i agregri de date.R3 este tabelul (relaia) rezultat, alctuit din tuplurile produsului cartezian R2 X R3 care ndeplinesc condiia C.
XPAlgebra relaional - Echicompunerea
Microsoft Office Access 2007 9
Este compunerea pentru care condiia este alctuit numai dinegaliti, putnd conine una sau mai multe egaliti. n cazulechicompunerii, n tabela rezultat apar dou cmpuri ce au valoriidentice.
Gradul relaiei (numrul de coloane) obinute ca rezultat alechicompunerii este egal cu suma gradelor celor doua relaiisurs.Cardinalitatea (numrul de tupluri ale relaiei rezultat) este maimic sau egal cu produsul cardinalitilor tabelelor surs.
XPCompunerea natural
Microsoft Office Access 2007 10
Compunerea natural este echicompunerea a dou tabele,pentru care exist cel puin cte cmp avnd acelai nume i tip,n care din rezultat se elimin cmpurile identice.Gradul relaiei obinute ca rezultat al compunerii naturale estemai mic dect suma gradelor celor doua relaii surs, deoarecesunt eliminate cmpurile identice.
Cardinalitatea (reprezint numrul de tupluri) relaiei rezultateste mai mic sau egal dect produsul cardinalitilor tabelelorsurs.
XPCompunerea extern
Microsoft Office Access 2010 11
Compunerea extern este o echicompunere dar care, spredeosebire de aceasta, afieaz i tuplurile care nu aucorespondent n cadrul celor dou tabele surs
a 1b 3a 2
A B
R1
x 1z 2
C DR2
x 6
OUTER JOIN B=Da 1b 3a 2
A B
R1 OUTER JOIN B=D R2
x 1NULL NULL
C D
z 2NULL NULL x 6
=
Cursuri LEFT JOIN InscrieriCurs
CursuriInscrieriCurs
Cursuri RIGHT JOIN InscrieriCurs
Cursuri
InscrieriCurs
XPAlgebra relaional - Diviziunea
Microsoft Office Access 2007 12
Diviziunea presupune mprirea unei tabele (R1), denumitdemprit, la o tabela denumit mpritor (R2) rezultnd o alttabela (R3) denumit ct, astfel nct orice tuplu al tabelei ct(R3) trebuie s se regseasc n cadrul tuplurilor tabeleidemprit (R1) n combinaie cu fiecare tuplu din tabelampritor (R2). Pentru a putea s aib sens diviziunea, tabelampritor (R2) trebuie s aib ca atribute un subset alatributelor tabelei demprit (R1). Gradul tabelei ct (R3) esteegal cu diferena gradelor tabelelor demprit (R1) i mpritor(R2).
a 1b 2
xy
a 2d 3
xx
A B CR1 R2
R1
12
B
R2
a xA C
XPDiviziunea
Microsoft Office Access 2010 13
a 1b 2
xy
a 2d 3
xx
A B C
R1
12
BR2
R1 R2=SELECT Count=2 (W)
a xA C
a 1 xA B C
S=R1 JOIN R1.B=R2.B R2
b 2 ya 2 x
JOIN R1.B=R2.B =a xA C
T=PROI A,C (S)
b ya x
R1 R2
W=GROUP A,C,COUNT(*) (T)
a xA C
2Count
b y 1
Numarul de
tupluri din R2
a 1b 2
xy
a 2d 3
xx
A B C
R1
12
BR2
a 1 xA B C
S1=SELECTB=1 (R1)
a 1b 2
xy
a 2d 3
xx
A B C
R1S2= SELECTB=2 (R1)
b 2a 2
yx
A B C
T1 T2=R1 R2
a xA C
a xA C
T1=PROI A,C (S1)
b yA C
T2=PROI A,C (S2)
a x
Varianta 1
Varianta 2
a 1b 2
xy
a 2d 3
xx
A B CR1 R2
R1
12
B
R2
a xA C
XPAlgebra relaionala - Diviziunea
Microsoft Office Access 2010 14
Identificarea profesorilor care predau toate cursurile din tabelul
Disciplina
C=Profesor : Disciplina
=:
X =
P=Disciplina X C
XPAlgebra relaionala - Diviziunea
Microsoft Office Access 2010 15
SELECT CodProfesor
FROM Profesor INNER JOIN Disciplina ON
Profesor.CodDisciplina = Disciplina.CodDisciplina
GROUP BY CodProfesor
HAVING Count(Profesor.CodDisciplina) =
(SELECT Count(.CodDisciplina)
FROM Disciplina
C=Profesor : Disciplina
=: