Sunteți pe pagina 1din 17

LMD RELATIONALE LMD = limbaje pentru formularea interogarilor

Clasificare LMD: -

navigationale (modelul ierarhic si modelul retea)

- relationale (modelul relational)

Caracteristici:

A. 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. LMD relational:

Ceea ce diferentiaza Modelul de Date Relational in raport cu celelalte modele, d.p.d.v. al posibilitatii formularii interogarilor:

LMD RELATIONAL (celelalte modele permit doar LMD navigational) In MR, 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)

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).

Obs4:

Facilitatile

abstracte, de care dispun limbajele reale, includ:

suplimentare,

necuprinse in formalismele

- 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)

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

ALGEBRA RELATIONALA

Def. 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

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.

Definitii:

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).

O2: Operatori Relationali Speciali

O2.1 Operatori Relationali Speciali Unari:

- Proiectia

- Selectia

O2.2 Operatori Relationali Speciali Binari:

- Cuplarea (Join)

- Diviziunea

Definitii:

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 A 1 , A 2 , A 3 , A n a unei relatii B de grad m>n si

An (B),

este o relatie R de grad n obtinuta din relatia B astfel:

care cuprinde atributele A 1 , A 2 , A 3 ,

,

,

A n , notata

ππππ A1, A2, A3,

,

Pasul 1: Se elimina din relatia B atributele care nu sunt specificate in lista de proiectie, a.i. raman doar coloanele corespunzatoare

atributelor A 1 , A 2 , A 3 ,

,

A n

Pasul 2: Se reordoneaza atributele ramase in ordinea specificata in

lista de proiectie A 1 , A 2 , A 3 , Pasul 3: Se elimina tuplele duplicat.

,

A n

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.

O2.2 :

Cuplarea (Join) :

Fie θ un operator aritmetic de comparatie ( =, <, >, , <=, >= );

Fie

fiind definite pe domenii compatibile; Numim θθθθ - cuplare a relatiilor A si B dupa atributele X si Y , notata

X un atribut al relatiei A

si

Y un atribut al relatiei B, X si Y

A

43 B

X θθθθ Y

OBS:

o relatie

care au proprietatea

respectiv Y sunt in relatia x θ y.

R

care contine acele tuple ale produsului cartezian AxB

ca valorile x si y corespunzatoare atributelor X

A 43 B

X θθθθ Y

= σσσσ X θθθθ Y (AxB)

Diviziunea

OBS:

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.

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

NORMALIZAREA RELATIILOR. FORME NORMALE

Normalizarea –

tehnica obligatorie in proiectarea conceptuala a oricarei b.d., dar in mod special in b.d. relationale

Concepte fundamentale:

(1) Dependenta functionala (FN1, FN2, FN3, FNBC/F.N. Boyce-Codd) (2) Dependenta multivalorica (FN4) (3) Dependenta de cuplare (FN5)

Schema de relatie = tupla care cuprinde: (a) numele relatiei si (b) atributele asociate

Problema proiectarii robuste a unei b.d. relationale:

(a)

alegerea schemelor de relatie si

(b)

modul de grupare a atributelor in relatii pt. a reprezenta tipuri de entitati sau legaturi intre tipurile de entitati

Criteriul central de proiectare: Dependenta Datelor

Dependenta Functionala (Def.):

Fie:

-

schema de relatie R(A 1 , A 2 ,

,

A n )

-

X si Y atribute simple sau compuse, submultimi ale

multimii de atribute {A 1 , A 2 ,

A n }

, Spunem ca atributul X determina functional atributul Y (sau Y depinde functional de X) ddca oricarei valori a atributului X ii corespunde o singura valoare a atributului Y.

Notatie: X Y.

Dependenta Functionala Totala & D. F. Partiala (Defs.):

Dependenta functionala X Y este totala daca nu exista nici un subset Z al atributului X ( Z⊂⊂⊂⊂ X) a. i. Z Y. In caz contrar dependenta se numeste partiala.

OBS1: Daca X Y, atunci pt. orice subset Z al lui Y avem X Z. OBS2: Daca X Y si X este un atribut simplu, atunci Y este dependent functional total fata de X. OBS3: Daca Y este dependent functional total fata de Z, atunci X Y pt. orice atribut compus X care contine pe Z.

Axiomele lui ARMSTRONG: (set de reguli pt. deducerea dependentelor functionale care sunt consecinte ale unui set de dependente functionale date initial)

Ipoteza: Fie X, Y si Z submultimi ale multimii de atribute { A 1 , A 2 , (A1) – reflexivitate: Daca Y X atunci X Y.

, A n }

(A2) - augmentare: Daca X Y, atunci X Z Y Z.

(A3) - tranzitivitate: Daca X Y si Y Z, atunci si X Z.

OBS. A3 este singura axioma care conduce la dependente noi si netriviale. Celelalte doua axiome sunt utile in combinatie cu A3.

Inchidere Tranzitiva a setului de dependente functionale F (notata F*) = =multimea dependentelor functionale care se pot obtine prin aplicarea repetata, in toate modurile posibile, a regulilor A1-A3 asupra unui set initial de dependente functionale F .

Dependente Multivalorice :

- mai putin restrictive decat dep. Functionala

- au implicatii in normalizarea relatiilor

Def.:

Fie schema de relatie R(X,Y,Z), unde X,Y si Z sunt atribute simple sau compuse. Notam cu x, y si z valori ale atributelor X, Y si Z.

Spunem ca exista o Dependenta Multivalorica a atributului Z fata de Y (sau Y multidetermina pe Z) si notam Y Z daca pt. orice valori x 1 , x 2 ,y,

z 1 si z 2 ,

din relatia R, atunci si tuplele (x 1 ,y, z 2 ) si (x 2 ,y, z 1 ) fac parte din relatia R.

cu x 1 x 2 si z 1 z 2 , astfel incat tuplele (x 1 ,y, z 1 ) si (x 2 ,y, z 2 ) fac parte

OBS1: Dependenta multivalorica Y Z implica si dependenta multivalorica complementara Y X (acest lucru rezulta direct din simetria definitiei dependentei multivalorice). OBS2: In particular, unele dependente multivalorice pot fi de fapt dependente functionale.

Axiomele lui Armstrong pentru dependentele functionale si multivalorice, precum si pt. legatura dintre acestea: (set de reguli

pt. determinarea sistematica a tuturor dependentelor multivalorice care sunt o consecinta logica a unui set initial)

Ipoteza: Fie X, Y si Z submultimi ale multimii de atribute U={ A 1 , A 2 , (A1) – reflexivitate pt. dep. functionale:

Daca Y X atunci X Y.

(A2) - augmentare pt. dep. functionale:

, A n }

Daca X Y, atunci X Z Y Z.

(A3) - tranzitivitate pt. dep. functionale:

Daca X Y si Y Z, atunci si X Z.

(A4) – complementare pentru dep. multivalorice:

Daca X Y, atunci X U-(X Y) , unde U-(X Y) este atributul complementar lui Y in raport cu atributul X (aceasta regula deriva din caracterul simetric al dependentelor multivalorice)

(A5) – augmentare pentru dep. multivalorice:

Daca X Y, si VW, atunci WX V Y.

(A6) - tranzitivitate pt. dep. multivalorice:

Daca X Y si Y Z, atunci X Z-Y.

(A7) – Daca X Y atunci X Y (orice dependenta functionala este in acelasi timp si o dependenta multivalorica)

(A8) – Daca X Y, Z Y si pt. W disjunct fata de Y avem: W Z, atunci X Z.

OBS1: Aceste axiome extind setul de axiome date pentru dependenta functionala, constituind un set complet si sigur de reguli de inferenta, adica permit deducerea tuturor dependentelor functionale si multivalorice care sunt logic deductibile din setul initial de dependente <==> orice relatie care satisface setul initial de dependente va satisface de asemenea orice dependenta din inchiderea tranzitiva a acestui set. OBS2: Axiomele (A5) si (A6) pun in legatura dependentele functionale cu cele multivalorice.

Descompunerea Schemelor de Relatie

Calea principala de eliminare a Dependentelor Functionale din schemele de relatie (pt. evitarea redondantei datelor):

Descompunerea schemei de date intr-o colectie de scheme mai simple care trebuie sa evite aceste probleme

Conventie:

Schema de Relatie == Multimea atributelor relatiei

R(A 1 , A 2 ,

,

A n ) echivalent cu

R = { A 1 , A 2 ,

,

A n }

Def. 1: Descompunerea unei Scheme de Relatie R = { A 1 , A 2 ,

A n } ,

, inseamna inlocuirea acesteia printr-o colectie ρρρρ = { R 1 , R 2 , de submultimi ale lui R , a.i.

R k }

R = R 1 ∪∪∪∪ R 2 ∪∪∪∪ ∪∪∪∪

R

k

unde R 1 , R 2 ,

,

R k nu sunt neaparat disjuncte.

OBS.1: Printr-o astfel de descompunere se realizeaza o separare a continutului de informatie din relatia initiala a.i. fiecare din schemele de relatie rezultate sa reprezinte un singur tip de entitate sau o legatura intre doua tipuri de entitati.

OBS.2: Numai o parte dintre descompunerile de acest tip au proprietatea ca din relatiile corespunzatoare schemelor descompunerii se poate reconstitui relatia initiala; pt. o astfel de reconstituire se foloseste operatorul de cuplare.

Def. 2: Descompunere echivalenta a relatiei R, notata cu ρρρρ :

Descompunerea ρρρρ a relatiei R este echivalenta cu relatia R daca satisface urmatoarele doua proprietati:

(1) cuplare fara pierdere de informatie ( lossless join property ) (2) conservarea dependentelor ( dependency preservation )

(1) Cuplarea fara pierdere de informatie (LJP) = proprietatea unei descompuneri de a conserva continutul de informatie al oricarei relatii asupra careia se aplica aceasta descompunere. Formalizarea matematica:

Fie R o schema de relatie descompusa in schemele R 1 , R 2 ,

, R k .

Aceasta descompunere are proprietatea LJP daca pt. orice relatie r reprezentand valoarea actuala a relatiei R, avem:

r = Π R1 (r) Π R2 (r)

Π Rk (r)

( deci r este rezultatul cuplarii proiectiilor sale dupa schemele de relatie

R 1 , R 2 ,

, R k ) .

Caz particular: Teorema lui ULLMAN Fie ρρρρ = { R 1 , R 2 } o descompunere a schemei de relatie R. In acest caz particular, ρρρρ constituie o descompunere fara pierdere de informatie in raport cu un set dat de dependente functionale initiale, daca in urma descompunerii obtinem una din urmatoarele dependente functionale:

(R 1 ∩∩∩∩ R 2 ) (R 1 - R 2 ), (R 1 R 2 ) (R 2 – R 1 ) .

COROLAR:

Daca intersectia celor doua proiectii ale unei descompuneri, R 1 R 2 este sau contine o cheie a uneia dintre componentele R 1 sau R 2 , atunci descompunerea este fara pierdere de informatie. Acest lucru se verifica prin existenta cel putin uneia din dependentele:

(R 1 ∩∩∩∩ R 2 ) R 1 (R 1 - R 2 ), (R 1 ∩∩∩∩ R 2 ) R 2 (R 2 – R 1 ).

OBS:

Proprietatea de conservare a informatiei depinde nu numai de descompunerea ρρρρ , ci si de setul initial de dependente functionale existente in schema de relatie R.

(2) Conservarea dependentelor (DP) = proprietatea unei descompuneri de a permite deducerea tuturor dependentelor din relatia initiala pe baza dependentelor existente in descompunere.

Formalizarea matematica:

Fie R o schema de relatie si ρρρρ = { R 1 , R 2 ,

- o parte dintre dependentele functionale existente in R se vor regasi

,

R k } o descompunere a sa:

in cadrul schemelor de relatie R i din descompunerea sa

- dependentele care implica atribute din componente diferite R i si R j ale descompunerii nu vor fi regasite in cadrul schemelor individuale R i , ca atare se pierd. Obs: Proprietatea (DP) este importanta d.p.d.v. al integritatii bazei de date, deoarece dependentele din cadrul unei scheme de relatie R pot fi privite ca si constrangeri de integritate a datelor din cadrul schemei.

FN1: Forma Normala 1. Def: O relatie R este in forma normala FN1 ddaca toate atributele sale iau numai valori atomice. (valori atomice = valori care nu pot fi descompuse in elemente constitutive mai fine; ex: atributul Adresa nu are valoare atomica).

Obs: Conditia ca o relatie sa se afle in FN1 impune ca domeniile pe care se definesc atributele relatiei R sa contina doar elemente atomice <== > toate tuplele unei relatii au acelasi numar de campuri, cu aceeasi dimensiune.

FN2: Forma Normala 2. Def: O relatie R este in forma normala FN2 daca este in FN1 si orice atribut neprim este total dependent fata de orice cheie a relatiei.

FN3: Forma Normala 3. Def: O relatie R este in forma normala FN3 daca este in FN2 si nici un atribut neprim nu este functional dependent fata de un alt atribut neprim al relatiei.

Forma Normala BOYCE – CODD (FNBC) Def: O relatie R este in forma normala FNBC daca pentru orice dependenta functionala X A din cadrul relatiei R, unde A este un atribut care nu face parte din X, atributul X (care poate fi si un atribut compus) este o cheie in R sau include o cheie din R.

OBS: O relatie care este in FNBC, se afla si in FN3, FN2 si FN1.

FN4: Forma Normala 4. Def: O relatie R este in forma normala FN4 daca oricare ar fi dependenta multivalorica X Y, unde Y nu este un subset al lui X si X Y nu contine toate atributele lui R, atunci atributul simplu sau compus X este o cheie sau contine o cheie a lui R.

DEPENDENTA DE CUPLARE. FORMA NORMALA FN5:

OBS1: Rezolvarea neredondantei datelor in contextul bazei de date necesita analiza atat a dependentelor functionale si multivalorice, cat si a asa-numitor dependente de cuplare.

Def:

Fie R(A 1 , A 2 , ale multimii { A 1 , A 2 , notata cu *( R 1 , R 2 ,

cuplarii proiectiilor sale pe R 1 , R 2 ,

, A n ) o schema de relatie si R 1 , R 2 ,

, R k

, R k submultimi

, A n } . Spunem ca exista o dependenta de cuplare , , R k ), ddaca orice instantiere r a lui R este rezultatul

< = = >

r = Π R1 (r) Π R2 (r)

Π

Rk (r)

Def. echivalenta:

R 2 ,

*(

R 1 ,

,

R k )

este o dependenta

descompunerea lui R dupa componentele R 1 , R 2 ,

de informatie.

de cuplare pe R ddaca , R k este fara pierdere

OBS2: Dependentele multivalorice sunt cazuri particulare de dependente de cuplare. Transcriere matematica: Orice relatie R(X,Y,Z) care satisface dependentele multivalorice X Y si X Z satisface si dependenta de cuplare *(XY,XZ).

FORMA NORMALA FN5:

Def: O relatie R este in forma normala FN5 ddaca toate dependentele de cuplare existente in relatie sunt implicate de o cheie a acesteia.

OBS3:

Forma normala FN5 este o generalizare a formei normale FN4, avand ca punct de pornire conceptul de dependenta de cuplare.

Procesul de trecere a unei relatii in forma normala FN5 :

- eliminarea dependentelor de cuplare din cadrul relatiei, impreuna cu anomaliile pe care le cauzeaza

- selectarea in acest scop a dependentelor de cuplare care prezinta interes d.p. de vedere al generarii de redondante

Ex. de dependente de cuplare care nu conduc la redondanta in memorarea datelor si, ca atare nu cauzeaza anomalii: dependentele de cuplare cauzate de o cheie a relatiei.

CONCLUZII privind NORMALIZAREA RELATIILOR:

FN1 - se obtine prin atomizarea tuturor atributelor relatiei

FN2

=

FN1 + eliminarea tuturor dependentelor functionale partiale ale atributelor neprime in raport cu orice cheie a relatiei

FN3

=

FN2 + eliminarea tuturor dependentelor functionale dintre toate atributele neprime ale relatiei

FNBC = eliminarea tuturor dependentelor functionale fata de atribute care nu sunt chei sau nu contin o cheie.

DEFINITIE GLOBALA PT. FNBC, FN4 si FN5:

O relatie este in FNBC (respectiv FN4 sau FN5) ddaca singurele dependente functionale (respectiv multivalorice sau de cuplare) existente sunt cele implicate de o cheie a relatiei R.

OBS: Orice dependenta intre atributele unei relatii, indiferent de tipul acesteia (functionala, multivalorica sau de cuplare), este producatoare de redondante si anomalii, doar atunci cand nu este implicata de o cheie a relatiei.

*************************************************************

Scopul normalizarii relatiilor:

Eliminarea din schemele de relatie a dependentelor functionale, multivalorice si de cuplare, cu scopul de a produce o schema relationala cu proprietati mai bune d.p.d.v. al neredondantei datelor, precum si al posibilelor anomalii ce pot sa apara in cazul operatiilor de adaugare, stergere si actualizare. *************************************************************

Locul normalizarii in contextul activitatii de proiectare a B.D.

Teoria Normalizarii = cadru de ghidare a proiectantului b.d. in vederea realizarii de scheme relationale mai bune.

OBS1: Prin procesul normalizarii, sunt inglobate in modelul relational aspectele semantice aferente dependentelor care apar in contextul general al datelor modelate, decurgand din semnificatia pe care insusi proiectantul o atribuie diferitelor categorii de date.

OBS2: Dependentele sunt formulate sub forma unor constrangeri, care reflecta caracteristici sau aspecte suplimentare ale partii din lumea reala ce se modeleaza prin schema relationala.

OBS3: Decizia de a aplica sau nu o anumita etapa de normalizare este la latitudinea proiectantului b.d. , aceasta decizie depinzand de contextul existent. Normalizarea este avantajoasa in principiu , dar in unele cazuri normalizarea completa (adica pana la obtinerea FN5) poate fi dezavantajoasa.

OBS4: Prin aplicarea corecta a unei metodologii de proiectare descendente (de ex. folosind modelul E/R), obtinem modele care au tendinta de a fi gata normalizate.