Sunteți pe pagina 1din 19

CAPITOLUL 1.

TEORIA BAZELOR DE DATE RELAIONALE


1.1. MODELUL RELAIONAL
Modelul relaional a fost propus de ctre IBM i a revoluionat
reprezentarea datelor fcnd trecerea la generaia a doua de baze de date.
Modelul este simplu, are o solid fundamentare teoretic fiind bazat
pe teoria seturilor (ansamblurilor) i pe logica matematic. Pot fi
reprezentate toate tipurile de structuri de date de mare complexitate, din
diferite domenii de activitate.
Modelul relaional este definit prin: structura de date, operatorii care
acioneaz asupra structurii i restriciile de integritate.
1) Conceptele utilizate pentru definirea structurii de date sunt:
domeniul, tabela (relaia), atributul, tuplul, cheia i schema tabelei.
Domeniu este un ansamblu de valori caracterizat printr-un nume. El
poate fi explicit sau implicit.
Tabela/relaia este un subansamblu al produsului cartezian al mai
multor domenii, caracterizat printr-un nume, prin care se definesc atributele
ce aparin aceleai clase de entiti.
Atributul este coloana unei tabele, caracterizat printr-un nume.
Cheia este un atribut sau un ansamblu de atribute care au rolul de a
identifica un tuplu dintr-o tabel. Tipuri de chei: primare/alternate,
simple/comune, externe.
Tuplul este linia dintr-o tabel i nu are nume. Ordinea liniilor
(tupluri) i coloanelor (atribute) dintr-o tabel nu trebuie s prezinte nici-o
importan.
Schema tabelei este format din numele tabelei, urmat ntre
paranteze rotunde de lista atributelor, iar pentru fiecare atribut se precizeaz
domeniul asociat.
Schema bazei de date poate fi reprezentat printr-o diagram de
structur n care sunt puse n eviden i legturile dintre tabele. Definirea
legturilor dintre tabele se face logic construind asocieri ntre tabele cu
ajutorul unor atribute de legtur. Atributele implicate n realizarea
legturilor se gsesc fie n tabelele asociate, fie n tabele distincte construite
special pentru legturi. Atributul din tabela iniial se numete cheie extern
iar cel din tabela final este cheie primar. Legturile posibile sunt 1:1, 1:m,
m:n. Potenial, orice tabel se poate lega cu orice tabel, dup orice atribute.

Legturile se stabilesc la momentul descrierii datelor prin limbaje de


descriere a datelor (LDD), cu ajutorul restriciilor de integritate. Practic, se
stabilesc i legturi dinamice la momentul execuiei.
2) Operatorii modelului relaional sunt operatorii din algebra
relaional i operatorii din calculul relaional.
Algebra relaional este o colecie de operaii formale aplicate
asupra tabelelor (relaiilor), i a fost conceput de E.F.Codd. Operaiile sunt
aplicate n expresiile algebrice relaionale care sunt cereri de regsire.
Acestea sunt compuse din operatorii relaionali i operanzi. Operanzii sunt
ntotdeauna tabele (una sau mai multe). Rezultatul evalurii unei expresii
relaionale este format dintr-o singur tabel.
Algebra relaional are cel puin puterea de regsire a calcului
relaional. O expresie din calculul relaional se poate transforma ntr-una
echivalent din algebra relaional i invers.
Codd a introdus ase operatori de baz (reuniunea, diferena,
produsul cartezian, selecia, proiecia, jonciunea) i doi operatori derivai
(intersecia i diviziunea). Ulterior au fost introdui i ali operatori derivai
(speciali). n acest context, operatorii din algebra relaional pot fi grupai
n dou categorii: pe mulimi i speciali.
Operatori pe mulimi (R1, R2, R3 sunt relaii (tabele)) sunt:
Reuniunea. R3 = R1 R2, unde R3 va conine tupluri din R1
sau R2 luate o singur dat;
Diferena. R3 = R1 \ R2, unde R3 va conine tupluri din R1 care
nu se regsesc n R2;
Produsul cartezian. R3 = R1 R2, unde R3 va conine tupluri
construite din perechi (x1x2), cu x1R1 i x2R2;
Intersecia. R3 = R1 R2, unde R3 va conine tupluri care se
gsesc n R1 i R2 n acelai timp, etc.
Operatori relaionali speciali sunt:
Selecia. Din R1 se obine o subtabel R2, care va conine o
submulime din tuplurile iniiale din R1 ce satisfac un predicat
(o condiie). Numrul de atribute din R2 este egal cu numrul de
atribute din R1. Numrul de tupluri din R2 este mai mic dect
numrul de tupluri din R1.
Proiecia. Din R1 se obine o subtabel R2, care va conine o
submulime din atributele iniiale din R1 i fr tupluri
duplicate. Numrul de atribute din R2 este mai mic dect
numrul de atribute din R1.
Jonciunea este o derivaie a produsului cartezian, ce presupune
utilizarea unui calificator care s permit compararea valorilor

unor atribute din R1 i R2, iar rezultatul n R3. R1 i R2 trebuie


s aib unul sau mai multe atribute comune care au valori
comune.
Algebra relaional este prin definiie neprocedural (descriptiv),
iar calculul relaional permite o manier de cutare mixt
(procedural/neprocedural).
Calculul relaional se bazeaz pe calculul predicatelor de ordinul
nti (domeniu al logicii) i a fost propus de E.F. Codd. Predicatul este o
relaie care se stabilete ntre anumite elemente i care poate fi confirmat
sau nu. Predicatul de ordinul 1 este o relaie care are drept argumente
variabile care nu sunt predicate. Variabila poate fi de tip tuplu (valorile sunt
dintr-un tuplu al unei tabele) sau domeniu (valorile sunt dintr-un domeniu al
unei tabele). Cuantificatorii (operatorii) utilizai n calculul relaional sunt:
universal () i existenial ().
Construcia de baz n calculul relaional este expresia relaional de
calcul tuplu sau domeniu (funcie de tipul variabilei utilizate).
Expresia relaional de calcul este format din: operaia de efectuat,
variabile (tuplu respectiv domeniu), condiii (de comparaie, de existen),
formule bine definite (operanzi-constante, variabile, funcii, predicate;
operatori), cuantificatori.
Pentru implementarea acestor operatori exist comenzi specifice n
limbajele de manipulare a datelor (LMD) din sistemele de gestiune a bazelor
de date relaionale (SGBDR). Aceste comenzi sunt utilizate n operaii de
regsire (interogare).
Dup tehnica folosit la manipulare, LMD sunt bazate pe:
calculul relaional (QUEL n Ingres, ALPHA propus de Codd);
algebra relaional (ISBL, RDMS);
transformare (SQL, SQUARE);
grafic (QBE, QBF).
Transformarea ofer o putere de regsire echivalent cu cea din
calculul i algebra relaional. Se bazeaz pe transformarea (mapping) unui
atribut sau grup de atribute ntr-un atribut dorit prin intermediul unor relaii.
Rezultatul este o relaie (tabel) care se poate utiliza ntr-o alt transformare.
Grafica ofer interactivitate mare pentru constrirea cererilor de
regsire. Utilizatorul specific cerea alegnd sau completnd un ecran
structurat grafic. Poate fi folosit de ctre toate categoriile de utilizatori n
informatic.
3) Restriciile de integritate ale modelului relaional sunt
structurale i comportamentale.

Restriciile structurale sunt:


Restricia de unicitate a cheii. ntr-o tabel nu trebuie s existe
mai multe tupluri cu aceeai valoare pentru ansamblul cheie;
Restricia referenial. Intr-o tabel t1 care refer o tabel t2,
valorile cheii externe trebuie s figureze printre valorile cheii
primare din t2 sau s ia valoarea null (neprecizat);
Restricia entitii. Intr-o tabel, atributele din cheia primar nu
trebuie s ia valoarea NULL.
Cele trei restricii de mai sus sunt minimale.
Pe lng acestea, exist o serie de alte restricii structurale care se
refer la dependenele dintre date: funcionale, multivaloare, jonciune etc.
(sunt luate n considerare la tehnicile de proiectare a bazelor de date
relaionale - BDR).
Restriciile de comportament sunt cele care se definesc prin
comportamentul datelor i in cont de valorile din BDR:
Restricia de domeniu. Domeniul corespunztor unui atribut dintro tabel trebuie s se ncadreze ntre anumite valori;
Restricii temporare. Valorile anumitor atribute se compar cu
nite valori temporare (rezultate din calcule etc.).
Restriciile de comportament fiind foarte generale se gestioneaz fie
la momentul descrierii datelor (de exemplu prin clauza CHECK), fie n afara
modelului la momentul execuiei.
Restriciile de integritate suportate de Oracle sunt:
NOT NULL nu permite valori NULL n coloanele unei tabele;
UNIQUE nu sunt permise valori duplicat n coloanele unei
tabele;
PRIMARY KEY nu permite valori duplicate sau NULL n
coloana sau coloanele definite astfel;
FOREIGN KEY presupune ca fiecare valoare din coloana sau
setul de coloane defini astfel s aib o valoare corespondent
identic n tabela de legtur, tabel n care coloana
corespondent este definit cu restricia UNIQUE sau
PRIMARY KEY;
CHECK elimin valorile care nu satisfac anumite cerine
(condiii) logice.
Termenul de chei (keys) este folosit pentru definirea ctorva
categorii de constrngeri i sunt: primary key, unique key, foreign key,
referenced key.
Se consider c modelul relaional are o serie de limite cum ar fi:
Simplitatea modelului l face dificil de aplicat pentru noile tipuri

de aplicaii (multimedia, internet etc.);


Nu asigur o independen logic total a datelor de aplicaie;
Poate crete redundana datelor.
1.2. BAZE DE DATE RELAIONALE
Bazele de date relaionale (BDR) utilizeaz modelul de date
relaional i noiunile aferente. BDR au o solid fundamentare teoretic, n
special prin cercetrile de la IBM conduse de E.F.Codd.
BDR este un ansamblu organizat de tabele (relaii) mpreun cu
legturile dintre ele.
Concepte utilizate la organizarea datelor n BDR i respectiv fiiere
sunt prezentate n tabelul 1.1.
Concepte utilizate n organizarea datelor
Fiiere
BDR

fiier
tabel(relaie)

nregistrare
tuplu (linie)

cmp
atribut(coloan)

Tabelul 1.1.
valori
domeniu valori

Avantajele BDR fa de fiiere sunt prezentate n tabelul 1.2.


Avantajele BDR
CRITERIU
Independena datelor
Niveluri de structurare
Deschidere i portabilitate
Reprezentarea i utilizarea datelor
Structura de date se pstreaz

BDR
logic i fizic
conceptual, logic i fizic
mare
simplificat prin model
n dicionarul BDR

Tabelul 1.2.
FIIERE
fizic
logic i fizic
mic
complicat
n programe.

Atunci cnd dorim s realizm o baz de date relaional trebuie s


tim clar ce avem de fcut, adic s stabilim obiectivele activitii noastre.
n acest sens, cteva dintre cele mai importante obiective, le prezentm n
continuare:
Partiionarea semnific faptul c aceleai date trebuie s poat fi
folosite n moduri diferite de ctre diferii utilizatori;
Deschiderea se refer la faptul c datele trebuie s fie uor
adaptabile la schimbrile care pot aprea (actualizarea structurii,
tipuri noi de date etc.);
Eficiena are n vedere stocarea i prelucrarea datelor, care trebuie

s se fac la costuri ct mai sczute, costuri care s fie inferioare


beneficiilor obinute;
Reutilizarea nseamn faptul c fondul de date existent trebuie s
poat fi reutilizat n diferite aplicaii informatice;
Regsirea este o actvitate frecvent pe bazele de date i de aceea
cererile de regsire trebuie s poat fi adresate uor de ctre toate
categoriile de utilizatori, dup diferite criterii;
Accesul nseamn modul de localizare a datelor i acest lucru
trebuie s poat fi realizat prin diferite moduri de acces, rapid i
uor;
Modularizarea presupune faptul c realizarea BDR trebuie s se
poat face modular pentru generalitate i posibilitatea lucrului n
echip;
Protecia bazei de date trebuie asigurat sub ambele aspecte:
securitatea i integritatea datelor;
Redundana se asigur n limite acceptabile prin implementarea
unui model de date pentru baze de date i prin utilizarea unei
tehnici de proiectare a BDR. Se asigur astfel, o redundan
minim i controlat;
Independena datelor fa de programe trebuie asigurat att la
nivel logic ct i i fizic.
Bazele de date relaionale au evoluat ca un tip special de aplicaii
informatice, i anume cele care au organizarea datelor n memoria extern
conform unui model de date specific. De aceea, n metodologia de realizare
a BDR se parcurg, n cea mai mare parte, cam aceleai etape ca la realizarea
unei aplicaii informatice, cu o serie de aspecte specifice. Pe de alt parte, n
literatura de specialitate, sunt diferite propuneri de metodologii de realizare
a bazelor de date.
innd cont de cele dou aspecte de mai sus, sunt propuse cteva
actviviti care trebuie parcurse la realizarea unei baze de date. Aceste
activiti vor fi regsite, sub aceeai denumire sau sub denumiri diferite, n
majoritatea metodologiilor de realizare a bazelor de date, din literatura de
specialitate.
Activitile (etapele) parcurse pentru realizarea unei BDR sunt:
analiza de sistem, proiectarea noului sistem, realizarea componentelor
logice, punerea n funciune, dezvoltarea.
1) Scopul analizei de sistem este de a evidenia cerinele aplicaiei i
resursele utilizate (studiul), precum i de a evalua aceste cerine prin
modelare (analiza).

Studiul situaiei existente se realizeaz prin: definirea


caracteristicilor generale ale unitii, identificarea activitilor desfurate,
identificarea resurselor existente (informaionale, umane, energetice,
echipamente, financiare etc.), identificarea necesitilor de prelucrare.
Analiza este o activitate de modelare (conceptual) i se realizeaz
sub trei aspecte: structural, dinamic i funcional.
a) Analiza structural evideniaz, la nivel conceptual, modul de
structurare a datelor i a legturilor dintre ele. Cea mai utilizat tehnic este
entitate-asociere. Aceasta conine:
Identificarea entitilor: fenomene, procese, obiecte concrete sau
abstracte (substantivele din prezentarea activitii descrise)
(exemple de entiti: Persoane, Produse, Beneficiari).
Identificarea asocierilor dintre entiti ca fiind legturile
semnificative de un anumit tip (verbele din prezentarea activitii
descrise).
Identificarea atributelor ce caracterizeaz fiecare entitate n parte
(exemple de atribute: Marca, Nume, Adres).
Stabilirea atributelor de identificare unic a realizrilor entitii,
drept chei.
Rezultatul analizei structurale este modelul static (structural) numit
i diagrama entitate-asociere. Diagrama entitate-asociere (EntityRelationship) poate fi generat cu produse software tip CASE (Computer
Aided Software Engineering), ca de exemplu Oracle Designer. Pornind de la
o astfel de diagram, se pot construi, n actvitatea de proiectare, schemele
relaiilor (tabelelor).
b) Analiza dinamic evideniaz comportamentul elementelor
sistemului la anumite evenimente. Una din tehnicile utilizate este diagrama
stare-tranziie. Aceasta presupune:
Identificarea strilor n care se pot afla componentele sistemului.
Identificarea evenimentelor care determin trecerea unei
componente dintr-o stare n alta.
Stabilirea tranziiilor admise ntre stri.
Construirea diagramei stare-tranziie.
Rezultatul analizei dinamice este modelul dinamic.
c) Analiza funcional evideniaz modul de asigurare a cerinelor
informaionale (fluxul prelucrrilor) din cadrul sistemului, prin care intrrile
sunt transformate n ieiri. Cea mai utilizat tehnic este diagrama de flux al
datelor. Conform acestei tehnici se delimiteaz:
Aria de cuprindere a sistemului.
Se identific sursele de date.

Se identific modul de circulaie i prelucrare a datelor.


Se identific apoi rezultatele obinute.
Rezultatul analizei funcionale este modelul funcional.
2) Proiectarea structurii bazei de date se face pe baza modelelor
realizate n activitatea de analiz. Inainte de proiectarea bazei de date se
alege tipul de sistem de gestiune a bazei de date. Alegerea SBGD-ului se
face innd cont de dou aspecte: cerinele aplicaiei (utilizatorului) i
performanele tehnice ale SGBD-ului.
Cerinele aplicaiei se refer la: volumul de date estimat a fi
memorat i prelucrat n BDR; complexitatea problemei de rezolvat;
ponderea i frecvena operaiilor de intrare/ieire; condiiile privind protecia
datelor; operaiile necesare (ncrcare/validare, actualizare, regsire etc.);
particularitile activitii pentru care se realizeaz baza de date.
Performanele tehnice ale SGBD-ului se refer la: modelul de date
pe care-l implementeaz; ponderea utilizrii SGBD-ului pe pia i tendina;
configuraia de calcul minim cerut; limbajele de programare din SGBD;
facilitile de utilizare oferite pentru diferite categorii de utilizatori; limitele
SGBD-ului; optimizrile realizate de SGBD; facilitile tehnice; lucrul cu
mediul distribuit i concurena de date; elementele multimedia;
instrumentele CASE; interfeele de comunicare; posibilitatea de
autodocumentare; instrumentele specifice oferite.
Proiectarea BDR se realizeaz prin proiectarea schemelor BDR i
proiectarea modulelor funcionale specializate.
Schemele bazei de date sunt: conceptual, extern i intern.
a) Proiectarea schemei conceptuale pornete de la identificarea
setului de date necesar sistemului. Aceste date sunt apoi integrate i
structurate ntr-o schem (exemplu: pentru BDR relaionale cea mai utilizat
tehnic este normalizarea). Pentru acest lucru se parcurg paii:
Stabilirea schemei conceptuale iniiale care se deduce din modelul
entitate-asociere (vezi analiza structural). Pentru acest lucru, se
transform fiecare entitate din model ntr-o colecie de date
(fiier), iar pentru fiecare asociere se definesc cheile aferente.
Dac rezult colecii izolate, acestea se vor lega de alte colecii
prin chei rezultnd asocieri (1:1, 1:m, m:n).
Ameliorarea progresiv a schemei conceptuale prin eliminarea
unor anomalii (exemplu: cele cinci forme normale pentru BDR
relaionale).
Stabilirea schemei conceptuale finale trebuie s asigure un
echilibru ntre cerinele de actualizare i performanele de
exploatare (exemplu: o form normal superioar asigur

performane de actualizare, dar timpul de rspuns va fi mai mare).


Tehnica de normalizare este utilizat n activitatea de proiectare a
structurii BDR i const n eliminarea unor anomalii (neajunsuri) de
actualizare din structur.
Anomaliile de actualizare sunt situaii nedorite care pot fi generate
de anumite tabele n procesul proiectrii lor:
Anomalia de tergere semnific faptul c stergnd un tuplu dintro tabel, pe lng informaiile care trebuie terse, se pierd i
informaiile utile existente n tuplul respectiv;
Anomaliile de adugare semnific faptul c nu pot fi incluse noi
informaii necesare ntr-o tabel, deoarece nu se cunosc i alte
informaii utile (de exemplu valorile pentru cheie);
Anomalia de modificare semnific faptul c este dificil de
modificat o valoare a unui atribut atunci cnd ea apare n mai
multe tupluri.
Normalizarea este o teorie construit n jurul conceptului de forme
normale (FN), care amelioreaz structura BDR prin nlturarea treptat a
unor neajunsuri i prin imprimarea unor faciliti sporite privind
manipularea datelor.
Normalizarea utilizeaz ca metod descompunerea (top-down) unei
tabele n dou sau mai multe tabele, pstrnd informaii (atribute) de
legtur.
FN1. O tabel este n FN1 dac toate atributele ei conin valori
elementare (nedecompozabile), adic fiecare tuplu nu trebuie s aib date la
nivel de grup sau repetitiv. Structurile de tip arborescent i reea se
transform n tabele cu atribute elemntare.
O tabel n FN1 prezint nc o serie de anomalii de actualizare
datorit eventualelor dependene funcionale incomplete.
Fiecare structur repetitiv genereaz (prin descompunere) o nou
tabel, iar atributele la nivel de grup se nltur, rmnnd doar cele
elemntare.
FN2. O tabel este n FN2 dac i numai dac este n FN1 i fiecare
atribut noncheie al tabelei este dependent funcional complet de cheie. Un
atribut B al unei tabele depinde funcional de atributul A al aceleiai tabele,
dac fiecrei valori a lui A i corespunde o singur valoare a lui B, care i
este asociat n tabel. Un atribut B este dependent funcional complet de un
ansamblu de atribute A n cadrul aceleiai tabele, dac B este dependent
funcional de ntreg ansamblul A (nu numai de un atribut din ansamblu).
O tabel n FN2 prezint nc o serie de anomalii de actualizare,
datorit eventualelor dependene tranzitive.

Eliminarea dependenelor incomplete se face prin descompunerea


tabelei iniiale n dou tabele, ambele coninnd atributul intermediar (B).
FN3. O tabel este n FN3 dac i numai dac este n FN2 i fiecare
atribut noncheie depinde n mod netranzitiv de cheia tabelei. ntr-o tabel T,
fie A,B,C trei atribute cu A cheie. Dac B depinde de A (A B) i C
depinde de B (B

C) atunci C depinde de A n mod tranzitiv.


Eliminarea dependenelor tranzitive se face prin descompunerea tabelei
iniiale n dou tabele, ambele coninnd atributul intermediar (B).
O tabel n FN3 prezint nc o serie de anomalii de actualizare,
datorate eventualelor dependene multivaloare.
O definiie mai riguroas pentru FN3 a fost dat prin forma
intermediar BCNF (Boyce Codd Normal Form): o tabel este n BCNF
dac fiecare determinant este un candidat cheie.Determinantul este un
atribut elementar sau compus fa de care alte atribute sunt complet
dependente funcional.
FN4. O tabel este n FN4 dac i numai dac este n FN3 i nu
conine dou sau mai multe dependene multivaloare. ntr-o tabel T, fie
A,B,C trei atribute. n tabela T se menine dependena multivaloare A dac
i numai dac mulimea valorilor lui B ce corespunde unei perechi de date
(A,C), depinde numai de o valoare a lui A i este independent de valorile
lui C.
FN5. O tabel este n FN5 dac i numai dac este n FN4 i fiecare
dependen jonciune este generat printr-un candidat cheie al tabelei. n
tabela T (A,B,C) se menine dependena jonciune (AB, AC) dac i numai
dac T menine dependena multivaloare A -->> B sau C.
Dependena multivaloare este caz particular al dependenei
jonciune. Dependena funcional este caz particular al dependenei
multivaloare.
b) Proiectare schemei externe are rolul de a specifica viziunea
fiecrui utilizator asupra BDR. Pentru acest lucru, din schema conceptual
se identific datele necesare fiecrei viziuni. Datele obinute se structureaz
logic n subscheme innd cont de facilitile de utilizare i de cerinele
utilizator. Schema extern devine operaional prin construirea unor viziuni
(view) cu SGBD-ul i acordarea drepturilor de acces. Datele ntr-o viziune
pot proveni din una sau mai multe colecii i nu ocup spaiul fizic.
c) Proiectarea schemei interne presupune stabilirea structurilor de
memorare fizic a datelor i definirea cilor de acces la date. Acestea sunt
specifice fie SGBD-ului (scheme de alocare), fie sistemului de operare.
Proiectarea schemei interne nseamn estimarea spaiului fizic pentru BDR,
definirea unui model fizic de alocare (a se vedea dac SGBD-ul permite
explicit acest lucru) i definirea unor indeci pentru accesul direct, dup

cheie, la date.
Proiectarea modulelor funcionale ine cont de concepia general a
BDR, precum i de schemele proiectate anterior. n acest sens, se
proiecteaz fluxul informaional, modulele de ncrcare i manipulare a
datelor, interfeele specializate, integrarea elementelor proiectate cu
organizarea i funcionarea BDR.
3) Realizarea componentelor logice. Componentele logice ale unei
BD sunt programele de aplicaie dezvoltate, n cea mai mare parte, n
SGBD-ul ales. Programele se realizeaz conform modulelor funcionale
proiectate n etapa anterioar. Componentele logice in cont de ieiri, intrri,
prelucrri i coleciile de date. n paralel cu dezvoltarea programelor de
aplicaii se ntocmesc i documentaiile diferite (tehnic, de exploatare, de
prezentare).
4) Punerea n funciune i exploatarea. Se testeaz funciile BDR
mai nti cu date de test, apoi cu date reale. Se ncarc datele n BDR i se
efectueaz procedurile de manipulare, de ctre beneficiar cu asistena
proiectantului. Se definitiveaz documentaiile aplicaiei. Se intr n
exploatare curent de ctre beneficiar conform documentaiiei.
5) Dezvoltarea sistemului. Imediat dup darea n exploatare a BDR,
n mod continuu, pot exista factori perturbatori care genereaz schimbri n
BDR. Factorii pot fi: organizatorici, datorai progresului tehnic, rezultai din
cerinele noi ale beneficiarului, din schimbarea metodologiilor etc.
1.3. DEFINIREA SISTEMULUI DE GESTIUNE A BAZELOR DE
DATE RELAIONALE (SGBDR)
Teoria relaional, foarte bine pus la punct ntr-un domeniu de
cercetare distinct, a dat o fundamentare solid realizrii de SGBD-uri
performante. La sfritul anilor 80 i apoi n anii 90 au aprut, n special o
dat cu ptrunderea n mas a microcalculatoarelor, numeroase SGBDR-uri.
Aceasta a nsemnat o evoluie de la SGBD-urile de generaia nti
(arborescente i reea) spre cele de generaia a doua (relaionale). Aceast
evoluie s-a materializat, n principal n: oferirea de limbaje de interogare
neprocedurale, mbuntirea integritii i securitii datelor, optimizarea i
simplificarea acceselor.
Teoria relaional este un ansamblu de concepte, metode i
instrumente care a dat o fundamentare riguroas realizrii de SGBDR
performante.
Paralela ntre conceptele utilizate n evoluia organizrii datelor n
memoria extern pn la sistemele relaionale este prezentata in tabelul 1.3:

Tabelul 1.3
FIIERE

TEORIA BD

Fiier
nregistrare

Colecie de date
Familie de
caracteristici
Caracteristic
Domeniu de valori

Cmp
Valoare

TEORIA
RELAIONAL
Relaie
Tuplu

Tabela
Linie

Atribut
Domeniu

Coloan
Domeniu

SGBDR

Regulile lui Codd


E.F. Codd (cercettor la IBM) a formulat 13 reguli care exprim
cerinele maximale pentru ca un SGBD s fie relaional. Regulile sunt utile
pentru evoluarea performanelor unui SGBDR. Acestea sunt:
R0. Gestionarea datelor la nivel de relaie: limbajele utilizate trebuie
s opereze cu relaii (unitatea de informaie).
R1. Reprezentarea logic a datelor: toate informaiile din BDR
trebuie stocate i prelucrate ca tabele.
R2. Garantarea accesului la date: LMD trebuie s permit accesul la
fiecare valoare atomic din BDR (tabel, coloan, cheie).
R3. Valoarea NULL: trebuie s se permit declararea i prelucrarea
valorii NULL ca date lips sau inaplicabile.
R4. Metadatele: informaiile despre descrierea BDR se stocheaz n
dicionar i trateaz ca tabele ,la fel ca datele propiu-zise.
R5. Limbajele utilizate: SGBDR trebuie s permit utilizarea mai
multor limbaje, dintre care cel puin unul s permit definirea tabelelor (de
baz i virtuale), definirea restriciilor de integritate, manipularea datelor,
autorizarea accesului, tratarea tranzaciilor.
R6. Actualizarea tabelelor virtuale: trebuie s se permit ca tabelele
virtuale s fie i efectiv actualizabile, nu numai teoretic actualizabile
(exemplu atributul valoare dintr-o tabel virtual nu poate fi actualizat).
R7. Actualizrile n baza de date: manipularea unei tabele trebuie s
se fac prin operaii de regsire dar i de actulizare.
R8. Independena fizic a datelor: schimbarea stucturii fizice a
datelor (modul de reprezentare (organizare) i modul de acces) nu afecteaz
programele.
R9. Independena logic a datelor: schimbarea structurii de date
(logice) a tabelelor nu afecteaz programele.
R10. Restriciile de integritate: acestea, trebuie s fie definite prin
LDD i stocate n dicionarul (catalogul) BDR.
R11. Distribuirea geografic a datelor: LMD trebuie s permit ca

programele de aplicaie s fie aceleai att pentru date distribuite ct i petru


date centralizate (alocarea i localizarea datelor vor fi n sarcina SGBDRului).
R12. Prelucrarea datelor la nivel de baz (sczut): dac SGBDR
posed un limbaj de nivel sczut (prelucrarea datelor se face la nivel de
nregistrare), acesta nu trebuie utilizat pentru a evita restriciile de
integritate.
Regulile lui Codd pot fi grupate, conform cerinelor exprimate n
cinci categorii, conform tabelului 1.4.

Tabelul 1.4. Gruparea regulilor lui Codd


R0 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12
1.Reguli de
baz (funda- da
da
mentale)
2.Reguli
da
da
structurale
3.Reguli
privind
da
da
integritatea
datelor
4.Reguli
privind
da
da da
da
manipularea
datelor
5.Reguli
privind
da da
da
independena
datelor
Regulile lui Codd sunt greu de indeplinit n totalitate de ctre
SGBDR. Pornind de la cele 13 reguli de mai sus, au fost formulate o serie
de criterii (cerine) pe care trebuie s le ndeplineasc un SGBD pentru a
putea fi considerat relaional ntr-un anumit grad. S-a ajuns astfel, la mai
multe grade de relaional pentru SGBDR: cu interfa relaional (toate
datele se reprezint n tabele, exist operatorii de selecie, proiecie i
jonciune doar pentru interogare), pseudorelaional (toate datele se
reprezint n tabele, exist operatorii de selecie, proiecie i jonciune fr
limitri), minimal relaional (este pseudorelaional i n plus, operaiile cu
tabele nu fac apel la pointeri observabili de utilizatori), complet relaional
(este minimal relaional i n plus, exist operatorii de reuniune, intersecie
i diferen, precum i restriciile de integritate privind unicitatea cheii i
restricia referenial).
n concluzie, SGBDR este un sistem software complet care
implementez modelul de date relaional i respect cerinele impuse de
acest model. El este o interfa ntre utilizatori i baza de date.

1.4. CARACTERIZAREA SGBDR


Sistemele relaionale ndeplinesc funciile unui SGBD cu o serie de
aspecte specifice care rezult din definirea unui SGBDR.
Caracterizarea SGBDR se poate face pe dou niveluri: global
(sistemele relaionale sunt privite ca o categorie distinct de SGBD) i
particular (fiecare SGBDR are aspecte individuale comparativ cu altele
similare).
A. Mecanismele i instrumentele care ajut la caracterizarea
global a SGBDR-urilor sunt: limbajele relaionale, protecia datelor,
optimizarea cererilor de regsire, utilitarele specializate.
1) Limbajele relaional
SGBDR ofer seturi de comenzi pentru descrierea i manipularea
datelor. Acestea pot fi incluse ntr-un singur limbaj relaional (SQL, QUEL,
QBE, SQUARE, ALPHA, ISBL) sau separate n LDD i LMD. n ambele
situaii, comenzile pentru definirea datelor sunt distincte de cele pentru
manipularea datelor.
Limbajele relaionale de definire a datelor (LDD) sunt simplificate,
cu puine comenzi. Descrierea datelor este memorat n BDR, sub form de
tabele, n dicionarul (metabaza) bazei de date. Faciliti de descriere sunt
prezente n SGBDR prin comenzi, care definesc anumite operaii, la
nivelurile: conceptual, logic, fizic.
Limbajele relaionale de manipulare a datelor (LMD) pot fi
caracterizate dup criterii generale, funcionale i calitative.
a) Caracterizarea general a LMD se face dup modul de tratare a
datelor, operatorii relaionali, realizatorii i utilizatorii limbajului.
Modul de tratare a datelor. Toate LMD relaionale realizeaz o
tratare la nivel de ansamblu a datelor: unitatea de informative pentru lucru
este tabela. Avantajele sunt date de posibilitatea gestionrii automat a
tuplurilor duplicate i prelucrarea paralel a ansamblurilor.
La comunicarea unui LMD relational cu un limbaj universal,
avantajele se pierd deoarece comunicarea se poate face doar tuplu cu tuplu
i nu la nivel de ansamblu. Deoarece limbajele universale ofer alte
avantaje legate de proceduralitate, soluia este de a integra n acestea un
limbaj relaional. Cursorul este soluia n SGBDR pentru a face trecerea de
la tratarea la nivel de ansamblu la cea la nivel de nregistrare (tuplu).
Operatorii relaionali implementai. SGBDR s-au dezvoltat, din
punct de vedere relaional, avnd la baz calculul relaional orientat pe tuplu
(ALPHA, QUEL), calculul relaional orientat pe domeniu (QBE), algebra
relaional (ISBL), transformarea (mapping) (SQL, SQUARE). Limbajele
bazate pe calculul relaional sunt neprocedurale, cele bazate pe algebra

relaional sunt procedurale, celelalte sunt combinaii.


Realizatorii limbajelor relaionale s-au orientat pe domenii precise
din teoria relaional. Astfel, au rezultat: limbaje relaionale standardizate
internaional (exemplu SQL - ANSI), limbaje cu standard de utilizare impus
de constructor (exemplu QUEL), limbaje nestandardizate (celelalte limbaje
relaionale).
Utilizatorii limbajelor relaionale sunt mult diversificai. SGBDR
ofer att elemente procedurale (pentru specialiti) ct i neprocedurale
(pentru nespecialilti).
b) Caracterizarea funcional a LMD se face dup facilitile de
interogare, actualizare a datelor, etc.
Facilitile de interogare a datelor. Acestea sunt puternice i oferite
prin comenzi pentru interogarea tabelelor de baz (exemplu SELECT) i
interogarea tabelelor virtuale (exemplu SELECT).
Facilitile de actualizare a datelor. Acestea se refer la
actualizarea tabelelor de baz i a tabelelor virtuale prin comenzile: INSERT
INTO (adaug rnduri la sfritul unei tabele); UPDATE ( modific rnduri
dintr-o tabel); DELETE FROM (terge rnduri dintr-o tabel). Unele
SGBDR nu permit actualizarea tabelelor virtuale (exemplu Foxpro), altele
permit acces lucru cu o serie de restricii pentru ca operaia s se propage
spre tabelele de baz fr ambiguiti (exemplu DB2, Oracle).
Alte faciliti funcionale. La facilitile relaionale de mai sus,
SGBDR-urile ofer i alte faciliti pe care le au toate limbajele de
programare procedurale cum sunt: calculul aritmetic prin operatorii specifici
(+, -, *, /, **); agregarea prin funcii standard (SUM) i prin comenzi
(COMPUTE OF expr ); comenzi de intrare/ieire standard
(ACCEPTPROMPT).
c) Caracterizarea calitativ a LMD se face dup puterea selectiv,
uurina de nvare, utlizare i eficiena limbajului.
Puterea selectiv a LMD relaionale este dat de posibilitatea
selectrii datelor dup criterii (filtre) complexe (exemplu comanda
SELECT).
Uurina de nvare i utilizare este nuanat n funcie de tipul
LMD-ului relaional. Cele bazate pe calculul relaional sunt neprocedurale
(descriptive), deci uor de nvat i utilizat (apropiat, ca stil, de limbajul
natural) (exemplu QUEL) iar cele bazate pe algebra relaional sunt
procedurale (algoritmice), deci mai greu de nvat i utilizat (exemplu
ISBL). Cele intermediare promoveaz stilul neprocedural dar accept i
elemente de control procedural (exemplu SQL) iar cele bazate pe grafic
ofer primitive grafice pentru machetarea cererilor de regsire, deci uor de
utilizat (exemplu QBE).

Eficiena utilizrii este determinat de posibilitatea optimizrii


cererilor de regsire. LMD bazate pe calculul relaional las compilatorul s
aleag ordinea de execuie a operaiilor, deci rezult o eficiena mare. LMD
bazate pe algebra relaional au o ordine impus pentru execuia operaiilor,
deci rezult o eficien mica.
2) Protecia datelor
Aspectele privind protecia datelor sunt foarte importante pentru un
sistem de baz de date i ele trebuie implementate de ctre SGBDR.
Protecia bazei de date se refer la integritatea datelor (integritatea
semantic, concurena la date, salvarea/restaurarea) i securitatea datelor
(autorizarea accesului, viziunile, procedurile speciale, criptarea).
a) Integritatea semantic. Definirea restriciilor de integritate se
face, conform cerinelor modelului relaional, n LDD (exemplu CREATE
TABLE, ALTER TABLE). Utilizarea restriciilor de integritate se face cu
ajutorul unor mecanisme care controleaz validitatea regulilor pentru fiecare
nou stare a BD. Aceste mecanisme sunt metode de detectare a
inconsistenei datelor (se verific restrciiile de integritate) la sfritul
tranzaciilor, care se realizeaz automat de SGBDR i puncte de verificare a
integritii fixate de utilizator, acolo unde dorete el n program.
b) Concurena la date (coerena). Unitatea de lucru pentru
asigurarea coerenei datelor este tranzacia. Aceasta este un ansamblu de
comenzi tratate unitar. Tranzacia se execut n totalitate sau deloc. Coerena
poate fi afectat la actualizarea concurent sau la incidente.
Mecanismele utilizate de SGBDR pentru asigurarea coerenei
datelor (controlul accesului concurent) sunt:
Blocarea la diferite niveluri: baz de date, tabel, tuplu, atribut;
Definirea unor puncte de salvare n interiorul tranzaciilor (exemplu
comanda savepoint);
Tranzacii explicite (begin i end transaction) i implicite (comenzile
de actualizare);
Fiiere jurnal.
3) Optimizarea regsirii
Cererile de regsire se exprim n SGBDR n diferite limbaje
relaionale. Pentru a se obine un rezultat optim, se utilizeaz interfee
automate de rescriere a cererilor de regsire, prin parcurgerea a doi pai:
Exprimarea cererilor de regsire sub forma unor expresii algebrice
relaionale, care are la baz echivalena dintre calculul i algebra
relaional .
Aplicarea unor transformri algebrice relaionale asupra
expresiilor construite n pasul anterior, pentru a se obine expresii

relaionale echivalente i eficiente.


Transformarea se poate realiza prin doua strategii de optimizare:
generale, specifice.
Strategiile generale sunt independente de modul de memorare a
datelor. Ele se bazeaz pe propietile operaiilor din algebra relaional
(comutativitatea, asociativitatea, compunerea ). Astfel de strategii sunt:
selecia naintea jonciunii, proiecia naintea jonciunii, selecia naintea
proieciei, combinarea seleciei multiple.
Strategiile specifice in cont de modul de memorare a datelor i ele
sunt caracteristice unui SGBDR. Elementele care influeneaz executarea
operaiilor ce intervin la o cerere de regsire sunt: accesul direct, reguli de
ordonare a expresiilor algebrice specifice unui SGBDR.
4) Utilitarele specializate
Posibilitatile de utilizare ale unui SGBDR sunt influenate de
utilitarele specializate pe care le are, pentru diferitele categorii de utilizatori
(n Oracle: Developer pentru dezvoltatori, Designer pentru analiti,
Administration Tools i Utilities pentru administrator etc.).
B. Pentru a face o caracterizare particular,un anumit SGBDR
vom lua n considerare o serie de criterii de comparaie. Aceste criterii se
vor urmri, grupate pe anumite categorii, pentru cteva SGBDR-uri care ne
intereseaz. Dup aceast analiz vom avea un argument serios pentru a
putea alege un SGBDR n scopul dezvoltrii unei aplicaii cu baze de date.
Gruparea caracteristicilor particulare de comparaie a SGBDR-urilor
o vom face n funcie de facilitile de descriere, manipulare, utilizare i
administrare a datelor.
Caracteristicile n funcie de facilitile de descriere sunt: modul de
implementare a modelului relaional; conceptul de baz de date utilizat n
schem; definirea metadatelor; definirea relaiilor virtuale; actualizarea
schemei relaiei; restriciile de integritate ce pot fi declarate.
Caracteristicile n funcie de facilitile de manipulare sunt: LMD
relaional implementat; funciile de calcul aritmetic i funciile agregate;
modurile de acces la date; programarea orientat-obiect; tratarea valorii
NULL; optimizarea cererilor de regsire; actualizarea relaiilor de baz i
virtuale.
Caracteristicile n funcie de facilitile de utilizare i administrare
sunt: instrumentele de dezvoltare; instrumentele CASE; instrumentele
analize statistice; software-ul pentru acces de la distan; utilitarele de
ntreinere; mecanismele pentru autorizarea accesului la date.

1.5. EXEMPLE DE SISTEME DE GESTIUNE A BAZELOR DE DATE


RELAIONALE

Oracle. Este realizat de firma Oracle Corporation USA. Sistemul


este complet relaional, robust, se bazeaz pe SQL standard extins.
Arhitectura sistemului este client/server, permnd lucrul, cu obiecte i
distribuit. Are BD Internet i modul de optimizare a regsirii. Ultima
versiune este Oracle 10g.
DB2. Este realizat de firma IBM. Sistemul respect teoria
relaional, este robust i se bazeaz pe SQL standard. Permite lucrul
distribuit i are modul de optimizare a regsirii.
Informix. Este realizat de firma Informix, respect teoria relaional
i permite lucru distribuit.
Progress. Este realizat de firma Progress Software. Are limbaj
propriu (Progress 4GL) dar suport i SQL. Ruleaz pe o gam larg de
calculatoare sub diferite sisteme de operare.
SQL Server. Este realizat de firma Microsoft. Se bazeaz pe SQL i
ruleaz n arhitectura client/server.
Ingress II. Este realizat de firma Computer Associates. Este un
SGBDR complet, implementeaz dou limbaje relaionale (nti QUEL i
apoi SQL) i este suportat de diferite sisteme de operare (Windows, UNIX).
Lucreaz distribuit n arhitectura client/server, are extensie cu faciliti
orientate obiect i permite aplicaii de tip Internet. Organizarea fizic a
tabelelor se face prin sistemul de operare.
Visual FoxPro. Este realizat de firma Microsoft. Are un limbaj
procedural propiu foarte puternic, o extensie orientat obiect, programare
vizual i nucleu extins de SQL.
Access. Este realizat de firma Microsoft. Se bazeaz pe SQL, are
limbajul procedural gazd (Basic Access) i instrumente de dezvoltare.
Paradox. Este realizat de firma Borland. Are limbaj procedural
propiu (PAL) i suport SQL.

S-ar putea să vă placă și