Sunteți pe pagina 1din 75

1.

ELEMENTE DE TEORIA BAZELOR DE DATE

1.1. Organizarea datelor

Activitatea umană include o mulţime de activităţi desfăşurate pentru a satisface diverse necesităţi,
fie ele de natură materială sau spirituală. Pentru desfăşurarea acestor activităţi s-au dezvoltat
întreprinderi şi organizaţii speciale care, în vederea îndeplinirii scopului propus, necesită manevrarea
unui volum ridicat de informaţii. Au apărut şi s-au dezvoltat sisteme informaţionale care ocupă astăzi
un loc important în funcţionarea complexului mecanism reprezentat de societatea modernă. Sisteme
informaţionale reprezintă un ansamblu de tehnici şi metode de organizare şi manevrare a informaţiilor
specifice unui anumit domeniu de activitate (ex. circuitul informaţiilor într-o întreprindere, evidenţa
populaţiei, evidenţa cărţilor într-o bibliotecă etc.), de la generarea acestora şi până la ştergerea sau
stocarea lor. Apariţia calculatorului electronic a permis automatizarea acestor activităţi conducând la
apariţia sistemelor informatice.
Sistemele informatice sunt sisteme de organizare, manevrare şi exploatare a informaţiilor
(respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a
rezolva problemele legate de manevrarea informaţiilor, reprezentate prin intermediul datelor, apare ca
o necesitate existenţa unor modele şi mecanisme de organizare a datelor deoarece, de modul în care
sunt organizate datele depinde eficienţa 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 noţiunile de informaţie şi date.
Datele sunt reprezentări 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.).
Informaţia reprezintă sensul pe care oamenii îl acordă datelor (astfel că aceeaşi dată poate
reprezenta diverse informaţii, funcţie de cei care o folosesc).
Organizarea datelor presupune efectuarea următoarele activităţi:
- definirea, structurarea, ordonarea şi gruparea datelor;
- stabilirea legăturilor ( relaţiilor ) între date, între elementele unei colecţii de date şi între
colecţii de date;
- stocarea datelor pe un suport informaţional, prelucrabil într-un sistem de calcul.
Organizarea datelor se realizează pentru a permite regăsirea lor automată după anumite criterii şi
forme.
Obiectivele urmărite la organizarea datelor sunt:

5
- realizarea unui acces rapid la date stocate pe diferite suporturi de memorie;
- spaţiul de memorie internă şi externă ocupat să fie cât mai mic (economie de memorie);
- datele să apară o singură dată în sistem (unicitatea datelor);
- modul de organizare a datelor să reflecte, pe cât posibil, toate legăturile dintre obiectele,
fenomenele, procesele pe care acestea le reprezintă;
- schimbarea structurii datelor şi a relaţiilor dintre ele să se facă fără 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 proprietăţile 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 proprietăţile sale înseamnă că ea se
poate reprezenta prin mai multe perechi (ATRIBUT, VALOARE).
De exemplu, o persoană X poate fi reprezentată prin mulţimea de perechi: (NUME, IONESCU),
(VÂRSTA, 25), (SEX, MASCULIN), (PROFESIE, INGINER). Se observă însă că mulţimea
atributelor NUME, VÂRSTA, 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 entităţi numită entitate grup.
Atributele mai sunt cunoscute şi sub numele de câmpuri sau caracteristici.
Un atribut este caracterizat de mulţimea 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 situaţii de atribute compuse (formate prin înlănţuirea 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. Relaţii între date

Datele folosite pentru a descrie diverse procese, fenomene sau obiecte se găsesc în legătură una cu
alta. Între datele care aparţin unor tipuri de entităţi pot exista două categorii de legături:
- o categorie de legături definită de însăşi apartenenţa datelor la o anumită entitate;
- o a doua categorie constituită de legăturile dintre entităţile de acelaşi tip sau de tipuri diferite.
Exemplu:
Fie A mulţimea datelor despre salariaţii unei societăţi comerciale. Între datele acestei mulţimi se
pot stabili relaţii de tipul:
- x are aceeaşi profesie cu y;
- x este şeful lui y;
6
- x este mai în vârstă decât y;
- x are salariul mai mare sau egal cu al persoanei y etc.

Relaţia binară

Dacă luăm exemplul anterior putem spune că relaţia “are aceeaşi profesie cu” asociază fiecărui
salariat din mulţimea A pe toţi cei care au aceeaşi profesie, cu condiţia să facă parte tot din A. Astfel,
se pune în evidenţă o mulţime de perechi ordonate (x,y) cu proprietatea că elementelor x li se asociază
elementele y prin relaţia “are aceeaşi profesie cu”. Aceasta se poate reprezenta astfel:

R   x, y   A  A / x, y  A si " x are aceeasi profesie cu y" 

Definiţie. Fie A o colecţie oarecare de date, nevidă. Se numeşte relaţie binară pe A o submulţime
R a produsului cartezian A x A care îndeplineşte o proprietate (o legătură).
Numim elemente asociate prin relaţia R acele elemente x, y pentru care x, y  R .
Dacă x, y  R spunem că “x este asociat lui y prin relaţia R” sau că “x este în relaţia R cu y”, fapt
care se mai simbolizează prin x R y.
Proprietăţile relaţiei binare dintre date sunt:
1. Reflexivitate. Spunem că o relaţie R, definită pe o mulţime de date A, este reflexivă dacă pentru
x  R , avem x R x.
Exemplu: x  x, x  R .
2. Simetrie. O relaţie R definită pe mulţimea de date A spunem că este simetrică dacă pentru
  x, y  A, xRy implica yRx .

Exemplu: Fie A mulţimea judeţelor ţării.


Dacă x “este vecin cu” y rezultă că y “este vecin cu” x.
3. Asimetrie. Spunem că o relaţie R definită pe o mulţime 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 mulţime de date. Spunem că o relaţie R pe mulţimea 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 componenţa lui” y şi y “intră în componenţa lui” z,
atunci x “intră în componenţa lui” z.

Definiţie. O relaţie binară R, definită pe mulţimea de date A se numeşte relaţie de echivalenţă


dacă este reflexivă, simetrică şi tranzitivă.
7
Definiţie. Fie A o colecţie de date. Dacă   x, y  A , există relaţia x R y sau y R x, spunem că
relaţia dintre elementele colecţiei este de ordine totală.
Definiţie. O relaţie binară R, definită pe o mulţime de date A, care este reflexivă, asimetrică şi
tranzitivă se numeşte relaţie de ordine.
Definiţie. Relaţia binară R, definită pe o mulţime de date A, care este reflexivă şi tranzitivă se
numeşte relaţie 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 informaţional
automatizat şi de tehnologiile de prelucrare a datelor folosite.
Structura de date este definită ca o colecţie de date între care s-au stabilit o serie de relaţii care
conduc la un anumit mecanism de selecţie şi identificare a componentelor. Mulţimea de date asociată
structurii poate fi alcătuită din datele unui tip sau mai multor tipuri de entităţi. Componentele unei
structuri de date pot fi individualizate şi identificate prin nume (identificator) sau prin poziţia 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
secvenţial. Accesul secvenţial presupune parcurgerea tuturor componentelor structurii, aflate înaintea
componentei căutate, în timp ce accesul direct permite localizarea unei componente fără 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.
Operaţiile 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 iniţială pe suportul de memorie);
 consultarea datelor (accesul la componentele structurii în vederea prelucrării valorilor);
 actualizarea datelor (schimbarea stării structurii prin adăugarea, ştergerea unor elemente
componente, modificarea valorii unor elemente, modificarea relaţiilor 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.

8
Structurile de date care au aceeaşi organizare şi sunt supuse aceloraşi operaţii formează un tip de
structură de date.
Un tip de structură de date este o mulţime ordonată de date între care s-au stabilit anumite relaţii şi
pentru realizarea operaţiilor se foloseşte 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 acelaşi tip;
 structuri eterogene, în care componentele sunt de tipuri diferite.
Dacă o structură se poate descompune în structuri de acelaşi tip atunci avem o structură recursivă.
După posibilitatea de modificare a structurii, avem:
 structuri statice, care pe tot parcursul existenţei lor au acelaşi număr de componente în aceeaşi
ordine;
 structuri dinamice, care permit modificarea numărului de componente sau a poziţiei acestora
în structură, prin aplicarea operatorilor specifici strucutrii. Aceste structuri pot avea, teoretic,
un număr nelimitat de componente şi de aceea se mai numesc structuri cu cardinalitate
infinită.
Asemănător, 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 folosiţi 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 reţea;
 structura relaţională.

Structura punctuală este reprezentată de o entitate grup izolată, care nu are legături (relaţii) cu alte
entităţi.

Structura liniară (lista) este o structură care defineşte o relaţie de ordine totală între elementele
unei colecţii de date. După cum am văzut mai înainte, o relaţie de ordine totală este o relaţie care
există între oricare două elemente ale unei colecţii de date. Structura liniară presupune că fiecare
9
element al structurii conţine, pe lângă informaţiile care trebuiesc manevrate, informaţiile necesare
pentru a realiza o legătură (relaţie) cu alt element al aceleiaşi structuri.

Fig. 1.1. Structuri de date liniare

Acest tip de structură are următoarele caracteristici:


- are un singur element iniţial şi un singur element terminal;
- orice element care nu este iniţial şi nici terminal are un singur succesor imediat;
- primul element nu are predecesori;
- ultimul element nu are succesori;
- dacă există o relaţie între ultimul şi primul element atunci structura este inelară sau circulară;
- relaţiile stabilite între date sunt de tipul 1 la 1.

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

10
Fig. 1.2. Structură de date arborescentă

Structura de date arborescentă are următoarele caracterisitci:


- elementele structurii se numesc noduri;
- există un element unic, numit rădăcina arborelui, care nu are un predecesor;
- orice nod diferit de rădăcină are un predecesor imediat unic;
- orice nod netermical are un număr finit de succesori imediaţi;
- relaţiile stabilita între noduri sunt de tipul 1 la m.
Se numeşte drum de lungime n-1 de la nodul ai1 la nodul ain succesiunea de noduri (ai1, ai2, ..., ain)
în care pentru   ai ,k , k  n, ai ,k 1 este un succesor imediat al lui aik. Drumul de lungime maximă
constituie înălţimea arborelui.
Un arbore în care fiecare nod are strict numai doi succesori se numeşte arbore binar.

Structura de tip reţea este o structură în care între elementele componente există o relaţie de
preordine. În acest caz elementele sunt legate unele de altele prin legături multiple.
Caracteristicile acestui tip de structură de date sunt:
- o reţea este un graf în care, între două noduri, există legături bidirecţionale;
- un nod are mai mulţi predecesori şi el însuşi poate fi predecesor pentru propriul său predecesor,
caz în care apar cicluri în reţea. Un ciclu este un drum în care nodul iniţial este acelaşi cu nodul
final.
- între elementele reţelei se stabilesc legături de tipul “m la n”.
O reţea în care există doar legături univoce între elemente se numeşte reţea “simplă”. În caz
contrar reţeaua spunem că este o reţea complexă. Într-o reţea simplă nu există cicluri. Exemple de
reţele simplă şi complexă sunt date în figura următoare.

11
Fig. 1.3. Exemple de reţele de date
Structura relaţională a datelor consideră că acestea sunt organizate la nivel logic sub formă de
tabele (relaţii, tablouri) de date elementare, între care nu sunt legături explicite. Fiecare linie dintr-un
asemenea tabel se numeşte înregistrare şi fiecare element al unei înregistrări ce corespunde unei
anumte coloane se numeşte câmp.
Legăturile î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 relaţională 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 următoarele elemente:
- structura modelului;
- operatorii care acţionează asupra structurilor de date folosite;
- restricţiile care se impun pentru menţinerea corectitudinii datelor, restricţii numite şi reguli de
integritate.
Precizarea structurii modelului presupune descrierea tuturor obiectelor (entităţilor) şi a
caracteristicilor asociate acestora. Acest lucru se realizează folosind următoarele elemente generice:
- câmpul; este cel mai mic element al structurii care poate fi accesat pentru prelucrare;
- grupul simplu sau compus; este un set format din mai multe câmpuri şi/sau grupuri;
- înregistrarea, care este un ansamblu de grupuri şi câmpuri, constituind totodată şi elementul
generic al structurii.
Stabilirea relaţiilor între obiecte se face prin stabilirea relaţiilor care există între înregistrările
structurilor folosite la definirea modelului de date respectiv.
Structura unui model de date fără valori reprezintă un obiect generic. O colecţie de date cu valori
bine precizate şi care respectă un model definit reprezintă o realizare sau o instanţă a tipului de
obiect precizat.
Legăturile dintre obiecte (entităţi) poartă denumirea de asociere. Legăturile dintre două entităţi pot
fi de trei tipuri:
- legături “unu la unu” . Aceasta înseamnă că fiecare obiect are o legătură cu un alt obiect şi
numai cu unul. De exemplu, relaţia dintre locurile existente într-un cămin studenţesc şi
studenţi. Un loc poate fi ocupat de un singur student, iar un student are dreptul la un singur loc
în cămin.
- legături “unu la mulţi”. În acest caz un obiect poate avea legături (relaţii) cu mai multe
obiecte. De exemplu, un student poate face parte dintr-o singură grupă dar o grupă poate avea
mai mulţi studenţi.
- legături de tipul “mulţi la mulţi”. Acest tip de legătură presupune că fiecare obiect poate avea
multiple legături (relaţii) cu alte obiecte. Spre exemplu, un produs este cumpărat de mai mulţi
clienţi şi un client poate achiziţiona mai multe produse.
Operatorii care acţionează asupra structurilor de date constituie cel de-al doilea element al unui
model de date. Aceşti operatori pot fi de citire, memorare, modificare, joncţiune etc.
Regulile de integritate sunt restricţii menite să asigure menţinerea corectitudinii datelor. Ca
exemple de astfel de restricţii putem menţiona:

13
- să nu se permită ştergerea valorilor atributelor unui client dacă acesta nu a achitat integral
factura pentru cumpărarea unui produs anume;
- să nu se permită memorarea valorilor asociate unui produs dacă nu se cunoaşte valoarea
unui anumit atribut caracteristic, numit atribut cheie etc.
Modelele de date se împart, în funcţie de modul în care se definesc elementele amintite mai sus, în:
modele ierarhice sau arborescente, modele reţea, modele relaţionale, modele orientate obiect etc.

Modelul ierarhic
Foloseşte tipuri de înregistrări care grupează toate atributele unei entităţi. Pentru a realiza
asocierile dintre tipuri de înregistrări acest model foloseşte o structură de date arborescentă (o
ierarhie).

Fig. 1.5. Ierarhie de date

O ierarhie are un tip de înregistrare definit ca rădăcină şi mai multe tipuri de înregistrări
subordonate, legate sub formă de arbore.
Fiecare nod din arbore care nu este rădăcină sau nod final are un singur nod superior şi unul sau
mai multe noduri inferioare. Legătura de la un nod superior la unul inferior este de tipul “unu la
mulţi”, iar legătura de la un nod inferior la unul superior este de tipul “unu la unu”.

Modelul reţea

În acest model, datele sunt reprezentate asemănător cu modelul ierarhic, cu deosebirea că fiecare
inferior poate avea mai mulţi superiori. Toate structurile de date, inclusiv legăturile de tipul “m la n”
sunt definite natural, fără a recurge la artificii. În cadrul acestui model întâlnim două tipuri de
structuri:
14
-tipul de înregistrare ( care asigură atributele unei entităţi);
-tipul de set (care asigură legăturile între tipurile de înregistrări).

Modelul relaţional

Modelul relaţional are la bază teoria matematică a relaţiilor. El foloseşte o singură structură de
date: relaţia (tabelul) care este o submulţime a produsului cartezian al unor domenii (un domeniu este
reprezentat de o mulţime de valori ale entităţilor).
Modelul relaţional poate fi privit ca o mulţime de tabele obţinute prin metoda normalizării.
Normalizarea pleacă de la o mulţime de atribute (câmpuri de date) şi o mulţime de dependenţe
funcţionale dintre atribute şi conduce la o schemă conceptuală a modelului relaţional într-o formă
normalizată în care se vor elimina anomaliile de actualizări.
La cele trei modele de date prezentate mai sus se adaugă modelul orientat obiect, modelul
distribuit şi modelul funcţional. Ordinea în care au fost prezentate modelele de date este cea istorică,
în ultimii ani utilizându-se practic numai modelul relaţional sau cel distribuit, datorită avantajelor faţă
de celelalte modele.

1.5. Baze de date

Conceptul de bază de date a apărut în 1969 cu ocazia prezentării primului raport CODASYL în
cadrul unei conferinţe pe probleme de limbaje de gestiune a datelor.
Evoluţia metodelor şi tehnicilor de organizare a datelor a fost determinată de necesitatea de a avea
un acces cât mai rapid şi uşor la un volum din ce în ce mai mare de informaţii precum şi de
perfecţionarea echipamentelor de culegere, memorare, transmitere şi prelucrare a datelor.
Ideea principală a organizării datelor în baze de date se sprijină pe existenţa unui fişier de
descriere globală a datelor prin care se realizează independenţa programelor faţă de date şi a
datelor faţă de programe.
Accesul oricărui utilizator la baza de date se realiza prin intermediul fişierului de descriere
globală a datelor. Fişierul de date conţinea colecţiile de date şi legăturile dintre ele.
În esenţă, conceptul de bază de date poate fi definit ca fiind una sau mai multe colecţii de date
(Ki), aflate în interdependenţă, împreună cu descrierea datelor şi a relaţiilor dintre ele, (B={K 1,

K2, ...})

O bază de date astfel definită trebuie să îndeplinească următoarele condiţii:

15
- să asigure o independenţă sporită a datelor faţă de programe şi invers;
- structura bazei de date trebuie astfel concepută încât să asigure informaţiile necesare şi
suficiente pentru a satisface cerinţele informaţionale şi de decizie ale utilizatorului;
- să asigure o redundanţă minimă şi controlată a datelor;
- să permită accesul rapid la informaţiile stocate în bază.
Arhitectura generală a bazelor de date a fost standardizată internaţional şi cuprinde următoarele
elemente componente:
- baza de date propriu-zisă în care se memorează colecţia 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 reglementările administrative, destinate
bunei funcţionări a întregului sistem;
- un dicţionar al bazei de date (metabaza de date)), ce conţine informaţii despre date, structura
acestora, elemente de descriere a semanticii, statistici, documentaţie etc.
- echipamentele de calcul (hardware) utilizate (comune sau specializate);
- personalul implicat (categorii de utilizatori: finali sau de specialitate, analişti-programatori,
gestionari, operatori).
Bazele de date sunt extrem de variate în funcţie de criteriile de apreciere considerate. În continuare
sunt prezentate câteva criterii de clasificare:
- după orientare: generalizate, specializate;
- după modelul de date folosit: ierarhice, în reţea, relaţionale, 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 funcţie de clasa utilizatorilor
implicaţi:
- nivelul logic. Este dat de viziunea programatorului de aplicaţii, care realizează programele
de aplicaţii pentru manipularea datelor şi structura logică (subschema) corespunzăroare
descrierii datelor aplicaţiei;
- nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care
realizează structura conceptuală (schema) corespunzătoare 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ă
corespunzăroare descrierii datelor pe suportul fizic.

1.6. Sisteme de gestiune a bazelor de date

16
O bază de date poate fi privită ca o colecţie de date stocate pe suporţi de memorie externă,
adresabile de către mai mulţi utilizatori şi care satisface cerinţele 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 următoarelor activităţi:
- definirea structurii bazei de date;
- încărcarea bazei de date;
- accesul la date (interogare, actualizare);
- întreţinerea bazei de date (colectarea şi refolosirea spaţiilor 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, reprezentând mecanismul prin intermediul căruia acesta are acces la date.
Pentru a-şi putea îndeplini funcţiunile prevăzute, unui sistem de gestiune al bazei de date modern îi
revin o serie de obiective de îndeplinit, cum sunt:
1. Asigurarea independenţei datelor. Aceasta presupune că modificarea strategiei de memorare a
datelor sau a strategiei de acces la date nu trebuie să afecteze aplicaţia care prelucrează aceste date.
Independenţa datelor faţă de aplicaţie este necesară deoarece: diferite aplicaţii au nevoie de viziuni
diferite ale aceloraşi date; administratorul bazei de date trebuie să aibă libertatea de a schimba
structura de memorare sau strategia de acces, ca răspuns la cerinţe (schimbări de standarde,
priorităţile aplicaţiilor, schimbarea unităţilor fizice de memorare etc.), fără a modifica aplicaţiile
existente; baza de date existentă, precum şi programele de exploatare a ei reprezintă o investiţie
importantă la care nu trebuie să se renunţe prea uşor.
Independenţa datelor trebuie privită din două puncte de vedere: independenţa fizică şi
independenţa logică a datelor.
Independenţa fizică a datelor implică modificarea tehnicilor fizice de memorare a datelor fără a
necesita rescrierea programelor de aplicaţie.
Independenţa logică a datelor se referă la posibilitatea adăugării de noi articole de date sau
extinderea structurii conceptuale (globale), fără ca aceasta să impună rescrierea programelor
existente.

2. Asigurarea unei redundanţe minime şi controlate a datelor din baza de date. Redundanţa se
referă la numărul de apariţii în baza de date a unei date. }n general, stocarea datelor în baze de date ar
trebui să se facă astfel încât fiecare dată să apară o singură dată. Totuşi, există cazuri în care, pentru a
reduce timpul de căutare al unei date şi implicit timpul de răspuns la solicitările utilizatorilor, se

17
acceptă o anumită redundanţă a datelor. Această redundanţă trebuie controlată automat, prin program,
pentru a se asigura coerenţa datelor din bază.

3. Asigurarea unor facilităţi sporite de utilizare a datelor. Aceasta presupune:


- folosirea datelor de către mai mulţi utilizatori în diferite aplicaţii;
- accesul cât mai simplu al utilizatorilor la date, fără ca aceştia să fie nevoiţi să cunoască
structura întregii baze de date, acest lucru rămânând în sarcina administratorului bazei de date;
- existenţa unor limbaje performante de regăsire a datelor, care permit exprimarea sub forma
unei conversaţii, a unor criterii de selecţie a datelor şi indicarea unor reguli cât mai generale
pentru editarea informaţiilor solicitate;
- utilizarea unui limbaj cât mai apropiat de limbajul natural, cu posibilitatea exploatării bazei de
date în regim conversaţional, lucru care ar oferi posibilitatea exploatării bazei de date şi de
către utilizatori neinformaticieni.

4. Sporirea gradului de securitate a datelor împotriva accesului neautorizat la ele. În condiţiile


bazelor de date, administratorul bazei de date poate prevedea ca acesul la baza de date să se facă
numai prin canalele corespunzătoare, şi poate, totodată, defini verificări de autorizare, realizate
oricând se încearcă accesul neautorizat la anumite date.

5. Asigurarea integrităţii datelor împotriva unor ştergeri intenţionate sau neintenţionate, 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 partajabilităţii datelor. Partajabilitatea datelor trebuie înţeleasă nu numai sub


aspectul asigurării accesului mai multor utilizatori la aceleaşi date, cişi acela al posibilităţii
dezvoltării unor aplicaţii fără a se modifica structura bazei de date.

1.7. Funcţiile unui sistem de gestiune a bazelor de date

Sistemele de gestiune a bazelor de date au o multitudine de sarcini de îndeplinit. Grupând aceste


sarcini se obţin activităţile şi apoi funcţiile sistemului de gestiune al bazei de date. Ţinând seama de
complexitatea sistemului de gestiune, de facilităţile oferite, de limbajele utilizate şi tipul bazei de date
ce urmează a fi gestionată gruparea activităţilor pe funcţii poate avea un caracter relativ.
În continuare sunt prezentate câteva funcţii mai importante ale sistemelor de gestiune a bazelor de
date, funcţii cu caracter de generalitate, valabile pentru toate tipurile de sisteme de gestiune a bazelor
de date.
18
1. Funcţia 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 funcţii se descriu multitudinea atributelor (câmpurilor) din cadrul structurii bazei de date,
legăturile dintre entităţile bazei de date sau dintre atributele aceleiaşi entităţi, se definesc eventualele
criterii de validare a datelor, metodele de acces la date, aspectele referitoare la asigurarea integrităţii
şi confidenţialităţii datelor etc.
2. Funcţia de manipulare a datelor este cea mai complexă funcţie şi realizează următoarele
activităţi:
- crearea bazei de date;
- încărcarea bazei de date;
- adăugarea de noi înregistrări (tupluri);
- ştergerea unor înregistrări;
- modificarea valorilor corespunzătoare unor câmpuri;
- căutarea, sortarea şi editarea parţială sau totală a unei înregistrări virtuale etc.
3. Funcţia de utilizare asigură mulţimea interfeţelor necesare pentru comunicarea tuturor
utilizatorilor cu baza de date. În cadrul realizării acestei funcţii apar mai multe categorii de utilizatori:
- utilizatori “liberi” sau conversaţionali. Aceştia reprezintă categoriea beneficiarilor de
informaţii (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, realizând proceduri complexe
de exploatare a bazei de date;
- administratorul bazei de date, care este un utilizator special având un rol hotărâtor în ceea ce
priveşte funcţionarea optimă a întregului ansamblu.
4. Funcţia de administrare a bazei de date. Aceasta apare ca o funcţie complexă şi este de
competenţa administratorului bazei de date.

1.8. Întrebări de verificare a cunoştinţelor

2. Care este diferenţa între date şi informaţii ?


3. Care sunt obiectivele activităţii de organizare a datelor ?
4. Ce activităţi presupune organizarea datelor ?
5. Definiţi conceptele de entitate, atribut, valoare ?
6. Ce se înţelege prin structură de date ?
7. De câte feluri pot fi structurile de date ?
8. Ce fel de operaţii se pot efectua asupra unei structuri de date ?
19
9. Caracterizaţi structura de date arborescentă ?
10. Caracterizaţi structura de date relaţională ?
11. Care sunt componentele unui model de date ?
12. De câte tipuri pot fi legăturile între entităţi ?
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 funcţiile 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 cerinţelor
informaţionale solicitate de acest sistem;
- proiectarea structurii bazei de date (schema conceptuală, externă şi internă);
- încărcarea datelor în baza de date;
- exploatarea şi întreţinerea bazei de date.

20
Conţinutul acestor etape, respectiv activităţile implicate şi modul lor de desfăşurare depind, în
general, de tipul bazei de date precum şi de domeniul de activitate pentru care se construieşte baza de
date. Există însă o serie de aspecte cu caracter general care nu sunt influenţate de specificul unui
anumit domeniu de activitate sau de caracteristicile unui anumit tip de baze de date. În continuare vor
fi prezentate aceste aspecte generale, aspectele specifice urmând a fi tratate atunci când vor fi tratate
diferite tipuri de baze de date.
Realizarea unei baze de date presupune şi folosirea unor metode şi tehnici de analiză (tehnica
normalizării relaţiilor, 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 cerinţelor sale


informaţionale

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
următoarele etape:
- analiza componentelor sistemului şi a legăturilor (asocierilor) dintre acestea, activitate
cunoscută şi sub numele de analiză statică sau structurală, în urma căruia se obţine modelul
structural (static) al sistemului;
- analiza stărilor sistemului şi a tranziţiilor posibile între aceste stări, în raport de anumite
evenimente. Aceasta este aşa numita analiză temporală (comportamentală), prin care se obţine
modelul dinamic (sau temporal) al sistemului;
- analiza cerinţelor informaţionale, respectiv a transformărilor de date (a tranzacţiilor) din
cadrul sistemului prin care sunt satisfăcute cerinţele informaţionale asociate sistemului. În
urma acestei activităţi se obţine modelul funcţional al sistemului informatic analizat;
- integrarea modelelor sistemului informatic (structural, dinamic şi funcţional) în scopul
corelării şi completării lor.

2.2.1. Analiza structurală a sistemului informatic. Tehnica


diagramelor entitate-asociere

Analiza structurală a sistemului informatic are ca obiectiv evidenţierea componentelor (obiectelor)


din cadrul sistemului, pentru care urmează să se colecteze şi să se memoreze date în cadrul bazei de
date, precum şi evidenţierea legăturilor dintre aceste componente.

21
Există astăzi 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 următorilor paşi:
- identificarea componentelor (entităţilor) din cadrul sistemului informatic analizat;
- identificarea asocierilor dintre entităţi şi calificarea acestora;
- identificarea atributelor aferente entităţilor şi asocierilor dintre entităţi;
- stabilirea atributelor de identificare a entităţilor.

Identificarea componentelor sistemului informatic

Componentele sistemului informatic sunt entităţi (obiecte) care au anumite proprietăţi şi care fac
schimb de informaţii cu alte entităţi ale sistemului. Ele sunt reprezentate în cadrul diagramei entitate-
asociere prin blocuri dreptunghiulare.
Considerând activitatea dintr-o instituţie de învăţământ superior se pot identifica următoarele
entităţi:
- cadre didactice (CADRE_DIDACTICE);
- studenţi (STUDENŢI);
- 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 instanţe (realizări). În urma acestei
etape se elaborează o primă formă a diagramei entitate-asociere, formă prezentată în figura
următoare.

Fig. 2.1. Reprezentarea entităţilor în diagrama entitate-asociere

22
Identificarea asocierilor dintre entităţi şi calificarea acestora

Componentele unui sistem nu sunt decât arareori izolate, între acestea stabilindu-se legături
(asocieri). Spre exemplu, între entităţile STUDENŢI şi SERV.SOCIAL există o asociere, în sensul că
serviciul social pune la dispoziţia studenţilor locuri de cazare în cămin.
Legăturile dintre entităţi sunt reprezentate prin arce neorientate, care fac legătura între nodurile ce
reprezintă entităţile participante la asociere.
Semnificaţia legăturii se exprimă printr-un nume acordat legăturii şi se reprezintă cu ajutorul unui
nod etichetă în formă de romb, plasat ca nod intermediar între entităţi.
Tipul (forma) legăturii se exprimă cu ajutorul cardinalităţii.
Cardinalitatea unei legături reprezintă numărul minim şi numărul maxim de realizări (instanţe) de
entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprimă prin
perechi de numere, câte o pereche pentru fiecare entitate din cadrul legăturii.

Fig. 2.2. Reprezentarea unei legături (asocieri) între două entităţi cu menţionarea semnificaţiei şi
a cardinalităţii

În figura de mai sus este prezentat modul de reprezentare al unei legături cu menţionarea
semnificaţiei legăturii şi a cardinalităţii acesteia. Cardinalitatea legăturii de mai sus se poate interpreta
astfel:
- Serviciul social este obligat să asigure, în limita locurilor disponibile în cămine, locuri de
cazare pentru toţi studenţii care solicită acest lucru chiar dacă este vorba doar de un singur
student;
- Pot solicita locuri de cazare în cămine un număr de studenţi până la numărul maxim de
studenţi care locuiesc în alte localităţi, fiind posibilă şi situaţia în care nici un student nu
solicită cazare în cămin.
Legăturile (asocierile) între entităţi pot fi de mai multe tipuri şi anume:

23
1. După cardinalitatea asocierii putem avea două situaţii, funcţie de gradul asocierii, respectiv
obligativitatea participării entităţilor la asociere.
După gradul asocierii (valorile maxime ale cardinalităţi) avem:
- asocieri de tipul “unu la unu”. Aceasta înseamnă că cel puţin o realizare a fiecărei entităţi
trebuie să participe la asociere.
- asocieri de tipul “unu la mulţi”. În acest caz o realizare a unei entităţi are legături cu mai
multe realizări ale celeilalte entităţi care participă la asociere.
- asocieri de tipul “mulţi la mulţi”, caz în care mai multe realizări ale unei entităţi participante
la legătură se asocieză cu mai multe realizări ale celeilalte entităţi.
După obligativitatea participării entităţilor la asociere (minimele cardinalităţii) avem:
- asocieri parţiale; la care entităţile nu sunt obligate să participe (deci pot avea valoarea minimă
a cardinalităţii zero);
- asocieri totale sau complete; când cel puţin o realizare a fiecărei entităţi trebuie să participe la
sociere.
2. După numărul de entităţi distincte care participă la asociere avem:
- asocieri binare; care se realizează între două entităţi distincte;
- asocieri recursive; asocieri ale entităţilor cu ele însele;
- asocieri complexe; asocieri realizate între mai mult de două entităţi distincte.
3. După semnificaţia lor asocierile se pot clasifica într-o multitudine de categorii datorită
semnificaţiilor extrem de variate în cadrul unui anumit sistem informatic. În cadrul analizei
structurale este necesar să fie identificate şi analizate asocierile dintre entităţile aflate pe nivele de
abstractizare diferite, mai precis asocierile de tipul “este un” şi “este conţinut în”.

Asocierile de tipul “este un”

Entităţile 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 entităţilor. În
acest sens există entităţi generice (clase), obţinute printr-un proces de generalizare a entităţilor cu
anumite caracteristici comune, numite subclase.
De exemplu, membrii unei universităţi reprezintă o entitate clasă, care generează entităţile
STUDENŢI şi ANGAJAŢI, ultima generând, la rândul ei, entităţile CADRE DIDACTICE,
PERS.DID.AUXILIAR şi PERS.ADMINISTRATIV.
Asocierea de tip “este un” se prezintă întotdeauna ca o asociere parţială de tip “unu la unu”.

Asocierile de tipul “este conţinut în”

24
Asocierile de tipul “este conţinut în” exprimă un proces de agregare, de grupare a mai multor
entităţi într-o entitate de nivel superior. Spre deosebire de tipul “este un”, asocierea “este conţinut în”
este calificată, după cardinalitate drept asociere de tip “unu la mulţi” sau “mulţi la mulţi”, totală sau
parţială.

Identificarea atributelor aferente entităţilor şi asocierilor dintre entităţi

Atributele exprimă caracteristici, proprietăţi ale componentelor sistemului informatic analizat sau
ale asocierilor (legăturilor) 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 funcţie 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 puţin două alte atribute.
Valoarea sa este reprezentată de valorile atributelor componente. Ex.:

2. Atribut calculat (dedus). Acesta reprezintă un atribut a cărui 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 aceeaşi 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.

25
5. Atribut de identificare (cheie). Reprezintă un atribut care se caracterizează prin unicitatea
valorii sale pentru fiecare instanţă a entităţii căreia îi aparţine.
Atributele de identificare au un rol aparte în organizarea şi manipularea informaţiilor din baza de
date. Stabilirea atributelor de identificare pentru entităţile din cadrul sistemului informatic analizat
necesită examinarea mai întâi a capacităţii fiecărui atribut de a se constitui drept atribut de
identificare (cheie).
Un atribut poate fi atribut de identificare dacă îndeplineşte o serie de cerinţe şi anume:
- oferă o identificare unică a realizărilor (instanţelor) de entitate;
- posedă o semnificaţie clară;
- este uşor de utilizat;
- este scurt.
Pentru o aceeaşi entitate pot exista mai multe atribute care pot servi drept atribute de identificare,
adică pot exista mai multe chei candidate.
Selectarea unuia dintre candidaţii cheie drept atribut de identificare a entităţii (cheie) se realizează
astfel:
1. Se determină atributele care potenţial pot constitui atribute de identificare a entităţii, deci care
respectă cerinţele menţionate anterior şi care poartă numele de candidaţi 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
entităţii.
3. Dacă există mai mulţi candidaţi cheie, se selectează unul, cu ajutorul unor euristici, precum:
- se preferă atributele ale căror valori sunt mai puţin volatile;
- se preferă atributele ale căror 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 obţine modelul dinamic al sistemului
analizat.
Construirea modelului dinamic presupune următoarele etape:
- identificarea stărilor în care se pot afla componentele sistemului;

26
- identificarea evenimentelor care determină trecerea unei componente dintr-o stare în alta;
- stabilirea succesiunii (fluxului) de evenimente şi construirea unei diagrame care să reflecte
tranziţiile de stare pentru componentele sistemului (diagramă de flux a evenimentelor).
La realizare diagramei de flux a evenimentelor este necesar să se ţină cont de restricţiile dinamice
ale sistemului care servesc la identificarea tranziţiilor admisibile între două stări.

Fig. 2.3. Stările unei resurse de producţie (utilaj, secţie etc.) şi tranziţiile între aceste stări

În figura de mai sus sunt prezentate stările posibile ale unei resurse de producţie generice.
Particularizarea acestui model pentru un depozit de materii prime este prezentată în figura următoare.

Fig. 2.4. Modelul dinamic al unui depozit de materii prime privit ca resursă de producţie

2.2.3. Analiza cerinţelor informaţionale (analiza funcţională a sistemului)

Analiza cerinţelor informaţionale are drept scop determinarea transformărilor de date care se
produc în cadrul sistemului informatic analizat, în scopul satisfacerii cerinţelor informaţionale
aferente acestuia. Transformările de date (tranzacţiile) se vor reprezenta sub forme unei diagrame de
27
flux a prelucrărilor (modelul funcţional), în care nodurile reflectă procesele de prelucrare
informaţională, iar arcele reflectă fluxurile informaţionale.
În cadrul analizei funcţionale accentul se deplasează de la realitatea analizată către cerinţele
informaţionale ale utilizatorilor, cerinţe a căror satisfacere constituie obiectivul realizării bazei de
date.
Construirea modelului funcţional presupune parcurgerea următoarelor etape:
- identificarea datelor de intrare şi a datelor de ieşire din sistem;
- construirea diagramelor de flux, prin care sunt reflectate legăturile
procedurale dintre intrări şi ieşiri;
- identificarea restricţiilor;
precizarea criteriilor de optimizare.
În figura următoare sunt prezentate două modele funcţionale parţiale, primul se referă la căutarea
preţului unui articol dintr-un nomenclator de articole, iar al doilea la tranzacţiile (transformările de
date) care se fac pentru a opera o modificare într-un cont bancar al unui client.

Fig. 2.5. Modele funcţionale parţiale

2.2.4. Integrarea modelelor sistemului informatic analizat

Analiza sistemului informatic se finalizează prin integrarea modelelor structural, dinamic şi a celui
funcţional.
Modelul structural şi cel dinamic sunt obţinute prin investigarea sistemului real a proprietăţilor
intrinseci, statice şi dinamice ale componentelor acestui sistem, proprietăţi care sunt independente de
aplicaţiile care operează asupra lor.

28
Modelul funcţional este rezultatul analizei cerinţelor informaţionale ale utilizatorilor, mai precis a
tranzacţiilor (aplicaţiilor) prin care pot fi satisfăcute aceste cerinţe.
Perspectiva diferită din care este realizată analiza explică de ce rezultatele obţinute pot să difere
fiind necesară o coordonare, deci o integrare a lor.
În cadrul etapei de integrare a modelelor sistemului se stabileşte în ce măsură modelul structural şi
cel dinamic satisfac necesităţile diferitelor aplicaţii, verificându-se completitudinea (existenţa
elementelor informaţionale solicitate) şi consistenţa lor (în ce măsură componentele modelelor sunt
necesare şi suficiente în raport cu procesele de prelucrare). Se verifică dacă relaţiile dintre
componentele sistemului sunt stabilite în mod corespunzător, pentru a face posibilă regăsirea
informaţiilor din mai multe entităţi. Se determină, de asemenea, dacă legăturile dintre entităţi asigură
coerenţa informaţiilor, posibilitatea efectuării de actualizări concomitente asupra datelor redundante.
Se urmăreşte ca toate elementele informaţionale participante la diferitele tranzacţii să fie asignate,
ca atribute ale diferitelor entităţi.
Pe baza acestei analize integrate se efectuează adăugările şi/sau corelările necesare între modelele
sistemului.
În final se ajunge ca modelul structural şi cel dinamic să nu mai fie complet independente de
aplicaţii, iar modelul funcţional să nu mai fie orientat exclusiv pe aplicaţii.

2.3. Proiectarea structurii bazei de date

Modelele obţinute în urma analizei sistemului informaţional sunt modele ale datelor despre sistem.
O caracteristică esenţială a acestor modele (denumite şi modele conceptuale sau semantice) este
faptul că sunt independente de instrumentul, respectiv SGBD-ul prin intermediul căruia devin
operaţionale.
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 influenţa negativ activitatea de
analiză şi modelare, prin restricţii impuse de acesta, care pot încuraja sau
descuraja anumite reprezentări;
 fixând ca punct de plecare facilităţile unui SGBD, utilizatorul
neinformatician care nu stăpâneşte acest SGBD nu îşi poate exprima
cerinţele în deplină cunoştinţă de cauză.
Trecerea la proiectarea structurii bazei de date impune luarea în considerare a SGBD-ului cu
ajutorul căruia va fi implementată şi exploatată baza de date. Acesta deoarece baza de date reprezintă
29
un model al datelor exprimat cu ajutorul conceptelor specifice unui anumit SGBD, ceea ce face ca
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, reţea, relaţional, orientat obiect
etc.).
Etapa de proiectare a structurii bazei de date constă în următoarele activităţi:
 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 activităţi sunt puternic influenţate 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 când 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 următoarelor activităţi:

1. Stabilirea cerinţelor utilizatorilor, sub aspectul:


 tipurilor de aplicaţii dorite;
 timpului de răspuns;
 confidenţialităţii datelor;
 securităţii datelor;
 uşurinţei de utilizare şi altele.
2. Stabilirea cerinţelor de ordin tehnic privind realizarea bazei de date, cum
sunt:
 portabilitatea SGBD-ului, adică posibilitatea folosirii SGBD-ului pe diferite
sisteme de calcul;
 portabilitatea colecţiilor de date şi a programelor. Aceasta înseamnă că
datele pregătite cu ajutorul unui calculator să poată fi transferate direct pe
alt tip de calculator, împreună cu programele aferente, fără alte operaţii
auxiliare;

30
 facilităţile de încărcare, exploatare şi întreţinere a bazei de date care
trebuiesc asigurate (modalităţile de descriere a datelor, tehnicile de
organizare şi regăsire a datelor etc.) şi altele.
3. Stabilirea cerinţelor de ordin economic, privind:
 încadrarea în bugetul alocat pentru realizarea bazei de date;
 timpul necesar pentru pregătire utilizatorilor şi trecerea la exploatarea
curentă a bazei de date.
4. Ierarhizarea cerinţelor de la punctele anterioare, în funcţie de importanţa
(prioritatea) acordată fiecărei cerinţe în parte.
5. Analiza comparativă a SGBD-urilor disponibile şi/sau posibil de achiziţionat,
în funcţie de caracteristicile pe care le prezintă aceste SGBD-uri.
6. Stabilirea corespondenţei între cerinţele formulate la punctele 1-3 şi
caracteristicile diferitelor SGBD-uri analizate, pentru a determina măsura în care
diferitele SGBD-uri analizate permit satisfacerea cerinţelor 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 următoarele activităţi:


 stabilirea colecţiilor de date şi definirea detaliată a conţinutului acestora;
 determinarea legăturilor dintre colecţiile de date şi a modului de
reprezentare a acestora în cadrul schemei conceptuale;
 testarea schemei obţinute şi revizuirea acesteia, dacă este cazul;
 descrierea schemei conceptuale în limbajul de descriere a datelor de care
dispune SGBD-ul şi încărcarea acestei descrieri în baza de date.
La realizarea acestor activităţi sunt utilizate, în principal, modelul structural şi cel dinamic al
sistemului analizat.

Stabilirea colecţiilor de date şi a conţinutului acestora

La stabilirea colecţiilor de date (a componentelor schemei conceptuale) se pleacă de la entităţile


identificate în etapa de analiză a sistemului. Fiecărei entităţi îi corespunde, de obicei, o colecţie de
date în cadrul schemei conceptuale. În aceste colecţii vor figura atributele specifice entităţilor plus

31
eventual o serie de atribute pentru exprimarea legăturilor cu celelalte componente ale sistemului real,
atribute cunoscute sub numele de chei externe.
Deoarece nu întotdeauna există o corespondenţă strictă între entităţile din modele semantice şi
colecţiile de date din schema conceptuală a bazei de date şi din considerente de ameliorare a lucrului
pe aceste colecţii de date se poate decide <spargerea> unei entităţi în două sau mai multe colecţii de
date. Acest lucru duce la o creştere a flexibilităţii de operare cu colecţiile de date respective.
“Spargerea” unei entităţi în două sau mai multe colecţii de date se realizează ţinând seama de
cerinţele informaţionale ale sistemului şi de durata de existenţă a datelor în cadrul sistemului. Astfel,
datele care sunt solicitate mai des de către utilizatori, cele care se modifică la intervale reduse de timp
sau cele care, deşi nu se modifică prea des, sunt solicitate frecvent de către programe pentru a genera
alte date (prin calcul sau în alt mod), pot constitui colecţii separate de date pentru a reduce timpul
necesar regăsirii informaţiilor căutate. De exemplu, să considerăm entitatea UTILAJE aparţinând
unui model al unei unităţi de producţie. Un utilaj este caracterizat de următoarele: denumire, tip,
număr de inventar, valoare de achiziţionare, data achiziţiei, durata normată de funcţionare, totalul
orelor de funcţionare, datele reparaţiilor curente planificate etc. Dar nu toate aceste informaţii
prezintă importanţă pentru utilizatori la un moment dat. Aceştia pot fi interesaţi, de exemplu, de
caracteristicile generale ale utilajului sau de caracteristicile legate de funcţionarea sau întreţinerea
utilajului. Din acest motiv, în cadrul schemei conceptuale a bazei de date pot apare două sau mai
multe colecţii de date referitoare la utilajele de producţie şi anume: un nomenclator de utilaje, o
colecţie de date referitoare la funcţionarea utilajelor, o colecţie privind reparaţiile efectuate sau
planificate.
Un alt motiv pentru care apare necesară descompunerea unei colecţii de date în două sau mai
multe colecţii derivă din legăturile care apar între atributele unei entităţi. Aceste legături conduc la
dependenţe între date datorită cărora, la momentul exploatării bazei de date pot apare o serie de
disfuncţionalităţi, aşa numitele “anomalii” de actualizare. Se impune deci reducerea la minimum a
dependenţelor (condiţionărilor) dintre atributele unei colecţii de date, lucru realizat, de obicei prin
descompunerea colecţiei în două sau mai multe colecţii de date cu un număr mai mic de atribute. Cu
toate acestea, îmbunătăţirea performanţelor în manipularea entităţilor nu presupune obligatoriu
mărirea numărului colecţiilor de date folosite în cadrul schemei conceptuale. Aceasta deoarece nu se
poate admite o creştere nelimitată a numărului de colecţii de date, lucru care determină creşterea
dificultăţilor de localizare şi accesare a datelor. Legăturile între un număr mare de colecţii de date
impune şi creşterea redundanţei datelor în cadrul bazei de date şi deci o utilizare ineficientă a
suportului de memorare.
Rezultatele obţinute prin prelucrări costisitoare efectuate asupra datelor din baza de date pot fi
memorate folosind colecţii de date special introduse, astfel încât aceste rezultate să nu fie recalculate
ori de câte ori sunt solicitate de utilizatori. Este vorba, bineânţeles de informaţii solicitate frecvent de

32
către utilizatori. Prin memorarea acestor rezultate creşte redundanţa datelor, dar se evită efectuarea
repetată a unor calcule complicate.
Pentru scurtarea căilor de acces la date se mai admite un tip de redundanţă, şi anume cea care
apare datorită includerii unor atribute, simultan în mai multe colecţii ale bazei de date.
În continuare este prezentat un exemplu referitor la drepturile profesorilor care lucrează într-un
liceu. Se pot forma două colecţii de date, una cu informaţiile privind:
 numele angajatului;
 salariul de bază;
 vechimea;
 numărul de ore suplimentare;
 numărul de ore de dirigenţie etc.
 informaţii care au un grad ridicat de stabilitate, şi alta cu informaţii privind:
 numele angajatului;
 salariul de bază;
 sporul de vechime;
 numărul de zile lucrate;
 numărul zilelor de concediu medical şi de odihnă;
 numărul de ore suplinite;
 suma pentru orele suplinite;
 restanţe de plată;
 suma dedusă pentru pensie suplimentară şi şomaj;
 impozitul pe salariu;
 chirii;
 alte reţineri;
 avans;
 restul de plată la lichidare;
informaţii care trebuiesc adăugate în baza de date lunar, fie din exterior, fie prin
calculul acestora prin program.

Determinarea legăturilor dintre colecţiile de date şi a modului de reprezentare a acestora

Aceasta se realizează, în principiu, pe baza legăturilor dintre entităţile identificate în cadrul etapei
de analiză a sistemului şi a cerinţelor informaţionale. Este necesar să se determine, de asemenea şi
legăturile dintre colecţiile care nu au un corespondent direct în entităţile care compun sistemul, dar
care la rândul lor se află în asociere, unele cu altele.
33
Modul de reprezentare a legăturilor dintre colecţiile de date depinde de modelul datelor suportatde
SGBD. Astfel, modelul ierarhic şi cel reţea utilizează pointeri (adrese de legătură) pentru înlănţuirea
datelor în cadrul diferitelor colecţii.
Modelul relaţional reprezintă legăturile dintre colecţiile de date (relaţii) cu ajutorul cheilor externe
sau cu ajutorul unor colecţi de date distincte. Această reprezentare uniformă a datelor şi a asocierilor
între date prin intermediul relaţiilor constituie o caracteristică a modelului relaţional, care conferă
acestuia o mare simplitate şi flexibilitate.

Testarea schemei conceptuale

Testarea schemei conceptuale presupune verificarea completitudinii şi consistenţei schemei


conceptuale, adică determinarea gradului în care schema conţine elementele informaţionale necesare
satisfacerii cerinţelor informaţionale ale diferiţilor utilizatori şi măsura în care legăturile stabilite între
aceste elemente informaţionale reflectă raporturile naturale dintre componentele sistemului real. De
asemenea, prin testarea schemei conceptuale trebuie să se verifice dacă redundanţa 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 cerinţelor informaţionale.

Descrierea schemei conceptuale în limbajul de descriere a datelor şi încărcarea 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 aplicaţie operează asupra schemei conceptuale prin intermediul schemei externe,
având acces doar la acele elemente care sunt incluse în schema externă.
Folosirea vederilor reprezintă mecanismul prin care sunt satisfăcute cererile de informaţii ale
utilizatorilor (deoarece un utilizator nu este interesat de toate informaţiile stocate în baza de date)
asigurând totodată şi protecţia datelor contra accesului neautorizat la date (folosind vederile se
limitează accesul fiecărui 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ă
foloseşte diferite structuri de date: liniară, arborescentă, reţea, relaţională î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 puţin de sistemul de operare gazdă, ceea ce le oferă o
portabilitate sporită, comparativ cu SGBD-urile din prima categorie.

2.4. Încărcarea datelor în baza de date

Aceasta este etapa în care se realizează popularea masivă cu date a bazei de date. Deşi conţinutul
acestei etape este relativ simplu, fără dificultatea şi creativitatea reclamate de activităţile de analiză şi
proiectare, încărcarea datelor în baza de date reprezintă totuşi 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 încărcării 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, chitanţe etc.);
 colecţii 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 încărcării bazei de date, să se constituie
colecţii temporare de date (fişiere). În situaţia în care datele se preiau din documente primare este
necesară utilizarea unor colecţii temporare pentru a se deplasa activitatea de validare a datelor cât mai
devreme în procesul de încărcare a datelor în baza de date. Programele de încărcare a bazei de date,
scrise în limbajul de manipulare a datelor de care dispune SGBD-ul trebuie să conţină cât mai puţine
validări deoarece aceste validări încetinesc mult execuţia programelor şi determină apariţia unor
“puncte albe” în baza de date, de exemplu, legături neconstituite datorită inexistenţei datelor
corespunzătoare.
Pe de altă parte, în situaţia în care datele se preiau din colecţii gestionate prin alte instrumente
informatice, este necesară utilizarea colecţiilor temporare pentru a se putea adapta cât mai bine
structura acestor colecţii la modul de organizare a datelor în baza de date. Programele de încărcare
vor fi în acest caz mai simple şi mai robuste, asigurând un transfer mai rapid al datelor în baza de
date.

2.5. Exploatarea şi întreţinerea bazei de date

Exploatarea bazelor de date de către diferiţi utilizatori finali are ca scop satisfacerea cerinţelor
informaţionale ale acestora. SGBD-urile sprijină utilizatorii finali în exploatrea bazelor de date
oferind o serie de mecanisme şi instrumente pentru descrierea cerinţelor de date, cum ar fi limbaje de
manipulare a datelor etc.

36
Întreţinerea 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
activităţi necesare menţinerii funcţionalităţii bazei de date. Întreţinerea bazei de date este realizată în
principal de către administratorul acesteia.

2.6. Întrebări pentru verificarea cunoştinţelor

1. Care sunt etapele proiectării unei baze de date ?


2. Care este obiectivul analizei statice a sistemului informaţional existent ?
3. Explicaţi tehnica diagramelor entitate-asociere.
4. Definiţi cardinalitatea unei legături.
5. Cum se clasifică atributele unei antităţi ?
6. Prin ce se caracterizează atributul cheie ?
7. Care este obiectivul analizei dinamice ?
8. Care este obiectivul analizei funcţionale ?
9. Care sunt etapele proiectării structurii bazei de date ?
10. Care sunt activităţile desfăşurate pentru alegerea unui SGBD ?
11. Ce activităţi 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 încărcarea bazei de date ?
14. Care este scopul activităţii de întreţinere a bazei de date ?

37
3. BAZE DE DATE RELAŢIONALE

Ideea bazelor de date relaţionale a fost lansată pentru prima dată de către 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 cărora este necesar să existe şi informaţii de legătură, pentru a se asigura legăturile între
tabele. Bazele modelului de date relaţional au fost puse de către Codd E.F., în 1970 care are meritul
de a fi articulat şi dezvoltat ideile cu privire la utilizarea teoriei apartenenţei la ansambluri sub forma
unui model coerent de structurare a datelor - modelul relaţional.

3.1. Modelul relaţional al datelor

Componentele modelului relaţional sunt:

1. Structura relaţională a datelor. Aceasta înseamnă că, în bazele de date relaţionale, datele sunt
organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relaţii. Asocierile dintre
relaţii se reprezintă explicit prin atribute de legătură. Aceste atribute figurează într-una din relaţiile
implicate în asociere (de regulă, în cazul legăturilor de tip “unu la mulţi”) sau sunt plasate într-o
relaţie distinctă, construită special pentru exprimarea legăturilor între relaţii (în cazul legăturilor de
tip “mulţi la mulţi”). O bază de date relaţională (BDR) reprezintă un ansamblu de relaţii, prin care se
reprezintă atât datele cât şi legăturile dintre date.

2. Operatorii modelului relaţional. Aceştia definesc operaţiile care se pot executa asupra
relaţiilor, în scopul realizării funcţiilor de prelucrare asupra bazei de date, respectiv consultarea,
inserarea, modificarea şi ştergerea datelor.

3. Restricţiile de integritate ale modelului relaţional. Permit definirea stărilor coerente ale bazei
de date.

38
În comparaţie cu modelele ierarhice şi în reţea, modelul relaţional prezintă o serie de avantaje,
precum:
► Asigurarea unui grad sporit de independenţă a programelor de
aplicaţie faţă de modul de reprezentare internă a datelor şi
metodele de acces la date. În precizarea prelucrărilor asupra datelor,
programele de aplicaţie nu fac apel la pointeri, fişiere inverse sau alte
elemente ale schemei interne a bazei de date. În ceea ce priveşte
independenţa logică, aceasta nu este complet rezolvată nici cu ajutorul
modelului relaţional. O deficienţă a modelului relaţional este aceea că nu
permite modelarea comportamentului dinamic al datelor, ceea ce face ca
o mare parte din semantica aplicaţiilor să fie codificată în programe şi nu
în schema conceptuală a bazei de date.
► Furnizarea unor metode şi tehnici eficiente de control a coerenţei
redundanţei datelor, cu o bună fundamentare teoretică.
Modificările pe care le suferă în timp datele ridică probleme serioase la
întreţinerea bazei de date, în ceea ce priveşte controlul actualizărilor,
reflectarea modificărilor din structura mediului economic real în structura
datelor etc. Modelul relaţional, prin tehnica normalizării relaţiilor permite
definirea unei structuri conceptuale optime a datelor, prin care se
minimizează riscurile de eroare la actualizare, reducându-se redundanţa
datelor.
► Oferirea unor facilităţi multiple de definire şi manipulare a datelor.
În primul rând, modelul relaţional oferă posibilitatea utilizării unor limbaje
procedurale, bazate pe algebra relaţională, precum şi a unor limbaje
neprocedurale având la bază calculul relaţional. Limbajele neprocedurale
(declarative) contribuie la îmbunătăţirea semnificativă a comunicării
dintre sistem şi utilizatorii neinformaticieni. În al doilea rând, manipularea
datelor se realizează la nivel de ansamblu (relaţie), fiind posibilă utilizarea
paralelismului în prelucrarea datelor.
► Ameliorarea integrităţii şi confidenţialităţii datelor. Modelul relaţional
realizează acest lucru prin mecanisme flexibile şi eficace de specificare şi
utilizare a restricţiilor de integritate şi a relaţiilor virtuale.

3.2. Structura relaţională a datelor

39
Pentru a defini structura relaţională a datelor trebuie să definim noţiunile de: domeniu, relaţie,
atribut şi schemă a unei relaţii.

3.2.1. Domeniu

Domeniul reprezintă un ansamblu de valori, caracterizat printr-un nume. Un


domeniu se poate defini explicit, prin enumerarea tuturor valorilor aparţinând
acestuia sau implicit, prin precizarea proprietăţilor pe care le au valorile
domeniului respectiv.
Spre exemplu să consideră următoarele 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 D 2 ş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

aparţinând domeniului Di. De exemplu, tuplurile <”Maria”, “F”, 45>, <”Vasile”,

“M”, 24> aparţin produsului cartezian: D3xD1xD2.

3.2.2. Relaţie

Relaţia reprezintă un subansamblu al produsului cartezian al mai multor domenii, subansamblu


caracterizat printr-un nume şi care conţine doar tupluri cu semnificaţie. Considerând, de exemplu că
pentru produsul cartezian definit mai sus se cunosc doar două persoane, definim relaţia R prin
tuplurile care descriu aceste persoane:
R : {<”Maria”, “F”, 20>, <”Vasile”, “M”, 22>}
Într-o relaţie, tuplurile trebuie să fie distincte ( nu se admit duplicări ale tuplurilor ).
O reprezentare comodă a relaţiei este tabelul bidimensional (tabela de date), în care liniile
reprezintă tuplurile, iar coloanele corespund domeniilor (vezi figura).

40
R:
D3 D1 D2
“Maria” “F” 20
“Vasile” “M” 22

În prezentarea conceptului de relaţie se poate recurge la analogii cu alte concepte, extrem de bine
cunoscute în domeniul prelucrării automate a datelor, precum este conceptul de fişier. Relaţia poate
avea semnificaţia unui fişier, tuplul poate fi considerat drept o înregistrare, iar valorile din cadrul
tuplului pot fi interpretate drept valori ale câmpurilor înregistrării.
În cadrul modelului relaţional nu interesează decât relaţiile finite, chiar dacă la construirea
relaţiilor se admit domenii infinite. Numărul tuplurilor dintr-o relaţie reprezintă cardinalul relaţiei, în
timp ce numărul valorilor dintr-un tuplu defineşte gradul relaţiei.

3.2.3. Atribut

Atributul reprezintă coloana unei tabele de date, caracterizată printr-un nume. Numele coloanei
(atributului) exprimă de obicei semnificaţia valorilor din cadrul coloanei respective.
Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a înţelege această problemă vom
considera următorul exemplu. Să presupunem că pentru o persoană dispunem de următoarele date:
nume, sex, vârstă şi numele soţului/soţiei.
O posibilitate de organizare a acestor date este reprezentată de relaţia din figura următoare.
PERS: D3 D1 D2 D3
“Maria” “F” 30 “Vasile”
“Vasile” “M” 32 “Maria”

Relaţia PERS reprezintă un subansamblu al produsului cartezian:


D3 x D1 x D2 x D3.

Semnificaţia valorilor din cadrul unui tuplu se stabileşte în acest caz nu numai pe baza domeniului
de care aparţin valorile, ci şi în funcţie de poziţia ocupată în cadrul tuplului.
Dependenţa faţă de ordine a datelor înseamnă o reducere a flexibilităţii organizării 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 diferenţia coloanele care conţin valori ale aceluiaşi domeniu şi a elimina astfel
dependenţa de poziţie în cadrul tabelei se asociază fiecărei coloane un nume distinct, lucru care a dus
la apariţia noţiunii de atribut.
Prin folosirea atributelor, relaţia PERS poate fi prezentată într-unul din modurile menţionate mai
jos.

PERS: PERS:
Nume Sex Vârsta Sot(D3) Nume(D3) Sot(D3) Sex Vârsta
(D3) (D1) (D2) (D1) (D2)

“Mari “F” 30 “Vas “Maria “Vasil “F” 30


a” ile” ” e”
“Vasil “M 32 “Ma “Vasile “Mari “M 32
e” ” ria” ” a” ”

3.2.4. Schema unei relaţii

Prin schema unei relaţii se înţelege numele relaţiei, urmat de lista atributelor, pentru fiecare atribut
precizându-se domeniul asociat. Astfel, pentru o relaţie R, cu atributele A1, A2, ..., An şi domeniile

D1, D2, ..., Dm, schema relaţiei 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 relaţii se mai numeşte şi intensia relaţiei, ca expresie a proprietăţilor


comune şi invariante ale tuplurilor care compun relaţia.
42
Spre deosebire de intensie, extensia unei relaţii reprezintă ansamblul
tuplurilor care compun la un moment dat relaţia, ansamblu care este variabil în
timp.
De obicei, extensia unei relaţii este stocată fizic în spaţiul asociat bazei de
date, caz în care relaţia poartă numele de relaţie de bază. Există însă şi situaţii
în care extensia nu este memorată în baza de date. Este cazul aşa-numitelor
relaţii virtuale, cunoscute şi sub numele de relaţii derivate sau viziuni.
Relaţia virtuală nu este definită explicit ca relaţie de bază, prin ansamblul
tuplurilor componente, ci implicit, pe baza altor relaţii, prin intermediul unei
expresii relaţionale. Stabilirea efectivă a tuplurilor care compun relaţia virtuală
se realizează prin evaluarea expresiei, ori de câte ori utilizatorul invocă această
relaţie.

3.3. Operatorii modelului relaţional

Modelul de date relaţional oferă două colecţii de operatori pentru operaţii cu relaţii şi anume:
- algebra relaţională;
- calculul relaţional.

3.3.1. Algebra relaţională şi extensiile sale

Algebra relaţională (AR) se poate defini ca o colecţie de operaţii pe relaţii, fiecare operaţie având
drept operanzi una sau mai multe relaţii şi producând ca rezultat o altă relaţie.
Operaţiile algebrei relaţionale se pot împărţi în:
- operaţii de bază, precum: reuniunea, diferenţa, produsul cartezian etc.
- operaţii derivate, ca: intersecţia, diviziunea etc.
Algebra relaţională standard, definită de Codd, este constituită din 6
operaţii de bază: reuniunea, diferenţa, produsul cartezian, proiecţia, selecţia şi
joncţiunea precum şi din două operaţii derivate: intersecţia şi diviziunea.
Ulterior, la operaţiile AR standard au fost adăugate şi alte operaţii, aşa
numitele operaţii “adiţionale” sau extensii ale AR standard, precum:
complementarea unei relaţii, splitarea (spargerea) unei relaţii, închiderea
tranzitivă etc.
În general, operaţiile AR pot fi grupate în:
- operaţii tradiţionale pe mulţimi (reuniunea, intersecţia, diferenţa, produsul cartezian);
- operaţii relaţionale speciale (selecţia, proiecţia, joncţiunea etc.).
43
În continuare sunt prezentate principalele operaţii ale algebrei relaţionale, precum şi modul lor de
utilizare.
1. Reuniunea. Reprezintă o operaţie a algebrei relaţionale definită pe două relaţii: R1 şi R2,
ambele cu aceeaşi schemă, operaţie care constă din construirea unei noi relaţii R3, cu o schemă
identică cu R1 şi R2 şi având 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 următoare este prezentat un exemplu de reuniune a două relaţii ORAŞE şi MUNICIPII,
formând astfel o a treia relaţie, LOCALITĂŢI.

2. Diferenţa. Reprezintă o operaţie a algebrei relaţuionale construită pe două relaţii: R1 şi R2,


ambele cu o aceeaşi schemă, operaţie care constă din construirea unei noi relaţii R3, cu schema
identică cu a operanzilor şi cu extensia formată din acele tupluri ale relaţiei R1 care nu se regăsesc şi
în relaţia R2.
Notaţiile uzuale pentru operaţia de diferenţă a două relaţii sunt:
R1-R2
REMOVE (R1,R2)
MINUS (R1,R2)
Un exemplu de diferenţă a două relaţii este dat în continuare.

44
3. Produs cartezian. Reprezintă o operaţie a algebrei relaţionale definită pe două relaţii: R1 şi R2,
operaţie care constă din construirea unei noi relaţii R3, a cărei schemă se obţine prin concatenarea
schemelor relaţiilor R1 şi R2 şi a cărei extensie cuprinde toate combinaţiile tuplurilor din R1 cu cele
din R3.
Notaţiile uzuale pentru desemnarea operaţiei sunt:
R1 x R2
PRODUCT (R1,R2)
TIMES (R1,R2)
În continuare este prezentat un exemplu de produs cartezian a două relaţii.

45
4. Proiecţia. Reprezintă o operaţie din algebra relaţională definită asupra unei
relaţii R, operaţie care constă din construirea unei noi relaţii P, în care se
regăsesc numai acele atribute din R specificate explicit în cadrul operaţiei.
Suprimarea unor atribute din R înseamnă efectuarea unor tăieturi verticale
asupra lui R, care pot avea ca efect apariţia unor tupluri duplicate ce se cer a fi
eliminate.
Prin proiecţie se trece de la o relaţie de grad n la o relaţie de grad p, mai mic
decât cel iniţial, adică de la un spaţiu cu n dimensiuni la un spaţiu cu mai puţine
dimensiuni, ceea ce explică şi numele de proiecţie atribuit operaţiei.
Notaţiile uzuale pentru operaţia de proiecţie:
 Ai , A j ,..., Am ( R )

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

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

În figura de mai sus este prezentată proiecţia relaţiei ORAŞE pe atributul JUDEŢ.

5. Selecţia reprezintă o operaţie din algebra relaţională definită asupra unei relaţii R, operaţie care
constă din construirea unei relaţii S, a cărei schemă este identică cu cea a relaţiei R şi a cărei extensie
este constituită din acele tupluri din R care satisfac o condiţie menţionată explicit în cadrul operaţiei.
Întrucât cel mai adesea, nu toate tuplurile din R satisfac această condiţie, selecţia înseamnă efectuarea
unor tăieturi orizontale asupra relaţiei R, adică eliminarea de tupluri.
Condiţia precizată în cadrul operaţiei de selecţie este în general de forma:

atribut operator de comparaţie valoare

46
unde: <operator de comparaţie> poate fi: <, <=, >=, > sau #.
Notaţiile folosite pentru desemnarea operaţiei de selecţie sunt următoarele:

 conditie (R )

R [condiţie]
RESTRICT(R, condiţie).

6. Joncţiunea (Joinul) reprezintă o operaţie din algebra relaţională definită pe două relaţii: R1 şi

R2, operaţie care constă din construirea unei noi relaţii R3, prin concatenarea unor tupluri din R1 cu

tupluri din R2. Se concatenează acele tupluri din R1 şi R2 care satisfac o anumită condiţie, specificată

explicit în cadrul operaţiei. Extensia relaţiei R3 va conţine deci combinaţiile acelor tupluri care

satisfac condiţia de concatenare.

Notaţiile uzuale pentru desemnarea operaţiei de joncţiune sunt:

R1 R2

condiţie

JOIN (R1, R2, condiţie)

7. Intersecţia reprezintă o operaţie din AR definită pe două relaţii: R1 şi R2, ambele cu aceeaşi

schemă, operaţie care constă din construirea unei noi relaţii R3, cu schema identică cu a relaţiilor R1

şi R2 şi cu extensia formată din tuplurile comune lui R1 şi R2.

Notaţiile uzuale pentru operaţia de intersecţie sunt:

R1  R 2

INTERSECT (R1, R2)

AND (R1, R2).

8. Diviziunea reprezintă o operaţie din AR definită asupra unei relaţii R din care se obţine, cu
ajutorul altei relaţii P, relaţia Q a cărei extensie este formată din atributele din R care rămân după
eliminarea atributelor relaţiei P.

47
Notaţiile folosite pentru operaţia de diviziune sunt:

Rr
DIVISION(R,r).

3.4. Restricţiile de integritate ale modelului relaţional

Restricţiile de integritate, denumite şi reguli de integritate, definesc cerinţele 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ă.
Restricţiile de integritate reprezintă principalul mod de integrare a semanticii datelor în cadrul
modelului relaţional al datelor, mecanismele de definire şi verificare a acestor restricţii reprezentând
principalele instrumente pentru controlul semantic al datelor. Avantajele încorporării semanticii
datelor în cadrul bazelor de date constau din posibilitatea întreţinerii mai uşoare a aplicaţiilor şi
posibilitatea implementării unor mecanisme fizice mai eficiente.
În teoria sistemelor relaţionale, restricţiile de integritate sunt studiate în principal sub aspectul
puterii lor de modelare şi al posibilităţilor de verificare eficace a respectării lor. Un exemplu
semnificativ îl reprezintă dependenţele între date, şi în primul rând dependenţele funcţionale.
Dependenţele între date, ca restricţii de integritate constituie un suport teoretic solid pentru
problemele de modelare informatică. În acest sens, dependenţele funcţionale au permis definirea
conceptului de “structură relaţională optimă”, stând la baza teoriei optimizării structurii relaţionale a
datelor, respectiv teoria normalizării relaţiilor.
Restricţiile de integritate ale modelului relaţional sunt următoarele:
1. Restricţii de integritate minimale, obligatoriu de definit şi de respectat atunci când se lucrează
cu modelul relaţional. Din această categorie fac parte:
 restricţia de unicitate a cheii;
 restricţia referenţială;
 restricţia entităţii.
2. Alte restricţii de integritate, din care fac parte:
 dependenţele între date;
 restricţiile de comportament.
Restricţiile de integritate minimale sunt definite în raport cu noţiunea de cheie
a unei relaţii. Cheia unei relaţii, R, reprezintă ansamblul minimal de atribute prin
care se poate identifica în mod unic orice tuplu din R. Orice relaţie posedă cel
puţin o cheie. La limită, cheia este constituită fie dintr-un singur atribut, fie din

48
totalitatea atributelor din schema relaţiei respective. Când cheia este constituită
dintr-un singur atribut poartă numele de cheie simplă, iar atunci când este
formată din mai multe atribute este denumită cheie compusă.
Într-o relaţie pot exista mai multe combinaţii de atribute cu proprietatea de
identificare unică a tuplurilor. Se spune în acest caz că relaţia posedă mai mulţi
candidaţi cheie (sau mai multe chei candidate). În această situaţie,
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 relaţii trebuie să fie minimală, adică nici o parte a sa nu trebuie să fie
la rândul ei cheie. Un grup de atribute din cadrul unei relaţii care conţine o cheie
a relaţiei poartă numele de supercheie.
Modelarea asocierilor dintre entităţi impune recurgerea la conceptul de cheie
externă. O cheie externă reprezintă un atribut/grup de atribute dintr-o relaţie R1
ale cărui/căror valori sunt definite pe acelaşi/aceleaşi domeniu/domenii ca şi
cheia primară a unei relaţii, R2 şi care are rolul de a modela asocierea între
entităţile reprezentate prin relaţiile R1 şi R2. În acest context, R1 este denumită
relaţie care referă, în timp ce R2 poartă numele de relaţie referită.
Restricţia de unicitate a cheii reprezintă restricţia de integritate care impune ca într-o relaţie, R
care are cheia K, oricare ar fi tuplurile t 1 şi t2 să fie satisfăcută inegalitatea: t1 (K) # t2 (K). Această

inegalitate semnifică faptul că într-o relaţie nu pot exista două tupluri cu aceeaşi valoare pentru
atributele cheie.
Restricţia referenţială (integritatea referirii) reprezintă restricţia de integritate care impune ca
într-o relaţie R1 care referă o relaţie R2, valorile cheii externe să figureze printre valorile cheii
primare din relaţia R2 sau să fie valori nedefinite (“null”). R1 şi R2 nu trebuie să fie neapărat
distincte. Semnificaţia restricţiei de integritate a referirii este următoarea : o asociere nu poate exista
decât între entităţi deja definite. Atunci când, într-o anumită situaţie, asocierea nu este aplicabilă, unul
din parteneri va fi desemnat prin valoarea “null”, cu semnificaţia de “partener inexistent”.
Restricţia entităţii (integritatea entităţii) reprezintă restricţia de integritate care impune ca într-o
relaţie atributele cheii primare să fie nenule. Unicitatea cheii impune ca la încărcarea unui tuplu,
valoarea cheii să fie cunoscută, pentru a se putea verifica faptul că această valoare nu există deja
încărcată (tuplul nu figurează deja în baza de date). Cu valori <null>, cheia îşi pierde rolul de
identificator de tuplu. Restricţia de integritate a entităţii nu se aplică cheilor externe dintr-o relaţie,
dacă acestea nu aparţin cheii primare.
Restricţiile referitoare la dependenţa datelor semnifică modul în care datele depind unele de altele.
Această dependenţă între date poate fi de mai multe tipuri şi anume:
49
- dependenţă funcţională; reprezintă dependenţa între date prin care se poate identifica un
atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind dată o relaţie
R, un atribut Y din R este dependent funcţional 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 relaţie R, în care apar atributele/grupurile de atribute:X, Y şi
Z. În cadrul relaţiei R există o dependenţă multivaloare dacă şi numai dacă mulţimea
valorilor lui Y corespunzătoare unei perechi: (valoare X, valoare Z) depinde numai de
valoarea lui X, nu şi de valoarea lui Z;
- dependenţă jocţiune; această restricţie exprimă o dependenţă între date mai generală decât
dependenţa funcţională sau dependenţa multivaloare. Considerând o relaţie R, cu schema
R(X:Dx,Y:Dy,Z:Dz) pentru care nu se manifestă dependenţe funcţionale sau dependenţe

multivaloare, adică relaţia R se poate asimila unei chei compuse. Asupra acestei relaţii se
formulează următoarea restricţie: dacă în relaţia R figurează tuplurile, şi atunci în R
trebuie să figureze şi tuplul .
Restricţiile de comportament se pot defini de către utilizator în funcţie de
realitatea descrisă în baza de date şi pot fii:
 restricţii de domeniu; care impun ca valorile unui atribut dintr-o relaţie
să se încadreze în anumite limite;
 restricţii temporale etc.

3.5. Proiectarea bazelor de date relaţionale

Proiectarea bazelor de date relaţionale se realizează conform cu cele prezentate în capitolul


anterior. Diferenţe apar la activităţile legate de proiectarea schemelor conceptuale, interne şi externe,
de încărcarea, exploatarea şi întreţinerea bazei de date.

3.5.1. Proiectarea schemei conceptuale

La proiectarea bazelor de date relaţionale se foloseşte frecvent termenul de “schemă


conceptuală optimă”, prin care se înţelege acea schemă conceptuală care
înlătură posibilităţile apariţiei de anomali în lucrul cu baza de date, asigurând
totodată facilităţi şi performanţe sporite la încărcarea, exploatarea şi întreţinerea
bazei de date.

50
Anomaliile care apar la lucrul cu baze de date se manifestă îndeosebi la
întreţinerea bazei de date, fiind cunoscute şi sub numele de anomalii de
actualizare a datelor. Ele se manifestă nu numai în cazul bazelor de date
relaţionale, ci şi la celelalte tipuri de baze de date. În cadrul teoriei relaţionale a
bazelor de date, anomaliile de actualizare sunt puse în legătură cu dependenţele
care se manifestă între date. Abordarea anomaliilor de actualizare a permis, pe
de o parte caracterizarea riguroasă a relaţiilor după gradul de “perfecţiune” pe
care îl prezintă (aşa numitele “forme normale” ale relaţiilor) şi pe de altă parte a
făcut posibilă definirea unor tehnici formale pentru înlăturarea anomaliilor de
actualizare.

Formele normale ale relaţiilor

Anomaliile care apar în lucrul cu baze de date relaţionale se produc datorită dependenţelor
“nedorite” care se manifestă între datele din cadrul relaţiilor bazei de date. Aceste dependenţe
determină creşterea redundanţei datelor şi reducerea flexibilităţii structurii bazei de date, efect
manifestat prin:
 limitarea posibilităţilor de inserare a datelor; apare când anumite date
despre o entitate nu pot fi introduse în baza de date datorită lipsei altor
date, relative la aceeaşi entitate, şi fără de care, datele noi nu pot fi
introduse datorită dependenţelor dintre aceste date;
 pierderi de date la ştergere; apar atunci când, în urma unei ştergeri din
baza de date sunt şterse şi altele, care nu mai pot fi obţinute
(reconstituite) din baza de date;
 apariţia unor inconsistenţe la modificarea datelor; adică menţinerea,
pentru unele atribute, a unor valori neactualizate alături de valorile
actualizate.
Formele normale ale relaţiilor dintr-o bază de date relaţională sunt definite în raport de anomaliile
care pot apare în lucrul cu aceste relaţii, deci în funcţie de dependenţele “nedorite” care se manifestă
în cadrul acestor relaţii.
La proiectarea bazelor de date relaţionale se pot defini cinci forme normale, formând cinci nivele
de normalizare a relaţiilor.
O relaţie R este în forma normală unu, FN1, dacă domeniile pe care sunt definite
atributele relaţiei sunt constituite numai din valori atomice (elementare). În plus,
un tuplu nu trebuie să conţină atribute sau grupuri de atribute repetitive.

51
O relaţie R este în forma normală doi, FN2, dacă este în FN1 şi oricare dintre
atributele noncheie este dependent funcţional complet de cheia primară a
relaţiei.
O relaţie R este în forma normală trei, FN3, dacă este în FN2 şi atributele
noncheie nu sunt dependente tranzitiv de cheia primară a relaţiei.
Relaţia 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ă relaţia R este în forma normală cinci, FN5, dacă fiecare
dependenţă joncţiune este implicată printr-un candidat cheie al lui R.

Etapele procesului de proiectare a schemei conceptuale

Proiectare schemei conceptuale a unei baze de date relaţionale presupune parcurgerea următoarelor
etape:
1. Determinarea formei normale în care trebuie să se afle relaţiile din baza de
date (a nivelului de “perfecţiune” impus schemei conceptuale). Relaţiile
aflate în forme normale superioare determină apariţia unui număr redus de
anomali în lucrul cu baza de date, comparativ cu relaţiile nenormalizate
sau aflate în primele forme normale, dar conduc todată la creşterea
timpului de acces la date. Aceasta deoarece relaţiile aflate în forme
normale superioare conţin, de regulă, un număr mai mic de atribute, lucru
care impune creşterea numărului de relaţii din baza de date, deci
interogarea simultană a mai multor relaţii pentru a găsi anumite informaţii.

În determinarea formei normale la care trebuiesc aduse relaţiile din bazele de


date relaţionale se vor avea în vedere următoarele:
 ponderea operaţiilor de interogare şi a celor de actualizare în lucrul cu
bazele de date relaţionale;
 exigenţele de performaţă şi flexibilitate impuse de utilizatorii finali la
interogarea şi, respectiv la actualizarea bazelor de date relaţionale.
2. Stabilirea relaţiilor care să facă parte din baza de date, în forma normală
stabilită anterior. Aceasta presupune definirea relaţiilor şi a restricţiilor de
integritate asociate, lucru realizat pe baza modelelor conceptuale ale
sistemului, modele obţinute în etapa de analiză a sistemului şi a cerinţelor
informaţionale asociate. În cadrul acestei etape se pot aplica mai multe
52
tehnici de proiectare (tehnica normalizării, tehnica diagramelor de
dependenţă riguroasă etc.).
3. Testarea schemei conceptuale obţinute şi revizuirea acesteia, dacă este
cazul;
4. Descrierea schemei conceptuale în limbajul de descriere a datelor utilizat
de SGBD-ul relaţional folosit şi încărcarea acestei descrieri în baza de date
relaţională.

3.5.2. Proiectarea schemei externe

Schema externă a unei baze de date relaţionale reprezintă ansamblul relaţiilor (tabelelor de date) la
care are acces un utilizator (un program de aplicaţie). Deşi mai mulţi utilizatori pot lucra cu o aceeaşi
schemă externă, în general, se consideră pentru o bază de date relaţională atâtea scheme externe câţi
utilizatori există la un moment dat, scheme care trebuiesc proiectate şi apoi făcute operaţionale.
Schema externă reprezintă modul de organizare, structurare, a datelor de care are nevoie un anumit
utilizator pentru a-şi satisface toate cerinţele informaţionale. 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 partiţie 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 relaţionale, în
raport de ansamblul cerinţelor informaţionale ale tuturor utilizatorilor, în timp ce structurarea datelor
în cadrul schemei externe urmăreşte facilitarea satisfacerii cerinţelor informaţionale pentru un anumit
utilizator. Deoarece aceste două criterii nu sunt echivalente se obţin rezultate, deci structuri ale
datelor diferite.
La proiectarea unei scheme externe a unei baze de date relaţionale se parcurg următoarele etape:
1. Determinarea zonei (ariei) de interes pentru un anumit utilizator din
cadrul sistemului informatic reflectat informaţional cu ajutorul bazei de
date;
2. Analiza structurală, dinamică şi funcţională a acestei zone din domeniul
activităţii economice reprezentate prin sistemul informatic pentru care
se realizează baza de date;
3. Proiectarea schemei externe, pe baza analizei anterioare, în modul de
lucru descris la proiectarea schemei conceptuale a bazei de date
53
relaţionale, ţinând cont de faptul că aceeaşi 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 operaţională. Acest lucru se
realizează în mod diferit faţă de schema conceptuală a bazelor de date,
pentru care operaţionalizarea presupune descrierea sa cu ajutorul
limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei
descrieri şi încărcarea acestei descrieri compilate în cadrul bazei de
date. Pentru ca o schemă externă să devină operaţională, să poată fi
aplicată, utilizatorul căruia î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 relaţionale

Un sistem de gestiune a bazelor de date relaţionale poate fi definit ca reprezentând un SGBD care
utilizează drept concepţie de organizare a datelor modelul relaţional.
Diversitatea modelelor relaţionale “operaţionale” au determinat, în mod natural existenţa unei mari
diversităţi de SGBDR, care se apropie mai mult sau mai puţin de modelul relaţional “teoretic”.
Cerinţele teoretice pe care trebuie să le satisfacă un SGBD relaţional 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 relaţionale
(SGBDR) disponibile astăzi nu respectă întrutotul cerinţele exprimate de Codd, în cadrul celor 13
reguli, caracterizarea unui SGBD se realizează folosind o serie de cerinţe minimale pe care trebuie să
le satisfacă un sistem de gestiune a bazelor de date pentru a putea fi considerat relaţional.
Un SGBD este minim relaţional dacă satisface următoarele condiţii:
1. Toate datele din cadrul bazei de date sunt reprezentate prin valori în
tabele.
2. Nu există pointeri observabili de către utilizator între tabele, în sensul că
operaţiile cu relaţii nu fac apel la pointeri, indecşi, fişiere inverse etc.
3. Sistemul suportă operatorii relaţionali de proiecţie, selecţie şi join natural,
fără limitări impuse din considerente interne (cum ar fi de exemplu,
necesitatea indexării atributelor). Unitatea de informaţie cu care se
lucrează în cadrul acestor operaţii trebuie să fie relaţia.
54
Un SGBD este complet relaţional dacă este minimal relaţional şi satisface în
plus următoarele condiţii:
4. Sistemul suportă toate operaţiile de bază ale algebrei relaţionale, fără
limitări impuse din considerente interne.
5. Sistemul suportă două dintre restricţiile de integritate de bază ale
modelului relaţional şi anume unicitatea cheii unei relaţii şi restricţia
referenţială.
Un SGBD este pseudorelaţional dacă satisface numai condiţiile 1 şi 3.
Dintre instrumentele şi mecanismele de lucru de care dispune un SGBD
relaţional se pot menţiona:
 un limbaj relaţional pentru descrierea datelor la nivel fizic, logic şi
conceptual;
 un limbaj relaţional pentru manipularea datelor (interogare şi
actualizare);
 mecanisme pentru controlul integrităţii semantice a datelor;
 mecanisme pentru asigurarea coerenţei datelor în condiţiile accesului
concurent la date şi apariţiei unor avarii;
 mecanisme pentru optimizarea cererilor de date;
 utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de
rapoarte, utilitare pentru generarea de aplicaţii, pentru generarea de
statistici despre starea şi activitatea bazei de date.
Dintre SGBD-urile relaţionale mai cunoscute putem menţiona: 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. Întrebări pentru verificarea cunoştinţelor

1. Care este structura modelului relaţional al datelor ?


2. Enumeraţi câteva avantaje ale modelului relaţional.
3. Care sunt noţiunile care definesc structura relaţională a datelor ?
4. Definiţi conceptul de schemă a unei relaţii ?
5. Care sunt operaţiile algebrei relaţionale standard ?
6. Definiţi operaţia algebrei relaţionale de proiecţie.
7. Definiţi operaţia algebrei relaţionale de selecţie.
8. Definiţi operaţia algebrei relaţionale de diviziune.

55
9. Definiţi operaţia algebrei relaţionale de join.
10. Enumeraţi restricţiile de integritate ale modelului relaţional.
11. Explicaţi restricţia de unicitate a cheii.
12. Explicaţi restricţia de unicitate referenţială.
13. Enumeraţi şi explicaţi dependenţele între date.
14. Explicaţi noţiunea de « schemă conceptuală optimă ».
15. Care sunt etapele procesului de proiectare a schemei conceptuale a unei baze de date
relaţionale ?
16. Care sunt cerinţele impuse unui SGBD pentru a putea fi considerat minim relaţional ?

4. BAZE DE DATE CU STRUCTURI IERARHICE ŞI REŢEA

4.1. Modelul de date ierarhic

Modelul de date ierarhic a fost primul model folosit pentru organizarea datelor în baze de date
datorită simplităţii conceptului de ierarhie şi a aplicabilităţii sale în modelarea realităţii
înconjurătoare.
Modelul ierarhic are ca structură de bază structura arborescentă (ierarhia). Proprietăţile acestei
structuri de date determină caracteristicile şi restricţiile modelului ierarhic. În modelul ierarhic
fiecărui nod al arborelui îi corespunde un tip de înregistrare, format din unul sau mai multe câmpuri,

56
reprezentând atribute ce descriu entităţi. Descrierea unei structuri ierarhice se poate face utilizând
diagrame de structură.

Fig. 4.1. Diagramă de structură ierarhică

Din figura de mai sus se observă că un nod părinte poate avea subordonate mai multe noduri copil,
în timp ce un nod copil poate avea un singur părinte, ceea ce înseamnă că relaţia părinte-copil între
tipurile de înregistrări va fi 1 la M (“unu la mulţi”) şi cea copil-părinte 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 număr de realizări. Relaţiile între realizările unui cuplu părinte-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 realizări a tipului părinte (Tip_înregistrare_1) i se pot
asocia <n> realizări ale tipului copil (Tip_înregistrare_2) şi că o realizare a tipului copil este
asociată cu o singură realizare a tipului părinte. Între Tip_înregistrare_3 şi Tip_înregistrare_4,
relaţia de 1 la 1 este reciprocă. Acestea sunt singurele tipuri de relaţii permise între realizările
tipurilor de înregistrări ale modelului ierarhic.
O bază de date ierarhică poate fi definită ca fiind o mulţime ordonată de realizări ale unui singur
tip arbore.
Un tip arbore constă dintr-un singur tip de înregistrare “rădăcină”, la care se adaugă o mulţime
ordonată alcătuită din unul sau mai multe tipuri de subarbori dependenţi. Un tip subarbore constă
dintr-un tip de înregistrare rădăcină şi o mulţime ordonată alcătuită din unul sau mai multe tipuri de
subarbori dependenţi ş.a.m.d. Deci, un tip arbore constă dintr-o ierarhie a tipurilor de înregistrări.
O realizare a arborelui constă dintr-o singură realizare a tipului înregistrare rădăcină împreună cu
o mulţime ordonată alcătuită din una sau mai multe realizări ale fiecărui tip subarbore imediat
dependent de tipul rădăcină. Se observă că pentru orice realizare a unui tip înregistarare părinte,
există n realizări ale tipurilor înregistrare copil (). Toate realizările unui tip copil care au aceeaşi
realizare părinte se numesc gemeni.

57
Fie un (sub)arbore T cu rădăcina R şi subarborii S 1, S2, ..., Sn în această ordine. Fie t o realizare a
lui T, cu rădăcina r (o realizare a lui R) şi subarborii s 1, s2, ..., sn, realizări ale S1, S2, ..., Sn. Se
defineşte recursiv secvenţa ierarhică (ordonarea) pentru t, ca fiind secvenţa obţinută alăturând
înregistrării r, toate înregistrările lui s1, s2, ..., sn, luate în ierarhia lor.
Fiecare arbore individual din baza de date poate fi privit ca un subarbore al unei înregistrări
rădăcină iniţiale. Deci baza de date poate fi considerată ca un singur arbore. Noţiunea de secvenţă
ierarhică defineşte o ordonare totală pe mulţimea tuturor înregistrărilor 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 posibilităţi de parcurgere în sus sau în jos pe diferite căi ale
ierarhiei; operatori pentru inserarea unei noi înregistrări la o poziţie specifică într-un astfel de arbore;
operatori de ştergere a unei înregistrări specificate etc.
Aceşti operatori sunt la nivel de înregistrare existând şi o clasă de operatori pe mulţimi de
înregistrări.

4.3. Restricţii de integritate ale modelului ierarhic

Caracteristic modelului ierarhic este faptul că nici o realizare a unui nod copil nu poate să existe
fără a avea asociată o realizare a nodului părinte. Aceasta înseamnă că dacă un nod părinte este şters,
automat sistemul va şterge întregul subarbore ce are ca părinte ale nod precum şi că o realizare a
nodului copil nu poate fi inserată dacă o realizare a nodului părinte nu există deja.
Ţinând cont de cele de mai sus, precum şi de relaţiile permise între realizările tipurilor de
înregistrări, pot fi enunţate următoarele restricţii de integritate ale modelului ierarhic:
 realizare copil este întotdeauna asociată unei singure realizări părinte;
 dacă un tip de înregistrare nu are realizări, atunci nici tipurile
descendente de înregistrări nu au realizări.
De exemplu, să considerăm o bază de date cu informaţii despre comenzile lansate de clienţii unei
firme (fig. 4.2.).

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

Nodul rădăcină este CLIENŢI, înregistrarea copil este COMENZI, iar relaţia părinte-copil este de
tipul 1:M (“unu la mulţi”), adică un client poate lansa mai multe comenzi firmei considerate. O
comandă poate să includă mai multe produse iar acelaşi produs poate fi solicitat în mai multe
comenzi ale aceluiaşi client sau ale unor clienţi diferiţi. Deci, între tipurile de înregistrare COMENZI
şi PRODUSE relaţia este de tip N:M (“mulţi la mulţi”). Deoarece modelul ierarhic nu permite
reprezentarea relaţiei de acest tip, s-a optat pentru transformarea acesteia în două relaţii, prin
introducerea tipului de înregistrare LEGĂTURĂ, atfel: o relaţie de tip 1:N între COMENZI şi
LEGĂTURĂ şi o alta de tip 1 la 1 între LEGĂTURĂ şi PRODUSE (se respectă astfel restricţia 1,
conform căreia o realizare copil poate fi asociată unei singure realizări părinte).

Fig. 4.3. Relaţii î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 corespunzător apare o singură dată.
Totodată, dacă în COMENZI nu există realizări care să se refere la un produs T, nu vor exista
informaţii despre acest produs în PRODUSE. Deci informaţiile 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 căutare a unei realizări copil să fie efectuată în secvenţă
ierarhică, începând cu realizarea rădăcină. În exemplul considerat, având în vedere restricţia 1, datele
pentru produsul X vor fi repetate pentru fiecare comandă care include acest produs. Datorită acestei
redundanţe, actualizarea bazei de date este dificilă. Astfel, pentru modificarea unro date despre
produsul X trebuiesc regăsite toate înregistrările care îl conţin, adică pentru fiecare client trebuie
verificate toate comenzile asociate pentru a le identifica pe care conţin produsul X.
În acest context, maniera de implementare a relaţiilor dintre tipurile de înregistrări va condiţiona
performanţele procesului de manipulare a datelor. Se cunosc două modalităţi de implementare a
acestor relaţii:
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 părinte trebuie să conţină
un pointer (o adresă) spre prima realizare a tipului copil. La rândul ei, fiecare realizare copil va
conţine un pointer spre următoarea realizare copil asociată aceluiaşi părinte. Fiecare înregistrare copil
poate conţine, de asemenea, un pointer spre înregistrarea părinte.
Un alt mod de implementare presupune că o realizare părinte să aibă un vector de pointeri spre
realizările copii. De asemenea, există situaţia în care este utilă o cheie primară pentru a accesa
realizările unui anumit tip de înregistrare. Pentru aceasta folosim pointeri spre realizările înregistrării
respective, în ordinea valorii câmpului ales drept cheie primară.
2. Reprezentarea secvenţială pe suport a informaţiilor. În acest caz fiecare realizare a arborelui
reprezintă o înregistrare logică a fişierului. Componentele ierarhiei sunt aranjate pe suportul de
memorie corespunzător 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 rădăcină, semnalează începutul unei noi realizări a arborelui.
În concluzie, se poate afirma că implementarea modelului ierarhic este difcilă, prezentând
dezavantajele redundanţei informaţionale din structura ierarhică a datelor şi faptul că sistemele
ierarhice nu permit utilizatorului să manipuleze un subarbore ca o entitate independentă.
Există mai multe sisteme de gestiune a bazelor de date ierarhice, cel mai răspândit fiind IMS/VS
(Information Management System/Virtual Storage) şi este implementată pe calculatoarele IBM, sub
60
sistemul de operare MVS. SGBD-urile ierarhice sunt realizate pentru calculatoare de mare capacitate
neexistând un asemenea SGBD comercial pentru calculatoare compatibile IBM-PC.

4.5. Modelul reţea şi baze de date reţea

Modelul reţea foloseşte structura de date reţea ca structură de bază. Reţeaua este un graf orientat
alcătuit din noduri conectate prin arce. Nodurile corespund tipurilor de înregistrare, iar arcele
pointerilor (adreselor de legătură). Modelul reţea foloseşte înregistrările pentru a reprezenta entităţile
şi pointerii între înregistrări pentru a reprezenta relaţiile dintre entităţi.
Structura de date reţea seamănă cu structura de date arborescentă, cu dfierenţa că un nod
dependent (copil) poate avea mai mult decât un singur părinte.
O bază de date reţea constă dintr-un număr oarecare de tipuri de înregistrări. O înregistrare este
constituită dintr-un număr oarecare de câmpuri (elementare sau agregate). Un câmp este cea mai mică
unitate de date care are nume. Fiecare câmp are un tip de dată asociat. Câmpul corespunde unui
atribut, iar înregistrarea unei entităţi.

Fig. 4.4. Structură de date reţea

Caracteristic modelului de date reţea este conceptul de set, folosit pentru a exprima relaţiile dintre
entităţi. 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 colecţie de înregistrări având o realizare proprietar şi un număr oarecare
de realizări membre asociate.
Modelul reţea impune restricţia conform căreia o înregistrare nu poate fi membră a două realizări
ale aceluiaşi tip set. Totuşi, o înregistrare poate să aparţină mai multor tipuri set.

61
În modelul reţea, toate seturile sunt implementate prin pointeri. Uzual, se crează o listă înlănţuită
unde realizarea proprietar este capul listei. Proprietarul are legătură cu primul membru, care se leagă
de al doilea şi aşa mai departe până la ultimul membru. Ultimul membru face legătură cu proprietarul,
formând un lanţ. O înregistrare membru a unui set poate avea trei pointeri:
- spre înregistrarea urmăroare (next);
- spre înregistrarea anterioară (prior);
- spre proprietar (owner).
Modelul reţea prezintă o serie de dezavantaje cum ar fi:
 modelul reţea este complicat;
 structura reţea tinde să fragmenteze informaţiile;
 cea mai mare parte a optimizării sistemului se face mai mult manual decât aplicând
programe de optimizare;
 conceptul de indicator de poziţie este o sursă de complexitate şi de erori.
Cu toate acestea, în practică, SGBD-urile reţea continuă să fie folosite datorită performanţelor
bune obţinute în prelucrarea explicită la nivel de înregistrări. SGBD-urile reţea 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 pătrunderea acestora în tot
mai multe domenii de activitate, având 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 depăşeşte posibilităţile de prelucrare oferite de tehnologiile clasice.
Aplicaţiile specifice anumitor domenii cum ar fi: proiectarea asistată de calculator, sisteme
informatice geografice, sisteme bazate pe cunoştinţe etc., presupun stocarea unor cantităţi mari de
informaţii cu o structură complexă. De exemplu, aplicaţiile de proiectare asistată de calculator
necesită stocarea şi manevrarea unor desene formate din grupuri de elemente complexe, alături de
acestea fiind necesară stocarea şi a altor informaţii privind materialele folosite, maşini şi utilaje
disponibile, rezultate ale verificărilor efectuate asupra proiectului etc.

62
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 aplicaţiilor orientate pe
obiecte.
Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai
simple, fiecare având 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 informaţionale spaţiale (GIS);
 administrarea documentelor şi automatizarea muncii de birou;
 multimedia;
 ingineria cunoaşterii: baze de cunoştinţe, 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.
 Posibilităţi de deducţie superioară (ierarhie de clase, moştenire);
 Ameliorarea interfeţei cu utilizatorul;
 Luarea în considerare a aspectelor dinamice, integrarea descrierii structurale şi
comportamentale a obiectelor.

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

Un model de date orientat pe obiecte are la bază noţiunea de entitate conceptuală şi defineşte un
obiect ca o colecţie de proprietăţi care descriu entitatea. Principalele concepte care stau la baza unui
model orientat pe obiecte sunt: obiectul, încapsularea, persistenţa, clasa, tipul, moştenirea,
polimorfismul, identitatea şi domeniul.

Obiectul

Conceptual, un obiect reprezintă o unitate identificabilă şi cu conţinut propriu, care se deosebeşte


de ceea ce o înconjoară.

63
Obiectele sunt abstractizări ale entităţilor lumii reale şi se caracterizează prin stare şi
comportament.
Starea unui obiect este exprimată prin valorile atributelor sale. Colecţia 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 operaţii care
acţionează asupra atributelor sale.
Considerând, de exemplu obiectul AVION acesta poate avea ca atribute: viteza, anvergura,
greutatea, culoarea, înălţimea de zbor etc.
Un obiect înglobează următoarele elemente:
 structura de date;
 specificarea operaţiilor;
 implementarea operaţiilor.
Structura unui obiect şi operaţiile (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, formând astfel o structură ierarhică.

Încapsularea

Structura obiectului şi modul de acţiune al metodelor sale nu pot fi accesate şi actualizate direct de
către un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Această caracteristică
ascunsă a stării obiectului este cunoscută sub numele de încapsulare. Un obiect este astfel divizat în
două părţi: 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
funcţională simplificată a acestuia, imagine care îi permite să modeleze şi să rezolve cu mai multă
uşurinţă problemele complexe.

64
Persistenţa

Aceasta este o proprietate a datelor sau a obiectelor care implică existenţa mai îndelungată a
acestora faţă de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigură
păstrarea 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ă,
decongestionând astfel aplicaţia şi asigurându-i independenţa faţă de date. O modificare adusă unei
metode devine imediat operantă şi persistă până la o nouă modificare.

Tipuri şi clase

Obiectele care au acelaşi fel de atribute şi acelaşi comportament pot fi categorisite ca făcând parte
din acelaşi tip sau din aceeaşi clasă.
Într-un sistem orientat pe obiecte, tipul sintetizează elementele comune ale
unui set de obiecte cu aceleaşi caracteristici. Corespunde noţiunii de tip abstract
de date şi are două componente:
 interfaţa;
 implementarea.
Noţiunea de clasă, deşi are aceeaşi specificaţie cu cea de tip, este diferită de
acesta, fiind mai mult asociată cu faza de execuţie şi presupune două aspecte:
 generarea de obiecte;
 stocarea setului de obiecte care reprezintă instanţele 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 instanţele clasei vor răspunde şi un set de metode pentru
implementarea de operaţii comune.
Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei serveşte ca şablon după care
vor fi create noile obiecte. O clasă este deci un tip abstract de date care defineşte atât structura
obiectelor din clasa respectivă, cât şi mulţimea metodelor existente pentru aceste obiecte. Ca urmare,
obiectele din aceeaşi clasă au aceleaşi atribute şi aceleaşi metode şi răspund la aceleaşi mesaje.
Clasele sunt organizate ierarhic fiecare clasă nou creată trebuind să fie
obţinută din altă clasă deja existentă. Dacă nu există nici o clasă potrivită pentru
definirea unei noi clase, aceasta va fi identificată ca o subclasă a clasei generale
sistem (metaclasă). Orice subclasă moşteneşte structurile şi metodele
superclasei din care face parte. O clasă poate crea noi instanţe ale obiectelor.
65
Moştenire

Într-o bază de date orientate pe obiecte, clasele sunt aranjate într-o ierarhie în care fiecare clasă
moşteneşte toate atributele şi metodele superclasei din care face parte. Moştenirea este un concept
puternic, care conduce la posibilitatea de reutilizare a codului.
Prin moştenire, o clasă preia toate atributele şi metodele clasei din care derivă adăugând la ele
atributele şi metodele proprii. Este de asemenea posibil ca o clasă să aibă mai mult decât o superclasă.
Acest lucru este cunoscut ca moştenire multiplă.

Polimorfism

Polimorfismul se referă la faptul că, la primirea unui mesaj, stabilirea metodei care se aplică se
face în mod dinamic, în funcţie de clasa obiectului în cauză. Astfel, instanţe ale unor clase diferite pot
fi adresate uniform (primesc aceleaşi 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 moştenirea. Răspunsul unui obiect la un
mesaj poate fi determinat de metodele moştenite de la superclasă. Moştenirea 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 persistenţa
datelor.
Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independentă de
valorile atributelor sale. Spre deosebire de modelul relaţional, care utilizează unicitatea cheii primare
pentru a identifica “obiectul”, tehnologia orientată pe obiecte permite modificarea valorilor oricărui
atribut fără a-i afecta identitatea. Mai mult chiar, obiectele au “conştiinţa 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
valorile atributelor sale. Fiind generat de sistem, identificatorul este unic şi nu
este accesibil utilizatorului.

Restricţii de integritate ale modelului de date orientat pe obiecte

66
În cazul modelului de date orientat pe obiecte, restricţiile de integritate cunt o consecinţă a
structurii modelului şi a operaţiilor. Următoarele reguli sunt important de reţinut:
 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ă fără 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 aplicării tehnologiei
orientate pe obiecte în domeniul stocării şi regăsirii informaţiilor. 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 aplicaţie particulară. Definiţiile de clasă includ
moştenirea, relaţiile de înrudire (superclasa, subclasa) şi relaţiile structurale dintre clase (analog cu
relaţiile din modelul entitate-relaţie-atribut).
O schemă completă de bază de date poate consta din una sau mai multe ierarhii de clasă împreună
cu relaţiile structurale. Descrierile individuale ale schemei se referă la variabile de instanţă ale
claselor individuale.
Schema bazei de date poate fi modificată dinamică, în funcţie de necesităţile utilizatorilor. Pot fi
identificate două tipuri de schimbare a schemei unei baze de date orientate pe obiecte:
1. Schimbări referitoare la modul de definire al unei clase. Acestea includ schimbările atributelor
şi metodelor definite pentru o clasă, cum ar fi schimbarea numelui sau domeniului unui atribut,
adăugarea, ştergerea unui atribut sau metode;
2. Schimbări referitoare la structura ierarhiei de clase care includ adăugarea sau ştergerea unei
clase şi schimbarea relaţiilor superclasa/subclasa dintre o pereche de clase.

Proiectarea bazelor de date orientate pe obiecte


67
Modul clasic de proiectare se bazează pe tehnica top-down. Se identifică mai întâi componentele
majore, se stabilesc corelaţiile între ele, iar apoi se trece la rafinări succesive, “în cascadă”, a
componentelor.
Proiectarea orientată pe obiecte se bazează mai mult pe tehnica bottom-up. Se identifică mai întâi
componentele funcţionale pe baza cărora se va construi apoi întregul edificiu. Se identifică în
colecţiile 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 documentaţia şi se poate începe acţiunea de implementare.
Această metodologie modifică în mod substanţial planificarea lucrărilor şi etapelor. Partea cea mai
minuţioasă a proiectării se mută la începutul proiectului. Dacă există deja biblioteci de obiecte
utilizate în alte aplicaţii, realizarea uni prototip se poate face foarte rapid. Pe baza lui se stabilesc
aspectele funcţionale şi de interfaţă ale aplicaţiei, 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ă păstreze funcţiunile 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ă cerinţele unui sistem de gestiune a bazelor de date.
Arhitectura unui SGBD se referă la o descriere abstractă a organizării unui sistem în scopul de a
prezenta componentele funcţinale şi interfeţele dintre ele. Arhitectura unui SGBD-OO cuprinde trei
componente majore:
Gestionarul de obiecte (Object Manager) care asigură interfaţa dintre procese (prelucrările) externe
şi SGBD-OO;
Server-ul de obiecte care este responsabil cu asigurarea serviciilor de bază ale SGBD-urilor, cum
ar fi: gestiunea tranzacţiilor şi gestiunea stocului de obiecte;
Stocul rezident de obiecte sau chiar baza de date obiect.
Procesele externe pot fi generate de către diverşi utilizatori prin accesarea SGBD-OO. Utilizatorii
finali externi şi cei care dezvoltă aplicaţii 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 interfeţe pentru
68
sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce
realizează interfaţa cu gestionarul de obiecte.
În prezent, SGBD-OO comerciale sunt accesate în primul rând prin limbajele de programare
orientate obiect, cum ar fi: Smalltalk, Common Lisp şi C++. Interfaţa 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, staţii SUN, Apollo şi Digital şi pe
PC-uri.

5.3. Întrebări pentru verificarea cunoştinţelor

1. Care sunt caracteristicile unui obiect ?


2. Explicaţi conceptul de moştenire.
3. Explicaţi conceptul de încapsulare.
4. Explicaţi conceptul de polimorfism.
5. Precizaţi restricţiile de integritate ale modelului de date orientat obiect.
6. Care sunt modalităţile de schimbare a schemei unei baze de date orientate obiect ?
7. Caracterizaţi 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 colecţie de date integrate


din punct de vedere logic dar distribuite din punct de vedere fizic pe staţiile unei
reţele de calculatoare. Fiecare staţie a reţelei are autonomie de prelucrare care îi
permite să realizeze aplicaţii locale. De asemenea, fiecare staţie participă la
execuţia aplicaţiilor globale care necesită accesarea datelor din mai multe staţii.
Reţelele 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
existenţa unui administrator global, care are responsabilitatea centrală a
întregii baze de date distribuită şi a unor administratori locali, cărora le
revin responsabilităţile legate de bazele de date locale. Administratorii
locali pot avea un grad înalt de autonomie care poate merge până la
realizarea coordonării între staţii.
- Independenţa datelor. În cazul bazelor de date distribuite asigurarea
independenţei datelor faţă de programele de aplicaţii are aceeaşi
importanţă ca şi în cazul bazelor de date locale, dar apare un nou aspect
legat de transparenţa distribuţiei. Prin transparenţa distribuţiei programele
pot fi scrise făcând abstracţie de distribuirea fizică a datelor. Mutarea
datelor dintr-o staţie în alta trebuie să afecteze numai viteza de execuţie,
nu şi corectitudinea programului.

70
- Asigurarea unei redundanţe minime şi controlate. În cadrul bazelor
de date distribuite există mai multe motive pentru a considera redundanţa
datelor o caracteristică acceptabilă, şi anume:
 localizarea este mai rapidă atunci când datele sunt replicate la toate staţiile unde
sunt cerute de aplicaţii;
 disponibilitatea, siguranţa sistemului creşte atunci când datele sunt replicate. În
cazul căderii unei staţii, aplicaţiile pot fi dirijate la staţiile unde datele sunt
replicate.
Redundanţa datelor reduce efortul de regăsire a datelor dar creşte efortul de actualizare. Evaluarea
unui grad optim al redundanţei trebuie să ţină seama de raportul între accesele de regăsire şi accesele
de actualizare a datelor.
- Integritatea, restaurarea datelor şi controlul concurenţei. În cazul
bazelor de date distribuite soluţiile privind integritatea, restaurarea datelor
şi controlul concurenţei (cererea simultană a aceloraşi date) sunt legate de
modul de realizare a tranzacţiilor. O tranzacţie este o unitate atomică de
execuţie, o secvenţă de operaţii care fie sunt realizate în întregime fie nu
sunt realizate. În cadrul bazelor de date distribuite problema atomicităţii
tranzacţiilor capătă un aspect particular legat de modul în care trebuie să
se comporte sistemul atunci când una din staţii nu este operaţională: să
abandoneze întreaga tranzacţie sau să încerce să execute corect tranzacţia
chiar dacă ambele staţii nu sunt simultan operaţionale.
- Siguranţa şi securitatea datelor. În bazele de date tradiţionale,
administratorul bazei de date care are controlul centralizat permite numai
un aces autorizat la date. În bazele de date distribuite, administratorii se
confruntă cu aceleaşi probleme ca administratorii bazelor de date
tradiţionale. Sunt de menţionat două aspecte particulare:
 în bazele de date distribuite, cu un grad ridicat de autonomie a staţiilor, bazele de
date locale sunt mai protejate deoarece administratorii locali îşi realizează propria
protecţie fără să depindă de un administrator centralizat;
 problemele securităţii sunt intrinseci sistemelor distribuite deoarece comunicaţia în
reţea poate reprezenta un punct slab în realizare protecţiei.
Faţă de bazele de date centralizate, bazele de date distribuite au următoarele avantaje:
 Creşterea adaptabilităţii sistemului. În orice moment baza de date poate fi extinsă prin
adăugarea de noi structuri de baze de date, cu un impact minim asupra structurii bazei de
date distribuite şi fără a afecta aplicaţiile existente. În cazul sistemelor centralizate,

71
dimensiunile iniţiale ale sistemului trebuie să prevadă viitoarele expansiuni, lucru greu de
realizat şi costisitor de implementat.
 Sporirea performanţelor sistemului deoarece partajarea şi replicarea datelor ca şi
existenţa mai multor procesoare au ca rezultat creşterea gradului de paralelism în
executarea aplicaţiilor.
 Creşterea siguranţei sistemului. Sistemul distribuit este proiectat astfel încât căderea unei
staţii nu afectează întregul sistem.
 Disponibilitatea sporită a datelor asigurată de replicarea lor. Chiar dacă o staţie cade,
datele sunt încă disponibile prin copiile memorate pe alte staţii.

6.1. Sistemul de gestiune a bazelor de date distribuite

Un sistem de baze de date distribuite este un sistem în cadrul căruia mai multe baze de date locale
sunt legate printr-un sistem de comunicaţie astfel încât datele din orice staţie pot fi accesate de
utilizatori de la alte staţii.
Un sistem de baze de date distribuite conţine următoarele componente software:
 componenta de comunicaţie;
 sistemul de gestiune al bazei de date locale (SGBDL);
 dicţionarul de date global (DDG);
 sistemul de gestiune al bazei de date distribuite (SGBDD).
Componenta de comunicaţie este cea care realizează legăturile în cadrul reţelei. El cuprinde
descrierea completă a nodurilor şi a legăturilor din cadrul reţelei.
Sistemul de gestiune al bazei de date locale este un sistem standard de gestiune a bazelor de date.
De obicei conţine propriul său dicţionar pentru datele locale.
Dicţionarul de date global cuprinde informaţii despre baza de date distribuită: localizarea,
structura, disponibilitatea şi modul de utilizare a datelor.
SGBDD cuprinde un sistem complex de programe care asigură interfaţa între baza de date
distribuită şi utilizatorii acesteia.
Funcţiile pe care le îndeplineşte un SGBDD sunt următoarele:
1. Asigurarea interfeţei cu utilizatorul. Unul din obiectivele majore ale
unei baze de date distribuite este asigurarea transparenţei localizării
datelor. Utilizatorul nu trebuie să cunoască nodul la care sunt localizate
datele şi să interacţioneze cu baza de date distribuită în acelaşi mod ca şi
cu o bază de date locală.

72
2. Localizarea datelor. După primirea unei cereri de date, SGBDD consultă
dicţionarul de date global pentru a localiza nodul în care sunt memorate
datele. Cererile de date pot fi împărţite în cereri locale, la distanţă şi
compuse. Dacă cererea poate fi satisfăcută î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 decât 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ă informaţii din mai multe noduri. Pentru a
prelucra o cerere compusă este necesară mai întâi descompunerea
acesteia în cereri locale şi cereri la distanţă. În urma prelucrării, rezultatele
sunt transferate SGBDD care le transferă la rândul lui utilizatorului. Pentru
a superviza execuţia 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 acelaţi 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 concurenţei şi restaurarea datelor la nivelul
întregului sistem. Fiecare SGBD răspunde 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 păstra şi aplica modificările care au intervenit după
producerea incidentului. Controlul concurenţei la nivelul sistemelor este
necesar pentru a asigura sincronizarea proceselor.
4. Realizarea administrării bazei de date distribuite şi controlul
acesteia. SGBDD dispune de instrumente pentru monitorizarea bazei de
date distribuite, colectarea informaţiilor 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 când toate SGBD-urile locale sunt de acelaşi fel. Un SGBDD eterogen implică cel
puţin două SGBD-uri locale diferite.
Astăzi există SGBDD omogene cum sunt: SDD-1, R*, DDM ş.a. şi SGBDD eterogene cum ar fi:
MULTIBASE, DDTS ş.a. De un interes crescând se bucură sistemele eterogene de baze de date
distribuite.

6.2. Întrebări pentru verificarea cunoştinţelor

73
1. Ce este o bază de date distribuită ?
2. Enumeraţi şi explicaţi 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 funcţiile specifice pe care trebiue să le îndeplinească un SGBDD ?
6. Explicaţi funcţia SGBDD de asigurare a interfeţei cu utilizatorul.
7. Explicaţi funcţia SGBDD de localizare a datelor.
8. Explicaţi funcţia SGBDD de asigurare a controlului accesului concurent la date.

74
7. PROTECŢIA BAZELOR DE DATE

Protecţia bazelor de date constă dintr-un set de măsuri umane şi facilităţi


oferite de SGBD prin care se urmăreşte asigurarea integrităţii datelor, definită
ca fiind corectitudinea datelor introduse şi manipulate, şi a securităţii datelor,
ce vizează interzicerea accesului la date pentru persoanele ce nu au competenţe
în folosirea lor. Aceasta capătă o importanţă deosebită în contextul extinderii
folosirii configuraţiilor cu număr mare de utilizatori şi cu un volum mare de date
de prelucrat.
În ceea ce priveşte sfera de acţiune a metodelor utilizate pentru protecţia datelor, pot fi puse în
evidenţă două tendinţe: protecţia împotriva unor defecte sau erori accidentale şi protecţia completă
care realizează în plus faţă de prima şi protecţia contra unor acţiuni voite. Teoretic, toate sistemele ar
trebui să asigure protecţia completă a datelor. În practică însă, costul protecţiei, care creşte pe măsură
ce sunt reduse posibilităţile de apariţie a unor erori şi de violare a confidenţialităţii datelor, este cel
care dictează complexitatea metodelor de protecţie care vor fi utilizate. Aspectele protecţiei bazelor
de date ce vor fi prezentate mai jos se bazează pe presupunerea că protecţia informaţiei la nivelul
sistemului de operare este asigurată.

7.1. Integritatea datelor

Corespunzător situaţiilor care pot genera apariţia unor date incorecte în baza de date, se disting trei
aspecte ale asigurării integrităţii datelor:
1. Asigurarea integrităţii semantice a datelor - presupune prevenirea
introducerii unor date incorecte şi a efectuării unor prelucrări greşite. Dacă
acest lucru nu va fi împiedicat sau semnalat imediat, datele vor fi utilizate
în alte prelucrări, declanşându-se astfel un proces necontrolat de alterare a
bazei de date. Cu cât sesizarea unei erori are loc după o perioadă mai
mare, cu atât efectele ei vor fi mai greu de controlat.
2. Controlul accesului concurent la date - presupune prevenirea obţinerii
unor rezultate incorecte din execuţia concurentă (simultană) a unor
prelucrări în regim multiutilizator. O altă problemă care poate apare la
prelucrarea concurentă este dată de interblocare. Aceasta înseamnă că

75
două tranzacţii 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:
 funcţionarea anormală sau o cădere a SGBD sau a sistemului de operare;
 defecţiune fizică a suportului fizic pe care este memorată baza de date.
În primul caz, prin întreruperea tranzacţiilor active în momentul respectiv, baza de date va rămâne
î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ă existenţa unor informaţii despre derularea
tranzacţiilor până în momentul întreruperii lucrului şi aplicarea, după caz a uneia din următoarele
tehnici de restaurare de bază:
- derularea înapoi a tranzacţiilor (ROLLBACK) - care presupune anularea
modificărilor efectuate de acestea asupra bazei de date;
- derularea înainte a tranzacţiilor completate dar nereflectate în baza de date
(ROLLFORWARD) - care presupune efectuarea acelor transformări prin care
baza de date restaurată să conţină rezultatele acestora.
Se observă deci că tranzacţia poate fi considerată unitatea de restaurare, în sensul că baza de date
restaurată trebuie, fie să reflecte rezultatele finale ale tranzacţiilor, fie să nu fie afectată de acestea.
Procesul de restaurare utilizează o serie de infromaţii obţinute prin aplicarea unei anumite strategii
de salvare.

Datele salvate pot fi diferite combinaţii între:


- copii ale bazei de date şi copii ale jurnalelor acesteia;
- jurnale ale tranzacţiilor;
- jurnale ale imaginii înregistrărilor din baza de date.
Copiile bazei de date pot fi realizate automat de către sistem la anumite
intervale de timp, sau la comanda administratorului bazei de date, ori de câte ori
este nevoie, de preferat pe suporturi magnetice diferite de cele pe care este
stocată baza de date. În cazul unei deteriorări a suportului magnetic care
păstrează baza de date, acesta este singura posibilitate de recuperare a bazei
de date.
Jurnalul tranzacţiilor este un fişier special, întreţinut de SGBD, în care sunt
memorate informaţii despre tranzacţiile efectuate asupra bazei de date, cum
sunt:
76
 identificatorul sau codul tranzacţiei;
 momentul începerii execuţiei tranzacţiei;
 numărul terminalului sau identificatorul utilizatorului care a iniţiat tranzacţia;
 datele introduse;
 înregistrările modificate şi tipul modificării.
Pe baza lui va putea fi stabilită ulterior succesiunea corectă şi natura prelucrărilor efectuate în
intervalul de timp pentru care trebuie să se sigure restaurarea bazei de date.
Jurnalul imaginilor se deosebeşte de jurnalul tranzacţiilor prin aceea că el
nu conţine descrierea operaţiilor efectuate asupra bazei de date ci efectul
acestora. Poate îmbrăca una din urmăroarele forme:
 jurnalul cu imaginea înregistrărilor după modificare (after image) - va conţine copia
fiecărei înregistrări ce este modificată, în forma rezultată după modificare;
 jurnalul cu imaginea înregistrărilor înaintea unei modificări (before image) - va conţine
copia fiecărei înregistrări ce este modificată, în forma iniţială, anterioară efectuării
modificării;
 jurnalul care conţine atât imaginea înregistrărilor inainte cât şi după modificare.
Restaurarea bazei de date se poate face automat sau manual.

7.2. Securitatea bazei de date

Asigurarea securităţii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se
realizează cu ajutorul unui set de măsuri de protecţie umane, software şi hardware.
O primă astfel de măsură o poate constitui izolarea sistemului de calcul în încăperi în care accesul
persoanelor să fie permis pe bază de legitimaţii sau a altor forme de identificare.
Un alt nivel de protecţie îl poate constitui stabilirea de parole pe baza cărora 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 operaţie asupra anumitor date. SGBD poate ţine şi un jurnal pentru urmărirea accesului la
baza de date, pe baza căruia pot fi depistate încercările de acces neautorizat la baza de date.
Pentru cererile de intrare/ieşire transmise sistemului de operare de către SGBD sunt posibile
verificări suplimentare referitoare la utilizarea corectă a fişierelor sau a funcţiilor sistemului de
operare.
Hardware-ul poate să ofere o protecţie 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ă.

77
În continuare vor fi prezentate următoarele mecanisme de asigurare a securităţii datelor din baza
de date:
1. Autorizarea şi controlul accesului la date presupune identificarea
utilizatorilor, restricţionarea accesului acestora la date precum şi restricţionarea
operaţiilor 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 decât un prim obstacol
pentru cei care încearcă să violeze securitatea bazei de date.
Astfel, pentru fiecare utilizator identificat prin parolă, SGBD menţine o listă a
privilegiilor acestuia. De asemenea, utilizatorii pot fi asociaţi unor grupuri de
utilizatori, la drepturile fiecăruie dăugându-se drepturile stabilite pentru grupul
respectiv. Privilegiile unui utilizator depind astfel de clasa de utilizatori căreia
îi aparţine. 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 obişnuiţi, care nu au în proprietate obecte şi nu
au alte privilegii decât cele moştenite ca membrii ai unui grup sau menţionate
explicit de administratorul bazei de date.
2. Definirea şi utilizarea viziunilor. Viziunile (schemele externe) sunt partiţii logice ale bazei de
date. Ele sunt definite pentru diferiţi utilizatori în raport cu necesităţile acestora de a avea acces la
date, putând fi utilizate pentru a restricţiona accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza căreia
este definită. Securitatea datelor este asigurată prin definirea tuturor drepturilor necesare unui
utilizator pentru o viziune şi revocarea drepturilor pentru obiectele iniţiale.
Această modalitate este suficientă în cazul în care asupra datelor viziunii este permisă doar
operaţia de citire. Pentru operaţia de modificare trebuiesc avute în vedere efectele laterale pe care
aceasta le poate produce asupra obiectelor iniţiale. Utilizatorului nu trebuie să i se permită să
efectueze asupra viziunii acele operaţii care pot afecta obiectele iniţiale. În caz contrar, pot să apară
erori sau inconsistenţe în baza de date.
3. Realizarea de proceduri speciale. Unele SGBD oferă facilitatea definirii
unor proceduri ce vor fi păstrate la nivelul sistemului într-o formă precompilată.
În cadrul acestor proceduri vor fi specificate explicit operaţiile ce trebuie efectuate asupra datelor.
Utilizatorului i se va acorda dreptul de execuţie a acestor proceduri şi i se va interzice accesul direct
la obiectele bazei de date gestionate de procedură.

78
4. Criptarea datelor este operaţia de codifcare a datelor în timpul stocării
sau al transportului, astfel încât descifrarea lor să poată fi făcută numai de
posesorii de cod.
La nivelul SGBD această facilitate poate îmbrăca două forme:
 existenţa unor rutine speciale care realizează criptarea datelor la cerere sau automat;
 existenţa 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 cărui componente sunt:
1. Algoritmul de criptare - realizează transformarea datelor din forma
iniţială în forma criptată (cifrată).
2. Cheia de criptare - valoare ce constituie o intrare a algoritmului de
criptare, aleasă dintr-o mulţime de chei posibile.
3. Algoritmul de decriptare - realizează transformarea datelor din forma
criptată în forma iniţială.
4. Cheia de decriptare - valoare ce constituie o intrare în algoritmul de
decriptare, dependentă de cheia de criptare.

7.3. Întrebări pentru verificarea cunoştinţelor

1. Care sunt aspectele asigurăririiintegrităţii datelor ?


2. Cum se poate realiza restaurarea bazei de date în cazul căderilor accidentale ale SGBD sau
SO ?
3. Cum se asigura refacerea bazei de date în cazul defectării suportului de memorie pe care este
stocata aceasta ?
4. Ce conţine jurnalul tranzacţiilor ?
5. Ce conţine jurnalul imaginilor ?
6. Ce presupune activitatea de asigurare a securităţii bazei de date ?
7. Care sunt principalele mecanisme de asigurare a securităţii datelor ?

79

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