07 Curs9&10 CompModeleDate&OpAlgRel
-
Upload
gabriela-ivan -
Category
Documents
-
view
215 -
download
1
description
Transcript of 07 Curs9&10 CompModeleDate&OpAlgRel
-
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)
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.
Scheme de relatie
-
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
functional
DA prin conexiuni de tip
functional
DA prin mecanismul de
propagare a cheilor
Reprezentarea
Legaturilor N:M
NU in mod direct, ci doar prin
multiplicarea inregistrarilor
NU in mod direct, ci doar prin
tipuri de legatura dedicate
DA prin scheme de relatie
separate (sau tabele de
legatura)
Limbajul
de formulare a
interogarilor
Navigational
Navigational
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
A 43 B X Y
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:
A 43 B = X Y (AxB) X Y
-
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