Sunteți pe pagina 1din 75

1.

ELEMENTE DE TEORIA BAZELOR DE DATE


1.1. Organizarea datelor
Activitatea uman include o mulime de activiti desfurate pentru a satisface diverse necesiti,
fie ele de natur material sau spiritual. Pentru desfurarea acestor activiti s-au dezvoltat
ntreprinderi i organizaii speciale care, n vederea ndeplinirii scopului propus, necesit manevrarea
unui volum ridicat de informaii. Au aprut i s-au dezvoltat sisteme informaionale care ocup astzi
un loc important n funcionarea complexului mecanism reprezentat de societatea modern. Sisteme
informaionale reprezint un ansamblu de tehnici i metode de organizare i manevrare a informaiilor
specifice unui anumit domeniu de activitate (ex. circuitul informaiilor ntr-o ntreprindere, evidena
populaiei, evidena crilor ntr-o bibliotec etc.), de la generarea acestora i pn la tergerea sau
stocarea lor. Apariia calculatorului electronic a permis automatizarea acestor activiti conducnd la
apariia sistemelor informatice.
Sistemele informatice sunt sisteme de organizare, manevrare i exploatare a informaiilor
(respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a
rezolva problemele legate de manevrarea informaiilor, reprezentate prin intermediul datelor, apare ca
o necesitate existena unor modele i mecanisme de organizare a datelor deoarece, de modul n care
sunt organizate datele depinde eficiena sistemului informatic. Bazele de date, ca principale
componente ale sistemelor informatice, ofer tocmai aceste modele i mecanisme de organizare a
datelor.
Pentru nceput trebuiesc clarificate noiunile de informaie i date.
Datele sunt reprezentri simbolice ale unor fenomene, procese, obiecte etc. susceptibile a fi stocate
pe un suport de memorie extern, i care pot fi manevrate folosind diverse mijloace tehnice (exemple
de date: cifre, iruri de caractere, imagini, culori etc.).
Informaia reprezint sensul pe care oamenii l acord datelor (astfel c aceeai dat poate
reprezenta diverse informaii, funcie de cei care o folosesc).
Organizarea datelor presupune efectuarea urmtoarele activiti:
-

definirea, structurarea, ordonarea i gruparea datelor;

stabilirea legturilor ( relaiilor ) ntre date, ntre elementele unei colecii de date i ntre
colecii de date;

stocarea datelor pe un suport informaional, prelucrabil ntr-un sistem de calcul.

Organizarea datelor se realizeaz pentru a permite regsirea lor automat dup anumite criterii i
forme.
Obiectivele urmrite la organizarea datelor sunt:
-

realizarea unui acces rapid la date stocate pe diferite suporturi de memorie;


5

spaiul de memorie intern i extern ocupat s fie ct mai mic (economie de memorie);

datele s apar o singur dat n sistem (unicitatea datelor);

modul de organizare a datelor s reflecte, pe ct posibil, toate legturile dintre obiectele,


fenomenele, procesele pe care acestea le reprezint;

schimbarea structurii datelor i a relaiilor dintre ele s se fac fr a modifica programele ce le


gestioneaz (flexibilitatea datelor).

Conceptele de baz utilizate n activitatea de organizare a datelor sunt: entitate, atribut, valoare.
Entitatea reprezint un obiect concret sau abstract, caracterizat de proprietile sale.
O proprietate a unui obiect poate fi exprimat printr-o pereche (ATRIBUT, VALOARE). Spre
exemplu: studentul X este n anul de studii II, unde anul de studii reprezint atributul, iar II
reprezint valoarea. Deoarece o entitate este caracterizat de proprietile sale nseamn c ea se
poate reprezenta prin mai multe perechi (ATRIBUT, VALOARE).
De exemplu, o persoan X poate fi reprezentat prin mulimea de perechi: (NUME, IONESCU),
(VRSTA, 25), (SEX, MASCULIN), (PROFESIE, INGINER). Se observ ns c mulimea
atributelor NUME, VRSTA, SEX, PROFESIE poate fi asociat cu mai multe persoane care se
individualizeaz prin valorile acestor atribute. Rezult c un atribut nu caracterizeaz doar o entitate,
ci poate caracteriza o clas de entiti numit entitate grup.
Atributele mai sunt cunoscute i sub numele de cmpuri sau caracteristici.
Un atribut este caracterizat de mulimea valorilor pe care le poate lua. Aceste valori pot fi
numerice, alfanumerice (iruri de caractere) etc. n general atributele au valori elementare, dar pot
exista i situaii de atribute compuse (formate prin nlnuirea mai multor atribute elementare).
Atributele care identific n mod unic o anumit entitate se numesc atribute cheie, celelalte atribute
numindu-se atribute non-cheie.

1.2. Relaii ntre date


Datele folosite pentru a descrie diverse procese, fenomene sau obiecte se gsesc n legtur una cu
alta. ntre datele care aparin unor tipuri de entiti pot exista dou categorii de legturi:
-

o categorie de legturi definit de nsi apartenena datelor la o anumit entitate;

o a doua categorie constituit de legturile dintre entitile de acelai tip sau de tipuri diferite.

Exemplu:
Fie A mulimea datelor despre salariaii unei societi comerciale. ntre datele acestei mulimi se
pot stabili relaii de tipul:
- x are aceeai profesie cu y;
- x este eful lui y;
- x este mai n vrst dect y;
6

- x are salariul mai mare sau egal cu al persoanei y etc.


Relaia binar
Dac lum exemplul anterior putem spune c relaia are aceeai profesie cu asociaz fiecrui
salariat din mulimea A pe toi cei care au aceeai profesie, cu condiia s fac parte tot din A. Astfel,
se pune n eviden o mulime de perechi ordonate (x,y) cu proprietatea c elementelor x li se asociaz
elementele y prin relaia are aceeai profesie cu. Aceasta se poate reprezenta astfel:

x, y A A

/ x, y A si " x

are aceeasi profesie cu

y"

Definiie. Fie A o colecie oarecare de date, nevid. Se numete relaie binar pe A o submulime
R a produsului cartezian A x A care ndeplinete o proprietate (o legtur).
Numim elemente asociate prin relaia R acele elemente x, y pentru care x, y R .
Dac x, y R spunem c x este asociat lui y prin relaia R sau c x este n relaia R cu y, fapt
care se mai simbolizeaz prin x R y.
Proprietile relaiei binare dintre date sunt:
1. Reflexivitate. Spunem c o relaie R, definit pe o mulime de date A, este reflexiv dac pentru
x R , avem x R x.

Exemplu: x x, x R .
2. Simetrie. O relaie R definit pe mulimea de date A spunem c este simetric dac pentru

x, y A, xRy

implica yRx .

Exemplu: Fie A mulimea judeelor rii.


Dac x este vecin cu y rezult c y este vecin cu x.
3. Asimetrie. Spunem c o relaie R definit pe o mulime de date A este antisimetric dac pentru

x, y A cu proprietatea c x R y i y R x, avem x=y.


Exemplu: x y i y x implic x y .
4. Tranzitivitate. Fie A o mulime de date. Spunem c o relaie R pe mulimea A este tranzitiv
dac pentru x, y, z A cu proprietatea c x R y i y R z, atunci x R z.
Exemplu: Dac produsul x intr n componena lui y i y intr n componena lui z,
atunci x intr n componena lui z.
Definiie. O relaie binar R, definit pe mulimea de date A se numete relaie de echivalen
dac este reflexiv, simetric i tranzitiv.
7

Definiie. Fie A o colecie de date. Dac

x, y A ,

exist relaia x R y sau y R x, spunem c

relaia dintre elementele coleciei este de ordine total.


Definiie. O relaie binar R, definit pe o mulime de date A, care este reflexiv, asimetric i
tranzitiv se numete relaie de ordine.
Definiie. Relaia binar R, definit pe o mulime de date A, care este reflexiv i tranzitiv se
numete relaie de preordine.

1.3. Structuri de date


Prelucrarea i manevrarea eficient a datelor impune folosirea unor structuri de date complexe.
Tipurile de structuri de date folosite n sistemele informatice depind de sistemul informaional
automatizat i de tehnologiile de prelucrare a datelor folosite.
Structura de date este definit ca o colecie de date ntre care s-au stabilit o serie de relaii care
conduc la un anumit mecanism de selecie i identificare a componentelor. Mulimea de date asociat
structurii poate fi alctuit din datele unui tip sau mai multor tipuri de entiti. Componentele unei
structuri de date pot fi individualizate i identificate prin nume (identificator) sau prin poziia pe care
o ocup n structur (n raport cu ordinea specificat).
Dup modul de localizare al unei componente, o structur de date poate avea acces direct sau
secvenial. Accesul secvenial presupune parcurgerea tuturor componentelor structurii, aflate naintea
componentei cutate, n timp ce accesul direct permite localizarea unei componente fr a ine seama
de celelalte componente.
Elementele care formeaz o structur de date pot fi date elementare sau pot fi ele nsele structuri de
date.
Operaiile care se pot efectua asupra structurilor de date se refer la valori i/sau la structur.
Dintre acestea, cele mai frecvente sunt:

crearea datelor (memorarea datelor n forma iniial pe suportul de memorie);

consultarea datelor (accesul la componentele structurii n vederea prelucrrii valorilor);

actualizarea datelor (schimbarea strii structurii prin adugarea, tergerea unor elemente

componente, modificarea valorii unor elemente, modificarea relaiilor dintre elemente);

sortarea datelor (aranjarea elementelor unei structuri dup anumite criterii);

ventilarea structurii (spargerea structurii n dou sau mai multe structuri);

fuzionarea (formarea unei noi structuri din dou sau mai multe structuri);

copierea;

interclasarea etc.

Structurile de date care au aceeai organizare i sunt supuse acelorai operaii formeaz un tip de
structur de date.
Un tip de structur de date este o mulime ordonat de date ntre care s-au stabilit anumite relaii i
pentru realizarea operaiilor se folosete un grup de operatori de baz cu o anumit semantic.
Clasificarea structurilor de date
Clasificarea structurilor de date se poate realiza dup mai multe criterii. Dup tipul componentelor,
structurile de date se clasific n:

structuri omogene, n care componentele sunt toate de acelai tip;

structuri eterogene, n care componentele sunt de tipuri diferite.

Dac o structur se poate descompune n structuri de acelai tip atunci avem o structur recursiv.
Dup posibilitatea de modificare a structurii, avem:

structuri statice, care pe tot parcursul existenei lor au acelai numr de componente n aceeai
ordine;

structuri dinamice, care permit modificarea numrului de componente sau a poziiei acestora
n structur, prin aplicarea operatorilor specifici strucutrii. Aceste structuri pot avea, teoretic,
un numr nelimitat de componente i de aceea se mai numesc structuri cu cardinalitate
infinit.

Asemntor, structurile statice se consider c sunt structuri cu cardinalitate finit.


Din punct de vedere al nivelului de structurare al datelor avem:

structura logic, care se refer la modul de ordonare al datelor i la operatorii folosii pentru

tratarea datelor;

structura fizic, ce se refer la modul de implementare, de reprezentare efectiv pe un suport

de memorie;
Principalele tipuri de structuri logice de date sunt:

structura punctual;

structura liniar;

structura arborescent;

structura reea;

structura relaional.

Structura punctual este reprezentat de o entitate grup izolat, care nu are legturi (relaii) cu alte
entiti.
Structura liniar (lista) este o structur care definete o relaie de ordine total ntre elementele
unei colecii de date. Dup cum am vzut mai nainte, o relaie de ordine total este o relaie care
9

exist ntre oricare dou elemente ale unei colecii de date. Structura liniar presupune c fiecare
element al structurii conine, pe lng informaiile care trebuiesc manevrate, informaiile necesare
pentru a realiza o legtur (relaie) cu alt element al aceleiai structuri.

Fig. 1.1. Structuri de date liniare


Acest tip de structur are urmtoarele caracteristici:
-

are un singur element iniial i un singur element terminal;

orice element care nu este iniial i nici terminal are un singur succesor imediat;

primul element nu are predecesori;

ultimul element nu are succesori;

dac exist o relaie ntre ultimul i primul element atunci structura este inelar sau circular;

relaiile stabilite ntre date sunt de tipul 1 la 1.

O structur este arborescent sau ierarhic (descendent) dac ntre elementele sale exist o
relaie de ordine. Aceasta nseamn c fiecare element (cu o singur excepie) provine din alt element
aflat pe un nivel ierarhic superior.

10

Fig. 1.2. Structur de date arborescent


Structura de date arborescent are urmtoarele caracterisitci:
-

elementele structurii se numesc noduri;

exist un element unic, numit rdcina arborelui, care nu are un predecesor;

orice nod diferit de rdcin are un predecesor imediat unic;

orice nod netermical are un numr finit de succesori imediai;

relaiile stabilita ntre noduri sunt de tipul 1 la m.

Se numete drum de lungime n-1 de la nodul ai1 la nodul ain succesiunea de noduri (ai1, ai2, ..., ain)
n care pentru a i , k , k n, a i , k 1 este un succesor imediat al lui aik. Drumul de lungime maxim
constituie nlimea arborelui.
Un arbore n care fiecare nod are strict numai doi succesori se numete arbore binar.
Structura de tip reea este o structur n care ntre elementele componente exist o relaie de
preordine. n acest caz elementele sunt legate unele de altele prin legturi multiple.
Caracteristicile acestui tip de structur de date sunt:
-

o reea este un graf n care, ntre dou noduri, exist legturi bidirecionale;

un nod are mai muli predecesori i el nsui poate fi predecesor pentru propriul su predecesor,
caz n care apar cicluri n reea. Un ciclu este un drum n care nodul iniial este acelai cu nodul
final.

ntre elementele reelei se stabilesc legturi de tipul m la n.

O reea n care exist doar legturi univoce ntre elemente se numete reea simpl. n caz
contrar reeaua spunem c este o reea complex. ntr-o reea simpl nu exist cicluri. Exemple de
reele simpl i complex sunt date n figura urmtoare.

11

Fig. 1.3. Exemple de reele de date


Structura relaional a datelor consider c acestea sunt organizate la nivel logic sub form de
tabele (relaii, tablouri) de date elementare, ntre care nu sunt legturi explicite. Fiecare linie dintr-un
asemenea tabel se numete nregistrare i fiecare element al unei nregistrri ce corespunde unei
anumte coloane se numete cmp.
Legturile ntre date sunt introduse indirect prin intermediul coloanelor comune la mai multe
tabele de date (vezi figura).
NUMEPRENUMEGRUPANR.
MATRICOLPopescuIon41751245IonescuAmalia54121452Vasiles
cuSergiu53211385

FACULTATESPECIALIZARENR.
MATRICOLPopescuIon1245IonescuAmalia1452VasilescuSergiu1
385

Fig. 1.4. Structura relaional a datelor

1.4. Modele de date


12

Prelucrarea datelor cu ajutorul calculatorului presupune folosirea unor modele de date, care
modeleaz diferite obiecte i/sau procese reale sau abstracte.
Pentru a putea defini un model de date trebuiesc precizate urmtoarele elemente:
-

structura modelului;

operatorii care acioneaz asupra structurilor de date folosite;

restriciile care se impun pentru meninerea corectitudinii datelor, restricii numite i reguli de
integritate.

Precizarea structurii modelului presupune descrierea tuturor obiectelor (entitilor) i a


caracteristicilor asociate acestora. Acest lucru se realizeaz folosind urmtoarele elemente generice:
-

cmpul; este cel mai mic element al structurii care poate fi accesat pentru prelucrare;

grupul simplu sau compus; este un set format din mai multe cmpuri i/sau grupuri;

nregistrarea, care este un ansamblu de grupuri i cmpuri, constituind totodat i elementul


generic al structurii.

Stabilirea relaiilor ntre obiecte se face prin stabilirea relaiilor care exist ntre nregistrrile
structurilor folosite la definirea modelului de date respectiv.
Structura unui model de date fr valori reprezint un obiect generic. O colecie de date cu valori
bine precizate i care respect un model definit reprezint o realizare sau o instan a tipului de
obiect precizat.
Legturile dintre obiecte (entiti) poart denumirea de asociere. Legturile dintre dou entiti pot
fi de trei tipuri:
-

legturi unu la unu . Aceasta nseamn c fiecare obiect are o legtur cu un alt obiect i
numai cu unul. De exemplu, relaia dintre locurile existente ntr-un cmin studenesc i
studeni. Un loc poate fi ocupat de un singur student, iar un student are dreptul la un singur loc
n cmin.

legturi unu la muli. n acest caz un obiect poate avea legturi (relaii) cu mai multe
obiecte. De exemplu, un student poate face parte dintr-o singur grup dar o grup poate avea
mai muli studeni.

legturi de tipul muli la muli. Acest tip de legtur presupune c fiecare obiect poate avea
multiple legturi (relaii) cu alte obiecte. Spre exemplu, un produs este cumprat de mai muli
clieni i un client poate achiziiona mai multe produse.

Operatorii care acioneaz asupra structurilor de date constituie cel de-al doilea element al unui
model de date. Aceti operatori pot fi de citire, memorare, modificare, jonciune etc.
Regulile de integritate sunt restricii menite s asigure meninerea corectitudinii datelor. Ca
exemple de astfel de restricii putem meniona:

13

s nu se permit tergerea valorilor atributelor unui client dac acesta nu a achitat integral
factura pentru cumprarea unui produs anume;

s nu se permit memorarea valorilor asociate unui produs dac nu se cunoate valoarea


unui anumit atribut caracteristic, numit atribut cheie etc.

Modelele de date se mpart, n funcie de modul n care se definesc elementele amintite mai sus, n:
modele ierarhice sau arborescente, modele reea, modele relaionale, modele orientate obiect etc.
Modelul ierarhic
Folosete tipuri de nregistrri care grupeaz toate atributele unei entiti. Pentru a realiza
asocierile dintre tipuri de nregistrri acest model folosete o structur de date arborescent (o
ierarhie).

Fig. 1.5. Ierarhie de date


O ierarhie are un tip de nregistrare definit ca rdcin i mai multe tipuri de nregistrri
subordonate, legate sub form de arbore.
Fiecare nod din arbore care nu este rdcin sau nod final are un singur nod superior i unul sau
mai multe noduri inferioare. Legtura de la un nod superior la unul inferior este de tipul unu la
muli, iar legtura de la un nod inferior la unul superior este de tipul unu la unu.
Modelul reea
n acest model, datele sunt reprezentate asemntor cu modelul ierarhic, cu deosebirea c fiecare
inferior poate avea mai muli superiori. Toate structurile de date, inclusiv legturile de tipul m la n
sunt definite natural, fr a recurge la artificii. n cadrul acestui model ntlnim dou tipuri de
structuri:
14

-tipul de nregistrare ( care asigur atributele unei entiti);


-tipul de set (care asigur legturile ntre tipurile de nregistrri).
Modelul relaional
Modelul relaional are la baz teoria matematic a relaiilor. El folosete o singur structur de
date: relaia (tabelul) care este o submulime a produsului cartezian al unor domenii (un domeniu este
reprezentat de o mulime de valori ale entitilor).
Modelul relaional poate fi privit ca o mulime de tabele obinute prin metoda normalizrii.
Normalizarea pleac de la o mulime de atribute (cmpuri de date) i o mulime de dependene
funcionale dintre atribute i conduce la o schem conceptual a modelului relaional ntr-o form
normalizat n care se vor elimina anomaliile de actualizri.
La cele trei modele de date prezentate mai sus se adaug modelul orientat obiect, modelul
distribuit i modelul funcional. Ordinea n care au fost prezentate modelele de date este cea istoric,
n ultimii ani utilizndu-se practic numai modelul relaional sau cel distribuit, datorit avantajelor fa
de celelalte modele.

1.5. Baze de date


Conceptul de baz de date a aprut n 1969 cu ocazia prezentrii primului raport CODASYL n
cadrul unei conferine pe probleme de limbaje de gestiune a datelor.
Evoluia metodelor i tehnicilor de organizare a datelor a fost determinat de necesitatea de a avea
un acces ct mai rapid i uor la un volum din ce n ce mai mare de informaii precum i de
perfecionarea echipamentelor de culegere, memorare, transmitere i prelucrare a datelor.
Ideea principal a organizrii datelor n baze de date se sprijin pe existena unui fiier de
descriere global a datelor prin care se realizeaz independena programelor fa de date i a
datelor fa de programe.
Accesul oricrui utilizator la baza de date se realiza prin intermediul fiierului de descriere
global a datelor. Fiierul de date coninea coleciile de date i legturile dintre ele.
n esen, conceptul de baz de date poate fi definit ca fiind una sau mai multe colecii de date
(Ki), aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele, (B={K 1,
K2, ...})
O baz de date astfel definit trebuie s ndeplineasc urmtoarele condiii:
15

s asigure o independen sporit a datelor fa de programe i invers;

structura bazei de date trebuie astfel conceput nct s asigure informaiile necesare i
suficiente pentru a satisface cerinele informaionale i de decizie ale utilizatorului;

s asigure o redundan minim i controlat a datelor;

s permit accesul rapid la informaiile stocate n baz.

Arhitectura general a bazelor de date a fost standardizat internaional i cuprinde urmtoarele


elemente componente:
-

baza de date propriu-zis n care se memoreaz colecia de date;

sistemul de gestiune al bazei de date, care este un ansamblu de programe ce realizeaz


gestiunea i prelucrarea complex a datelor;

un set de proceduri manuale i automate, precum i reglementrile administrative, destinate


bunei funcionri a ntregului sistem;

un dicionar al bazei de date (metabaza de date)), ce conine informaii despre date, structura
acestora, elemente de descriere a semanticii, statistici, documentaie etc.

echipamentele de calcul (hardware) utilizate (comune sau specializate);

personalul implicat (categorii de utilizatori: finali sau de specialitate, analiti-programatori,


gestionari, operatori).

Bazele de date sunt extrem de variate n funcie de criteriile de apreciere considerate. n continuare
sunt prezentate cteva criterii de clasificare:
-

dup orientare: generalizate, specializate;

dup modelul de date folosit: ierarhice, n reea, relaionale, orientate obiect;

dup amploarea geografic: locale, distribuite;

dup limbajele utilizate: autonome (cu limbaje proprii), cu limbaj gazd, mixte.

Componentele bazei de date pot fi structurate pe trei nivele, n funcie de clasa utilizatorilor
implicai:
-

nivelul logic. Este dat de viziunea programatorului de aplicaii, care realizeaz programele
de aplicaii pentru manipularea datelor i structura logic (subschema) corespunzroare
descrierii datelor aplicaiei;

nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care
realizeaz structura conceptual (schema) corespunztoare descrierii bazei de date i
administreaz componentele bazei de date pentru manipularea datelor;

nivelul fizic. Este date de viziunea inginerului de sistem care realizeaz structura fizic
corespunzroare descrierii datelor pe suportul fizic.

1.6. Sisteme de gestiune a bazelor de date


16

O baz de date poate fi privit ca o colecie de date stocate pe supori de memorie extern,
adresabile de ctre mai muli utilizatori i care satisface cerinele de informare ale acestora.
Sistemul de gestiune al bazei de date reprezint ansamblul de programe (software) care permite
ndeplinirea scopului pentru care a fost creat baza de date.
El trebuie s asigure realizarea urmtoarelor activiti:
-

definirea structurii bazei de date;

ncrcarea bazei de date;

accesul la date (interogare, actualizare);

ntreinerea bazei de date (colectarea i refolosirea spaiilor goale, refacerea bazei de date n
cazul unui incident);

reorganizarea bazei de date ( restructurarea i modificarea strategiei de acces);

protejarea datelor.

ntr-un alt sens, sistemul de gestiune al bazei de date se constituie ntr-o interfa ntre utilizator i
baza de date, reprezentnd mecanismul prin intermediul cruia acesta are acces la date.
Pentru a-i putea ndeplini funciunile prevzute, unui sistem de gestiune al bazei de date modern i
revin o serie de obiective de ndeplinit, cum sunt:
1. Asigurarea independenei datelor. Aceasta presupune c modificarea strategiei de memorare a
datelor sau a strategiei de acces la date nu trebuie s afecteze aplicaia care prelucreaz aceste date.
Independena datelor fa de aplicaie este necesar deoarece: diferite aplicaii au nevoie de viziuni
diferite ale acelorai date; administratorul bazei de date trebuie s aib libertatea de a schimba
structura de memorare sau strategia de acces, ca rspuns la cerine (schimbri de standarde,
prioritile aplicaiilor, schimbarea unitilor fizice de memorare etc.), fr a modifica aplicaiile
existente; baza de date existent, precum i programele de exploatare a ei reprezint o investiie
important la care nu trebuie s se renune prea uor.
Independena datelor trebuie privit din dou puncte de vedere: independena fizic i
independena logic a datelor.
Independena fizic a datelor implic modificarea tehnicilor fizice de memorare a datelor fr a
necesita rescrierea programelor de aplicaie.
Independena logic a datelor se refer la posibilitatea adugrii de noi articole de date sau
extinderea structurii conceptuale (globale), fr ca aceasta s impun rescrierea programelor
existente.
2. Asigurarea unei redundane minime i controlate a datelor din baza de date. Redundana se
refer la numrul de apariii n baza de date a unei date. }n general, stocarea datelor n baze de date ar
trebui s se fac astfel nct fiecare dat s apar o singur dat. Totui, exist cazuri n care, pentru a
reduce timpul de cutare al unei date i implicit timpul de rspuns la solicitrile utilizatorilor, se
17

accept o anumit redundan a datelor. Aceast redundan trebuie controlat automat, prin program,
pentru a se asigura coerena datelor din baz.
3. Asigurarea unor faciliti sporite de utilizare a datelor. Aceasta presupune:
-

folosirea datelor de ctre mai muli utilizatori n diferite aplicaii;

accesul ct mai simplu al utilizatorilor la date, fr ca acetia s fie nevoii s cunoasc


structura ntregii baze de date, acest lucru rmnnd n sarcina administratorului bazei de date;

existena unor limbaje performante de regsire a datelor, care permit exprimarea sub forma
unei conversaii, a unor criterii de selecie a datelor i indicarea unor reguli ct mai generale
pentru editarea informaiilor solicitate;

utilizarea unui limbaj ct mai apropiat de limbajul natural, cu posibilitatea exploatrii bazei de
date n regim conversaional, lucru care ar oferi posibilitatea exploatrii bazei de date

i de

ctre utilizatori neinformaticieni.


4. Sporirea gradului de securitate a datelor mpotriva accesului neautorizat la ele. n condiiile
bazelor de date, administratorul bazei de date poate prevedea ca acesul la baza de date s se fac
numai prin canalele corespunztoare, i poate, totodat, defini verificri de autorizare, realizate
oricnd se ncearc accesul neautorizat la anumite date.
5. Asigurarea integritii datelor mpotriva unor tergeri intenionate sau neintenionate, prin
intermediul unor proceduri de validare, a unor protocoale de control concurent i a unor proceduri de
refacere a bazei de date dup incidente.
6. Asigurarea partajabilitii datelor. Partajabilitatea datelor trebuie neleas nu numai sub
aspectul asigurrii accesului mai multor utilizatori la aceleai date, cii acela al posibilitii
dezvoltrii unor aplicaii fr a se modifica structura bazei de date.

1.7. Funciile unui sistem de gestiune a bazelor de date


Sistemele de gestiune a bazelor de date au o multitudine de sarcini de ndeplinit. Grupnd aceste
sarcini se obin activitile i apoi funciile sistemului de gestiune al bazei de date. innd seama de
complexitatea sistemului de gestiune, de facilitile oferite, de limbajele utilizate i tipul bazei de date
ce urmeaz a fi gestionat gruparea activitilor pe funcii poate avea un caracter relativ.
n continuare sunt prezentate cteva funcii mai importante ale sistemelor de gestiune a bazelor de
date, funcii cu caracter de generalitate, valabile pentru toate tipurile de sisteme de gestiune a bazelor
de date.
18

1. Funcia de descriere a datelor, care permite definirea structurii bazei de date cu ajutorul unui
limbaj de definire. Definirea datelor poate fi realizat la nivel logic, conceptual i fizic. La nivelul
acestei funcii se descriu multitudinea atributelor (cmpurilor) din cadrul structurii bazei de date,
legturile dintre entitile bazei de date sau dintre atributele aceleiai entiti, se definesc eventualele
criterii de validare a datelor, metodele de acces la date, aspectele referitoare la asigurarea integritii
i confidenialitii datelor etc.
2. Funcia de manipulare a datelor este cea mai complex funcie i realizeaz urmtoarele
activiti:
- crearea bazei de date;
- ncrcarea bazei de date;
- adugarea de noi nregistrri (tupluri);
- tergerea unor nregistrri;
- modificarea valorilor corespunztoare unor cmpuri;
- cutarea, sortarea i editarea parial sau total a unei nregistrri virtuale etc.
3. Funcia de utilizare asigur mulimea interfeelor necesare pentru comunicarea tuturor
utilizatorilor cu baza de date. n cadrul realizrii acestei funcii apar mai multe categorii de utilizatori:
-

utilizatori liberi sau conversaionali. Acetia reprezint categoriea beneficiarilor de


informaii (utilizatori finali) care utilizeaz limbajele de interogare a bazei de date ntr-o form
simplist. Ei apar ca utilizatori neinformaticieni.

utilizatori programatori, care utilizeaz limbaje de manipulare, realiznd proceduri complexe


de exploatare a bazei de date;

administratorul bazei de date, care este un utilizator special avnd un rol hotrtor n ceea ce
privete funcionarea optim a ntregului ansamblu.

4. Funcia de administrare a bazei de date. Aceasta apare ca o funcie complex i este de


competena administratorului bazei de date.
1.8. ntrebri de verificare a cunotinelor
2. Care este diferena ntre date i informaii ?
3. Care sunt obiectivele activitii de organizare a datelor ?
4. Ce activiti presupune organizarea datelor ?
5. Definii conceptele de entitate, atribut, valoare ?
6. Ce se nelege prin structur de date ?
7. De cte feluri pot fi structurile de date ?
8. Ce fel de operaii se pot efectua asupra unei structuri de date ?
9. Caracterizai structura de date arborescent ?
19

10. Caracterizai structura de date relaional ?


11. Care sunt componentele unui model de date ?
12. De cte tipuri pot fi legturile ntre entiti ?
13. Care este structura unei baze de date ?
14. Care sunt nivelele de structurare ale unei baze de date ?
15. Care sunt obiectivele pe care trebuie s le ndeplineasc un SGBD ?
16. Care sunt funciile unui SGBD ?

2. PROIECTAREA BAZELOR DE DATE


2.1. Etapele de realizare a bazelor de date
Pentru a realiza o baz de date este necesar parcurgerea unor etape care nu depind de tipul bazei
de date create. Aceste etape sunt:
-

analiza sistemului informatic pentru care se realizeaz baza de date i a cerinelor


informaionale solicitate de acest sistem;

proiectarea structurii bazei de date (schema conceptual, extern i intern);

ncrcarea datelor n baza de date;

exploatarea i ntreinerea bazei de date.

Coninutul acestor etape, respectiv activitile implicate i modul lor de desfurare depind, n
general, de tipul bazei de date precum i de domeniul de activitate pentru care se construiete baza de
date. Exist ns o serie de aspecte cu caracter general care nu sunt influenate de specificul unui
20

anumit domeniu de activitate sau de caracteristicile unui anumit tip de baze de date. n continuare vor
fi prezentate aceste aspecte generale, aspectele specifice urmnd a fi tratate atunci cnd vor fi tratate
diferite tipuri de baze de date.
Realizarea unei baze de date presupune i folosirea unor metode i tehnici de analiz (tehnica
normalizrii relaiilor, a diagramelor de dependen riguroas etc.), de programare precum i a unor
instrumente de lucru (limbaje de descriere a datelor - LDD, limbaje de manipulare a datelor - LMD
etc.) specifice.

2.2. Analiza sistemului informatic i a cerinelor sale


informaionale
Analiza sistemului informatic are ca scop elaborarea unuia sau mai multor modele ale acestui
sistem, modele care s permit ulterior elaborarea structurii bazei de date. Aceast analiz presupune
urmtoarele etape:
-

analiza componentelor sistemului i a legturilor (asocierilor) dintre acestea, activitate


cunoscut i sub numele de analiz static sau structural, n urma cruia se obine modelul
structural (static) al sistemului;

analiza strilor sistemului i a tranziiilor posibile ntre aceste stri, n raport de anumite
evenimente. Aceasta este aa numita analiz temporal (comportamental), prin care se obine
modelul dinamic (sau temporal) al sistemului;

analiza cerinelor informaionale, respectiv a transformrilor de date (a tranzaciilor) din


cadrul sistemului prin care sunt satisfcute cerinele informaionale asociate sistemului. n
urma acestei activiti se obine modelul funcional al sistemului informatic analizat;

integrarea modelelor sistemului informatic (structural, dinamic i funcional) n scopul


corelrii i completrii lor.
2.2.1. Analiza structural a sistemului informatic. Tehnica
diagramelor entitate-asociere

Analiza structural a sistemului informatic are ca obiectiv evidenierea componentelor (obiectelor)


din cadrul sistemului, pentru care urmeaz s se colecteze i s se memoreze date n cadrul bazei de
date, precum i evidenierea legturilor dintre aceste componente.
Exist astzi mai multe tehnici de analiz structural, cea mai utilizat dintre acestea fiind tehnica
entitate-asociere. Aceast tehnic permite constituirea modelului structural sub forma unei diagrame
entitate-asociere prin parcurgerea urmtorilor pai:
- identificarea componentelor (entitilor) din cadrul sistemului informatic analizat;
21

- identificarea asocierilor dintre entiti i calificarea acestora;


- identificarea atributelor aferente entitilor i asocierilor dintre entiti;
- stabilirea atributelor de identificare a entitilor.
Identificarea componentelor sistemului informatic
Componentele sistemului informatic sunt entiti (obiecte) care au anumite proprieti i care fac
schimb de informaii cu alte entiti ale sistemului. Ele sunt reprezentate n cadrul diagramei entitateasociere prin blocuri dreptunghiulare.
Considernd activitatea dintr-o instituie de nvmnt superior se pot identifica urmtoarele
entiti:
- cadre didactice

(CADRE_DIDACTICE);

- studeni

(STUDENI);

- personal didactic auxiliar

(PERS.DID.AUX.);

- personal administrativ

(PERS.ADMIN.);

- serviciul administrativ

(SERV.ADMIN.);

- serviciul personal

(SERV.PERS.);

- serviciul contabilitate

(SERV.CONTAB.);

- serviciul social

(SERV.SOCIAL).

Fiecare entitate poate prezenta n cadrul sistemului mai multe instane (realizri). n urma acestei
etape se elaboreaz o prim form a diagramei entitate-asociere, form prezentat n figura
urmtoare.

Fig. 2.1. Reprezentarea entitilor n diagrama entitate-asociere

Identificarea asocierilor dintre entiti i calificarea acestora


22

Componentele unui sistem nu sunt dect arareori izolate, ntre acestea stabilindu-se legturi
(asocieri). Spre exemplu, ntre entitile STUDENI i SERV.SOCIAL exist o asociere, n sensul c
serviciul social pune la dispoziia studenilor locuri de cazare n cmin.
Legturile dintre entiti sunt reprezentate prin arce neorientate, care fac legtura ntre nodurile ce
reprezint entitile participante la asociere.
Semnificaia legturii se exprim printr-un nume acordat legturii i se reprezint cu ajutorul unui
nod etichet n form de romb, plasat ca nod intermediar ntre entiti.
Tipul (forma) legturii se exprim cu ajutorul cardinalitii.
Cardinalitatea unei legturi reprezint numrul minim i numrul maxim de realizri (instane) de
entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprim prin
perechi de numere, cte o pereche pentru fiecare entitate din cadrul legturii.

Fig. 2.2. Reprezentarea unei legturi (asocieri) ntre dou entiti cu menionarea semnificaiei i
a cardinalitii
n figura de mai sus este prezentat modul de reprezentare al unei legturi cu menionarea
semnificaiei legturii i a cardinalitii acesteia. Cardinalitatea legturii de mai sus se poate interpreta
astfel:
-

Serviciul social este obligat s asigure, n limita locurilor disponibile n cmine, locuri de
cazare pentru toi studenii care solicit acest lucru chiar dac este vorba doar de un singur
student;

Pot solicita locuri de cazare n cmine un numr de studeni pn la numrul maxim de


studeni care locuiesc n alte localiti, fiind posibil i situaia n care nici un student nu
solicit cazare n cmin.

Legturile (asocierile) ntre entiti pot fi de mai multe tipuri i anume:


1. Dup cardinalitatea asocierii putem avea dou situaii, funcie de gradul asocierii, respectiv
obligativitatea participrii entitilor la asociere.
Dup gradul asocierii (valorile maxime ale cardinaliti) avem:
-

asocieri de tipul unu la unu. Aceasta nseamn c cel puin o realizare a fiecrei entiti
trebuie s participe la asociere.
23

asocieri de tipul unu la muli. n acest caz o realizare a unei entiti are legturi cu mai
multe realizri ale celeilalte entiti care particip la asociere.

asocieri de tipul muli la muli, caz n care mai multe realizri ale unei entiti participante
la legtur se asociez cu mai multe realizri ale celeilalte entiti.

Dup obligativitatea participrii entitilor la asociere (minimele cardinalitii) avem:


-

asocieri pariale; la care entitile nu sunt obligate s participe (deci pot avea valoarea minim
a cardinalitii zero);

asocieri totale sau complete; cnd cel puin o realizare a fiecrei entiti trebuie s participe la
sociere.

2. Dup numrul de entiti distincte care particip la asociere avem:


-

asocieri binare; care se realizeaz ntre dou entiti distincte;

asocieri recursive; asocieri ale entitilor cu ele nsele;

asocieri complexe; asocieri realizate ntre mai mult de dou entiti distincte.

3. Dup semnificaia lor asocierile se pot clasifica ntr-o multitudine de categorii datorit
semnificaiilor extrem de variate n cadrul unui anumit sistem informatic. n cadrul analizei
structurale este necesar s fie identificate i analizate asocierile dintre entitile aflate pe nivele de
abstractizare diferite, mai precis asocierile de tipul este un i este coninut n.
Asocierile de tipul este un
Entitile puse n eviden n cadrul primei etape de analiz structural pot prezenta diferite grade
de abstractizare, deci se pot plasa pe diferite nivele n cadrul schemei de clasificare a entitilor. n
acest sens exist entiti generice (clase), obinute printr-un proces de generalizare a entitilor cu
anumite caracteristici comune, numite subclase.
De exemplu, membrii unei universiti reprezint o entitate clas, care genereaz entitile
STUDENI i ANGAJAI, ultima genernd, la rndul ei, entitile CADRE DIDACTICE,
PERS.DID.AUXILIAR i PERS.ADMINISTRATIV.
Asocierea de tip este un se prezint ntotdeauna ca o asociere parial de tip unu la unu.
Asocierile de tipul este coninut n
Asocierile de tipul este coninut n exprim un proces de agregare, de grupare a mai multor
entiti ntr-o entitate de nivel superior. Spre deosebire de tipul este un, asocierea este coninut n
este calificat, dup cardinalitate drept asociere de tip unu la muli sau muli la muli, total sau
parial.

24

Identificarea atributelor aferente entitilor i asocierilor dintre entiti


Atributele exprim caracteristici, proprieti ale componentelor sistemului informatic analizat sau
ale asocierilor (legturilor) dintre aceste componente.
n cadrul diagramei entitate-asociere, atributele sunt figurate prin blocuri ovale, legate de entitatea,
respectiv asocierea pe care o descriu ntr-un mod specific, n funcie de tipul atributelor. Ex.:

Atributele pot fi de mai multe tipuri, dup cum urmeaz:


1.

Atribut compus (bloc). Acesta este un atribut format din cel puin dou alte atribute.
Valoarea sa este reprezentat de valorile atributelor componente. Ex.:

2. Atribut calculat (dedus). Acesta reprezint un atribut a crui valoare nu este cunoscut
direct, ci se calculeaz pe baza valorilor altor atribute (de exemplu, atributul VALOARE,
calculat ca produs ntre CANTITATE i PRE).
3. Atribut simplu; atribut care nu este nici compus i nici calculat. Valorile sale sunt valori
atomice, adic nu mai pot fi descompuse n elemente componente.
4. Atribut repetitiv multivaloare. Acesta este un atribut format din mai multe valori care se
repet de mai multe ori pentru aceeai entitate. De exemplu : entitatea STUDENT poate fi
caracterizat de atributele simple NUME i GRUP precum i de atributul repetitiv
DISCIPLIN, NOT care este identic pentru toate disciplinele audiate de un student.
5. Atribut de identificare (cheie). Reprezint un atribut care se caracterizeaz prin unicitatea
valorii sale pentru fiecare instan a entitii creia i aparine.
Atributele de identificare au un rol aparte n organizarea i manipularea informaiilor din baza de
date. Stabilirea atributelor de identificare pentru entitile din cadrul sistemului informatic analizat

25

necesit examinarea mai nti a capacitii fiecrui atribut de a se constitui drept atribut de
identificare (cheie).
Un atribut poate fi atribut de identificare dac ndeplinete o serie de cerine i anume:
-

ofer o identificare unic a realizrilor (instanelor) de entitate;

posed o semnificaie clar;

este uor de utilizat;

este scurt.

Pentru o aceeai entitate pot exista mai multe atribute care pot servi drept atribute de identificare,
adic pot exista mai multe chei candidate.
Selectarea unuia dintre candidaii cheie drept atribut de identificare a entitii (cheie) se realizeaz
astfel:
1. Se determin atributele care potenial pot constitui atribute de identificare a entitii, deci care
respect cerinele menionate anterior i care poart numele de candidai cheie. Dac nu exist
astfel de atribute se introduce un nou atribut (sau grup de atribute) drept candidat cheie.
2. Dac exist un singur candidat cheie, se va selecta acesta drept atribut de identificare a
entitii.
3. Dac exist mai muli candidai cheie, se selecteaz unul, cu ajutorul unor euristici, precum:
- se prefer atributele ale cror valori sunt mai puin volatile;
- se prefer atributele ale cror valori sunt mai scurte.

2.2.2. Analiza dinamic (de comportament) a sistemului

informatic

Analiza dinamic are drept scop explicarea comportamentului elementelor componente ale
sistemului informatic analizat. n urma acestei analize se obine modelul dinamic al sistemului
analizat.
Construirea modelului dinamic presupune urmtoarele etape:
-

identificarea strilor n care se pot afla componentele sistemului;

identificarea evenimentelor care determin trecerea unei componente dintr-o stare n alta;

stabilirea succesiunii (fluxului) de evenimente i construirea unei diagrame care s reflecte


tranziiile de stare pentru componentele sistemului (diagram de flux a evenimentelor).

26

La realizare diagramei de flux a evenimentelor este necesar s se in cont de restriciile dinamice


ale sistemului care servesc la identificarea tranziiilor admisibile ntre dou stri.

Fig. 2.3. Strile unei resurse de producie (utilaj, secie etc.) i tranziiile ntre aceste stri
n figura de mai sus sunt prezentate strile posibile ale unei resurse de producie generice.
Particularizarea acestui model pentru un depozit de materii prime este prezentat n figura urmtoare.

Fig. 2.4. Modelul dinamic al unui depozit de materii prime privit ca resurs de producie
2.2.3. Analiza cerinelor informaionale (analiza funcional a

sistemului)

Analiza cerinelor informaionale are drept scop determinarea transformrilor de date care se
produc n cadrul sistemului informatic analizat, n scopul satisfacerii cerinelor informaionale
aferente acestuia. Transformrile de date (tranzaciile) se vor reprezenta sub forme unei diagrame de
flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare
informaional, iar arcele reflect fluxurile informaionale.
27

n cadrul analizei funcionale accentul se deplaseaz de la realitatea analizat ctre cerinele


informaionale ale utilizatorilor, cerine a cror satisfacere constituie obiectivul realizrii bazei de
date.
Construirea modelului funcional presupune parcurgerea urmtoarelor etape:
-

identificarea datelor de intrare i a datelor de ieire din sistem;

construirea diagramelor de flux, prin care sunt reflectate legturile


procedurale dintre intrri i ieiri;

identificarea restriciilor;

precizarea criteriilor de optimizare.


n figura urmtoare sunt prezentate dou modele funcionale pariale, primul se refer la cutarea
preului unui articol dintr-un nomenclator de articole, iar al doilea la tranzaciile (transformrile de
date) care se fac pentru a opera o modificare ntr-un cont bancar al unui client.
Fig. 2.5. Modele funcionale pariale

2.2.4. Integrarea modelelor sistemului informatic analizat


Analiza sistemului informatic se finalizeaz prin integrarea modelelor structural, dinamic i a celui
funcional.
Modelul structural i cel dinamic sunt obinute prin investigarea sistemului real a proprietilor
intrinseci, statice i dinamice ale componentelor acestui sistem, proprieti care sunt independente de
aplicaiile care opereaz asupra lor.
Modelul funcional este rezultatul analizei cerinelor informaionale ale utilizatorilor, mai precis a
tranzaciilor (aplicaiilor) prin care pot fi satisfcute aceste cerine.
28

Perspectiva diferit din care este realizat analiza explic de ce rezultatele obinute pot s difere
fiind necesar o coordonare, deci o integrare a lor.
n cadrul etapei de integrare a modelelor sistemului se stabilete n ce msur modelul structural i
cel dinamic satisfac necesitile diferitelor aplicaii, verificndu-se completitudinea (existena
elementelor informaionale solicitate) i consistena lor (n ce msur componentele modelelor sunt
necesare i suficiente n raport cu procesele de prelucrare). Se verific dac relaiile dintre
componentele sistemului sunt stabilite n mod corespunztor, pentru a face posibil regsirea
informaiilor din mai multe entiti. Se determin, de asemenea, dac legturile dintre entiti asigur
coerena informaiilor, posibilitatea efecturii de actualizri concomitente asupra datelor redundante.
Se urmrete ca toate elementele informaionale participante la diferitele tranzacii s fie asignate,
ca atribute ale diferitelor entiti.
Pe baza acestei analize integrate se efectueaz adugrile i/sau corelrile necesare ntre modelele
sistemului.
n final se ajunge ca modelul structural i cel dinamic s nu mai fie complet independente de
aplicaii, iar modelul funcional s nu mai fie orientat exclusiv pe aplicaii.

2.3. Proiectarea structurii bazei de date


Modelele obinute n urma analizei sistemului informaional sunt modele ale datelor despre sistem.
O caracteristic esenial a acestor modele (denumite i modele conceptuale sau semantice) este
faptul c sunt independente de instrumentul, respectiv SGBD-ul prin intermediul cruia devin
operaionale.
Etapa de analiz a sistemului informatic este important s se realizeze independent de un SGBD
specificat. Orientarea pe conceptele proprii unui anumit SGBD prezint numeroase dezavantaje cum
sunt:
schimbarea SGBD-ului impune reproiectarea Bazei de Date;
conceptele tehnice ale SGBD-ului pot influena negativ activitatea de
analiz i modelare, prin restricii impuse de acesta, care pot ncuraja sau
descuraja anumite reprezentri;
fixnd

ca

punct

de

plecare

facilitile

unui

SGBD,

utilizatorul

neinformatician care nu stpnete acest SGBD nu i poate exprima


cerinele n deplin cunotin de cauz.
Trecerea la proiectarea structurii bazei de date impune luarea n considerare a SGBD-ului cu
ajutorul cruia va fi implementat i exploatat baza de date. Acesta deoarece baza de date reprezint
un model al datelor exprimat cu ajutorul conceptelor specifice unui anumit SGBD, ceea ce face ca
29

proiectarea structurii bazei de date s reprezinte transpunerea modelelor conceptuale n termenii unui
model al datelor suportat de un anumit tip de SGBD (model ierarhic, reea, relaional, orientat obiect
etc.).
Etapa de proiectare a structurii bazei de date const n urmtoarele activiti:
alegerea SGBD-ului care va fi utilizat pentru implementarea i exploatarea
bazei de date;
proiectarea schemei conceptuale a bazei de date;
proiectarea schemei externe (subschemei) a bazei de date;
proiectarea schemei interne (de memorare) a bazei de date.
Deoarece aceste activiti sunt puternic influenate de tipul bazei de date care se proiecteaz, n
continuare sunt prezentate aspectele generale, valabile indiferent de tipul bazei de date proiectate.
Aspectele particulare urmeaz a fi prezentate atunci cnd vor fi prezentate diferite tipuri de baze de
date.

2.3.1. Alegerea sistemului de gestiune a bazei de date


Alegerea unui SGBD presupune realizarea urmtoarelor activiti:
1. Stabilirea cerinelor utilizatorilor, sub aspectul:
tipurilor de aplicaii dorite;
timpului de rspuns;
confidenialitii datelor;
securitii datelor;
uurinei de utilizare i altele.
2. Stabilirea cerinelor de ordin tehnic privind realizarea bazei de date, cum
sunt:
portabilitatea SGBD-ului, adic posibilitatea folosirii SGBD-ului pe diferite
sisteme de calcul;
portabilitatea coleciilor de date i a programelor. Aceasta nseamn c
datele pregtite cu ajutorul unui calculator s poat fi transferate direct pe
alt tip de calculator, mpreun cu programele aferente, fr alte operaii
auxiliare;
30

facilitile de ncrcare, exploatare i ntreinere a bazei de date care


trebuiesc asigurate (modalitile de descriere a datelor, tehnicile de
organizare i regsire a datelor etc.) i altele.
3. Stabilirea cerinelor de ordin economic, privind:
ncadrarea n bugetul alocat pentru realizarea bazei de date;
timpul necesar pentru pregtire utilizatorilor i trecerea la exploatarea
curent a bazei de date.
4. Ierarhizarea cerinelor de la punctele anterioare, n funcie de importana
(prioritatea) acordat fiecrei cerine n parte.
5. Analiza comparativ a SGBD-urilor disponibile i/sau posibil de achiziionat,
n funcie de caracteristicile pe care le prezint aceste SGBD-uri.
6. Stabilirea corespondenei ntre cerinele formulate la punctele 1-3 i
caracteristicile diferitelor SGBD-uri analizate, pentru a determina msura n care
diferitele SGBD-uri analizate permit satisfacerea cerinelor formulate.
7. Alegerea propriu-zis a SGBD-ului care va fi folosit la realizarea bazei de
date.
2.3.2 Proiectarea schemei conceptuale
Proiectarea schemei conceptuale a bazei de date presupune urmtoarele activiti:
stabilirea coleciilor de date i definirea detaliat a coninutului acestora;
determinarea legturilor dintre coleciile de date i a modului de
reprezentare a acestora n cadrul schemei conceptuale;
testarea schemei obinute i revizuirea acesteia, dac este cazul;
descrierea schemei conceptuale n limbajul de descriere a datelor de care
dispune SGBD-ul i ncrcarea acestei descrieri n baza de date.
La realizarea acestor activiti sunt utilizate, n principal, modelul structural i cel dinamic al
sistemului analizat.
Stabilirea coleciilor de date i a coninutului acestora
La stabilirea coleciilor de date (a componentelor schemei conceptuale) se pleac de la entitile
identificate n etapa de analiz a sistemului. Fiecrei entiti i corespunde, de obicei, o colecie de
date n cadrul schemei conceptuale. n aceste colecii vor figura atributele specifice entitilor plus

31

eventual o serie de atribute pentru exprimarea legturilor cu celelalte componente ale sistemului real,
atribute cunoscute sub numele de chei externe.
Deoarece nu ntotdeauna exist o coresponden strict ntre entitile din modele semantice i
coleciile de date din schema conceptual a bazei de date i din considerente de ameliorare a lucrului
pe aceste colecii de date se poate decide <spargerea> unei entiti n dou sau mai multe colecii de
date. Acest lucru duce la o cretere a flexibilitii de operare cu coleciile de date respective.
Spargerea unei entiti n dou sau mai multe colecii de date se realizeaz innd seama de
cerinele informaionale ale sistemului i de durata de existen a datelor n cadrul sistemului. Astfel,
datele care sunt solicitate mai des de ctre utilizatori, cele care se modific la intervale reduse de timp
sau cele care, dei nu se modific prea des, sunt solicitate frecvent de ctre programe pentru a genera
alte date (prin calcul sau n alt mod), pot constitui colecii separate de date pentru a reduce timpul
necesar regsirii informaiilor cutate. De exemplu, s considerm entitatea UTILAJE aparinnd
unui model al unei uniti de producie. Un utilaj este caracterizat de urmtoarele: denumire, tip,
numr de inventar, valoare de achiziionare, data achiziiei, durata normat de funcionare, totalul
orelor de funcionare, datele reparaiilor curente planificate etc. Dar nu toate aceste informaii
prezint importan pentru utilizatori la un moment dat. Acetia pot fi interesai, de exemplu, de
caracteristicile generale ale utilajului sau de caracteristicile legate de funcionarea sau ntreinerea
utilajului. Din acest motiv, n cadrul schemei conceptuale a bazei de date pot apare dou sau mai
multe colecii de date referitoare la utilajele de producie i anume: un nomenclator de utilaje, o
colecie de date referitoare la funcionarea utilajelor, o colecie privind reparaiile efectuate sau
planificate.
Un alt motiv pentru care apare necesar descompunerea unei colecii de date n dou sau mai
multe colecii deriv din legturile care apar ntre atributele unei entiti. Aceste legturi conduc la
dependene ntre date datorit crora, la momentul exploatrii bazei de date pot apare o serie de
disfuncionaliti, aa numitele anomalii de actualizare. Se impune deci reducerea la minimum a
dependenelor (condiionrilor) dintre atributele unei colecii de date, lucru realizat, de obicei prin
descompunerea coleciei n dou sau mai multe colecii de date cu un numr mai mic de atribute. Cu
toate acestea, mbuntirea performanelor n manipularea entitilor nu presupune obligatoriu
mrirea numrului coleciilor de date folosite n cadrul schemei conceptuale. Aceasta deoarece nu se
poate admite o cretere nelimitat a numrului de colecii de date, lucru care determin creterea
dificultilor de localizare i accesare a datelor. Legturile ntre un numr mare de colecii de date
impune i creterea redundanei datelor n cadrul bazei de date i deci o utilizare ineficient a
suportului de memorare.
Rezultatele obinute prin prelucrri costisitoare efectuate asupra datelor din baza de date pot fi
memorate folosind colecii de date special introduse, astfel nct aceste rezultate s nu fie recalculate
ori de cte ori sunt solicitate de utilizatori. Este vorba, bineneles de informaii solicitate frecvent de
32

ctre utilizatori. Prin memorarea acestor rezultate crete redundana datelor, dar se evit efectuarea
repetat a unor calcule complicate.
Pentru scurtarea cilor de acces la date se mai admite un tip de redundan, i anume cea care
apare datorit includerii unor atribute, simultan n mai multe colecii ale bazei de date.
n continuare este prezentat un exemplu referitor la drepturile profesorilor care lucreaz ntr-un
liceu. Se pot forma dou colecii de date, una cu informaiile privind:
numele angajatului;
salariul de baz;
vechimea;
numrul de ore suplimentare;
numrul de ore de dirigenie etc.
informaii care au un grad ridicat de stabilitate, i alta cu informaii privind:
numele angajatului;
salariul de baz;
sporul de vechime;
numrul de zile lucrate;
numrul zilelor de concediu medical i de odihn;
numrul de ore suplinite;
suma pentru orele suplinite;
restane de plat;
suma dedus pentru pensie suplimentar i omaj;
impozitul pe salariu;
chirii;
alte reineri;
avans;
restul de plat la lichidare;
informaii care trebuiesc adugate n baza de date lunar, fie din exterior, fie prin
calculul acestora prin program.
Determinarea legturilor dintre coleciile de date i a modului de reprezentare a acestora
Aceasta se realizeaz, n principiu, pe baza legturilor dintre entitile identificate n cadrul etapei
de analiz a sistemului i a cerinelor informaionale. Este necesar s se determine, de asemenea i
33

legturile dintre coleciile care nu au un corespondent direct n entitile care compun sistemul, dar
care la rndul lor se afl n asociere, unele cu altele.
Modul de reprezentare a legturilor dintre coleciile de date depinde de modelul datelor suportatde
SGBD. Astfel, modelul ierarhic i cel reea utilizeaz pointeri (adrese de legtur) pentru nlnuirea
datelor n cadrul diferitelor colecii.
Modelul relaional reprezint legturile dintre coleciile de date (relaii) cu ajutorul cheilor externe
sau cu ajutorul unor coleci de date distincte. Aceast reprezentare uniform a datelor i a asocierilor
ntre date prin intermediul relaiilor constituie o caracteristic a modelului relaional, care confer
acestuia o mare simplitate i flexibilitate.

Testarea schemei conceptuale


Testarea schemei conceptuale presupune verificarea completitudinii i consistenei schemei
conceptuale, adic determinarea gradului n care schema conine elementele informaionale necesare
satisfacerii cerinelor informaionale ale diferiilor utilizatori i msura n care legturile stabilite ntre
aceste elemente informaionale reflect raporturile naturale dintre componentele sistemului real. De
asemenea, prin testarea schemei conceptuale trebuie s se verifice dac redundana datelor este la un
nivel minim i poate fi controlat.
Testarea schemei conceptuale permite identificarea unor eventuale erori de proiectare care fac
necesar revizuirea schemei. n acest caz se va relua etapa de proiectare a structurii bazei de date, i,
uneori, chiar i etapa de analiz a sistemului i a cerinelor informaionale.
Descrierea schemei conceptuale n limbajul de descriere a datelor i ncrcarea sa

n baza de

date
Descrierea schemei conceptuale a bazei de date se realizeaz n limbajul de descriere a datelor
de care dispune SGBD-ul folosit. Rezultatul acestei descrieri l constituie proiectul bazei de date sau
schema bazei de date.
Compilatorul limbajului de descriere a datelor permite aducerea schemei bazei de date n forma la
care aceasta s poat fi memorat n baza de date.
2.3.3. Proiectarea schemei externe

34

Schema extern a bazei de date reprezint forma sub care apare schema conceptual pentru
utilizatori. Ea este format din multitudinea viziunilor (vederilor) utilizator. O vedere utilizator
reprezint acea parte din schema conceptual pe care o poate vedea un anumit utilizator.
Programele de aplicaie opereaz asupra schemei conceptuale prin intermediul schemei externe,
avnd acces doar la acele elemente care sunt incluse n schema extern.
Folosirea vederilor reprezint mecanismul prin care sunt satisfcute cererile de informaii ale
utilizatorilor (deoarece un utilizator nu este interesat de toate informaiile stocate n baza de date)
asigurnd totodat i protecia datelor contra accesului neautorizat la date (folosind vederile se
limiteaz accesul fiecrui utilizator doar la acele date care i sunt necesare).
2.3.4. Proiectarea schemei interne
Schema intern reprezint modul n care sunt memorate datele pe suport fizic. Schema conceptual
folosete diferite structuri de date: liniar, arborescent, reea, relaional n timp ce memorarea
datelor pe suport fizic se poate face numai sub forma unei structuri linare. Din aceast cauz, la
proiectarea schemei interne a bazei de date se pune problema modului n care s fie liniarizat
schema conceptual.
Metoda de liniarizare a schemei conceptuale depinde de SGBD-ul folosit. Exist astfel SGBD-uri
care fac apel la metodele de memorare ale datelor pe suportul fizic de memorare pe care le folosesc i
sistemele de operare gazd i SGBD-uri care utilizeaz metode proprii de stocare a datelor pe
suportul fizic. Aceste SGBD-uri depind mai puin de sistemul de operare gazd, ceea ce le ofer o
portabilitate sporit, comparativ cu SGBD-urile din prima categorie.

2.4. ncrcarea datelor n baza de date


Aceasta este etapa n care se realizeaz popularea masiv cu date a bazei de date. Dei coninutul
acestei etape este relativ simplu, fr dificultatea i creativitatea reclamate de activitile de analiz i
proiectare, ncrcarea datelor n baza de date reprezint totui o activitate dificil de realizat datorit
volumului mare de date care se transfer n baza de date de la diferite surse de date.

35

Fig. 2.6. Fazele ncrcrii datelor n baza de date


Dup cum se vede n figura de mai sus, sursele de alimentare cu date a bazei pot fi:
documente primare (facturi, bonuri, chitane etc.);
colecii de date, gestionate prin diverse instrumente informatice, de
exemplu preluarea datelor dintr-o baz de date creat anterior, folosind
un SGBD cu care nu se mai lucreaz n continuare.
Indiferent de sursa datelor, se recomand ca, n scopul ncrcrii bazei de date, s se constituie
colecii temporare de date (fiiere). n situaia n care datele se preiau din documente primare este
necesar utilizarea unor colecii temporare pentru a se deplasa activitatea de validare a datelor ct mai
devreme n procesul de ncrcare a datelor n baza de date. Programele de ncrcare a bazei de date,
scrise n limbajul de manipulare a datelor de care dispune SGBD-ul trebuie s conin ct mai puine
validri deoarece aceste validri ncetinesc mult execuia programelor i determin apariia unor
puncte albe n baza de date, de exemplu, legturi neconstituite datorit inexistenei datelor
corespunztoare.
Pe de alt parte, n situaia n care datele se preiau din colecii gestionate prin alte instrumente
informatice, este necesar utilizarea coleciilor temporare pentru a se putea adapta ct mai bine
structura acestor colecii la modul de organizare a datelor n baza de date. Programele de ncrcare
vor fi n acest caz mai simple i mai robuste, asigurnd un transfer mai rapid al datelor n baza de
date.

2.5. Exploatarea i ntreinerea bazei de date


Exploatarea bazelor de date de ctre diferii utilizatori finali are ca scop satisfacerea cerinelor
informaionale ale acestora. SGBD-urile sprijin utilizatorii finali n exploatrea bazelor de date
oferind o serie de mecanisme i instrumente pentru descrierea cerinelor de date, cum ar fi limbaje de
manipulare a datelor etc.
36

ntreinerea bazei de date este o activitate complex care are ca scop actualizarea datelor din baza
de date, recuperarea datelor pierdute accidental, reproiectarea structurii bazei de date i orice alte
activiti necesare meninerii funcionalitii bazei de date. ntreinerea bazei de date este realizat n
principal de ctre administratorul acesteia.

2.6. ntrebri pentru verificarea cunotinelor


1. Care sunt etapele proiectrii unei baze de date ?
2. Care este obiectivul analizei statice a sistemului informaional existent ?
3. Explicai tehnica diagramelor entitate-asociere.
4. Definii cardinalitatea unei legturi.
5. Cum se clasific atributele unei antiti ?
6. Prin ce se caracterizeaz atributul cheie ?
7. Care este obiectivul analizei dinamice ?
8. Care este obiectivul analizei funcionale ?
9. Care sunt etapele proiectrii structurii bazei de date ?
10. Care sunt activitile desfurate pentru alegerea unui SGBD ?
11. Ce activiti presupune proiectarea schemei conceptuale a bazei de date ?
12. Din ce este compus schema extern a unei baze de date ?
13. Care sunt sursele de date folosite la ncrcarea bazei de date ?
14. Care este scopul activitii de ntreinere a bazei de date ?

37

3. BAZE DE DATE RELAIONALE


Ideea bazelor de date relaionale a fost lansat pentru prima dat de ctre D. F. Childs care a
subliniat faptul c orice structur de date poate fi reprezentat printr-una sau mai multe tabele de date,
n cadrul crora este necesar s existe i informaii de legtur, pentru a se asigura legturile ntre
tabele. Bazele modelului de date relaional au fost puse de ctre Codd E.F., n 1970 care are meritul
de a fi articulat i dezvoltat ideile cu privire la utilizarea teoriei apartenenei la ansambluri sub forma
unui model coerent de structurare a datelor - modelul relaional.

3.1. Modelul relaional al datelor


Componentele modelului relaional sunt:
1. Structura relaional a datelor. Aceasta nseamn c, n bazele de date relaionale, datele sunt
organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relaii. Asocierile dintre
relaii se reprezint explicit prin atribute de legtur. Aceste atribute figureaz ntr-una din relaiile
implicate n asociere (de regul, n cazul legturilor de tip unu la muli) sau sunt plasate ntr-o
relaie distinct, construit special pentru exprimarea legturilor ntre relaii (n cazul legturilor de
tip muli la muli). O baz de date relaional (BDR) reprezint un ansamblu de relaii, prin care se
reprezint att datele ct i legturile dintre date.
2. Operatorii modelului relaional. Acetia definesc operaiile care se pot executa asupra
relaiilor, n scopul realizrii funciilor de prelucrare asupra bazei de date, respectiv consultarea,
inserarea, modificarea i tergerea datelor.
3. Restriciile de integritate ale modelului relaional. Permit definirea strilor coerente ale bazei
de date.
38

n comparaie cu modelele ierarhice i n reea, modelul relaional prezint o serie de avantaje,


precum:
Asigurarea unui grad sporit de independen a programelor de
aplicaie fa de modul de reprezentare intern a datelor i
metodele de acces la date. n precizarea prelucrrilor asupra datelor,
programele de aplicaie nu fac apel la pointeri, fiiere inverse sau alte
elemente ale schemei interne a bazei de date. n ceea ce privete
independena logic, aceasta nu este complet rezolvat nici cu ajutorul
modelului relaional. O deficien a modelului relaional este aceea c nu
permite modelarea comportamentului dinamic al datelor, ceea ce face ca
o mare parte din semantica aplicaiilor s fie codificat n programe i nu
n schema conceptual a bazei de date.
Furnizarea unor metode i tehnici eficiente de control a coerenei
redundanei

datelor,

cu

bun

fundamentare

teoretic.

Modificrile pe care le sufer n timp datele ridic probleme serioase la


ntreinerea bazei de date, n ceea ce privete controlul actualizrilor,
reflectarea modificrilor din structura mediului economic real n structura
datelor etc. Modelul relaional, prin tehnica normalizrii relaiilor permite
definirea unei structuri conceptuale optime a datelor, prin care se
minimizeaz riscurile de eroare la actualizare, reducndu-se redundana
datelor.
Oferirea unor faciliti multiple de definire i manipulare a datelor.
n primul rnd, modelul relaional ofer posibilitatea utilizrii unor limbaje
procedurale, bazate pe algebra relaional, precum i a unor limbaje
neprocedurale avnd la baz calculul relaional. Limbajele neprocedurale
(declarative) contribuie la mbuntirea semnificativ a comunicrii
dintre sistem i utilizatorii neinformaticieni. n al doilea rnd, manipularea
datelor se realizeaz la nivel de ansamblu (relaie), fiind posibil utilizarea
paralelismului n prelucrarea datelor.
Ameliorarea integritii i confidenialitii datelor. Modelul relaional
realizeaz acest lucru prin mecanisme flexibile i eficace de specificare i
utilizare a restriciilor de integritate i a relaiilor virtuale.

3.2. Structura relaional a datelor

39

Pentru a defini structura relaional a datelor trebuie s definim noiunile de: domeniu, relaie,
atribut i schem a unei relaii.
3.2.1. Domeniu
Domeniul reprezint un ansamblu de valori, caracterizat printr-un nume. Un
domeniu se poate defini explicit, prin enumerarea tuturor valorilor aparinnd
acestuia sau implicit, prin precizarea proprietilor pe care le au valorile
domeniului respectiv.
Spre exemplu s consider urmtoarele domenii D1, D2, D3, definite astfel:
D1 : {F,M}
D2 : { x | x N , x 0,100 }
D3 : {s | s = ir de caractere }
Domeniul D1 este definit explicit n timp ce domeniile D2 i D3 sunt definite
implicit.
Pentru un ansamblu de domenii D1, D2, ..., Dn produsul cartezian al acestora
reprezint ansamblul tuplurilor <v1, v2, ..., vn>, unde vi este o valoare
aparinnd domeniului Di. De exemplu, tuplurile <Maria, F, 45>, <Vasile,
M, 24> aparin produsului cartezian: D3xD1xD2.

3.2.2. Relaie
Relaia reprezint un subansamblu al produsului cartezian al mai multor domenii, subansamblu
caracterizat printr-un nume i care conine doar tupluri cu semnificaie. Considernd, de exemplu c
pentru produsul cartezian definit mai sus se cunosc doar dou persoane, definim relaia R prin
tuplurile care descriu aceste persoane:
R : {<Maria, F, 20>, <Vasile, M, 22>}
ntr-o relaie, tuplurile trebuie s fie distincte ( nu se admit duplicri ale tuplurilor ).
O reprezentare comod a relaiei este tabelul bidimensional (tabela de date), n care liniile
reprezint tuplurile, iar coloanele corespund domeniilor (vezi figura).
40

R:
D3
Maria
Vasile

D1
F
M

D2
20
22

n prezentarea conceptului de relaie se poate recurge la analogii cu alte concepte, extrem de bine
cunoscute n domeniul prelucrrii automate a datelor, precum este conceptul de fiier. Relaia poate
avea semnificaia unui fiier, tuplul poate fi considerat drept o nregistrare, iar valorile din cadrul
tuplului pot fi interpretate drept valori ale cmpurilor nregistrrii.
n cadrul modelului relaional nu intereseaz dect relaiile finite, chiar dac la construirea
relaiilor se admit domenii infinite. Numrul tuplurilor dintr-o relaie reprezint cardinalul relaiei, n
timp ce numrul valorilor dintr-un tuplu definete gradul relaiei.

3.2.3. Atribut
Atributul reprezint coloana unei tabele de date, caracterizat printr-un nume. Numele coloanei
(atributului) exprim de obicei semnificaia valorilor din cadrul coloanei respective.
Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a nelege aceast problem vom
considera urmtorul exemplu. S presupunem c pentru o persoan dispunem de urmtoarele date:
nume, sex, vrst i numele soului/soiei.
O posibilitate de organizare a acestor date este reprezentat de relaia din figura urmtoare.
PERS:
D3
Maria
Vasile

D1
F
M

D2
30
32

D3
Vasile
Maria

Relaia PERS reprezint un subansamblu al produsului cartezian:


D3 x D1 x D2 x D3.
Semnificaia valorilor din cadrul unui tuplu se stabilete n acest caz nu numai pe baza domeniului
de care aparin valorile, ci i n funcie de poziia ocupat n cadrul tuplului.
Dependena fa de ordine a datelor nseamn o reducere a flexibilitii organizrii datelor. ntr-o
organizare eficient, flexibil, ordinea liniilor i a coloanelor din cadrul tabelei de date nu trebuie s
prezinte nici o importan.

41

Pentru a diferenia coloanele care conin valori ale aceluiai domeniu i a elimina astfel
dependena de poziie n cadrul tabelei se asociaz fiecrei coloane un nume distinct, lucru care a dus
la apariia noiunii de atribut.
Prin folosirea atributelor, relaia PERS poate fi prezentat ntr-unul din modurile menionate mai
jos.

PERS:
Nume
(D3)

Sex
(D1)

Vrsta
(D2)

Sot(D3)

PERS:
Nume(D3)

Sot(D3)

Sex
(D1)

Vrsta
(D2)

Mari

30

Vas

Maria

Vasil

30

a
Vasil

32

ile
Ma

Vasile

e
Mari

32

ria

3.2.4. Schema unei relaii


Prin schema unei relaii se nelege numele relaiei, urmat de lista atributelor, pentru fiecare atribut
precizndu-se domeniul asociat. Astfel, pentru o relaie R, cu atributele A1, A2, ..., An i domeniile
D1, D2, ..., Dm, schema relaiei R poate fi reprezentat ntr-una din formele prezentate n figura de
mai jos.
R (A1:D1, A2:D2, ..., An:Dm)
sau
R:
A1:D1

A2:D2

An:Dm

..

Schema unei relaii se mai numete i intensia relaiei, ca expresie a proprietilor


comune i invariante ale tuplurilor care compun relaia.
42

Spre deosebire de intensie, extensia unei relaii reprezint ansamblul


tuplurilor care compun la un moment dat relaia, ansamblu care este variabil n
timp.
De obicei, extensia unei relaii este stocat fizic n spaiul asociat bazei de
date, caz n care relaia poart numele de relaie de baz. Exist ns i situaii
n care extensia nu este memorat n baza de date. Este cazul aa-numitelor
relaii virtuale, cunoscute i sub numele de relaii derivate sau viziuni.
Relaia virtual nu este definit explicit ca relaie de baz, prin ansamblul
tuplurilor componente, ci implicit, pe baza altor relaii, prin intermediul unei
expresii relaionale. Stabilirea efectiv a tuplurilor care compun relaia virtual
se realizeaz prin evaluarea expresiei, ori de cte ori utilizatorul invoc aceast
relaie.

3.3. Operatorii modelului relaional


Modelul de date relaional ofer dou colecii de operatori pentru operaii cu relaii i anume:
- algebra relaional;
- calculul relaional.
3.3.1. Algebra relaional i extensiile sale
Algebra relaional (AR) se poate defini ca o colecie de operaii pe relaii, fiecare operaie avnd
drept operanzi una sau mai multe relaii i producnd ca rezultat o alt relaie.
Operaiile algebrei relaionale se pot mpri n:
-

operaii de baz, precum: reuniunea, diferena, produsul cartezian etc.

operaii derivate, ca: intersecia, diviziunea etc.

Algebra relaional standard, definit de Codd, este constituit din 6


operaii de baz: reuniunea, diferena, produsul cartezian, proiecia, selecia i
jonciunea precum i din dou operaii derivate: intersecia i diviziunea.
Ulterior, la operaiile AR standard au fost adugate i alte operaii, aa
numitele operaii adiionale sau extensii ale AR standard, precum:
complementarea unei relaii, splitarea (spargerea) unei relaii, nchiderea
tranzitiv etc.
n general, operaiile AR pot fi grupate n:
-

operaii tradiionale pe mulimi (reuniunea, intersecia, diferena, produsul cartezian);

operaii relaionale speciale (selecia, proiecia, jonciunea etc.).


43

n continuare sunt prezentate principalele operaii ale algebrei relaionale, precum i modul lor de
utilizare.
1. Reuniunea. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2,
ambele cu aceeai schem, operaie care const din construirea unei noi relaii R3, cu o schem
identic cu R1 i R2 i avnd drept extensie tuplurile din R1 i R2, luate mpreun o singur dat.
Reuniunea se noteaz uzual cu:
OR (R1,R2)
APPEND (R1,R2)
UNION (R1,R2)
n figura urmtoare este prezentat un exemplu de reuniune a dou relaii ORAE i MUNICIPII,
formnd astfel o a treia relaie, LOCALITI.

2. Diferena. Reprezint o operaie a algebrei relauionale construit pe dou relaii: R1 i R2,


ambele cu o aceeai schem, operaie care const din construirea unei noi relaii R3, cu schema
identic cu a operanzilor i cu extensia format din acele tupluri ale relaiei R1 care nu se regsesc i
n relaia R2.
Notaiile uzuale pentru operaia de diferen a dou relaii sunt:
R1-R2
REMOVE (R1,R2)
MINUS (R1,R2)
Un exemplu de diferen a dou relaii este dat n continuare.

44

3. Produs cartezian. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2,
operaie care const din construirea unei noi relaii R3, a crei schem se obine prin concatenarea
schemelor relaiilor R1 i R2 i a crei extensie cuprinde toate combinaiile tuplurilor din R1 cu cele
din R3.
Notaiile uzuale pentru desemnarea operaiei sunt:
R1 x R2
PRODUCT (R1,R2)
TIMES (R1,R2)
n continuare este prezentat un exemplu de produs cartezian a dou relaii.

45

4. Proiecia. Reprezint o operaie din algebra relaional definit asupra unei


relaii R, operaie care const din construirea unei noi relaii P, n care se
regsesc numai acele atribute

din R specificate explicit n cadrul operaiei.

Suprimarea unor atribute din R nseamn efectuarea unor tieturi verticale


asupra lui R, care pot avea ca efect apariia unor tupluri duplicate ce se cer a fi
eliminate.
Prin proiecie se trece de la o relaie de grad n la o relaie de grad p, mai mic
dect cel iniial, adic de la un spaiu cu n dimensiuni la un spaiu cu mai puine
dimensiuni, ceea ce explic i numele de proiecie atribuit operaiei.
Notaiile uzuale pentru operaia de proiecie:
Ai , A j ,..., Am ( R )

R [ Ai, Aj, ..., Am ]


PROJECT(R, Aj, Aj, ..., Am)

n figura de mai sus este prezentat proiecia relaiei ORAE pe atributul JUDE.
5. Selecia reprezint o operaie din algebra relaional definit asupra unei relaii R, operaie care
const din construirea unei relaii S, a crei schem este identic cu cea a relaiei R i a crei extensie
este constituit din acele tupluri din R care satisfac o condiie menionat explicit n cadrul operaiei.
ntruct cel mai adesea, nu toate tuplurile din R satisfac aceast condiie, selecia nseamn efectuarea
unor tieturi orizontale asupra relaiei R, adic eliminarea de tupluri.
Condiia precizat n cadrul operaiei de selecie este n general de forma:
atribut

operator de comparaie

valoare
46

unde: <operator de comparaie> poate fi: <, <=, >=, > sau #.
Notaiile folosite pentru desemnarea operaiei de selecie sunt urmtoarele:
conditie (R )

R [condiie]
RESTRICT(R, condiie).
6. Jonciunea (Joinul) reprezint o operaie din algebra relaional definit pe dou relaii: R1 i
R2, operaie care const din construirea unei noi relaii R3, prin concatenarea unor tupluri din R1 cu
tupluri din R2. Se concateneaz acele tupluri din R1 i R2 care satisfac o anumit condiie, specificat
explicit n cadrul operaiei. Extensia relaiei R3 va conine deci combinaiile acelor tupluri care
satisfac condiia de concatenare.
Notaiile uzuale pentru desemnarea operaiei de jonciune sunt:
R1

R2

condiie
JOIN (R1, R2, condiie)
7. Intersecia reprezint o operaie din AR definit pe dou relaii: R1 i R2, ambele cu aceeai
schem, operaie care const din construirea unei noi relaii R3, cu schema identic cu a relaiilor R1
i R2 i cu extensia format din tuplurile comune lui R1 i R2.
Notaiile uzuale pentru operaia de intersecie sunt:
R1 R 2

INTERSECT (R1, R2)


AND (R1, R2).
8. Diviziunea reprezint o operaie din AR definit asupra unei relaii R din care se obine, cu
ajutorul altei relaii P, relaia Q a crei extensie este format din atributele din R care rmn dup
eliminarea atributelor relaiei P.
47

Notaiile folosite pentru operaia de diviziune sunt:

Rr
DIVISION(R,r).

3.4. Restriciile de integritate ale modelului relaional


Restriciile de integritate, denumite i reguli de integritate, definesc cerinele pe care trebuie s le
satisfac datele din cadrul bazei de date pentru a putea fi considerate corecte, coerente n raport cu
lumea real pe care o reflect.
Restriciile de integritate reprezint principalul mod de integrare a semanticii datelor n cadrul
modelului relaional al datelor, mecanismele de definire i verificare a acestor restricii reprezentnd
principalele instrumente pentru controlul semantic al datelor. Avantajele ncorporrii semanticii
datelor n cadrul bazelor de date constau din posibilitatea ntreinerii mai uoare a aplicaiilor i
posibilitatea implementrii unor mecanisme fizice mai eficiente.
n teoria sistemelor relaionale, restriciile de integritate sunt studiate n principal sub aspectul
puterii lor de modelare i al posibilitilor de verificare eficace a respectrii lor. Un exemplu
semnificativ l reprezint dependenele ntre date, i n primul rnd dependenele funcionale.
Dependenele ntre date, ca restricii de integritate constituie un suport teoretic solid pentru
problemele de modelare informatic. n acest sens, dependenele funcionale au permis definirea
conceptului de structur relaional optim, stnd la baza teoriei optimizrii structurii relaionale a
datelor, respectiv teoria normalizrii relaiilor.
Restriciile de integritate ale modelului relaional sunt urmtoarele:
1. Restricii de integritate minimale, obligatoriu de definit i de respectat atunci cnd se lucreaz
cu modelul relaional. Din aceast categorie fac parte:
restricia de unicitate a cheii;
restricia referenial;
restricia entitii.
2. Alte restricii de integritate, din care fac parte:
dependenele ntre date;
restriciile de comportament.
Restriciile de integritate minimale sunt definite n raport cu noiunea de cheie
a unei relaii. Cheia unei relaii, R, reprezint ansamblul minimal de atribute prin
care se poate identifica n mod unic orice tuplu din R. Orice relaie posed cel
puin o cheie. La limit, cheia este constituit fie dintr-un singur atribut, fie din
48

totalitatea atributelor din schema relaiei respective. Cnd cheia este constituit
dintr-un singur atribut poart numele de cheie simpl, iar atunci cnd este
format din mai multe atribute este denumit cheie compus.
ntr-o relaie pot exista mai multe combinaii de atribute cu proprietatea de
identificare unic a tuplurilor. Se spune n acest caz c relaia posed mai muli
candidai cheie (sau mai multe chei candidate). n aceast situaie,
administratorul bazei de date va alege dintre cheile candidate una care s
serveasc n mod efectiv la identificarea tuplurilor i care va primi numele de
cheie primar. Restul cheilor candidate vor purta numele de chei alternate.
Cheia unei relaii trebuie s fie minimal, adic nici o parte a sa nu trebuie s fie
la rndul ei cheie. Un grup de atribute din cadrul unei relaii care conine o cheie
a relaiei poart numele de supercheie.
Modelarea asocierilor dintre entiti impune recurgerea la conceptul de cheie
extern. O cheie extern reprezint un atribut/grup de atribute dintr-o relaie R1
ale crui/cror valori sunt definite pe acelai/aceleai domeniu/domenii ca i
cheia primar a unei relaii, R2 i care are rolul de a modela asocierea ntre
entitile reprezentate prin relaiile R1 i R2. n acest context, R1 este denumit
relaie care refer, n timp ce R2 poart numele de relaie referit.
Restricia de unicitate a cheii reprezint restricia de integritate care impune ca ntr-o relaie, R
care are cheia K, oricare ar fi tuplurile t 1 i t2 s fie satisfcut inegalitatea: t1 (K) # t2 (K). Aceast
inegalitate semnific faptul c ntr-o relaie nu pot exista dou tupluri cu aceeai valoare pentru
atributele cheie.
Restricia referenial (integritatea referirii) reprezint restricia de integritate care impune ca
ntr-o relaie R1 care refer o relaie R2, valorile cheii externe s figureze printre valorile cheii
primare din relaia R2 sau s fie valori nedefinite (null). R1 i R2 nu trebuie s fie neaprat
distincte. Semnificaia restriciei de integritate a referirii este urmtoarea : o asociere nu poate exista
dect ntre entiti deja definite. Atunci cnd, ntr-o anumit situaie, asocierea nu este aplicabil, unul
din parteneri va fi desemnat prin valoarea null, cu semnificaia de partener inexistent.
Restricia entitii (integritatea entitii) reprezint restricia de integritate care impune ca ntr-o
relaie atributele cheii primare s fie nenule. Unicitatea cheii impune ca la ncrcarea unui tuplu,
valoarea cheii s fie cunoscut, pentru a se putea verifica faptul c aceast valoare nu exist deja
ncrcat (tuplul nu figureaz deja n baza de date). Cu valori <null>, cheia i pierde rolul de
identificator de tuplu. Restricia de integritate a entitii nu se aplic cheilor externe dintr-o relaie,
dac acestea nu aparin cheii primare.
Restriciile referitoare la dependena datelor semnific modul n care datele depind unele de altele.
Aceast dependen ntre date poate fi de mai multe tipuri i anume:
49

dependen funcional; reprezint dependena ntre date prin care se poate identifica un
atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind dat o relaie
R, un atribut Y din R este dependent funcional de un alt atribut X din R, dac i numai
dac fiecare valoare a lui X are asociat o valoare precis a lui Y.

dependen multivaloare; reprezint acel tip de dependen ntre date n care un


atribut/grup de atribute poate prezenta mai multe valori pentru o singur valoare a unui alt
atribut/grup de atribute. Fie o relaie R, n care apar atributele/grupurile de atribute:X, Y i
Z. n cadrul relaiei R exist o dependen multivaloare dac i numai dac mulimea
valorilor lui Y corespunztoare unei perechi: (valoare X, valoare Z) depinde numai de
valoarea lui X, nu i de valoarea lui Z;

dependen jociune; aceast restricie exprim o dependen ntre date mai general dect
dependena funcional sau dependena multivaloare. Considernd o relaie R, cu schema
R(X:Dx,Y:Dy,Z:Dz) pentru care nu se manifest dependene funcionale sau dependene
multivaloare, adic relaia R se poate asimila unei chei compuse. Asupra acestei relaii se
formuleaz urmtoarea restricie: dac n relaia R figureaz tuplurile, i atunci n R
trebuie s figureze i tuplul .

Restriciile de comportament se pot defini de ctre utilizator n funcie de


realitatea descris n baza de date i pot fii:
restricii de domeniu; care impun ca valorile unui atribut dintr-o relaie
s se ncadreze n anumite limite;
restricii temporale etc.

3.5. Proiectarea bazelor de date relaionale


Proiectarea bazelor de date relaionale se realizeaz conform cu cele prezentate n capitolul
anterior. Diferene apar la activitile legate de proiectarea schemelor conceptuale, interne i externe,
de ncrcarea, exploatarea i ntreinerea bazei de date.
3.5.1. Proiectarea schemei conceptuale
La proiectarea bazelor de date relaionale se folosete frecvent termenul de schem
conceptual optim, prin care se nelege acea schem conceptual care
nltur posibilitile apariiei de anomali n lucrul cu baza de date, asigurnd
totodat faciliti i performane sporite la ncrcarea, exploatarea i ntreinerea
bazei de date.
50

Anomaliile care apar la lucrul cu baze de date se manifest ndeosebi la


ntreinerea bazei de date, fiind cunoscute i sub numele de anomalii de
actualizare a datelor. Ele se manifest nu numai n cazul bazelor de date
relaionale, ci i la celelalte tipuri de baze de date. n cadrul teoriei relaionale a
bazelor de date, anomaliile de actualizare sunt puse n legtur cu dependenele
care se manifest ntre date. Abordarea anomaliilor de actualizare a permis, pe
de o parte caracterizarea riguroas a relaiilor dup gradul de perfeciune pe
care l prezint (aa numitele forme normale ale relaiilor) i pe de alt parte a
fcut posibil definirea unor tehnici formale pentru nlturarea anomaliilor de
actualizare.
Formele normale ale relaiilor
Anomaliile care apar n lucrul cu baze de date relaionale se produc datorit dependenelor
nedorite care se manifest ntre datele din cadrul relaiilor bazei de date. Aceste dependene
determin creterea redundanei datelor i reducerea flexibilitii structurii bazei de date, efect
manifestat prin:
limitarea posibilitilor de inserare a datelor; apare cnd anumite date
despre o entitate nu pot fi introduse n baza de date datorit lipsei altor
date, relative la aceeai entitate, i fr de care, datele noi nu pot fi
introduse datorit dependenelor dintre aceste date;
pierderi de date la tergere; apar atunci cnd, n urma unei tergeri din
baza de date sunt terse i altele, care nu mai pot fi obinute
(reconstituite) din baza de date;
apariia unor inconsistene la modificarea datelor; adic meninerea,
pentru unele atribute, a unor valori neactualizate alturi de valorile
actualizate.
Formele normale ale relaiilor dintr-o baz de date relaional sunt definite n raport de anomaliile
care pot apare n lucrul cu aceste relaii, deci n funcie de dependenele nedorite care se manifest
n cadrul acestor relaii.
La proiectarea bazelor de date relaionale se pot defini cinci forme normale, formnd cinci nivele
de normalizare a relaiilor.
O relaie R este n forma normal unu, FN1, dac domeniile pe care sunt definite
atributele relaiei sunt constituite numai din valori atomice (elementare). n plus,
un tuplu nu trebuie s conin atribute sau grupuri de atribute repetitive.
51

O relaie R este n forma normal doi, FN2, dac este n FN1 i oricare dintre
atributele noncheie este dependent funcional complet de cheia primar a
relaiei.
O relaie R este n forma normal trei, FN3, dac este n FN2 i atributele
noncheie nu sunt dependente tranzitiv de cheia primar a relaiei.
Relaia R este n forma normal patru, FN4, dac este n FN3 i n cadrul ei nu
se manifest mai mult de o dependen multivaloare.
Spunem c relaia R este n forma normal cinci, FN5, dac fiecare
dependen jonciune este implicat printr-un candidat cheie al lui R.
Etapele procesului de proiectare a schemei conceptuale
Proiectare schemei conceptuale a unei baze de date relaionale presupune parcurgerea urmtoarelor
etape:
1. Determinarea formei normale n care trebuie s se afle relaiile din baza de
date (a nivelului de perfeciune impus schemei conceptuale). Relaiile
aflate n forme normale superioare determin apariia unui numr redus de
anomali n lucrul cu baza de date, comparativ cu relaiile nenormalizate
sau aflate n primele forme normale, dar conduc todat la creterea
timpului de acces la date. Aceasta deoarece relaiile aflate n forme
normale superioare conin, de regul, un numr mai mic de atribute, lucru
care impune creterea numrului de relaii din baza de date, deci
interogarea simultan a mai multor relaii pentru a gsi anumite informaii.

n determinarea formei normale la care trebuiesc aduse relaiile din bazele de


date relaionale se vor avea n vedere urmtoarele:
ponderea operaiilor de interogare i a celor de actualizare n lucrul cu
bazele de date relaionale;
exigenele de performa i flexibilitate impuse de utilizatorii finali la
interogarea i, respectiv la actualizarea bazelor de date relaionale.
2. Stabilirea relaiilor care s fac parte din baza de date, n forma normal
stabilit anterior. Aceasta presupune definirea relaiilor i a restriciilor de
integritate asociate, lucru realizat pe baza modelelor conceptuale ale
sistemului, modele obinute n etapa de analiz a sistemului i a cerinelor
52

informaionale asociate. n cadrul acestei etape se pot aplica mai multe


tehnici de proiectare (tehnica normalizrii, tehnica diagramelor de
dependen riguroas etc.).
3. Testarea schemei conceptuale obinute i revizuirea acesteia, dac este
cazul;
4. Descrierea schemei conceptuale n limbajul de descriere a datelor utilizat
de SGBD-ul relaional folosit i ncrcarea acestei descrieri n baza de date
relaional.
3.5.2. Proiectarea schemei externe
Schema extern a unei baze de date relaionale reprezint ansamblul relaiilor (tabelelor de date) la
care are acces un utilizator (un program de aplicaie). Dei mai muli utilizatori pot lucra cu o aceeai
schem extern, n general, se consider pentru o baz de date relaional attea scheme externe ci
utilizatori exist la un moment dat, scheme care trebuiesc proiectate i apoi fcute operaionale.
Schema extern reprezint modul de organizare, structurare, a datelor de care are nevoie un anumit
utilizator pentru a-i satisface toate cerinele informaionale. Deoarece, de cele mai multe ori, un
utilizator nu are nevoie de ansamblul datelor memorate n cadrul bazei de date ci numai de o parte a
acestor date, se consider schema extern drept o partiie logic a schemei conceptuale a bazei de
date. Din aceast cauz, schema extern a unei baze de date mai este cunoscut i sub numele de
subschem a bazei de date.
Modul de structurare a datelor n cadrul schemei externe poate fi cel din cadrul schemei
conceptuale sau poate s fie diferit. Acest lucru se explic prin faptul c structurarea datelor n cadrul
schemei conceptuale are ca obiectiv optimizarea structurii de ansamblu a bazei de date relaionale, n
raport de ansamblul cerinelor informaionale ale tuturor utilizatorilor, n timp ce structurarea datelor
n cadrul schemei externe urmrete facilitarea satisfacerii cerinelor informaionale pentru un anumit
utilizator. Deoarece aceste dou criterii nu sunt echivalente se obin rezultate, deci structuri ale
datelor diferite.
La proiectarea unei scheme externe a unei baze de date relaionale se parcurg urmtoarele etape:
1. Determinarea zonei (ariei) de interes pentru un anumit utilizator din
cadrul sistemului informatic reflectat informaional cu ajutorul bazei de
date;
2. Analiza structural, dinamic i funcional a acestei zone din domeniul
activitii economice reprezentate prin sistemul informatic pentru care
se realizeaz baza de date;
53

3. Proiectarea schemei externe, pe baza analizei anterioare, n modul de


lucru descris la proiectarea schemei conceptuale a bazei de date
relaionale, innd cont de faptul c aceeai schem poate apare drept o
schem conceptual, dac sistemul de referin este ntregul domeniu
economic analizat, sau drept o schem extern, dac sistemul de
referin este o parte din domeniul economic analizat;
4. Testarea schemei externe i modificarea acesteia, dac este cazul;
5. Aducerea schemei externe n forma operaional. Acest lucru se
realizeaz n mod diferit fa de schema conceptual a bazelor de date,
pentru care operaionalizarea presupune descrierea sa cu ajutorul
limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei
descrieri i ncrcarea acestei descrieri compilate n cadrul bazei de
date. Pentru ca o schem extern s devin operaional, s poat fi
aplicat, utilizatorul cruia i este destinat trebuie s primeasc
drepturi de acces asupra tabelelor de date care compun schema
extern.

3.6. Sisteme de gestiune a bazelor de date relaionale


Un sistem de gestiune a bazelor de date relaionale poate fi definit ca reprezentnd un SGBD care
utilizeaz drept concepie de organizare a datelor modelul relaional.
Diversitatea modelelor relaionale operaionale au determinat, n mod natural existena unei mari
diversiti de SGBDR, care se apropie mai mult sau mai puin de modelul relaional teoretic.
Cerinele teoretice pe care trebuie s le satisfac un SGBD relaional au fost specificate de Codd,
printr-o serie de 13 reguli, numite regulile lui Codd.
Deoarece aceste reguli au fost mult disputate i deoarece nici unul dintre SGBD-urile relaionale
(SGBDR) disponibile astzi nu respect ntrutotul cerinele exprimate de Codd, n cadrul celor 13
reguli, caracterizarea unui SGBD se realizeaz folosind o serie de cerine minimale pe care trebuie s
le satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat relaional.
Un SGBD este minim relaional dac satisface urmtoarele condiii:
1. Toate datele din cadrul bazei de date sunt reprezentate prin valori n
tabele.
2. Nu exist pointeri observabili de ctre utilizator ntre tabele, n sensul c
operaiile cu relaii nu fac apel la pointeri, indeci, fiiere inverse etc.
3. Sistemul suport operatorii relaionali de proiecie, selecie i join natural,
fr limitri impuse din considerente interne (cum ar fi de exemplu,
54

necesitatea indexrii atributelor). Unitatea de informaie cu care se


lucreaz n cadrul acestor operaii trebuie s fie relaia.
Un SGBD este complet relaional dac este minimal relaional i satisface n
plus urmtoarele condiii:
4. Sistemul suport toate operaiile de baz ale algebrei relaionale, fr
limitri impuse din considerente interne.
5. Sistemul suport dou dintre restriciile de integritate de baz ale
modelului relaional i anume unicitatea cheii unei relaii i restricia
referenial.
Un SGBD este pseudorelaional dac satisface numai condiiile 1 i 3.
Dintre instrumentele i mecanismele de lucru de care dispune un SGBD
relaional se pot meniona:
un limbaj relaional pentru descrierea datelor la nivel fizic, logic i
conceptual;
un

limbaj

relaional

pentru

manipularea

datelor

(interogare

actualizare);
mecanisme pentru controlul integritii semantice a datelor;
mecanisme pentru asigurarea coerenei datelor n condiiile accesului
concurent la date i apariiei unor avarii;
mecanisme pentru optimizarea cererilor de date;
utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de
rapoarte, utilitare pentru generarea de aplicaii, pentru generarea de
statistici despre starea i activitatea bazei de date.
Dintre SGBD-urile relaionale mai cunoscute putem meniona: INGRES, ORACLE, DB2,
FOCUS, SQL\DS .a. care lucreaz sub sistemele de operare VMS i UNIX. Pentru calculatoarele
compatibile IBM-PC avem dBase IV, FoxPro, Paradox .a.

3.7. ntrebri pentru verificarea cunotinelor


1. Care este structura modelului relaional al datelor ?
2. Enumerai cteva avantaje ale modelului relaional.
3. Care sunt noiunile care definesc structura relaional a datelor ?
4. Definii conceptul de schem a unei relaii ?
5. Care sunt operaiile algebrei relaionale standard ?
6. Definii operaia algebrei relaionale de proiecie.
55

7. Definii operaia algebrei relaionale de selecie.


8. Definii operaia algebrei relaionale de diviziune.
9. Definii operaia algebrei relaionale de join.
10. Enumerai restriciile de integritate ale modelului relaional.
11. Explicai restricia de unicitate a cheii.
12. Explicai restricia de unicitate referenial.
13. Enumerai i explicai dependenele ntre date.
14. Explicai noiunea de schem conceptual optim .
15. Care sunt etapele procesului de proiectare a schemei conceptuale a unei baze de date
relaionale ?
16. Care sunt cerinele impuse unui SGBD pentru a putea fi considerat minim relaional ?

4. BAZE DE DATE CU STRUCTURI IERARHICE I REEA


4.1. Modelul de date ierarhic
Modelul de date ierarhic a fost primul model folosit pentru organizarea datelor n baze de date
datorit simplitii conceptului de ierarhie i a aplicabilitii sale n modelarea realitii
nconjurtoare.
Modelul ierarhic are ca structur de baz structura arborescent (ierarhia). Proprietile acestei
structuri de date determin caracteristicile i restriciile modelului ierarhic. n modelul ierarhic
56

fiecrui nod al arborelui i corespunde un tip de nregistrare, format din unul sau mai multe cmpuri,
reprezentnd atribute ce descriu entiti. Descrierea unei structuri ierarhice se poate face utiliznd
diagrame de structur.

Fig. 4.1. Diagram de structur ierarhic


Din figura de mai sus se observ c un nod printe poate avea subordonate mai multe noduri copil,
n timp ce un nod copil poate avea un singur printe, ceea ce nseamn c relaia printe-copil ntre
tipurile de nregistrri va fi 1 la M (unu la muli) i cea copil-printe va fi de tipul 1 la 1 (unu la
unu).
Unui tip de nregistrare din diagrama de structur a modelului ierarhic i corespunde n baza de
date un anumit numr de realizri. Relaiile ntre realizrile unui cuplu printe-copil sunt indicate de
arcele care leag cele dou componente ale diagramei. Astfel, arcul ce leag Tip_nregistrare_1 de
Tip_nregistrare_2 indic faptul c unei realizri a tipului printe (Tip_nregistrare_1) i se pot
asocia <n> realizri ale tipului copil (Tip_nregistrare_2) i c o realizare a tipului copil este
asociat cu o singur realizare a tipului printe. ntre Tip_nregistrare_3 i Tip_nregistrare_4,
relaia de 1 la 1 este reciproc. Acestea sunt singurele tipuri de relaii permise ntre realizrile
tipurilor de nregistrri ale modelului ierarhic.
O baz de date ierarhic poate fi definit ca fiind o mulime ordonat de realizri ale unui singur
tip arbore.
Un tip arbore const dintr-un singur tip de nregistrare rdcin, la care se adaug o mulime
ordonat alctuit din unul sau mai multe tipuri de subarbori dependeni. Un tip subarbore const
dintr-un tip de nregistrare rdcin i o mulime ordonat alctuit din unul sau mai multe tipuri de
subarbori dependeni .a.m.d. Deci, un tip arbore const dintr-o ierarhie a tipurilor de nregistrri.
O realizare a arborelui const dintr-o singur realizare a tipului nregistrare rdcin mpreun cu
o mulime ordonat alctuit din una sau mai multe realizri ale fiecrui tip subarbore imediat
dependent de tipul rdcin. Se observ c pentru orice realizare a unui tip nregistarare printe,
exist n realizri ale tipurilor nregistrare copil (). Toate realizrile unui tip copil care au aceeai
realizare printe se numesc gemeni.
57

Fie un (sub)arbore T cu rdcina R i subarborii S 1, S2, ..., Sn n aceast ordine. Fie t o realizare a
lui T, cu rdcina r (o realizare a lui R) i subarborii s 1, s2, ..., sn, realizri ale S1, S2, ..., Sn. Se
definete recursiv secvena ierarhic (ordonarea) pentru t, ca fiind secvena obinut alturnd
nregistrrii r, toate nregistrrile lui s1, s2, ..., sn, luate n ierarhia lor.
Fiecare arbore individual din baza de date poate fi privit ca un subarbore al unei nregistrri
rdcin iniiale. Deci baza de date poate fi considerat ca un singur arbore. Noiunea de secven
ierarhic definete o ordonare total pe mulimea tuturor nregistrrilor din baza de date.

4.2. Operatori ai modelului ierarhic


Un limbaj de manipulare a datelor ierarhice const dintr-un set de operatori de prelucrare a datelor
reprezentate arborescent. Exemple de operatori: operatori pentru localizarea unui anumit arbore n
baza de date; operatori pentru trecerea de la un arbore la altul n baza de date; operatori de trecere de
la o nregistrare la alta ntr-un arbore, cu posibiliti de parcurgere n sus sau n jos pe diferite ci ale
ierarhiei; operatori pentru inserarea unei noi nregistrri la o poziie specific ntr-un astfel de arbore;
operatori de tergere a unei nregistrri specificate etc.
Aceti operatori sunt la nivel de nregistrare existnd i o clas de operatori pe mulimi de
nregistrri.

4.3. Restricii de integritate ale modelului ierarhic


Caracteristic modelului ierarhic este faptul c nici o realizare a unui nod copil nu poate s existe
fr a avea asociat o realizare a nodului printe. Aceasta nseamn c dac un nod printe este ters,
automat sistemul va terge ntregul subarbore ce are ca printe ale nod precum i c o realizare a
nodului copil nu poate fi inserat dac o realizare a nodului printe nu exist deja.
innd cont de cele de mai sus, precum i de relaiile permise ntre realizrile tipurilor de
nregistrri, pot fi enunate urmtoarele restricii de integritate ale modelului ierarhic:
realizare copil este ntotdeauna asociat unei singure realizri printe;
dac un tip de nregistrare nu are realizri, atunci nici tipurile
descendente de nregistrri nu au realizri.
De exemplu, s considerm o baz de date cu informaii despre comenzile lansate de clienii unei
firme (fig. 4.2.).

58

Fig. 4.2. Schema conceptual a unei baze de date ierarhice


Nodul rdcin este CLIENI, nregistrarea copil este COMENZI, iar relaia printe-copil este de
tipul 1:M (unu la muli), adic un client poate lansa mai multe comenzi firmei considerate. O
comand poate s includ mai multe produse iar acelai produs poate fi solicitat n mai multe
comenzi ale aceluiai client sau ale unor clieni diferii. Deci, ntre tipurile de nregistrare COMENZI
i PRODUSE relaia este de tip N:M (muli la muli). Deoarece modelul ierarhic nu permite
reprezentarea relaiei de acest tip, s-a optat pentru transformarea acesteia n dou relaii, prin
introducerea tipului de nregistrare LEGTUR, atfel: o relaie de tip 1:N ntre COMENZI i
LEGTUR i o alta de tip 1 la 1 ntre LEGTUR i PRODUSE (se respect astfel restricia 1,
conform creia o realizare copil poate fi asociat unei singure realizri printe).

Fig. 4.3. Relaii ntre date


59

Se observ c ntr-o realizare un nod copil poate apare de 0, 1 sau n ori, n timp ce n diagrama de
structur, tipul de nregistrare corespunztor apare o singur dat.
Totodat, dac n COMENZI nu exist realizri care s se refere la un produs T, nu vor exista
informaii despre acest produs n PRODUSE. Deci informaiile despre produse vor putea fi stocate n
baza de date a firmei, numai dac exist comenzi pentru acele produse.

4.4. Implementarea modelului ierarhic i SGBD-uri ierarhice


Modelul ierarhic presupune ca orice cutare a unei realizri copil s fie efectuat n secven
ierarhic, ncepnd cu realizarea rdcin. n exemplul considerat, avnd n vedere restricia 1, datele
pentru produsul X vor fi repetate pentru fiecare comand care include acest produs. Datorit acestei
redundane, actualizarea bazei de date este dificil. Astfel, pentru modificarea unro date despre
produsul X trebuiesc regsite toate nregistrrile care l conin, adic pentru fiecare client trebuie
verificate toate comenzile asociate pentru a le identifica pe care conin produsul X.
n acest context, maniera de implementare a relaiilor dintre tipurile de nregistrri va condiiona
performanele procesului de manipulare a datelor. Se cunosc dou modaliti de implementare a
acestor relaii:
1. Reprezentarea prin pointeri. Acest mod de implementare poate fi realizat n moduri diferite.
Unul dintre acestea presupune c fiecare realizare a unui tip de nregistrare printe trebuie s conin
un pointer (o adres) spre prima realizare a tipului copil. La rndul ei, fiecare realizare copil va
conine un pointer spre urmtoarea realizare copil asociat aceluiai printe. Fiecare nregistrare copil
poate conine, de asemenea, un pointer spre nregistrarea printe.
Un alt mod de implementare presupune c o realizare printe s aib un vector de pointeri spre
realizrile copii. De asemenea, exist situaia n care este util o cheie primar pentru a accesa
realizrile unui anumit tip de nregistrare. Pentru aceasta folosim pointeri spre realizrile nregistrrii
respective, n ordinea valorii cmpului ales drept cheie primar.
2. Reprezentarea secvenial pe suport a informaiilor. n acest caz fiecare realizare a arborelui
reprezint o nregistrare logic a fiierului. Componentele ierarhiei sunt aranjate pe suportul de
memorie corespunztor parcurgerii structurii arborescente n preordine: realizarea CLIENT A apare
prime, urmat de COMANDA A1.1, LEG A1.1. i PRODUS_X etc. Se observ c fiecare nou
realizare rdcin, semnaleaz nceputul unei noi realizri a arborelui.
n concluzie, se poate afirma c implementarea modelului ierarhic este difcil, prezentnd
dezavantajele redundanei informaionale din structura ierarhic a datelor i faptul c sistemele
ierarhice nu permit utilizatorului s manipuleze un subarbore ca o entitate independent.
60

Exist mai multe sisteme de gestiune a bazelor de date ierarhice, cel mai rspndit fiind IMS/VS
(Information Management System/Virtual Storage) i este implementat pe calculatoarele IBM, sub
sistemul de operare MVS. SGBD-urile ierarhice sunt realizate pentru calculatoare de mare capacitate
neexistnd un asemenea SGBD comercial pentru calculatoare compatibile IBM-PC.

4.5. Modelul reea i baze de date reea


Modelul reea folosete structura de date reea ca structur de baz. Reeaua este un graf orientat
alctuit din noduri conectate prin arce. Nodurile corespund tipurilor de nregistrare, iar arcele
pointerilor (adreselor de legtur). Modelul reea folosete nregistrrile pentru a reprezenta entitile
i pointerii ntre nregistrri pentru a reprezenta relaiile dintre entiti.
Structura de date reea seamn cu structura de date arborescent, cu dfierena c un nod
dependent (copil) poate avea mai mult dect un singur printe.
O baz de date reea const dintr-un numr oarecare de tipuri de nregistrri. O nregistrare este
constituit dintr-un numr oarecare de cmpuri (elementare sau agregate). Un cmp este cea mai mic
unitate de date care are nume. Fiecare cmp are un tip de dat asociat. Cmpul corespunde unui
atribut, iar nregistrarea unei entiti.

Fig. 4.4. Structur de date reea


Caracteristic modelului de date reea este conceptul de set, folosit pentru a exprima relaiile dintre
entiti. Un tip set const dintr-un singur tip de nod proprietar i unul sau mai multe tipuri de noduri
dependente, legate de acesta, numite tipuri membre.
O realizare a setului este o colecie de nregistrri avnd o realizare proprietar i un numr oarecare
de realizri membre asociate.
61

Modelul reea impune restricia conform creia o nregistrare nu poate fi membr a dou realizri
ale aceluiai tip set. Totui, o nregistrare poate s aparin mai multor tipuri set.
n modelul reea, toate seturile sunt implementate prin pointeri. Uzual, se creaz o list nlnuit
unde realizarea proprietar este capul listei. Proprietarul are legtur cu primul membru, care se leag
de al doilea i aa mai departe pn la ultimul membru. Ultimul membru face legtur cu proprietarul,
formnd un lan. O nregistrare membru a unui set poate avea trei pointeri:
- spre nregistrarea urmroare (next);
- spre nregistrarea anterioar (prior);
- spre proprietar (owner).
Modelul reea prezint o serie de dezavantaje cum ar fi:
modelul reea este complicat;
structura reea tinde s fragmenteze informaiile;
cea mai mare parte a optimizrii sistemului se face mai mult manual dect aplicnd
programe de optimizare;
conceptul de indicator de poziie este o surs de complexitate i de erori.
Cu toate acestea, n practic, SGBD-urile reea continu s fie folosite datorit performanelor
bune obinute n prelucrarea explicit la nivel de nregistrri. SGBD-urile reea folosesc limbaje de
descriere a datelor (LDD) pentru a defini baza de date i limbaje de manipulare a datelor (LMD)
pentru a satisface cererile de date.

5. BAZE DE DATE ORIENTATE PE OBIECTE


Dezvoltarea tehnologiei sistemelor de calcul n ultimii ani a condus la ptrunderea acestora n tot
mai multe domenii de activitate, avnd de rezolvat probleme din cele mai diverse i mai complexe.
Pentru aceasta, structurile clasice de date bazate pe text i valori numerice fie se dovedesc
insuficiente, fie complexitatea lor depete posibilitile de prelucrare oferite de tehnologiile clasice.
Aplicaiile specifice anumitor domenii cum ar fi: proiectarea asistat de calculator, sisteme
informatice geografice, sisteme bazate pe cunotine etc., presupun stocarea unor cantiti mari de
informaii cu o structur complex. De exemplu, aplicaiile de proiectare asistat de calculator
necesit stocarea i manevrarea unor desene formate din grupuri de elemente complexe, alturi de
62

acestea fiind necesar stocarea i a altor informaii privind materialele folosite, maini i utilaje
disponibile, rezultate ale verificrilor efectuate asupra proiectului etc.
Un alt domeniu al informaticii care necesit structuri de date complexe este multimedia. Acest
domeniu, spre care exist o orientare tot mai puternic, presupune integrarea imaginilor reale sau
sintetizate cu sunet i muzic, integrare ce nu mai permite folosirea datelor numerice sau de tip ir de
caractere.
O modalitate de rezolvare a acestor probleme este dat i de tehnologia aplicaiilor orientate pe
obiecte.
Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai
simple, fiecare avnd propriile atribute i propriul comportament. Domeniile care se preteaz n mod
deosebit la o tratare orientat pe obiecte sunt:
proiectare (CAD), fabricare (CAM) i inginerie (CAE) asistate de calculator;
simulare i modelare;
sisteme informaionale spaiale (GIS);
administrarea documentelor i automatizarea muncii de birou;
multimedia;
ingineria cunoaterii: baze de cunotine, sisteme expert;
controlul proceselor n timp real, pe baz de evenimente.
Obiectivele principale ale sistemelor de gestiune orientate pe obiecte sunt:
Puterea de modelare superioar a datelor.
Posibiliti de deducie superioar (ierarhie de clase, motenire);
Ameliorarea interfeei cu utilizatorul;
Luarea

considerare

aspectelor

dinamice,

integrarea

descrierii

structurale

comportamentale a obiectelor.

5.1. Modelul de date orientat pe obiecte. Concepte de baz


Un model de date orientat pe obiecte are la baz noiunea de entitate conceptual i definete un
obiect ca o colecie de proprieti care descriu entitatea. Principalele concepte care stau la baza unui
model orientat pe obiecte sunt: obiectul, ncapsularea, persistena, clasa, tipul, motenirea,
polimorfismul, identitatea i domeniul.
Obiectul

63

Conceptual, un obiect reprezint o unitate identificabil i cu coninut propriu, care se deosebete


de ceea ce o nconjoar.
Obiectele sunt abstractizri ale entitilor lumii reale i se caracterizeaz prin stare i
comportament.
Starea unui obiect este exprimat prin valorile atributelor sale. Colecia de
atribute aleas pentru un obiect trebuie s fie suficient pentru a descrie
entitatea, adic trebuie s includ acele atribute pe care le cunosc utilizatorii.
Comportamentul unui obiect reprezint un set de metode sau operaii care
acioneaz asupra atributelor sale.
Considernd, de exemplu obiectul AVION acesta poate avea ca atribute: viteza, anvergura,
greutatea, culoarea, nlimea de zbor etc.
Un obiect nglobeaz urmtoarele elemente:
structura de date;
specificarea operaiilor;
implementarea operaiilor.
Structura unui obiect i operaiile (metodele) permise pentru acel obiect sunt definite mpreun.
O metod reprezint o procedur ce manipuleaz obiectul sau indic starea sa i este totdeauna
asociat unei clase.
Metodele i atributele nu sunt vizibile din exteriorul obiectului. Un obiect comunic cu
exteriorul prin intermediul mesajelor . Mesajele reprezint cereri adresate obiectului pentru a
returna o valoare sau pentru a-i schimba starea.
Obiectele pot fi simple sau compuse din alte obiecte. Un obiect compus poate avea ca atribute alte
obiecte, formnd astfel o structur ierarhic.
ncapsularea
Structura obiectului i modul de aciune al metodelor sale nu pot fi accesate i actualizate direct de
ctre un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Aceast caracteristic
ascuns a strii obiectului este cunoscut sub numele de ncapsulare. Un obiect este astfel divizat n
dou pri: o parte de interfa reprezentat de mesaje i o parte ascuns, de implementare,
reprezentat de starea intern i de metodele obiectului.
ncapsularea ascunde utilizatorului complexitatea unui obiect, oferindu-i n schimb o imagine
funcional simplificat a acestuia, imagine care i permite s modeleze i s rezolve cu mai mult
uurin problemele complexe.

64

Persistena
Aceasta este o proprietate a datelor sau a obiectelor care implic existena mai ndelungat a
acestora fa de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigur
pstrarea unui proces pentru a fi refolosit ulterior n alt proces.
Codul aferent metodelor, fiind parte integrant din obiect, este stocat, ca i starea obiectului, n
baza de date. Aceasta nseamn c, odat ce a fost descris, o metod devine permanent,
decongestionnd astfel aplicaia i asigurndu-i independena fa de date. O modificare adus unei
metode devine imediat operant i persist pn la o nou modificare.
Tipuri i clase
Obiectele care au acelai fel de atribute i acelai comportament pot fi categorisite ca fcnd parte
din acelai tip sau din aceeai clas.
ntr-un sistem orientat pe obiecte, tipul sintetizeaz elementele comune ale
unui set de obiecte cu aceleai caracteristici. Corespunde noiunii de tip abstract
de date i are dou componente:
interfaa;
implementarea.
Noiunea de clas, dei are aceeai specificaie cu cea de tip, este diferit de
acesta, fiind mai mult asociat cu faza de execuie i presupune dou aspecte:
generarea de obiecte;
stocarea setului de obiecte care reprezint instanele clasei.
O clas are o descriere ce const dintr-un set de structuri de date comune,
cunoscute ca variabile de instan, un protocol comun ce const dintr-un set de
mesaje, la care instanele clasei vor rspunde i un set de metode pentru
implementarea de operaii comune.
Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei servete ca ablon dup care
vor fi create noile obiecte. O clas este deci un tip abstract de date care definete att structura
obiectelor din clasa respectiv, ct i mulimea metodelor existente pentru aceste obiecte. Ca urmare,
obiectele din aceeai clas au aceleai atribute i aceleai metode i rspund la aceleai mesaje.
Clasele sunt organizate ierarhic fiecare clas nou creat trebuind s fie
obinut din alt clas deja existent. Dac nu exist nici o clas potrivit pentru
65

definirea unei noi clase, aceasta va fi identificat ca o subclas a clasei generale


sistem

(metaclas).

Orice

subclas

motenete

structurile

metodele

superclasei din care face parte. O clas poate crea noi instane ale obiectelor.
Motenire
ntr-o baz de date orientate pe obiecte, clasele sunt aranjate ntr-o ierarhie n care fiecare clas
motenete toate atributele i metodele superclasei din care face parte. Motenirea este un concept
puternic, care conduce la posibilitatea de reutilizare a codului.
Prin motenire, o clas preia toate atributele i metodele clasei din care deriv adugnd la ele
atributele i metodele proprii. Este de asemenea posibil ca o clas s aib mai mult dect o superclas.
Acest lucru este cunoscut ca motenire multipl.
Polimorfism
Polimorfismul se refer la faptul c, la primirea unui mesaj, stabilirea metodei care se aplic se
face n mod dinamic, n funcie de clasa obiectului n cauz. Astfel, instane ale unor clase diferite pot
fi adresate uniform (primesc aceleai mesaje), dar manifest comportamente diferite. Acest fapt
asigur manipularea simpl i coerent a seturilor eterogene de obiecte.
Un alt tip de comportament polimorfic este asociat cu motenirea. Rspunsul unui obiect la un
mesaj poate fi determinat de metodele motenite de la superclas. Motenirea multipl permite
definirea unor forme complexe de comportament polimorfic care pot antrena uneori combinarea
metodelor de la dou sau mai multe superclase.
Identitatea
Identitatea este un mijloc de a distinge un obiect de altul. Prin identitate se asigur i persistena
datelor.
Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independent de
valorile atributelor sale. Spre deosebire de modelul relaional, care utilizeaz unicitatea cheii primare
pentru a identifica obiectul, tehnologia orientat pe obiecte permite modificarea valorilor oricrui
atribut fr a-i afecta identitatea. Mai mult chiar, obiectele au contiina de sine, adic se pot referi
pe ele nsele prin intermediul pointerului SELF.
Fiecare instan sau realizare a obiectului are un identificator de obiect intern,
repartizat lui i cunoscut ca ID obiect sau pointer. Acesta este independent de

66

valorile atributelor sale. Fiind generat de sistem, identificatorul este unic i nu


este accesibil utilizatorului.
Restricii de integritate ale modelului de date orientat pe obiecte
n cazul modelului de date orientat pe obiecte, restriciile de integritate cunt o consecin a
structurii modelului i a operaiilor. Urmtoarele reguli sunt important de reinut:
toate obiectele trebuie s respecte protocolul specificat prin definirile lor de clas;
obiectele sunt ncapsulate. Aceasta presupune accesul la obiect numai prin folosirea
protocolului de mesaje definit pentru clasa obiectului;
identificatorul obiectului trebuie s asigure integritatea referirii la un obiect. Astfel, un
obiect nu exist fr s aib asignat un identificator.
Dac un obiect este ters sau mutat atunci trebuie s fie terse sau mutate toate obiectele derivate
din acesta..

5.2. Baze de date orientate pe obiecte


O baz de date orientat pe obiecte poate fi definit ca fiind rezultatul aplicrii tehnologiei
orientate pe obiecte n domeniul stocrii i regsirii informaiilor. Ea ofer posibilitatea de a
reprezenta structuri de date foarte complexe cu ajutorul obiectelor.
Definirea clasei este mecanismul de specificare a schemei bazei de date. Schema bazei de date
const din toate clasele care au fost definite pentru o aplicaie particular. Definiiile de clas includ
motenirea, relaiile de nrudire (superclasa, subclasa) i relaiile structurale dintre clase (analog cu
relaiile din modelul entitate-relaie-atribut).
O schem complet de baz de date poate consta din una sau mai multe ierarhii de clas mpreun
cu relaiile structurale. Descrierile individuale ale schemei se refer la variabile de instan ale
claselor individuale.
Schema bazei de date poate fi modificat dinamic, n funcie de necesitile utilizatorilor. Pot fi
identificate dou tipuri de schimbare a schemei unei baze de date orientate pe obiecte:
1. Schimbri referitoare la modul de definire al unei clase. Acestea includ schimbrile atributelor
i metodelor definite pentru o clas, cum ar fi schimbarea numelui sau domeniului unui atribut,
adugarea, tergerea unui atribut sau metode;
2. Schimbri referitoare la structura ierarhiei de clase care includ adugarea sau tergerea unei
clase i schimbarea relaiilor superclasa/subclasa dintre o pereche de clase.

67

Proiectarea bazelor de date orientate pe obiecte


Modul clasic de proiectare se bazeaz pe tehnica top-down. Se identific mai nti componentele
majore, se stabilesc corelaiile ntre ele, iar apoi se trece la rafinri succesive, n cascad, a
componentelor.
Proiectarea orientat pe obiecte se bazeaz mai mult pe tehnica bottom-up. Se identific mai nti
componentele funcionale pe baza crora se va construi apoi ntregul edificiu. Se identific n
coleciile existente obiectele care pot fi reutilizate pentru noul proiect. Acestea vor fi preluate ca atare
sau, dac este cazul, vor fi ajustate. Cele care nu exist vor fi create, uneori din temelii, dar de cele
mai multe ori ca subclase ale unor clase existente. Odat creat ierarhia de clase potrivit, se testeaz
componentele specifice, se pune la punct documentaia i se poate ncepe aciunea de implementare.
Aceast metodologie modific n mod substanial planificarea lucrrilor i etapelor. Partea cea mai
minuioas a proiectrii se mut la nceputul proiectului. Dac exist deja biblioteci de obiecte
utilizate n alte aplicaii, realizarea uni prototip se poate face foarte rapid. Pe baza lui se stabilesc
aspectele funcionale i de interfa ale aplicaiei, dup care se trce la etapa de identificare a
obiectelor, a claselor, a ierarhiei, a modului de comunicare ntre obiecte. Etapa final a proiectului
const n asamblarea acestor elemente.
Sisteme de gestiune a bazelor de date orientate pe obiecte
Sistemele de gestiune a bazelor de date orientate pe obiecte trebuie s pstreze funciunile oferite
de SGBD-urile dezvoltate anterior, folosind totodat structuri de date i reguli orientate spre lucrul cu
obiecte.
Un SGBD orientat pe obiecte trebuie s satisfac dou criterii:
s fie un sistem orientat pe obiecte, deci bazat pe modelul orientat pe obiecte;
s ndeplineasc cerinele unui sistem de gestiune a bazelor de date.
Arhitectura unui SGBD se refer la o descriere abstract a organizrii unui sistem n scopul de a
prezenta componentele funcinale i interfeele dintre ele. Arhitectura unui SGBD-OO cuprinde trei
componente majore:
Gestionarul de obiecte (Object Manager) care asigur interfaa dintre procese (prelucrrile) externe
i SGBD-OO;
Server-ul de obiecte care este responsabil cu asigurarea serviciilor de baz ale SGBD-urilor, cum
ar fi: gestiunea tranzaciilor i gestiunea stocului de obiecte;
68

Stocul rezident de obiecte sau chiar baza de date obiect.


Procesele externe pot fi generate de ctre diveri utilizatori prin accesarea SGBD-OO. Utilizatorii
finali externi i cei care dezvolt aplicaii pot folosi diverse instrumente soft, cum ar fi: editoare de
texte, browseri de obiecte i clase, accesorii de proiectare automat de baze de date i interfee pentru
sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce
realizeaz interfaa cu gestionarul de obiecte.
n prezent, SGBD-OO comerciale sunt accesate n primul rnd prin limbajele de programare
orientate obiect, cum ar fi: Smalltalk, Common Lisp i C++. Interfaa dintre limbajele de programare
orientate pe obiecte i SGBD-OO o reprezint limbajul pentru baza de date. Un SGBD trebuie s
asigure un limbaj pentru baze de date pentru a permite definirea i manipularea schemei bazei de date
i a datelor. Exemple de SGBD-OO sunt: GemStone, ObjectStore, Ontos, Raima Object Manager,
Versant etc. Toate aceste SGBD-uri ruleaz pe microcalculatoare, staii SUN, Apollo i Digital i pe
PC-uri.

5.3. ntrebri pentru verificarea cunotinelor


1. Care sunt caracteristicile unui obiect ?
2. Explicai conceptul de motenire.
3. Explicai conceptul de ncapsulare.
4. Explicai conceptul de polimorfism.
5. Precizai restriciile de integritate ale modelului de date orientat obiect.
6. Care sunt modalitile de schimbare a schemei unei baze de date orientate obiect ?
7. Caracterizai proiectarea bazelor de date orientate obiect.
8. Prin ce se identific un SGBD ca fiind orientat obiect ?

69

6. BAZE DE DATE DISTRIBUITE


O baz de date distribuit poate fi definit ca o colecie de date integrate
din punct de vedere logic dar distribuite din punct de vedere fizic pe staiile unei
reele de calculatoare. Fiecare staie a reelei are autonomie de prelucrare care i
permite s realizeze aplicaii locale. De asemenea, fiecare staie particip la
execuia aplicaiilor globale care necesit accesarea datelor din mai multe staii.
Reelele de calculatoare pot fi locale (LAN - Local Area Network) sau la nivel de jude, ar,
continent etc. (WAN - World Area Network).
Realizarea i exploatarea bazelor de date distribuite implic rezolvarea unor probleme cum ar fi:
-

Controlul centralizat. Spre deosebire de bazele de date locale care erau


controlate de un administrator unic, bazele de date distribuite presupun
existena unui administrator global, care are responsabilitatea central a
ntregii baze de date distribuit i a unor administratori locali, crora le
revin responsabilitile legate de bazele de date locale. Administratorii
locali pot avea un grad nalt de autonomie care poate merge pn la
realizarea coordonrii ntre staii.

Independena datelor. n cazul bazelor de date distribuite asigurarea


independenei datelor fa de programele de aplicaii are aceeai
importan ca i n cazul bazelor de date locale, dar apare un nou aspect
legat de transparena distribuiei. Prin transparena distribuiei programele
pot fi scrise fcnd abstracie de distribuirea fizic a datelor. Mutarea
70

datelor dintr-o staie n alta trebuie s afecteze numai viteza de execuie,


nu i corectitudinea programului.
-

Asigurarea unei redundane minime i controlate. n cadrul bazelor


de date distribuite exist mai multe motive pentru a considera redundana
datelor o caracteristic acceptabil, i anume:
localizarea este mai rapid atunci cnd datele sunt replicate la toate staiile unde
sunt cerute de aplicaii;
disponibilitatea, sigurana sistemului crete atunci cnd datele sunt replicate. n
cazul cderii unei staii, aplicaiile pot fi dirijate la staiile unde datele sunt
replicate.

Redundana datelor reduce efortul de regsire a datelor dar crete efortul de actualizare. Evaluarea
unui grad optim al redundanei trebuie s in seama de raportul ntre accesele de regsire i accesele
de actualizare a datelor.
-

Integritatea, restaurarea datelor i controlul concurenei. n cazul


bazelor de date distribuite soluiile privind integritatea, restaurarea datelor
i controlul concurenei (cererea simultan a acelorai date) sunt legate de
modul de realizare a tranzaciilor. O tranzacie este o unitate atomic de
execuie, o secven de operaii care fie sunt realizate n ntregime fie nu
sunt realizate. n cadrul bazelor de date distribuite problema atomicitii
tranzaciilor capt un aspect particular legat de modul n care trebuie s
se comporte sistemul atunci cnd una din staii nu este operaional: s
abandoneze ntreaga tranzacie sau s ncerce s execute corect tranzacia
chiar dac ambele staii nu sunt simultan operaionale.

Sigurana i securitatea datelor. n bazele de date tradiionale,


administratorul bazei de date care are controlul centralizat permite numai
un aces autorizat la date. n bazele de date distribuite, administratorii se
confrunt cu aceleai probleme ca administratorii bazelor de date
tradiionale. Sunt de menionat dou aspecte particulare:
n bazele de date distribuite, cu un grad ridicat de autonomie a staiilor, bazele de
date locale sunt mai protejate deoarece administratorii locali i realizeaz propria
protecie fr s depind de un administrator centralizat;
problemele securitii sunt intrinseci sistemelor distribuite deoarece comunicaia n
reea poate reprezenta un punct slab n realizare proteciei.

Fa de bazele de date centralizate, bazele de date distribuite au urmtoarele avantaje:

71

Creterea adaptabilitii sistemului. n orice moment baza de date poate fi extins prin
adugarea de noi structuri de baze de date, cu un impact minim asupra structurii bazei de
date distribuite i fr a afecta aplicaiile existente. n cazul sistemelor centralizate,
dimensiunile iniiale ale sistemului trebuie s prevad viitoarele expansiuni, lucru greu de
realizat i costisitor de implementat.
Sporirea performanelor sistemului deoarece partajarea i replicarea datelor ca i
existena mai multor procesoare au ca rezultat creterea gradului de paralelism n
executarea aplicaiilor.
Creterea siguranei sistemului. Sistemul distribuit este proiectat astfel nct cderea unei
staii nu afecteaz ntregul sistem.
Disponibilitatea sporit a datelor asigurat de replicarea lor. Chiar dac o staie cade,
datele sunt nc disponibile prin copiile memorate pe alte staii.

6.1. Sistemul de gestiune a bazelor de date distribuite


Un sistem de baze de date distribuite este un sistem n cadrul cruia mai multe baze de date locale
sunt legate printr-un sistem de comunicaie astfel nct datele din orice staie pot fi accesate de
utilizatori de la alte staii.
Un sistem de baze de date distribuite conine urmtoarele componente software:
componenta de comunicaie;
sistemul de gestiune al bazei de date locale (SGBDL);
dicionarul de date global (DDG);
sistemul de gestiune al bazei de date distribuite (SGBDD).
Componenta de comunicaie este cea care realizeaz legturile n cadrul reelei. El cuprinde
descrierea complet a nodurilor i a legturilor din cadrul reelei.
Sistemul de gestiune al bazei de date locale este un sistem standard de gestiune a bazelor de date.
De obicei conine propriul su dicionar pentru datele locale.
Dicionarul de date global cuprinde informaii despre baza de date distribuit: localizarea,
structura, disponibilitatea i modul de utilizare a datelor.
SGBDD cuprinde un sistem complex de programe care asigur interfaa ntre baza de date
distribuit i utilizatorii acesteia.
Funciile pe care le ndeplinete un SGBDD sunt urmtoarele:
1. Asigurarea interfeei cu utilizatorul. Unul din obiectivele majore ale
unei baze de date distribuite este asigurarea transparenei localizrii
datelor. Utilizatorul nu trebuie s cunoasc nodul la care sunt localizate
72

datele i s interacioneze cu baza de date distribuit n acelai mod ca i


cu o baz de date local.
2. Localizarea datelor. Dup primirea unei cereri de date, SGBDD consult
dicionarul de date global pentru a localiza nodul n care sunt memorate
datele. Cererile de date pot fi mprite n cereri locale, la distan i
compuse. Dac cererea poate fi satisfcut n ntregime local este preluat
de SGBD-ul local. O cerere la distan este o cerere care poate fi prelucrat
n ntregime ntr-un alt nod dect cel care a emis cererea. n acest caz
SGBDD transfer crerea SGBD-ului de la nodul respectiv. O cerere compus
este o cerere care necesit informaii din mai multe noduri. Pentru a
prelucra o cerere compus este necesar mai nti descompunerea
acesteia n cereri locale i cereri la distan. n urma prelucrrii, rezultatele
sunt transferate SGBDD care le transfer la rndul lui utilizatorului. Pentru
a superviza execuia cererilor, un nod trebuie s-i asume rolul de
coordonator. Celelalte noduri care concur la realizarea unei cereri se
numesc noduri cooperante. Un nod poate fi n acelai timp nod i
coordonator (pentru crerile lansate din acest nod) i cooperant (pentru
cererile lansate din celelalte noduri care solicit acces la acest nod).
3. Asigurarea controlului concurenei i restaurarea datelor la nivelul
ntregului sistem. Fiecare SGBD rspunde de actualizarea i restaurarea
datelor din propria baz de date. n caz de incident, SGBD local poate
restaura datele la starea anterioar producerii incidentului dar numai
SGBDD poate pstra i aplica modificrile care au intervenit dup
producerea incidentului. Controlul concurenei la nivelul sistemelor este
necesar pentru a asigura sincronizarea proceselor.
4. Realizarea administrrii bazei de date distribuite i controlul
acesteia. SGBDD dispune de instrumente pentru monitorizarea bazei de
date distribuite, colectarea informaiilor despre modul de utilizare a
acesteia i, pe baza acestora, realizeaz viziunea global asupra ei.
O caracteristic important a SGBDD este omogenitatea sau eterogenitatea. Un SGBDD este
omogen atunci cnd toate SGBD-urile locale sunt de acelai fel. Un SGBDD eterogen implic cel
puin dou SGBD-uri locale diferite.
Astzi exist SGBDD omogene cum sunt: SDD-1, R*, DDM .a. i SGBDD eterogene cum ar fi:
MULTIBASE, DDTS .a. De un interes crescnd se bucur sistemele eterogene de baze de date
distribuite.
73

6.2. ntrebri pentru verificarea cunotinelor


1. Ce este o baz de date distribuit ?
2. Enumerai i explicai principalele probleme ridicate de realizarea i exploatarea bazelor de
date distribuite.
3. Care sunt avantajele bazelor de date distribuite ?
4. Care sunt componentele unui SGBD distribuit (SGBDD) ?
5. Care sunt funciile specifice pe care trebiue s le ndeplineasc un SGBDD ?
6. Explicai funcia SGBDD de asigurare a interfeei cu utilizatorul.
7. Explicai funcia SGBDD de localizare a datelor.
8. Explicai funcia SGBDD de asigurare a controlului accesului concurent la date.

74

7. PROTECIA BAZELOR DE DATE


Protecia bazelor de date const dintr-un set de msuri umane i faciliti
oferite de SGBD prin care se urmrete asigurarea integritii datelor, definit
ca fiind corectitudinea datelor introduse i manipulate, i a securitii datelor,
ce vizeaz interzicerea accesului la date pentru persoanele ce nu au competene
n folosirea lor. Aceasta capt o importan deosebit n contextul extinderii
folosirii configuraiilor cu numr mare de utilizatori i cu un volum mare de date
de prelucrat.
n ceea ce privete sfera de aciune a metodelor utilizate pentru protecia datelor, pot fi puse n
eviden dou tendine: protecia mpotriva unor defecte sau erori accidentale i protecia complet
care realizeaz n plus fa de prima i protecia contra unor aciuni voite. Teoretic, toate sistemele ar
trebui s asigure protecia complet a datelor. n practic ns, costul proteciei, care crete pe msur
ce sunt reduse posibilitile de apariie a unor erori i de violare a confidenialitii datelor, este cel
care dicteaz complexitatea metodelor de protecie care vor fi utilizate. Aspectele proteciei bazelor
de date ce vor fi prezentate mai jos se bazeaz pe presupunerea c protecia informaiei la nivelul
sistemului de operare este asigurat.

7.1. Integritatea datelor


Corespunztor situaiilor care pot genera apariia unor date incorecte n baza de date, se disting trei
aspecte ale asigurrii integritii datelor:
1. Asigurarea integritii semantice a datelor - presupune prevenirea
introducerii unor date incorecte i a efecturii unor prelucrri greite. Dac
acest lucru nu va fi mpiedicat sau semnalat imediat, datele vor fi utilizate
n alte prelucrri, declanndu-se astfel un proces necontrolat de alterare a
bazei de date. Cu ct sesizarea unei erori are loc dup o perioad mai
mare, cu att efectele ei vor fi mai greu de controlat.
2. Controlul accesului concurent la date - presupune prevenirea obinerii
unor rezultate incorecte din execuia concurent (simultan) a unor
prelucrri n regim multiutilizator. O alt problem care poate apare la
75

prelucrarea concurent este dat de interblocare. Aceasta nseamn c


dou tranzacii blocheaz anumite resurse, apoi solicit fiecare resursele
blocate de cealalt.
3. Salvarea i restaurarea bazei de date. Au ca scop readucerea datelor
la o form consistent n urma unor evenimente care au alterat
corectitudinea lor precum:
funcionarea anormal sau o cdere a SGBD sau a sistemului de operare;
defeciune fizic a suportului fizic pe care este memorat baza de date.
n primul caz, prin ntreruperea tranzaciilor active n momentul respectiv, baza de date va rmne
ntr-o stare de inconsisten. n cel de-al doilea caz, suportul pe care rezid baza de date va fi
inutilizabil, deci toate datele se vor pierde.
Pentru restaurarea bazei de date este necesar existena unor informaii despre derularea
tranzaciilor pn n momentul ntreruperii lucrului i aplicarea, dup caz a uneia din urmtoarele
tehnici de restaurare de baz:
-

derularea napoi a tranzaciilor

(ROLLBACK)

care

presupune

anularea

modificrilor efectuate de acestea asupra bazei de date;


-

derularea

nainte

tranzaciilor

completate

dar

nereflectate

baza

de

date

(ROLLFORWARD) - care presupune efectuarea acelor transformri prin care


baza de date restaurat s conin rezultatele acestora.
Se observ deci c tranzacia poate fi considerat unitatea de restaurare, n sensul c baza de date
restaurat trebuie, fie s reflecte rezultatele finale ale tranzaciilor, fie s nu fie afectat de acestea.
Procesul de restaurare utilizeaz o serie de infromaii obinute prin aplicarea unei anumite strategii
de salvare.
Datele salvate pot fi diferite combinaii ntre:
- copii ale bazei de date i copii ale jurnalelor acesteia;
- jurnale ale tranzaciilor;
- jurnale ale imaginii nregistrrilor din baza de date.
Copiile bazei de date pot fi realizate automat de ctre sistem la anumite
intervale de timp, sau la comanda administratorului bazei de date, ori de cte ori
este nevoie, de preferat pe suporturi magnetice diferite de cele pe care este
stocat baza de date. n cazul unei deteriorri a suportului magnetic care
pstreaz baza de date, acesta este singura posibilitate de recuperare a bazei
de date.

76

Jurnalul tranzaciilor este un fiier special, ntreinut de SGBD, n care sunt


memorate informaii despre tranzaciile efectuate asupra bazei de date, cum
sunt:
identificatorul sau codul tranzaciei;
momentul nceperii execuiei tranzaciei;
numrul terminalului sau identificatorul utilizatorului care a iniiat tranzacia;
datele introduse;
nregistrrile modificate i tipul modificrii.
Pe baza lui va putea fi stabilit ulterior succesiunea corect i natura prelucrrilor efectuate n
intervalul de timp pentru care trebuie s se sigure restaurarea bazei de date.
Jurnalul imaginilor se deosebete de jurnalul tranzaciilor prin aceea c el
nu conine descrierea operaiilor efectuate asupra bazei de date ci efectul
acestora. Poate mbrca una din urmroarele forme:
jurnalul cu imaginea nregistrrilor dup modificare (after image) - va conine copia
fiecrei nregistrri ce este modificat, n forma rezultat dup modificare;
jurnalul cu imaginea nregistrrilor naintea unei modificri (before image) - va conine
copia fiecrei nregistrri ce este modificat, n forma iniial, anterioar efecturii
modificrii;
jurnalul care conine att imaginea nregistrrilor inainte ct i dup modificare.
Restaurarea bazei de date se poate face automat sau manual.

7.2. Securitatea bazei de date


Asigurarea securitii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se
realizeaz cu ajutorul unui set de msuri de protecie umane, software i hardware.
O prim astfel de msur o poate constitui izolarea sistemului de calcul n ncperi n care accesul
persoanelor s fie permis pe baz de legitimaii sau a altor forme de identificare.
Un alt nivel de protecie l poate constitui stabilirea de parole pe baza crora s fie permis accesul
la resursele sistemului de calcul.
n timpul lucrului efectiv cu baza de date se va verifica dac utilizatorul are dreptul de a executa
un tip de operaie asupra anumitor date. SGBD poate ine i un jurnal pentru urmrirea accesului la
baza de date, pe baza cruia pot fi depistate ncercrile de acces neautorizat la baza de date.
Pentru cererile de intrare/ieire transmise sistemului de operare de ctre SGBD sunt posibile
verificri suplimentare referitoare la utilizarea corect a fiierelor sau a funciilor sistemului de
operare.
77

Hardware-ul poate s ofere o protecie suplimentar, ca de exemplu transferarea datelor numai n


zona de memorie controlat de SGBD. De asemenea, datele pot fi memorate pe suportul extern ntr-o
form criptat.
n continuare vor fi prezentate urmtoarele mecanisme de asigurare a securitii datelor din baza
de date:
1. Autorizarea i controlul accesului la date presupune identificarea
utilizatorilor, restricionarea accesului acestora la date precum i restricionarea
operaiilor ce pot fi executate asupra datelor accesate.
Cea mai mare parte a SGBD-urilor actuale folosesc pentru identificarea utilizatorilor parole.
Fiecare parol va fi asociat cu anumite drepturi de acces la date, ea nefind dect un prim obstacol
pentru cei care ncearc s violeze securitatea bazei de date.
Astfel, pentru fiecare utilizator identificat prin parol, SGBD menine o list a
privilegiilor acestuia. De asemenea, utilizatorii pot fi asociai unor grupuri de
utilizatori, la drepturile fiecruie dugndu-se drepturile stabilite pentru grupul
respectiv. Privilegiile unui utilizator depind astfel de clasa de utilizatori creia
i aparine. Din acest punct de vedere, utilizatorii se mpart n: administratorul
bazei de date care are toate drepturile asupra acesteia, utilizatori proprietari de
obiecte (tabele, viziuni, proceduri), un obiect fiind ntotdeauna n proprietatea
celui care-l creeaz, i utilizatorii obinuii, care nu au n proprietate obecte i nu
au alte privilegii dect cele motenite ca membrii ai unui grup sau menionate
explicit de administratorul bazei de date.
2. Definirea i utilizarea viziunilor. Viziunile (schemele externe) sunt partiii logice ale bazei de
date. Ele sunt definite pentru diferii utilizatori n raport cu necesitile acestora de a avea acces la
date, putnd fi utilizate pentru a restriciona accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza creia
este definit. Securitatea datelor este asigurat prin definirea tuturor drepturilor necesare unui
utilizator pentru o viziune i revocarea drepturilor pentru obiectele iniiale.
Aceast modalitate este suficient n cazul n care asupra datelor viziunii este permis doar
operaia de citire. Pentru operaia de modificare trebuiesc avute n vedere efectele laterale pe care
aceasta le poate produce asupra obiectelor iniiale. Utilizatorului nu trebuie s i se permit s
efectueze asupra viziunii acele operaii care pot afecta obiectele iniiale. n caz contrar, pot s apar
erori sau inconsistene n baza de date.
3. Realizarea de proceduri speciale. Unele SGBD ofer facilitatea definirii
unor proceduri ce vor fi pstrate la nivelul sistemului ntr-o form precompilat.

78

n cadrul acestor proceduri vor fi specificate explicit operaiile ce trebuie efectuate asupra datelor.
Utilizatorului i se va acorda dreptul de execuie a acestor proceduri i i se va interzice accesul direct
la obiectele bazei de date gestionate de procedur.
4. Criptarea datelor este operaia de codifcare a datelor n timpul stocrii
sau al transportului, astfel nct descifrarea lor s poat fi fcut numai de
posesorii de cod.
La nivelul SGBD aceast facilitate poate mbrca dou forme:
existena unor rutine speciale care realizeaz criptarea datelor la cerere sau automat;
existena unor instrumente de criptare care permit utilizatorului s-i realizeze propriile
rutine de criptare.
Procesul efectiv de criptare presupune folosirea unui sistem de cifrare, ale crui componente sunt:
1. Algoritmul de criptare - realizeaz transformarea datelor din forma
iniial n forma criptat (cifrat).
2. Cheia de criptare - valoare ce constituie o intrare a algoritmului de
criptare, aleas dintr-o mulime de chei posibile.
3. Algoritmul de decriptare - realizeaz transformarea datelor din forma
criptat n forma iniial.
4. Cheia de decriptare - valoare ce constituie o intrare n algoritmul de
decriptare, dependent de cheia de criptare.

7.3. ntrebri pentru verificarea cunotinelor


1. Care sunt aspectele asigurririiintegritii datelor ?
2. Cum se poate realiza restaurarea bazei de date n cazul cderilor accidentale ale SGBD sau
SO ?
3. Cum se asigura refacerea bazei de date n cazul defectrii suportului de memorie pe care este
stocata aceasta ?
4. Ce conine jurnalul tranzaciilor ?
5. Ce conine jurnalul imaginilor ?
6. Ce presupune activitatea de asigurare a securitii bazei de date ?
7. Care sunt principalele mecanisme de asigurare a securitii datelor ?

79

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