Elemente de algebra relationala converted

Содержание

Слайд 2

Слайд 3

OPERATORI Exista mai multi operatori in cadrul acestei algebre, unii dintre

OPERATORI

Exista mai multi operatori in cadrul acestei algebre, unii dintre ei

fiind derivati (se pot rescrie in functie de alti operatori). Putem imparti acesti operatori in doua categorii:
Operatori derivati din teoria multimilor.
Operatori specifici algebrei relationale
Слайд 4

REUNIUNEA Reuniunea: Fiind date doua relatii R si S, reuniunea lor,

REUNIUNEA

Reuniunea: Fiind date doua relatii R si S, reuniunea lor, notata

R ∪ S este o relatie care contine tuplurile care sunt fie in R, fie in S fie in ambele relatii. In rezultatul reuniunii nu apar tupluri duplicat.
Pentru ca aceasta operatie sa poata fi executata cele doua relatii care se reunesc trebuie sa aiba scheme compatibile (acelasi numar de coloane provenind din aceleasi domenii (deci cu acelasi tip de date).
Echivalent SQL: operatorul UNION prin care se pot reuni rezultatele a doua cereri SQL de tip SELECT.
Слайд 5

REUNIUNEA (2) Relatia R Relatia S Relatia R ∪ S

REUNIUNEA (2)

Relatia R

Relatia S

Relatia R ∪ S

Слайд 6

DIFERENTA Diferenta: Fiind date doua relatii R si S, diferenta lor,

DIFERENTA

Diferenta: Fiind date doua relatii R si S, diferenta lor, notata

R - S este o relatie care contine tuplurile care sunt in R si nu sunt in S.
Si in cazul diferentei cele doua relatii care se reunesc trebuie sa aiba scheme compatibile.
Echivalent SQL: operatorul MINUS prin care se poate face diferenta intre rezultatele a doua cereri SQL de tip SELECT.
Слайд 7

DIFERENTA (2) Relatia R Relatia S Relatia R - S

DIFERENTA (2)

Relatia R

Relatia S

Relatia R - S

Слайд 8

INTERSECTIA Intersectia: Fiind date doua relatii R si S, intersectia lor,

INTERSECTIA

Intersectia: Fiind date doua relatii R si S, intersectia lor, notata

R ∩ S este o relatie care contine tuplurile care sunt si in R si in S. De asemenea cele doua relatii care se reunesc trebuie sa aiba scheme compatibile.
Echivalent SQL: operatorul INTERSECT prin care se poate calcula intersectia rezultatelor a doua cereri SQL de tip SELECT.
Слайд 9

INTERSECTIA (2) Relatia R Relatia S Relatia R ∩ S

INTERSECTIA (2)

Relatia R

Relatia S

Relatia R ∩ S

Слайд 10

INTERSECTIA (3) Observatie: Intersectia este un operator derivat. Putem rescrie orice

INTERSECTIA (3)

Observatie: Intersectia este un operator derivat. Putem rescrie orice intersectie

astfel:
R ∩ S = R – (R – S)
Слайд 11

PRODUS CARTEZIAN Produsul cartezian: Fiind date doua relatii R si S,

PRODUS CARTEZIAN

Produsul cartezian: Fiind date doua relatii R si S, produsul

lor cartezian, notata R × S este o relatie ale carei tupluri sunt formate prin concatenarea fiecarei linii a relatiei R cu fiecare linie a relatiei S.
Rezulta de aici urmatoarele:
Numarul de atribute (coloane) ale lui R × S este egal cu suma numerelor de atribute ale lui R si S
Numarul de tupluri (linii) ale lui R × S este egal cu produsul numerelor de tupluri ale lui R si S
Слайд 12

PRODUS CARTEZIAN (2) Daca in R si S avem atribute (coloane)

PRODUS CARTEZIAN (2)

Daca in R si S avem atribute (coloane) cu

acelasi nume, in produsul cartezian R
S vom avea atribute care au acelasi nume.
Pentru a le deosebi se prefixeaza numele atributului cu cel al relatiei din care provine (ex.: R.A si S.A, ca in exemplul urmator)
Слайд 13

PRODUS CARTEZIAN (3) Echivalent SQL: In clauza FROM a unei cereri

PRODUS CARTEZIAN (3)

Echivalent SQL:
In clauza FROM a unei cereri SELECT apar

doua (sau mai multe) tabele
In cazul standardului SQL-3, se poate folosi clauza CROSS JOIN a unei cereri de regasire de date de tip SELECT prin care se poate efectua produsul cartezian a doua tabele.
Слайд 14

PRODUS CARTEZIAN (4) Exemplu: Fie relatiile: Relatia R Relatia S

PRODUS CARTEZIAN (4)

Exemplu: Fie relatiile:

Relatia R

Relatia S

Слайд 15

PRODUS CARTEZIAN (4) Rezultat:

PRODUS CARTEZIAN (4)

Rezultat:

Слайд 16

ALGEBRA RELATIONALA CLASICA Exista mai multi operatori in cadrul acestei algebre,

ALGEBRA RELATIONALA CLASICA

Exista mai multi operatori in cadrul acestei algebre, unii

dintre ei fiind derivati (se pot rescrie in functie de alti operatori). Putem imparti acesti operatori in doua categorii:
Operatori derivati din teoria multimilor.
Operatori specifici algebrei relationale
Слайд 17

PROIECTIA Proiectia: Fiind data o relatie R si o multime de

PROIECTIA

Proiectia: Fiind data o relatie R si o multime de atribute

ale acesteia X=A1, A2, … An, proiectia lui R pe multimea de atribute X este o relatie care se obtine din R luand doar coloanele din X (in aceasta ordine) si eliminand eventualele tupluri duplicat.
Notatia pentru selectie este urmatoarea:
πX(R) sau π A1, A2, … An (R)
Слайд 18

PROIECTIA (2) Echivalent SQL: Clauza SELECT a unei cereri de regasire

PROIECTIA (2)

Echivalent SQL: Clauza SELECT a unei cereri de regasire de

date in care este specificata lista de expresii care da structura de coloane a rezultatului.
Exemplu: din relatia R de mai jos dorim sa calculam π B, C, E (R)
Слайд 19

PROIECTIA (3) Relatia R Rezultatul proiectiei π B, C, E (R)

PROIECTIA (3)

Relatia R

Rezultatul proiectiei π B, C, E (R) Observam ca s-au eliminat doua linii duplicat

din rezultat (cele provenite din liniile 2 si 6).
Слайд 20

PROIECTIA (4) Nota: in multimea de atribute pentru o proiectie poate

PROIECTIA (4)

Nota: 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 dar in care coloanele sunt permutate:
π B, C, A, E, D (R)
Слайд 21

PROIECTIA (5) Relatia R Rezultatul proiectiei π B, C, A, E, D (R)

PROIECTIA (5)

Relatia R

Rezultatul proiectiei π B, C, A, E, D (R)

Слайд 22

SELECTIA Selectia (numita uneori restrictia): Fiind data o relatie R si

SELECTIA

Selectia (numita uneori restrictia): Fiind data o relatie R si o

expresie logica F (o conditie), selectia lui R in raport cu F este o relatie care se obtine din R luand doar liniile care verifica expresia logica F.
Notatia pentru selectie este urmatoarea:
σF(R)
Слайд 23

SELECTIA (2) Echivalent SQL: Clauza WHERE a unei cereri de regasire

SELECTIA (2)

Echivalent SQL: Clauza WHERE a unei cereri de regasire de

date de tip SELECT pe care se scrie conditia pe care trebuie sa o indeplineasca liniile pentru a trece mai departe spre rezultat.
Exemplu: din relatia R de mai jos dorim sa calculam σB+1 > A+C(R):
Слайд 24

SELECTIA (3) Relatia R Rezultatul selectiei σB+1 > A+C(R)

SELECTIA (3)

Relatia R

Rezultatul selectiei σB+1 > A+C(R)

Слайд 25

JOIN Joinul general (numit si theta-join sau θ- join): fiind date

JOIN

Joinul general (numit si theta-join sau θ- join): fiind date doua

relatii R si S, joinul lor (notat R⋈FS) se obtine din produsul cartezian al relatiilor R si S urmat de o selectie dupa conditia F (numita si conditie de join).
Denumirea de theta-join este folosita din motive istorice, simbolul θ fiind folosit initial pentru a desemna o conditie.
Rezulta ca:
R⋈FS = σF(R × S)
Слайд 26

JOIN (2) Sa luam un exemplu concret pentru exemplificarea acestui operator:

JOIN (2)

Sa luam un exemplu concret pentru exemplificarea acestui operator: Sa

consideram ca avem doua relatii, STUD si SPEC avand schemele:
STUD(Matr, Nume, CodSpec, Media)
SPEC(CodS, NumeS)
Слайд 27

JOIN (3) Relatia STUD Relatia SPEC

JOIN (3)

Relatia STUD

Relatia SPEC

Слайд 28

JOIN (4) Sa consideram urmatoarele joinuri: STUD⋈STUD.CodSpec=SPEC.CodSSPEC STUD⋈STUD.CodSpec>SPEC.CodSSPEC Rezultatul celor doua joinuri este urmatorul:

JOIN (4)

Sa consideram urmatoarele joinuri:
STUD⋈STUD.CodSpec=SPEC.CodSSPEC
STUD⋈STUD.CodSpec>SPEC.CodSSPEC

Rezultatul celor doua joinuri este urmatorul:

Слайд 29

JOIN (5) In cazul in care conditia de join este una

JOIN (5)

In cazul in care conditia de join este una de

egalitate, joinul se mai numeste si echijoin (ca in cazul joinului precedent).
In restul cazurilor se foloseste sintagma
non-echijoin (joinul urmator).
Слайд 30

JOIN (6) Echivalent SQL: In clauza FROM a unei cereri de

JOIN (6)

Echivalent SQL:
In clauza FROM a unei cereri de regasire de

tip SELECT apar tabelele care participa la join +
In clauza WHERE se pune conditia de join, conectata cu AND de celelalte conditii care eventual sunt necesare in cererea respectiva.
Слайд 31

JOIN NATURAL Join natural: Joinul natural pentru doua relatii R si

JOIN NATURAL

Join natural: Joinul natural pentru doua relatii R si S

(notat R⋈S )se obtine:
facand joinul celor doua relatii dupa conditia: “coloanele cu aceeasi semnificatie au valori egale” +
eliminand prin proiectie coloanele duplicat (cele dupa care s-a facut joinul).
Слайд 32

JOIN NATURAL (2) Echivalent SQL: Clauza NATURAL JOIN din sintaxa SQL-3.

JOIN NATURAL (2)

Echivalent SQL: Clauza NATURAL JOIN din sintaxa SQL-3.
Observatie: deoarece

SGBD-ul nu cunoaste semnificatia coloanelor, conditia de join implicita in acest caz este “coloanele cu acelasi nume au valori egale”
Слайд 33

JOIN NATURAL (3) Exemplu: In cazul celor doua tabele de mai

JOIN NATURAL (3)

Exemplu: In cazul celor doua tabele de mai sus,

STUD si SPEC, joinul lor natural va fi asemanator cu echijoinul anterior, lipsind insa coloana duplicat SPEC.CodS (care are aceleasi valori ca si coloana STUD.CodSpec)
Obs: In cazul folosirii clauzei NATURAL JOIN cele doua coloane trebuie sa aiba acelasi nume
Слайд 34

JOIN NATURAL (4)

JOIN NATURAL (4)

Слайд 35

JOIN EXTERN Join extern: Asa cum s-a vazut din nonechijoinul anterior,

JOIN EXTERN

Join extern: Asa cum s-a vazut din nonechijoinul anterior, in

cazul in care o linie a unei tabele, oricare ar fi concatenarea ei cu o alta linie din cealalta tabela, nu indeplineste conditia de join, linia respectiva nu are corespondent in rezultat.
Este cazul liniilor studentilor de la specializarea 10 si al liniei specializarii 11.
Слайд 36

JOIN EXTERN (2) In unele cazuri se doreste insa ca aceste

JOIN EXTERN (2)

In unele cazuri se doreste insa ca aceste linii

sa apara in rezultat, cu valori nule pe coloanele din cealalta tabela.
Aceasta operatie poarta numele de join extern (in engleza outer join).
Cum la un join participa doua tabele, pot exista trei tipuri de join extern:
Слайд 37

JOIN EXTERN (3) Join extern stanga (left outer join), in care

JOIN EXTERN (3)

Join extern stanga (left outer join), in care in

rezultat apar toate liniile tabelei din stanga operatorului. Notatia este: R ⊲º⊳LS.
Join extern dreapta (right outer join), in care in rezultat apar toate liniile tabelei din dreapta operatorului. Notatia este: R ⊲º⊳RS.
Join extern complet (full outer join), in care in rezultat apar toate liniile tabelelor din stanga si din dreapta operatorului. Notatia este: R ⊲º⊳ S.
De notat ca in rezultatul joinului extern sunt intotdeauna continute tuplurile (liniile) din rezultatul joinului general dupa aceeasi conditie.
Слайд 38

SEMIJOIN Semijoin: Fie doua relatii R si S. Atunci semijoinul lui

SEMIJOIN

Semijoin: Fie doua relatii R si S. Atunci semijoinul lui R

in raport cu S ( notat R ∝ S ) este o relatie care contine multimea tuplurilor lui R care participa la joinul natural cu S.
Semijoinul este un operator derivat. Putem scrie ca:
R ∝ S = πR (R⋈S)
Semijoinurile pot fi folosite in optimizarea cererilor de regasire in baze de date distribuite.