Sunteți pe pagina 1din 11

CURS 9&10 BAZE DATE / AN II

TOPICI:

Intensiunea si Extensiunea Bazei de Date Relationale


Comparatie intre Modelele de Date
Limbaje Relationale
Operatorii Algebrei Relationale

INTENSIUNEA SI EXTENSIUNEA UNEI B. D. RELATIONALE


Definitii:
Intensiunea unei baze de date relationale = o schema relationala care consta din una sau mai multe scheme de
relatie  schema relationala este modelul conceptual al bazei de date relationale.
- o schema de relatie cuprinde numele relatiei si atributele acesteia.
- schemele de relatie sunt folosite atat pentru reprezentarea tipurilor de entitati cat si a legaturilor dintre
ele, in contextul modelului relational.
Ex. de reprezentare a intensiunii b.d. Facultati, aferent modelului relational al acesteia:
Schema relationala este urmatoarea:
Facultate (CodF, Nume, Adresa)
Personal (CodF, Nume, Functie, Salar)
Scheme de relatie
Profesori (CodF, Nume, Functie, Disciplina)
Sala (CodF, Numar, Adresa, Capacitate)
Student (Nume, Incadrare, Sit_scolara, An, Sex)
Note (Nume_profesor, Nume_student, Nota)
Extensiunea unei baze de date relationale = totalitatea tabelelor bazei de date relationale, populate (incarcate) cu
valorile concrete ale tuturor datelor care trebuie sa fie cuprinse in aceste tabele.

CURS 9&10 BAZE DATE / AN II

ANALIZA COMPARATIVA A MODELELOR DE DATE


Modele
Criterii

Modelul de Date
IERARHIC

Modelul de Date RETEA

Modelul de Date
RELATIONAL

Forme de
Structurare a
Datelor

Tipuri de entitati (inregistrari)


+
Legaturi Explicite

Tipuri de entitati (inregistrari)


+
Legaturi Explicite

Relatii

Modelul
Conceptual

Arbore de definitie Ierarhic

Graf oarecare

Schema Relationala

Reprezentarea
Legaturilor 1:N

DA prin conexiuni de tip DA prin


functional
functional

Reprezentarea
Legaturilor N:M

NU in mod direct, ci doar prin NU in mod direct, ci doar prin DA prin scheme de relatie
multiplicarea inregistrarilor
tipuri de legatura dedicate
separate
(sau
tabele
de
legatura)

Limbajul
de formulare a
interogarilor

Navigational

Navigational

conexiuni

de

tip DA prin mecanismul de


propagare a cheilor

Relational

CURS 9&10 BAZE DATE / AN II

Limbaje de Manipulare Date RELATIONALE (LMD Relationale)


LMD = limbaje pentru formularea interogarilor
Clasificare LMD: - navigationale (modelul ierarhic si modelul retea)
- relationale (modelul relational)
A. Caracteristici LMD navigational:
- se bazeaza pe utilizarea conceptului de cursor (indica pozitia curenta in baza de date).
- actiuni utilizator asupra cursorului:
a1)modificare pozitie cursor
a2)modificare date din pozitia curenta cursor
LMD navigationale exploateaza direct legaturile explicite existente in baza de date  rezolvarea
interogarilor presupune in general navigatia cursorului pe lanturile de legaturi
B. Caracteristici LMD relational:
Ceea ce diferentiaza Modelul de Date Relational in raport cu celelalte modele, d.p.d.v. al posibilitatii
formularii interogarilor: LMD RELATIONAL
OBS: Celelalte modele permit doar LMD navigational)
Nota: In MR (Modelul Relational), intre relatii nu exista legaturi explicite  pt. realizarea conexiunii intre
diferite relatii in vederea tratarii interogarilor este necesara cuplarea dinamica a relatiilor (implementarea
operatiilor de cuplare necesita echipamente de calcul evoluate, dispozitive de memorare de suficient de mare
capacitate, tehnici avansate de programare si structurare a datelor)

CURS 9&10 BAZE DATE / AN II

Limbaje de Interogare pt. Modelul Relational (grupe principale) :


A. Limbaje care au la origine Algebra Relationala (interogarile sunt exprimate prin aplicarea unor operatori
specializati asupra relatiilor)
Obs: Limbajele derivate se numesc Limbaje Algebrice.
B. Limbaje care au la origine Calculul Relational (interogarile descriu multimea tuplelor rezultat prin
specificarea unui predicat pe care aceste tuple trebuie sa-l satisfaca)
Obs1: predicat = conditie ( in acest context)
Obs2: Obiecte primitive cu care se opereaza in Calculul Relational:
(1) tuple ==> Calculul Relational al Tuplelor
(2) valori din domenii ==> Calculul Relational al Domeniilor
 B.1. Limbaje bazate pe Calculul Relational al Tuplelor
B.2. Limbaje bazate pe Calculul Relational al Domeniilor
Obs3: a. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor sunt
limbaje abstracte (nu sunt implementate ca atare in nici un SGBD existent).
b. Algebra Relationala, Calculul Relational al Tuplelor si Calculul Relational al Domeniilor servesc ca
referinta pt. evaluarea limbajelor reale existente in diferite SGBD-uri (care sunt derivate din aceste
formalisme abstracte); au fost propuse (definite) ca atare de catre CODD; reprezinta facilitatile
minime pe care trebuie sa le posede orice limbaj de interogare relational, pentru a putea fi
considerat limbaj relational complet.
c. Cele trei formalisme (AR, CRT si CRD) sunt echivalente ca putere de expresie ( pt. orice
interogare, exprimata in cadrul unuia din formalisme, exista interogari echivalente in fiecare din
celelalte doua).

CURS 9&10 BAZE DATE / AN II

Obs4: Facilitatile suplimentare, necuprinse in formalismele abstracte, de care dispun limbajele reale,
includ:
- comenzi de inserare
- comenzi de stergere
- comenzi de modificare
- posib. efect. de calcule aritm.
- fctii de tiparire a relatiilor de atribuire a acestora unor nume de variabile
- fctii de agregare care efectueaza diverse operatii: medie, suma, min, max (pe
valorile unei coloane dintr-o relatie)

CURS 9&10 BAZE DATE / AN II

Limbaje reale derivate din formalismele prezentate (exemple):


Ex1. ISBL ( Information System Base Language) dezvoltat in cadrul IBM (centrul stiintific din
Peterlee) = limbaj de interogare bazat pe Algebra Relationala
Ex2. QUEL = limbaj de interogare al SGBD relational INGRES, dezvoltat la Univ. Berkley
(California) sub sistem UNIX; este bazat pe Calculul Relational al Tuplelor
Ex3. QBE ( Query By Example) dezvoltat in cadrul IBM; are la baza Calculul Relational al
Domeniilor.
Ex4: SQUARE si SEQUEL (SQL) limbaje intermediare intre Algebra Relationala si Calculul
Relational; dezvoltate in cadrul IBM (sectia din San Jose) ca limbaje de interogare
pentru SGBD-ul SystemR

CURS 9&10 BAZE DATE / AN II

ALGEBRA RELATIONALA

Def. Algebra Relationala =Formalism abstract propus de Codd pentru interogarea b.d. relationale
Bazat pe : set de operatori folositi ca primitive pt. construirea interogarilor.
Obs. AR = limbaj abstract de tip procedural (interogarile exprimate cu ajutorul ei sunt de fapt
secvente de operatori care specifica explicit modul de obtinere al relatiei rezultat)
Operatorii AR:
- operatori unari sau binari care actioneaza asupra relatiilor; rezultatul lor sunt tot
relatii  posibilitatea asocierii si imbricarii pt. a forma interogari complexe
Grupe de Operatori:
O1: Operatori pt. Multimi ;

O2: Operatori Relationali Speciali

O1:





Reuniune
Intersectie
Diferenta
Produs Cartezian

OBS: Pt. Operatiile de Reuniune, Intersectie si Diferenta, cele doua relatii operand trebuie sa fie compatibile la
reuniune, ceea ce inseamna ca trebuie sa fie de acelasi grad, iar atributele corespondente trebuie sa fie
derivate din acelasi domeniu.

CURS 9&10 BAZE DATE / AN II

Definitiile Operatorilor pt. Relatii privite ca Multimi (operatorii din categoria O1):
Reuniunea a doua relatii A si B, notata A B, este o relatie R care contine toate tuplele care apartin relatiei A sau
relatiei B.
Intersectia a doua relatii A si B, notata A B, este o relatie R care contine toate tuplele care apartin atat relatiei A
cat si relatiei B.
Diferenta a doua relatii A si B, notata A - B, este o relatie R care contine toate tuplele care apartin relatiei A dar nu
apartin relatiei B.
Produsul Cartezian a doua relatii A si B, notat A x B, A fiind de gradul m iar B de gradul n, este o relatie R de
grad m+n, care contine toate tuplele obtinute prin concatenarea fiecarei tuple din relatia A cu fiecare
tupla din relatia B (exemplificare).

CURS 9&10 BAZE DATE / AN II

Prezentarea si Definitiile Operatorilor Relationali Speciali (operatorii din categoria O2):


O2.1 Operatori Relationali Speciali Unari:
- Proiectia
- Selectia
O2.2 Operatori Relationali Speciali Binari:
- Cuplarea (Join)
- Diviziunea
O2.1 :
Selectia printr-un predicat P a unei relatii A, notata P(A), este o relatie R care contine toate tuplele din

relatia A care satisfac predicatul P. Predicatul P este o formula (conditie) care poate contine:
- operanzi ce sunt fie nume de atribute fie constante
- operatori de comparatie ( =, <, >, , <=, >= )
- operatori logici ( &, | , ! )
Proiectia pe atributele A1, A2, A3,..., An a unei relatii B de grad m>n si care cuprinde atributele A1, A2, A3,...,
An , notata A1, A2, A3,..., An(B), este o relatie R de grad n obtinuta din relatia B astfel:
Pasul 1: Se elimina din relatia B atributele care nu sunt specificate in lista de proiectie, a.i. raman doar
coloanele corespunzatoare atributelor A1, A2, A3,..., An
Pasul 2: Se reordoneaza atributele ramase in ordinea specificata in lista de proiectie A1, A2, A3,..., An
Pasul 3: Se elimina tuplele duplicat.
 Proiectia unei relatii = o selectie verticala a acesteia (se selecteaza coloanele coresp. atributelor din lista de
proiectie), urmata de eliminarea tuplelor duplicat si reordonarea atributelor ramase in ordinea
specificata prin lista de proiectie.

CURS 9&10 BAZE DATE / AN II

O2.2 :
Cuplarea (Join) :
Fie un operator aritmetic de comparatie ( =, <, >, , <=, >= );
Fie X un atribut al relatiei A si Y un atribut al relatiei B, X si Y fiind definite pe domenii compatibile;
Numim - cuplare a relatiilor A si B dupa atributele X si Y , notata

43

XY

o relatie R care contine acele tuple ale produsului cartezian AxB care au proprietatea ca valorile x si y
corespunzatoare atributelor X respectiv Y sunt in relatia x y.
OBS:

43
XY

B = X Y (AxB)

CURS 9&10 BAZE DATE / AN II

Diviziunea relatiei A de grad m prin relatia B de grad n , notata A B, este o relatie R de grad m-n, formata
din multimea tuplelor r cu proprietatea ca pentru orice tupla b din B exista o tupla a in A egala cu
rezultatul concatenarii tuplelor r si b.
OBS:
a) Multimea atributelor relatiei B trebuie sa fie o submultime a multimii atributelor relatiei A. Relatia R
contine doar acele atribute din relatia A care nu apar in relatia B.
b) O tupla din relatia A este retinuta in urma operatiei de diviziune numai daca este legata de fiecare tupla
din relatia B printr-o conditie predefinita.
c) Relatia obtinuta prin produsul cartezian al relatiilor R si B este inclusa in relatia A (rezulta direct din
definitie); notand prin Rest multimea tuplelor din relatia A care nu apar in produsul cartezian al relatiilor
B si R obtinem urmatoarea relatie ( asemanatoare cu teorema impartirii cu rest din aritmetica):

A = B x R Rest