Sunteți pe pagina 1din 0

1

1. Introducere n BD. Tratarea datelor. Sisteme de gestionare a bazelor


de date. Sisteme bazate pe fisiere
1.1 Introducere

Sistemele de baze de date sunt o componenta esentiala a vietii de zi cu zi n societatea
moderna. n cursul unei zile, majoritatea persoanelor desfasoara activitati care implica interactiunea
cu o baza de date: depunerea sau extragerea unor sume de bani din banca, rezervarea biletelor de tren
sau avion, cautarea unei referinte ntr-o biblioteca computerizata, cumpararea unor produse etc.
Bazele de date pot avea dimensiuni (numar de nregistrari) extrem de variate, de la cteva
zeci de nregistrari (de exemplu, baza de date pentru o agenda cu numere de telefon) sau pot ajunge
la zeci de milioane de nregistrari (de exemplu, baza de date de plata pentru plata taxelor si a
impozitelor).
Utilizatorii unei baze de date au posibilitatea sa efectueze mai multe categorii de operatii asupra
datelor memorate:
Introducerea de noi date (insert);
Stergerea unora din datele existente (delete);
Actualizarea datelor memorate (update);
Interogarea bazei de date (query) pentru a regasi anumite informatii, selectate dupa un
criteriu ales.
n sensul cel mai larg, o baza de date (database) este o colectie de date corelate din punct de
vedere l ogic, care reflecta un anumit aspect al lumii reale si este destinata unui anumit grup de
utilizatori. n acest sens, bazele de date pot fi create si mentinute manual (de exemplu, fisele de
evidenta a cartilor dintr-o biblioteca, asa cum erau folosite cu ani n urma) sau computerizat, asa cum
este majoritatea bazelor de date folosite n momentul de fata. O definitie ntr-un sens mai restrns a
unei baze de date este urmatoarea:
O baza de date (database) este o colectie de date creata si mentinuta computerizat, care
permite operatii de introducere, stergere, actualizare si interogare a datelor.
Simple colectii de fise (documente pe hrtie) sau fisiere de date, care contin nregistrari de date, dar
nu permit operatii de interogare, nu sunt considerate baze de date. De exempu, datele memorate n
fisiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate de
un editor de text (ca Microsoft Word) nu sunt considerate baze de date.


Modelul relational de BD

Exista trei modele uzuale de implementare de BD: ierarhic, retea sau relational. Fiecare se
bazeaza pe conceptul de date stocate ca set sau multime de nregistrari. Imaginati-va un set de fise,
de exemplu. Modelele ierarhic si retea se bazeaza pe parcurgerea legaturilor dintre date pentru a
lucra cu baza de date; de regula sunt utilizate pentru sisteme-cadru generale, vaste si nu fac obiectul
cursului nostru.
Sistemele de gestionare a bazelor de date relationale (SGBDR) au cunoscut o larga
raspndire, datorita modelului simplu, relational de date pe care- l utilizeaza:
? Datele se prezinta sub forma unei colectii (unui set) de relatii
? Fiecare relatie are forma unui tabel (cea mai importanta componenta a unei BD)
? Rndurile (nregistrarile) tabelului reprezinta entitati
? Coloanele (cmpurile) tabelului sunt atribute/proprietati ale acestor entitati
2

? Fiecare tabel are un set de atribute, care mpreuna reprezinta o cheie care defineste fiecare
entitate n mod unic.
De exemplu, o societate poate avea n baza sa de date un tabel cu angajatii sai, cu un
rnd/nregistrare pentru fiecare angajat. Ce atribute ar fi de interes? Depinde, desigur, de scopul
pentru care a fost creat tabelul, si atributele sunt stabilite la momentul configurarii bazei de date. Ca
exemplu aplicatia poate fi un stat de plata, deci va fi nevoie, n afara de nume, cod angajat si de
informatii referitoare la adresa si salariu.

1.2 Tratarea datelor prin sisteme bazate pe fisiere

Superioritatea administrarii datelor dintr-o organizatie cu ajutorul unui sistem de gestionare
de baze de date (SGBD) rezulta dintr-o scurta comparatie ntre sistemele traditionale de date, bazate
pe fisiere si sistemele de gestionare a bazelor de date (SGBD).

Sistemul bazat pe fisiere este o colectie de programe de aplicatie care efectueaza servicii
pentru utilizatorii finali, cum ar fi producerea de rapoarte. Fiecare program defineste si gestioneaza
propriile date.

Exemplu: o firma care furnizeaza componente pentru diferite proiecte/clienti.
Compartimentul magazie (al firmei) va tine fisiere cu:
- componentele n stoc, pe fisa fiecarei componente aparnd denumirea, seria, costul, nr. bucati
etc.
Compartimentul contabilitate (al firmei) va tine fisiere cu:
- componentele n stoc, documentele de achizitie, intrare, denumirea, seria, costul, nr. bucati
etc.
- iesirile de componente, cu caracteristicile si cantitatile de componente, documentatie
nsotitoare de iesire (inclusiv numele proiectelor/clientilor catre care se furnizeaza)
Compartimentul vnzari (al firmei) va tine fisiere cu:
- numele proiectelor catre care se livreaza, inclusiv nume clienti, numar contract, tipuri de
componente livrate
- cerintele clientilor, cu detalierea componentelor necesare, inclusiv descrierea componentelor,
gradul de urgenta si prioritate etc.

Rezulta urmatoarele limitari ale sistemelor bazate pe fisiere:

- Separarea si izolarea datelor. Atunci cnd datele sunt izolate n fisiere separate, cele care ar
trebui sa fie disponibile sunt mai greu de accesat. De exemplu daca vrem sa aflam care
componente pna la o anumita limita de pret si n ce cantitate se afla n stoc pentru un anumit
proiect, va trebui sa extragem date din fisierul cu proiecte si apoi din cel cu stocuri (fisiere
existnd la compartimente diferite), va trebui sa cream un fisier temporar care sa cuprinda
toate aceste date. Extragerea corecta de date este dificila, necesitnd sincronizarea prelucrarii
(n compartimente diferite) a doua sau mai multe fisiere.

- Dublarea datelor. Din cauza modului de abordare descentralizat, specific fiecarui
compartiment, tratarea datelor pe baza de fisiere a dus la dublarea necontrolata a datelor.
Observam n exemplul nostru, ca mai multe compartimente au introdus aceleasi date n
fisierele lor. Dublarea datelor este de nedorit din urmatoarele cauze:
o Risipa: introducerea datelor de mai multe ori costa timp si bani, ocupa spatiu
suplimentar de stocare, deci alte costuri;
3

o Alterarea integritatii datelor, prin dublare, deci datele nu mai concorda. De exemplu,
daca intrarea unor componente cu pret nou nu este comunicata de catre
compartimentul contabilitate celor de la magazie, aceleasi componente vor aparea n
fisierele diferitelor compartimente cu pret diferit.

- Dependenta de date. Daca este necesara modificarea structur ii unui fisier (de ex. marimea
unui cmp), atunci trebuie identificate toate programele care lucreaza cu acest fisier, pentru a
opera modificarile respective n fiecare dintre ele. Aceasta caracteristica a sistemelor bazate
pe fisiere se numeste dependenta program-date.

- Incompatibilitatea fisierelor. Este posibil ca fiecare compartiment sa-si genereze fisiere n alt
limbaj de programare; structura fisierelor va fi dependenta de limbajul n care este scris
programul. De exemplu, daca compartimentul vnzari vrea sa afle detaliile legate de stocul
existent pentru o anume componenta, va ncerca sa acceseze fisierul corespunzator al
compartimentului magazie, plecnd de la cmpul denumire componente existent n fisierele
ambelor compartimente; daca fisierele sunt generate cu limbaje diferite, va trebui sa intervina
un programator care sa scrie un program de transformare a fisierelor ntr-un format comun.

- Interogarea fixa sau proliferarea programelor de aplicatie. Tratarea datelor prin sisteme de
fisiere a reprezentat un progres semnificativ fata de sistemele manuale. Au crescut cererile de
interogari noi sau modificate, care necesitau de fiecare data interventia programatorului, care
trebuia sa scrie interogarile. Astfel au aparut doua situatii. Pentru a limita volumul de lucru al
programatorilor, s-a ajuns la fixarea numarului de interogari disponibile. Pentru a satisface
numarul crescnd de cereri de interogari, a proliferat numarul de aplicatii; au rezultat
programe ineficiente, scrise n graba, cu documentatie limitata si dificil de ntretinut. Accesul
la fisiere este limitat la un singur utilizator o data, deci nu exista partajarea accesului pentru
mai multi utilizatori din acelasi compartiment.

Limitarile tratarii datelor bazata pe fisiere au doua cauze:
(1) definitia datelor este ncorporata n programele de aplicatie, n loc de a fi stocata independent;
(2) nu exista control asupra accesului si manipularii datelor dincolo de cel impus de programele
de aplicatie.

Ca urmare a aparut o noua tratare a datelor, prin baze de date (BD), gestionate de sisteme de
gestionare a bazelor de date (SGBD).

1.3 Tratarea datelor prin baze de date (BD)

Baza de date este o colectie partajata de date ntre care exista relatii logice (si o descriere a
acestor date), proiectata pentru a satisface necesitatile informationale ale unei organizatii.

Baza de date nu mai este detinuta de un singur compartiment al unei organizatii, ci este o
resursa comuna, partajata. Datele sunt integrate, cu o dublare minima. BD contine datele
operationale ale organizatiei si descrierea acestora.
O baza de date este deci o colectie autodescrisa de nregistrari integrate. Aceasta
caracteristica BD este cunoscuta si ca independenta program - date.

4

O BD relationala contine entitatile, atributele si relatiile logice dintre acestea, reprezentate
printr-o diagrama entitate relatie (ER). Vom reveni n detaliu asupra modelului ER de BD.

1.4 Sistemul de gestionare a bazei de date (SGBD)

SGBD este un sistem de programe care permite utilizatorului definirea, crearea si ntretinerea
bazei de date si accesul controlat la aceasta.

SGBD consta n elemente de software care interactioneaza cu programele de aplicatie ale
utilizatorului pe de o parte si cu baza de date pe cealalta.

Un SGBD ofera o serie de facilitati:
- permite definirea BD printr-un limbaj de definire a datelor (DDL)
- permite inserarea, reactualizarea, stergerea si extragerea de date printr-un limbaj de
manipulare a datelor (DML). BD fiind un depozit unic si central de date si descrieri de date,
DML poate oferi o interogare generala a acestor date, numita limbaj de interogare. Un astfel
de limbaj de interogare este SQL, care elimina utilizarea unui set fix de interogari
disponibile, ca n cazul tratarii datelor prin sisteme de fisiere.
- Ofera accesul controlat la BD. Astfel SGBD poate furniza:
o Un sistem de securitate, pentru a mpiedica accesul utilizatorilor neautorizati
o Un sistem de integritate, care mentine concordanta datelor stocate;
o Un sistem de control al utilizarii simultane, care permite accesul partajat la BD;
o Un sistem de control al refacerii, care restaureaza BD ntr-o stare precedenta
concordanta, ca urmare a unei defectiuni hard sau soft;
o Un catalog accesibil utilizatorilor, care contine descrieri ale datelor din BD
- Ofera generarea de vederi/views numite si moduri de vizualizare a BD prin mecanismul de
vizualizare. Astfel se vor afisa numai acele date din BD care sunt utile utilizatorului,
eliminndu-se ncarcarea rezultatului unei interogari cu date existente n BD, dar care nu
intereseaza utilizatorul. Modurile de vizualizare ofera si alte avantaje:
o Un anumit nivel de securitate; se exclud date care nu trebuie vazute de anumiti
utilizatori;
o O personalizare a aspectului BD. De exemplu redenumirea cmpurilor dupa
preferintele utilizatorului;
o O imagine coerenta, neschimbata a structurii BD, chiar daca BD nsasi este
modificata; prin modul de vizualizare se va afisa n continuare structura prestabilita a
BD.
1.5 Componentele mediului SGBD

Un sistem de baze de date (Database System) este un sistem computerizat de mentinere a
evidentei unei anumite activitati, folosind baze de date. Componentele unui sistem de baze de date
sunt: hardware, software, utilizatori, date persistente.
Hardware. Sistemele de baze de date sunt instalate, de regula, pe calculatoare de uz general,
de la calculatoare PC standard, pna la statii multiprocesor puternice. Binenteles, performantele
generale de operare ale calculatorului (numarul si viteza procesoarelor, dimensiunea si viteza de
operare a memoriei principale etc.) influenteaza n mod corespunzator performantele sistemului de
baze de date. Dar, ceea ce intereseaza n mod deosebit n utilizarea unui calculator pentru un sistem
de baze de date, este volumul (capacitatea) memoriei secundare, utilizata pentru memorarea colectiei
de date persistente ale bazei de date.
5

Dat fiind ca ntr-un sistem de baze de date este necesar accesul rapid la oricare din
nregistrarile de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri).
Benzile magnetice (care ofera acces secvential la nregistrarile de date) sunt utilizate numai pentru
duplicarea (back-up) si salvarea/restaurarea datelor.
Software. ntre baza de date (colectia de date memorate fizic n fisiere pe hard-discuri) si
utilizatorii sistemului exista un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) -
(Database Management System -DBMS)







Fig. 1.1. Componente ale unui sistem de baze de date.

Sistemul de gestiune a bazei de date - SGBD - (Database Management System - DBMS)
receptioneaza cererile utilizatorilor de acces la baza de date (pentru operatii de introducere,
stergere, modificare sau interogare), le interpreteaza, executa operatiile corespunzatoare si
returneaza rezultatul catre utilizatori.
Sistemul SGBD ofera utilizatorilor o viziune (vedere - view) a bazei de date la un nivel nalt
si i elibereaza de necesitatea de a cunoaste organizarea particulara a sistemului (driverele de disc,
structura nregistrarilor de date, etc.).

1.6 Arhitectura interna a sistemelor de baza de date

Arhitectura interna a unui sistem de baze de date propusa prin standardul ANSI/X3/SPARC
(1975) contine trei niveluri functionale: nivelul extern, nivelul conceptual si nivelul intern (fig. 1.2).
Nivelul extern este o colectie de scheme externe, care sunt vederi ale diferitelor grupuri de utilizatori,
existnd cte o vedere individuala a datelor pentru fiecare grup; nivelul conceptual contine schema
conceptuala (logica) a bazei de date, iar nivelul intern contine schema interna (fizica) a bazei de date.
O schema externa (vedere utilizator) (external schema, users view) contine o subschema
conceptuala a bazei de date, mai precis descrierea datelor care sunt folosite de acel grup de
utilizatori.
Schema conceptuala a bazei de date (conceptual schema) corespunde unei reprezentari
unice (pentru toti utilizatorii) si abstracte a datelor, descriind ce date sunt stocate n baza de date si
care sunt asocierile dintre acestea.
Schema interna (fizica) a bazei de date (internal schema) specifica modul de reprezentare a
datelor pe suportul fizic.
Un sistem de baze de date suporta o schema interna, o schema conceptuala si mai multe
scheme externe; toate aceste scheme sunt descrieri diferite ale aceleiasi colectii de date, care exista
doar n nivelul intern.

Baza de date
Date
Utilizator
final
Program
aplicatie
SGBD
6



corespondente (mappings): ntre schemele externe si schema conceptuala si ntre schema conceptuala
si schema interna.
Unele sisteme SGBD nu separa complet cele trei niveluri functionale ale bazelor de date,
existnd posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe n cadrul
schemei conceptuale.

1.7 Avantajele oferite de sistemele de baze de date

Fata de vechile metode de nregistrare a datelor privind diferite activitati pe fise (documente
scrise) sau chiar n fisiere pe disc, sistemele de baze de date ofera avantaje considerabile, ceea ce
explica extinsa utilizare a acestora. Cteva dintre avantajele oferite sunt prezentate n continuare.

Compactitate ridicata: volumul ocupat de sistemele de baze de date este mult mai redus dect
volumul ocupat de documente scrise sau de fisiere necorelate.

Viteza mare de regasire si actualizare a informatiilor.

Redundanta scazuta a datelor memorate, care se obtine prin partajarea datelor ntre mai multi
utilizatori si aplicatii. n stocarea pe fise sau n fisiere a datelor, fiecare aplicatie continea propriile
seturi de date. n sistemele de baze de date, mai multe aplicatii pot folosi date comune, memorate o
singura data. De exemplu, o aplicatie de personal si o aplicatie de rezultate la examene dintr-o
universitate care exploateaza o singura baza de date, pot folosi aceleasi informatii referitoare la
structurarea facultatilor si a sectiilor.

Posibilitatea de introducere a standardelor privind modul de stocare a datelor, ceea ce permite
interschimbul informatiilor ntre diferite organizatii.

7

Mentinerea integritatii datelor prin politica de securitate (drepturi de acces diferentiate n functie
de rolul utilizatorilor), prin gestionarea tranzactiilor si prin refacerea datelor n caz de functionare
defectuoasa a diferitelor componente hardware sau software.

Independenta datelor fata de suportul hardware utilizat. Sistemele de gestiune a bazelor de date
ofera o vedere (view) externa a datelor, care nu se modifica atunci cnd se schimba suportul de
memorare fizic, ceea ce asigura imunitatea structurii bazei de date si a aplicatiilor la modificari ale
sistemului hardware utilizat.

1.8 Clasificarea sistemelor de baze de date

Se pot lua n consideratie mai multe criterii de clasificare ale sistemelor de baze de date.
Clasificare dupa modelul de date. Majoritatea sistemelor de baze de date actuale sunt
realizate n modelul de date relational sau n modelul de date obiect. Dezvoltarea continua a acestor
modele a condus catre o noua categorie de baze de date, numite obiect-relationale, care combina
caracteristicile modelului relational cu cele ale modelului obiect. De asemenea, mai sunt nca n
functiune baze de date n modele mai vechi (modelul ierarhic sau modelul retea). Modelele de date
utilizate de sistemele SGBD vor fi prezentate n sectiunea urmatoare.
Clasificare dupa numarul de utilizatori. Majoritatea sistemelor de baze de date sunt sisteme
multiutilizator, adica permit accesul concurent (n acelasi timp) a mai multor utilizatori la aceeasi
baza de date. Un numar redus de sisteme de baze de date sunt de tip monoutilizator, adica suporta
accesul doar al unui singur utilizator (la un moment dat).
Clasificare dupa numarul de statii pe care este stocata baza de date. Exista doua categorii
de sisteme de baze de date: centralizate si distribuite.
Un sistem de baze de date centralizat (Centralized Database System) este un sistem de baze
de date n care datele si sistemul de gestiune sunt stocate pe o singura statie (calculator).
Un sistem centralizat poate suporta unul sau mai multi utilizatori, dar, n orice situatie, datele
si sistemul de gestiune rezida n ntregime pe o singura statie.
Un sistem de baze de date distribuit (Distributed Database System) poate avea att datele,
ct si sistemul de gestiune, distribuite n mai multe statii interconectate printr-o retea de
comunicatie.
Sistemele de baze de date pot fi reprezentate din punct de vedere al functionarii lor printr-o
arhitectura de tip client-server.
ntr-un sistem centralizat (fig. 1.3) exista un singur server, care este chiar sistemul SGBD,
care raspunde cererilor unui singur client (n sistemele mono-utilizator, fig. 1.3, a) sau mai multor
clienti (n sistemele multi- utilizator, fig. 1.3, b), care acceseaza baza de date respectiva. Clientii sunt
programe de aplicatii oferite de furnizorul sistemului de gestiune sau dezvoltate de programatori.
Aplicatiile client pot fi executate pe statii diferite, conectate printr-o retea de comunicatie cu
statia pe care ruleaza serverul. Aceasta arhitectura permite o prelucrare distribuita a datelor si, mai
mult, o configurare a sistemului adaptata cerintelor de calcul particulare. Astfel, serverul bazei de
date poate fi un sistem puternic, echipat corespunzator (cu volum mare de memorie secundara), n
timp ce fiecare client este o statie personala, cu putere de calcul adecvata aplicatiei executate.








8




Sistemele de baze de date distribuite pot fi reprezentate ntr-un mod asemanator din
perspectiva structurarii client-server (fig. 1.4).
O baza de date distribuita este o colectie de date care apartin din punct de vedere logic
aceluiasi sistem, dar care pot sa fie, din punct de vedere fizic, memorate n mai multe statii de calcul
(locatii - sites) conectate printr-o retea de comunicatie. Sistemul software care gestioneaza o astfel de
baza de date se numeste Sistem de Gestiune a Bazei de Date Distribuite - SGBDD - (Distributed
Database Management System - DDBMS). Aplicatiile client ruleaza pe alte statii din retea si solicita
servicii de la sistemul de gestiune distribuit.



9

Exista numeroase avantaje ale sistemelor de baze de date distribuite (cresterea capacitatii de
stocare si prelucrare a datelor, cresterea disponibilitatii si a partajarii datelor, etc.), dar si o crestere
considerabila a complexitatii acestora.
Cea mai importanta cerinta pe care trebuie sa o ndeplineasca sistemele de gestiune a bazelor
de date distribuite este de a asigura administrarea transparenta a datelor. Transparenta se refera la
capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel nct utilizatorii sa
poata accesa datele pe baza unui model de nivel nalt, fara a fi necesara cunoasterea exacta a modului
de amplasare, replicare sau comunicare a datelor.
Sistemele de gestiune a bazelor de date distribuite comerciale nu ofera n momentul de fata
un nivel suficient de transparenta a localizarii datelor, dar dezvoltarea continua a acestora va putea sa
asigure n viitor aceasta cerinta.

1.9 Modelarea datelor

Un model este o abstractizare a unui sistem, care capteaza cele mai importante trasaturi
caracteristice ale sistemului (concepte), relevante din punct de vedere al scopului pentru care se
defineste modelul respectiv. Tehnica de identificare a trasaturilor caracteristice esentiale ale unui
sistem se numeste abstractizare.
Un model de date stabileste regulile de organizare si interpretare a unei colectii de date. n
proiectarea bazelor de date se folosesc, de regula, mai multe modele de date, care se pot clasifica n
doua categorii: modele conceptuale de nivel nalt si modele specializate.
Un model conceptual de nivel nalt al datelor contine o descriere concisa a colectiilor de date
care modeleaza activitatea dorita (numita schema conceptuala de nivel nalt), fara sa detalieze modul
de reprezentare sau de prelucrare a datelor.
Modelele specializate de date (cum sunt: modelul ierarhic, modelul retea, modelul relational,
etc.) impun anumite structuri speciale de reprezentare a multimilor de entitati si a asocierilor dintre
acestea, structuri pe baza carora sunt dezvoltate sistemele de gestiune a bazelor de date. ntr-un astfel
de model de date, o baza de date este reprezentata printr-o schema conceptuala (logica) specifica.
Trecerea de la modelul conceptual de nivel nalt la un model de date specific reprezinta etapa de
proiectare logica a bazei de date care asigura corespondenta dintre schema conceptuala de nivel nalt
a bazei de date si schema conceptuala specifica modelului de date respectiv.

1.9.1 Modele conceptuale de nivel nalt

Cel mai utilizat model conceptual de nivel nalt este modelul Entitate-Asociere (E-A) care
reprezinta schema conceptuala de nivel nalt a bazei de date prin multimi de entitati si asocieri dintre
acestea. Dezvoltarea acestui model, astfel nct sa permita extinderea tipurilor de entitati, este
cunosuta sub numele de model Entitate-Asociere Extins (E-AE). Proiectarea modelului E-A sau al
modelului E-AE este, de regula, una din primele etape n proiectarea bazelor de date, etapa numita
proiectarea schemei conceptuale.

1.9.1.1 Modelul Entitate-Asociere

Modelul Entitate-Asociere (Entity-Relationship Model), introdus n 1976 de P.S. Chen, este
un model conceptual de nivel nalt al unei baze de date, care defineste multimile de entitati si
asocierile dintre ele, dar nu impune nici un mod specific de structurare si prelucrare (gestiune) a
datelor.
Elementele esentiale ale modelului Entitate-Asociere folosit n proiectarea bazelor de date
sunt entitatile (entities) si asocierile dintre acestea (relationships).
10

O entitate (entity) este orice poate fi identificat n mod distinctiv"; o entitate se refera la un
aspect al realitatii obiective care poate fi deosebit de restul universului si poate reprezenta un obiect
fizic, o activitate, un concept, etc. Orice entitate este descrisa prin atributele sale.
Un atribut (attribute) este o proprietate care descrie un anumit aspect al unei entitati.
Atributele prin care este descrisa o entitate se aleg pe baza criteriului relevantei relativ la
domeniul de interes pentru care se defineste modelul respectiv, astfel nct sa asigure diferentierea
acelei entitati fata de restul universului.
Toate entitatile similare, care pot fi descrise prin aceleasi atribute, apartin unui acelasi tip de
entitate (entity type), iar colectia tuturor entitatilor de acelasi tip dintr-o baza de date constituie o
multime de entitati (entities set). n general, n modelul E-A se foloseste aceeasi denumire att pentru
un tip de entitate ct si pentru multimea entitatilor de acel tip.
De exemplu, tipul de entitate angajat (al unei institutii) reprezinta orice persoana angajata a
institutiei, care are o anumita functie si primeste un anumit salariu. Acest tip de entitate poate fi
descris prin mai multe atribute, dintre care o parte sunt atribute de identificare a persoanei
(Nume,Prenume,DataNasterii,Adresa), iar altele sunt atribute legate de activitatea acesteia n
institutia respectiva (Functie,Salariu).
Prin analogie cu modelul obiect, se poate spune ca un tip de entitate corespunde unei clase, o
entitate este o instanta a unui tip de entitate si corespunde unui obiect, iar multimea entitatilor de un
tip dat corespunde multimii obiectelor (instantelor) unei clase.
n proiectarea bazelor de date se considera doua categorii de entitati: entitati normale
(puternice, obisnuite - regular entities) si entitati slabe (dependente - weak entities).
Entitatile normale au o existenta proprie n cadrul modelului, n timp ce entitatile slabe nu pot
exista dect daca exista o entitate normala (puternica) cu care sunt asociate. De exemplu, o entitate
dependent poate sa reprezinte o persoana care depinde de un angajat al unei institutii (adica se afla
n ntretinerea acestuia). O entitate angajat este o entitate puternica, deoarece ea exista n mod
normal n modelul activitatii institutiei, n timp ce o entitate dependent este o entitate slaba: nu se
va nregistra o astfel de persoana dect daca parintele (sustinatorul) acesteia este angajat n acea
institutie.
n proiectarea bazelor de date se definesc asocieri ntre multimile de entitati componente,
pentru a reprezenta anumite aspecte ale realitatii pe care baza de date o modeleaza.
O asociere (relationship) este o corespondenta ntre entitati din doua sau mai multe multimi
de entitati.
Gradul unei asocieri este dat de numarul de multimi de entitati asociate. Asocierile pot fi
binare (de gradul 2, ntre 2 multimi de entitati) sau multiple (ntre k multimi de entitati, k > 2).
Asocierile binare sunt, la rndul lor, de trei categorii, dupa numarul elementelor din fiecare
dintre cele doua multimi puse n corespondenta de asocierea respectiva (fig. 1.5). Fiind date doua
multimi de entitati, E
1
si E
2
, se definesc urmatoarele categorii de asocieri binare:
Asocierea unul-la-unul (one-to-one) este asocierea prin care unui element
(entitate) din multimea E
1
i corespunde un singur element din multimea E
2
, si reciproc; se
noteaza cu 1:1.
Asocierea unul-la-multe (one-to-many) este asocierea prin care unui element din
multimea E
1
i corespund unul sau mai multe elemente din multimea E
2
, dar unui element din
E
2
i corespunde un singur element n multimea E
1
; se noteaza cu 1:N.
Asocierea multe-la-multe (many-to-many) este asocierea prin care unui element
din multimea E
1
i corespund unul sau mai multe elemente din multimea E
2
si reciproc; se
noteaza cu M:N.
Cardinalitatea (multiplicitatea) unei asocieri fata de o multime de entitati (cardinality,
multiplicity) este numarul maxim de elemente din acea multime care pot fi asociate cu un element
din alta multime a asocierii.

11



Fig. 1.5. Categorii de asocieri ntre doua multimi de entitati: a - asociere 1:1; b - asociere 1:N; c-
asociere M:N.
De exemplu, asocierea 1:N dintre multimile E
1
si E
2
prezinta multiplicitatea 1 fata de
multimea E
1
si multiplicitatea N (se ntelege o valoare oarecare N > 1) fata de multimea E
2
. Raportul
dintre valorile cardinalitatilor unei asocieri binare fata de cele doua multimi de entitati se numeste
raport de cardinalitate (cardinality ratio). Se poate observa ca cele trei categorii de asocieri descrise
mai sus difera ntre ele prin raportul de cardinalitate.
Asocierile multiple (k-are, k > 2) prezinta cte un raport de cardinalitate pentru fiecare
pereche de multimi de entitati pe care le asociaza.
O asociere ntre doua sau mai multe multimi de entitati este, n acelasi timp, o asociere ntre
tipurile de entitati corespunzatoare.

Diagrama Entitate-Asociere (Entity-Relationship Diagram) reprezinta modelul Entitate-
Asociere prin multimile de entitati si asocierile dintre acestea.
Exista numeroase variante de notatii pentru redarea diagramei E-A. Una dintre cele mai
folosite notatii reprezinta un tip de entitate (precum si multimea de entitati de acel tip) printr-un
dreptunghi, iar atributele tipului de entitate prin elipse conectate printr-o linie continua la acesta (fig.
1.6). Pentru entitatile puternice se utilizeaza un dreptunghi ncadrat cu o linie simpla, iar pentru
entitatile slabe se utilizeaza un dreptunghi ncadrat cu linie dubla.



Fig. 1.6. Notatiile diagramei Entitate-Asociere (E-A).
12

O asociere (tip de asociere) dintre doua sau mai multe tipuri de entitati se reprezinta printr- un
romb conectat prin link-uri (linii continue, formate din unul sau mai multe segmente) la tipurile de
entitati asociate. O asociere poate sa aiba sau nu un nume; daca are un nume, acesta poate fi nscris n
rombul respectiv sau n vecinatatea acestuia. Categoria asocierii se noteaza prin nscrierea
multiplicitatii pe fiecare link care conduce la un tip de entitate. Este posibil ca o asociere sa prezinte
ea nsasi atribute, si aceste atribute se reprezinta prin elipse conectate la asocierea respectiva.

Exemplu. n continuare se exemplifica dezvoltarea modelului conceptual de nivel nalt al
unei baze de date a unei institutii si diagrama E-A corespunzatoare, definind cteva tipuri de entitati
si asocierile ntre acestea. Diagrama E-A a acestui mic model de baza de date este prezentata n
figura. 1.7.




Fig. 1.7. Exemplu de diagrama E-A.

Tipul de entitate sectie reprezinta o unitate de organizare a institutiei si este un tip de
entitate puternica (de sine statatoare). Acest tip se caracterizeaza prin mai multe atribute, de
exemplu, un numar al sectiei, numele sectiei si bugetul alocat. Multimea de entitati care grupeaza
toate entitatile de acest tip se poate denumi SECTIE sau SECTII (oricare varianta poate fi folosita) si
este caracterizata prin aceleasi atribute care caracterizeaza tipul entitatii:
SECTIE(Numar,Nume,Buget)
Tipul de entitate angajat reprezinta o persoana angajata n institutie si este de asemenea un
tip de entitate puternica. Acest tip de entitate, ca si multimea de entitati care grupeaza toate entitatile
de acest tip, se poate defini astfel
ANGAJAT(Nume,Prenume,DataNasterii,Adresa,Functie,Salariu)
Tipul de entitate proiect reprezinta o activitate a institutiei, si este de asemenea un tip de
entitate puternica, care poate fi caracterizat prin numele proiectului, data nceperii, termen de
realizare, bugetul proiectului:
13

PROIECT(Nume,DataInceperii,Termen,Buget)
Tipul de entitate dependent reprezinta o persoana care depinde de un angajat al institutiei
(adica se afla n ntretinerea acestuia). Acest tip de entitate este un tip de entitate slaba: nu se va
nregistra o astfel de persoana dect daca ntretinatorul acesteia este angajat n acea institutie. Acest
tip se poate defini astfel:
DEPENDENT(Nume,Prenume,DataNasterii,GradRudenie)
Asocierea SECTIE-ANGAJAT este o asociere 1:N, daca se considera ca o sectie cuprinde
mai multi angajati, iar un angajat apartine unei singure sectii.
Asocierea ANGAJAT-PROIECT este o asociere M:N, daca se considera ca la fiecare proiect
lucreaza mai multi angajati, si fiecare angajat poate lucra la mai multe proiecte.
Asocierea ANGAJAT-DEPENDENT este o asociere de tipul 1:N, deoarece un angajat poate
ntretine mai multe persoane (fii, parinti etc.), iar o persoana dependenta este n ntretinerea unui
singur sustinator.
Raportul de cardinalitate al unei asocieri este stabilit de proiectant astfel nct sa reflecte ct
mai corect modul de organizare a activitatii modelate. De exemplu, asocierea ANGAJATI-
PROIECTE are raportul de cardinalitate M:N daca n institutia respectiva se admite ca un angajat sa
lucreze la mai multe proiecte; daca s-ar impune ca un angajat sa lucreze la un singur proiect, atunci
asocierea respectiva ar avea raportul de cardinalitate N:1. n ambele situatii se admite ca la un proiect
lucreaza mai multi angajati.
Sunt de remarcat cteva caracteristici generale ale modelului E-A:
a) Modul de stabilire a tipurilor de entitati si a asocierilor dintre acestea nu este unic,
deoarece granita dintre entitati si asocieri nu este, n general, una bine precizata. Aceeasi
functionalitate se poate obtine printr-o varietate de diagrame E-A, depinznd de felul n care
proiectantul dezvolta modelul conceptual. O asociere poate fi considerata si ca un tip de entitate. De
exemplu, pentru baza de date a unei facultati (scoli) se definesc tipurile (multimile) de entitati:
STUDENTI(Nume,Prenume,Adresa,...)
DISCIPLINE(Denumire,Credite,...)
ntre aceste multimi de entitati se poate defini asocierea STUDENTI-DISCIPLINE, cu
raportul de cardinalitate M:N. Aceasta asociere reprezinta (n general) studierea unor discipline de
catre studenti, cu atribute ca: Nota (examenului la disciplina respectiva), DataExamen, etc. Dar, la fel
de bine, este posibil sa se defineasca tipul de entitate NOTE, aflat n asociere N:1 cu fiecare din
tipurile de entitati STUDENTI si DISCIPLINE (fig. 1.8).

Fig. 1.8. Diferite moduri de definire a tipurilor de entitati si a asocierilor:
a- asociere M:N ntre multimile de entitati STUDENTI si DISCIPLINE;
b - multimea de entitati EXAMENE este asociata cu raportul de cardinalitate N:1
cu fiecare din multimile de entitati STUDENTI si DISCIPLINE.

b) n modelul E-A, tipul de entitate (si multimea de entitati corespunzatoare) semnifica un
substantiv, n timp ce o asociere semnifica un verb. Binenteles, nu este obligatoriu ca numele dat
unei asocieri sa fie un verb (si, de cele mai multe ori, nici nu este), dar o asociere reprezinta o
interactiune ntre tipurile de entitati (si multimile de entitati corespunzatoare), care poate fi exprimata
printr-un verb. De exemplu, n diagrama E-A din figura 1.7, asocierea SECTIE-ANGAJAT poate fi
exprimata prin verbul cuprinde, asocierea ANGAJATI-DEPENDENTI poate fi exprimata prin
verbul ntretine, asocierea ANGAJATI-PROIECTE poate fi exprimata prin verbul lucreaza etc.
14

c) Modelul E-A nu precizeaza modul cum sunt realizate asocierile ntre multimile de entitati.
Acest aspect depinde de modelul de date specializat utilizat pentru definirea bazei de date. De
exemplu, n modelele ierarhic si retea, asocierile sunt realizate explicit, prin pointeri de la o entitate
la entitatile asociate, n timp ce n modelul relational asocierea se realizeaza prin egalitatea valorilor
unor atribute comune ale entitatilor (chei).

1.9.1.2 Modelul Entitate-Asociere Extins

Modelul Entitate-Asociere Extins (Enhanced Entity-Relationship Model) permite definirea de
subtipuri ale unui tip de entitati, care mostenesc atribute de la tipul de entitate pe care il extind (si
care, n acest context, se numeste supertip) si au n plus atribute specifice semnificatiei lor. Prin
definirea tipurilor si a subtipurilor de entitati se pot crea ierarhii de tipuri de entitati pe mai multe
niveluri.
Modelul E-A prezentat n capitolul precedent este suficient pentru modelarea aplicatiilor de
baze de date traditionale, adica bazele de date utilizate pentru activitati financiare si industriale, n
care se folosesc tipuri de date simple. Odata cu dezvoltarea sistemelor de baze de date, domeniile n
care acestea se folosesc au devenit tot mai numeroase, ca, de exemplu: telecomunicatiile, proiectarea
tehnologica, sistemele de informatii geografice, seviciul Web, etc. Tipurile de entitati definite n
astfel de baze de date sunt mult mai complexe si pentru reprezentarea lor ct mai intuitiva si mai
compacta au fost propuse mai multe concepte noi, care au fost introduse n modelul E-A extins.
Modelul E-A extins se reprezinta printr-o diagrama E-A extinsa. Ierarhiile de tipuri se pot crea prin
specializare sau generalizare.
Specializarea (specialization) este un proces de abstractizare a datelor prin care, pornind de
la un tip de entitate dat, se definesc unul sau mai multe subtipuri, diferentiate ntre ele n functie de
rolul specific pe care l au n modelul de date.
De exemplu, pornind de la tipul de entitate ANGAJAT se definesc prin specializare
subtipurile SECRETARA, TEHNICIAN, INGINER, pentru a diferentia functiile pe care angajatii le
pot avea n ntreprinderea respectiva (fig. 1.9). Litera d din marcajul de specializare a tipurilor
indica o constrngere de disjunctie impusa specializarii, care va fi descrisa mai jos.
Subtipurile de entitati mostenesc atribute ale tipului initial si fiecare dintre ele are atribute
suplimentare, specifice rolului lor. De exemplu, atributele (Nume, Prenume, DataNasterii, Adresa,
Salariu) ale tipului de entitate ANGAJAT sunt mostenite de fiecare din subtipurile acestuia. Atributul
Functie nu este mostenit, deoarece specializarea subtipurilor s-a efectuat dupa acest atribut. Ca
atribute specifice, subtipul SECRETARA are atributul VitezaRedactare, care este o masura a
calificarii, subtipul TEHNICIAN are atributul Calificare, care reprezinta gradul de calificare, iar
subtipul INGINER are atributul Specialitate, care este o precizare a domeniului in care lucreaza
(mecanic, electric, etc.).
Generalizarea (generalization) este procesul de abstractizare invers specializarii, prin care
se creaza un supertip de entitate pornind de la mai multe tipuri de entitati.
Pentru definirea unei generalizari, se identifica atributele comune ale mai multor tipuri de
entitati si aceste atribute vor caracteriza supertipul de entitate, iar atributele care difera de acestea
ramn specifice fiecarui tip.
De exemplu, daca au fost definite tipurile de entitati: AUTOMOBIL (NrInregistrare, Marca,
VitezaMaxima, Pret, NumarPasageri) si CAMION(NrInregistrare, Marca, VitezaMaxima, Pret,
Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL (NrInregistrare, Marca,
VitezaMaxima, Pret). Acest tip va cuprinde toate atributele comune, iar tipurile initiale,
AUTOMOBIL si CAMION, devin subtipuri ale tipului VEHICUL, fiecare continnd atributele
specifice (NumarPasageri pentru tipul AUTOMOBIL si Tonaj pentru tipul CAMION).
Rezultatul obtinut prin generalizare este, ca si n cazul specializarii, o ierarhie de tipuri de
entitati; ceea ce difera este modul n care se definesc nivelurile ierarhiei.
15



Fig.1.9. Diagrama E-A extinsa cu ierarhie de tipuri de entitati.

Mostenirea atributelor. Proprietatea principala a ierarhiilor de tipuri de entitati create prin
specializare sau generalizare este mostenirea atributelor: atributele tipurilor de entitati de nivel
ridicat (supertipuri) sunt mostenite de tipurile de entitati de nivel scazut (subtipuri).
Mostenirea dintre un subtip de entitati si supertipul acestuia se reprezinta n diagrama E-A
extinsa printr-o legatura (link) ntre subtip si supertipul de entitate corespunzator pe care este plasat
un semicerc orientat catre subtip (asa cum se poate vedea n figura 1.9).
Este evidenta asemanarea dintre ierarhiile de tipuri de entitati din modelul E-A extins si
ierarhiile de clase din modelul obiect-orientat, dar modelul E-A extins este un model de date mult
mai general (de nivel inalt), care poate fi transpus n diferite modele de date specializate, inclusiv
modelul obiect-orientat. Aceste transpuneri se fac n functie de suportul oferit de modelul specializat
respectiv pentru reprezentarea entitatilor, asocierilor, mostenirilor, etc.

1.9.2 Modele specializate de date
1.9.2.1 Modelul de date ierarhic

n modelul ierarhic (Hierarchical Model) o baza de date se reprezinta printr-o structura
ierarhica de nregistrari de date (records) conectate prin legaturi (links).
Modelul de date ierarhic a fost primul model folosit pentru dezvoltarea bazelor de date. Cea
mai cunoscuta realizare de SGBD ierarhic este sistemul IMS (Information Management System)
dezvoltat de firma IBM n cadrul programului de cercetari Apollo, n perioada anilor 1960.
O nregistrare de date n modelul ierarhic este o instanta a unui tip de nregistrare (record
type) si consta dintr-o colectie de cmpuri (fields), fiecare cmp continnd valoarea unui atribut. Un
tip de nregistrare corespunde unui tip de entitate, iar o nregistrare corespunde unei entitati din
modelul E-A.
Un tip de legatura n modelul ierarhic este un tip de asociere cu raportul de cardinalitate 1:N
(de tip parinte- fiu) ntre doua tipuri de nregistrari. Tipul de nregistrare din partea cu multiplicitatea
1 a asocierii este numit tip de nregistrare parinte, iar tipul din partea cu multiplicitatea N a asocierii
este numit tip de nregistrare fiu.
Schema conceptuala a unei baze de date n modelul ierarhic se reprezinta printr- un numar
oarecare de scheme ierarhice (fig. 1.12). O schema ierarhica este un arbore directionat, reprezentat pe
16

mai multe niveluri, n care nodurile sunt tipurile de nregistrari, iar arcele sunt tipurile de legaturi.
Fiecare nod (cu exceptia nodului radacina) are o singura legatura catre un nod de pe un nivel superior
(nodul parinte) si fiecare nod (cu exceptia nodurilor frunza) are una sau mai multe legaturi catre
noduri de pe nivelul imediat inferior (noduri fii).
Se poate stabili o corespondenta ntre o schema conceptuala ierarhica si o diagrama E-A:
tipurile de nregistrari corespund tipurilor de entitati, iar tipurile de legaturi corespund tipurilor de
asocieri. (fig. 1.12, a si b).
n modelul ierarhic nu sunt admise dect legaturi de tipul parinte- fiu, care corespund
asocierilor 1:1 si asocierilor 1:N din modelul E-A. Asocierile M:N din modelul E-A nu se pot
reprezenta n mod direct n modelul ierarhic, ci numai prin multiplicarea nregistrarilor de tip fiu,
atunci cnd sunt referite de mai multe nregistrari de tip parinte. Acest lucru conduce la o mare
redundanta a datelor.
Corespunzator schemei ierarhice a unei baze de date se pot reprezenta mai multi arbori de
instantiere a datelor, care sunt, de asemenea, arbori directionati (fig. 1.12, c). Fiecare arbore de
instantiere contine ierarhii pe mai multe niveluri de nregistrari ntre care exista legaturi de tipul
parinte- fiu.


Fig. 1.12. Baza de date ierarhica: a - diagrama E-A;
b - schema conceptuala a bazei de date ierarhice; c - arbori de instantiere a datelor.

Corespunzator schemei ierarhice a unei baze de date se pot reprezenta mai multi arbori de
instantiere a datelor, care sunt, de asemenea, arbori directionati (fig. 1.12, c). Fiecare arbore de
instantiere contine ierarhii pe mai multe niveluri de nregistrari ntre care exista legaturi de tipul
parinte- fiu.
Avantajele modelul ierarhic sunt simplitatea si eficienta de calcul, dar n momentul de fata,
pentru realizarea bazelor de date sunt preferate modele de date mai puternice (modelul relational,
modelul obiect-orientat).

1.9.2.2 Modelul de date retea

Modelul retea (Network Model) foloseste o structura de graf pentru definirea schemei
conceptuale a bazei de date; nodurile grafului sunt tipuri de entitati (nregistrari - records), iar
muchiile grafului reprezinta n mod explicit asocierile (legaturile-links) dintre tipurile de entitati.
17

Aparut dupa modelul ierarhic, modelul retea de reprezentare a bazelor de date a fost
standardizat n 1971, de o comisie DBTG (Database Task Group). Modelul retea a avut mai multe
implementari ca sisteme de gestiune comerciale: IDS II (Honeywell), UNISYS (Burroughs), IDMS
(Computer Associates).
Deosebirea fata de modelul ierarhic consta n aceea ca n modelul retea asocierile M:N se
reprezinta fara duplicarea nregistrarilor, fiecare nregistrare putnd fi referita de mai multe
nregistrari, ceea ce elimina redundanta.
La fel ca si la modelul ierarhic, dezavantajul principal al modelului retea este acela ca fiecare
interogare trebuie sa fie prevazuta nca din faza de proiectare, prin memorarea explicita a legaturilor
ntre tipurile de entitati. n plus, complexitatea reprezentarii datelor n modelul retea este deosebit de
ridicata, iar programatorii trebuie sa o cunoasca pentru a putea realiza aplicatiile necesare.
n momentul de fata modelul de date retea este foarte rar utilizat pentru baze de date de uz
general (care implica operatii de interogare), dar exista unele domenii n care structurarea ca graf a
datelor permite o parcurgere eficienta a acestora. De exemplu, majoritatea bazelor de date grafice
folosite n modelarea scenelor tridimensionale din realitatea virtuala sunt baze de date retea [Ion96a].

1.9.2.3 Modelul de date relational

Modelul relational (Relational Model) se bazeaza pe notiunea de relatie (relation) din
matematica, care corespunde unei multimi de entitati de acelasi tip.
Modelul de date relational a fost propus de cercetatorul E.F. Codd de la compania IBM, care
a publicat n anul 1970 lucrarea "Un model Relational de Date pentru Banci Mari de Date Partajate"
[Codd70]. Alte lucrari ale lui Codd, ca si ale altor cercetatori (C.J. Date, P. Chen, R. Boyce, J.D.
Ullman, R. Fagin, W.W. Armstrong, M. Stonebraker, etc.) au perfectionat modelul de date relational
si au permis dezvoltarea fara precedent a sistemelor de gestiune a bazelor de date, datorita simplitatii
si a fundamentarii matematice a modelului.
Primul Sistem de Gestiune a Bazelor de Date Relationale (SGBDR) a fost prototipul System
R, dezvoltat la compania IBM n anii 1970, dupa care numeroase companii au realizat sisteme de
gestiune relationale (Oracle, Microsoft, Ingres, Sybase, etc.) iar aplicatiile de baze de date relationale
au capatat o amploare deosebita.
Pe lnga avantajul unui model de date precis si simplu, sistemele de baze de date relationale
mai beneficiaza si de un limbaj de programare unanim recunoscut si acceptat, limbajul SQL
(Structured Query Language), pentru care au fost emise mai multe standarde de catre ISO
(International Standardization Office). Majoritatea SGBD- urilor relationale actuale implementeaza
versiunea SQL92 (sau SQL2).

1.9.2.4 Modelul de date obiect-orientat

Modelul obiect (Object Model) este un concept unificator n stiinta calculatoarelor, fiind
aplicabil n programare, n proiectarea hardware-ului, a interfetelor, a bazelor de date, etc.
Sistemele de baze de date obiect- orientate se bazeaza pe limbaje de programare obiect-orientate cu
capacitati de persistenta, n care datele sunt independente de timpul de viata al programelor care le
creeaza, prin memorare pe suport magnetic (disc).
Orict de folositor este modelul de date relational pentru realizarea bazelor de date, exista
unele domenii (n special acele domenii n care se manevreaza tipuri de date complexe), n care
modelul relational s-a dovedit a fi insuficient de expresiv si cu performante de executie reduse.
Domenii ca: proiectarea asistata de calculator, sisteme de informatii geografice, medicina (si altele)
au impulsionat cercetari pentru gasirea unor modele mai performante, dintre care modelul obiect-
orientat si modelul obiect-relational au cunoscut si cunosc n continuare o dezvoltare semnificativa.
18

Caracteristicile importante ale modelului obiect (abstractizarea, mostenirea, ncapsularea,
modularitatea) sunt intens dezbatute si analizate mai ales din perspectiva proiectarii si programarii
obiect-orientate.
Din perspectiva realizarii bazelor de date, o alta proprietate a modelul obiect, persistenta, este
aceea care asigura memorarea transparenta pe suport magnetic a obiectelor care alcatuiesc o baza de
date obiect-orientata.
Pentru dezvoltarea unui sistem de gestiune a bazelor de date obiect- orientate (SGBDOO) se
poate aborda una din urmatoarele strategii:

Extinderea unui limbaj de programare obiect-orientat cu capacitati de administrare a
obiectelor persistente. Sistemul GemStone este un astfel de SGBDOO, dezvoltat prin
extinderea limbajelor C++ si Java.

Extinderea unui limbaj de programare relational cu capacitati de orientare spre obiecte. Un
astfel de limbaj este limbajul ODL (Object Query Language) (sau Object SQL), specificat
prin standardul propus de consortiul Object Database Management Group, din care fac
parte principalii producatori de sisteme de baze de date obiect-orientate. Exista mai multe
astfel de sisteme, cum sunt: Ontos, Versant, O
2
.

Dezvoltarea unui limbaj obiect-orientat pentru baze de date complet nou, care sa asigure
crearea si interogarea obiectelor persistente. Exista si astfel de produse, ca de exemplu
sistemul SIM (Semantic Information Manager).

Dintre avantajele cele mai importante ale sistemelor de baze de date dezvoltate n modelul
obiect se evidentiaza capacitatea acestora de a defini si manevra tipuri de date complexe (clase), care
se pot extinde prin mecanismul de mostenire, ceea ce contribuie la cresterea performantelor n
aplicatiile de baze de date avansate.
Exista, binenteles, si dezavantaje ale sistemelor de baze de date obiect-orientate, care le fac
sa aiba o utilizare limitata, mult mai redusa dect cea a sistemelor de baze de date relationale (sub
5% din piata sistemelor de baze de date). Principalul dezavantaj l constitue complexitatea de
dezvoltare a bazei de date si a aplicatiilor, datorita faptului ca proiectantii si programatorii trebuie sa
prevada n structura obiectelor toate asocierile (legaturile) necesare tuturor interogarilor. Cu ct
interogarile sunt mai complexe, cu att sunt necesare mai multe asocieri ntre obiecte si deci se
complica structura acestora. La acest dezavantaj se adauga si altele, cum ar fi lipsa unui standard de
limbaj de interogare care sa fie unanim (sau ct mai larg) acceptat.

1.9.2.5 Modelul de date obiect-relational

Modelul obiect-relational (Object-Relational Model) reprezinta extinderea modelului
relational cu caracteristici ale modelului obiect, extindere necesara pentru realizarea bazelor de
date care definesc si prelucreaza tipuri de date complexe.
n esenta, modelul obiect-relational pastreaza structurarea datelor n relatii (reprezentate ca
tabele), dar adauga posibilitatea definirii unor noi tipuri de date, pentru domeniile de valori ale
atributelor. Tipurile de date definite de utilizator pot fi extinse prin mecanismul de mostenire si
pentru fiecare tip sau subtip se pot defini metode pe care le pot executa obiectele de acel tip.
n general, dezvoltarea sistemelor de gestiune a bazelor de date obiect-relationale (SGBDOR) se
realizeaza prin extinderea sistemelor relationale, de cele mai multe ori n mod gradat, adaugndu-se
de la o versiune la alta ct mai multe caracteristici posibile ale modelului obiect si pastrnd n
continuare toate caracteristicile modelului relational.
19

O astfel de abordare asigura rularea n continuare a aplicatiilor relationale existente n noile
versiuni de sisteme SGBDOR, ceea ce permite producatorilor sa-si pastreze clientii si domeniile de
utilizare. Mai multi dintre principalii producatori de sisteme de gestiune (Oracle, Informix si IBM)
au extins n acest mod sistemele lor relationale pentru a deveni sisteme obiect-relationale. Este o
tendinta fireasca, dat fiind ca prin aceasta se pastreaza toata experienta si rezultatele obtinute cu
sistemele relationale si se pot dezvolta si aplicatii complexe, obiect-relationale.
Standardele limbajelor de programare pentru sistemele de gestiune obiect-relationale sunt extensii
ale standardului SQL (ca de exemplu, versiunea din anul 1999, denumita SQL3).

1.10 Avantajele si dezavantajele SGBD

Avantaje
- Controlul redundantei datelor; nu se elimina n ntregime redundanta, ci se controleaza
volumul inerent al acesteia n BD.
- Coerenta datelor; datorita eliminarii redundantei, orice reactualizare a unui articol (stocat o
singura data) se face o singura data, eliminndu-se incoerenta. Daca articolul este stocat de
mai multe ori, SGBD garanteaza coerenta tuturor exemplarelor din articolul respectiv.
- Mai multe informatii obtinute de la aceeasi cantitate de date; ca urmare a integrarii datelor
operationale, doua sau mai multe fisiere pot fi integrate, extragndu-se mai multe informatii.
- Partajarea datelor; fisierele sunt detinute de compartimentele organizatiei care le utilizeaza,
dar fiind parte din BD, ele sunt la dispozitia tuturor utilizatorilor interesati.
- Integritatea crescuta a datelor; se refera la validitatea si coerenta datelor stocate. Integritatea
este exprimata prin constrngeri, care reprezinta reguli de coerenta pe care BD nu are voie sa
le ncalce.
- Securitatea crescuta; se refera la protectia BD fata de utilizatorii neautorizati. Fara sisteme de
securitate, integrarea ar face datele foarte vulnerabile. Securitatea se realizeaza prin nume de
utilizatori plus parole. Se poate limita tipul de operatie efectuata.
- Aplicarea standardelor; prin integrare se pot aplica standarde organizationale, nationale sau
internationale, ca de ex. formatul datelor, conventii referitoare la denumire, pt. a facilita
schimburi ntre sisteme.
- Economia de scala; n loc de bugete pentru fiecare compartiment pentru crearea unui sistem
propriu de BD bazat pe fisiere, exista un buget unic combinat, care permite alocarea
fondurilor economisite pentru mbunatatirea sistemului.
- Echilibrul ntre cerintele aflate n conflict; cerintele posibil n conflict ale diferitelor
compartimente referitoare la utilizarea BD sunt gestionate la nivel de DBA, care va lua
deciziile ce se impun si va acorda prioritate aplicatiilor majore.
- mbunatatirea accesibilitatii datelor si capacitatii de raspuns; limbajele de interogare si
generatoare de rapoarte asociate SGBD ofera utilizatorilor posibilitatea unor interogari ad-
hoc, fara a apela la programator.
- Productivitatea crescuta; SGBD furnizeaza standardele necesare aplicatiei, economisind
timpul programatorului.
- Capacitatea de ntretinere mbunatatita, prin independenta de date; ntr-un SGBD descrierile
datelor sunt separate de aplicatii, aplicatiile fiind imune la modificarea descrierii datelor; este
caracteristica de independenta program-date, care usureaza ntretinerea aplicatiilor din BD.
- Concurenta/simultaneitatea mbunatatita; se garanteaza alterarea datelor n situatia cnd
acelasi fisier este utilizat simultan de mai multi utilizatori.
- mbunatatirea serviciilor de salvare de siguranta si refacere. Se minimizeaza pierderile
aparute ca urmare a unor defectiuni. Nu este necesara realizarea zilnica de copii de siguranta.

20

Dezavantaje
- Complexitatea; pt. ca un SGBD sa fie functional, acesta va evolua ntr- un sistem soft extrem
de complex. Functionalitatea trebuie cunoscuta de catre toti cei implicati n BD, de la DA la
utilizatorul final, pentru a o putea exploata. Daca SGBD este gresit nteles, BD proiectata
poate fi gresita, cu toate consecintele acestei situatii.
- Dimensiunea; Fiind un element soft foarte complicat, SGBD ocupa mult spatiu pe disc si
necesita multa memorie pentru a functiona eficient.
- Costul SGBD; variaza n functie de mediu si functionalitate. De la 150 USD pt. un PC cu un
utilizator, la 750.000 USD pt. un sistem mainframe cu sute de utilizatori. Se adauga cheltuieli
periodice anuale de ntretinere.
- Costurile aditionale pentru elemente hardware; pentru a sigura performantele SGBD poate fi
nevoie de achizitionarea unui calculator mai mare, chiar dedicat rularii SGBD, cu disc si
memorie mai mari.
- Costul conversiei; la implementarea unui nou sistem SGBD si/sau a unei noi configuratii
hard, conversia poate costa semnificativ mai mult dect noile elemente hard. Se include
costul instruirii personalului, angajarea de personal specializat. Apare termenul de sistem
mostenit, adica un sistem mai vechi, inferior, de care organizatia se cramponeaza din motive
de costuri de conversie.
- Performanta; SGBD (spre deosebire de cel bazat pe fisiere) este general, creat pentru a
permite diverse aplicatii; astfel unele pot functiona mai putin rapid dect n cazul sistemului
bazat pe fisiere, creat pentru o anume aplicatie.
- Impactul crescut al unei defectiuni. Centralizarea (partajarea) resurselor creste
vulnerabilitatea SGBD. Esecul oricarei componente poate duce la sistarea tuturor operatiilor.


1.11 Complexitatea datelor si a interogarilor

M. Stonebraker a oferit o reprezentare n patru cadrane a universului bazelor de date (fig.
1.13) deosebit de simpla si de interesanta, bazata numai pe complexitatea datelor si a interogarilor.
Propusa n anul 1996, aceasta clasificare nu include modelele prerelationale (modelul ierarhic si
modelul retea), considerate depasite n aceasta faza de dezvoltare a bazelor de date.
Pe abscisa diagramei este reprezentata capacitatea de definire a tipurilor de date complexe, iar
pe ordonata este reprezentata capacitatea de interogare a bazelor de date.
n cadranul din stnga jos sunt acele aplicatii care prelucreaza tipuri de date simple si nu
necesita interogarea datelor. Astfel de tipuri de aplicatii (cum sunt procesoarele de texte Word,
Framemaker) folosesc direct sistemul de fisiere al sistemului de operare pentru memorarea datelor
persistente.

Fig. 1.13. Clasificarea sistemelor de gestiune a bazelor de date.

21

n cadranul din stnga sus sunt sistemele de gestiune a bazelor de date relationale (SGBDR),
care prelucreaza tipuri simple de date, dar permit interogari complexe.
n cadranul din dreapta jos sunt sistemele de gestiune a bazelor de date obiect-orientate
(SGBDOO), care prelucreaza tipuri de date complexe, dar n care rezolvarea interogarilor este destul
de dificila, dat fiind ca pentru fiecare interogare trebuie sa fie prevazute legaturile necesare n
structura obiectelor.
n cadranul din dreapta sus sunt reprezentate sistemele obiect-relationale (SGBDOR), care
permit prelucrarea datelor complexe si rezolvarea interogarilor complexe. Modelul obiect-relational
este, evident, cel mai complet, deoarece admite att tipuri de date definite de utilizator ct si
interogari complexe. n aceeasi lucrare, Stonebraker denumeste sistemele de gestiune a bazelor de
date obiect-relationale ca fiind sisteme de baze de date universale.
n momentul de fata este evidenta tendinta producatorilor de sisteme de gestiune a bazelor de
date de a trece la sisteme obiect-relationale si, n general, aceasta trecere se realizeaza prin adaugarea
treptata a caracteristicilor modelului obiect n sistemele de gestiune relationale. Oferta de sisteme de
gestiune a bazelor de date este deosebit de generoasa, pe o scara extinsa de performante si costuri, de
la sisteme care se pot folosi gratuit (fara licenta sau cu licenta publica), pna la sisteme cu nalte
performante, a caror utilizare necesita plata licentelor respective. Chiar si pentru astfel de sisteme
exista versiuni de test (trial versions) care pot fi obtinute gratuit prin Internet (de la adrese care sunt
indicate n Bibliografie), astfel nct pot fi folosite pentru a ntelege si a executa exemplele propuse
n aceasta lucrare.
Sistemul Oracle este un sistem de gestiune a bazelor de date multi- utilizator puternic, cu
implementari pe toate platformele (Windows, Unix, Linux), care ofera att performante de executie
ridicate, ct si un grad nalt de protectie si securitate a datelor. n toate versiunile, Oracle ofera
implementarea completa a caracteristicilor modelului relational (conform standardului SQL2), iar
ultimele versiuni (Oracle8i, Oracle9i si Oracle 10g) sunt sisteme de gestiune obiect-relationale
distribuite, implementnd extensiile obiect-orientate prevazute n standardul SQL3 si oferind
posibilitatea de dezvoltare a bazelor de date distribuite. Sistemele de gestiune Oracle, ca si diferite
instrumente de dezvoltare a aplicatiilor de baze de date (Oracle Application Server, JDeveloper,
Oracle Forms etc.), se pot obtine de la adresa http://www.oracle.com si termenii licentei permit
utilizarea acestor sisteme n scopuri necomerciale pe o perioada nelimitata; pentru utilizarea n
scopuri comerciale trebuie sa fie platite licentele corespunzatoare
SQL Server este sistemul de gestiune a bazelor de date relationale dezvoltat de firma
Microsoft pentru sistemele de operare Windows. Au existat mai multe versiuni, versiunea actuala
(2007) fiind SQL Server 2005. n toate versiunile sistemul SQL Server suporta complet standardul
SQL2, cu implementarea performanta a trasaturilor avansate de stocare si prelucrare a datelor
(integritate referentiala, subinterogari, triggere, gestiunea tranzactiilor, etc). De la adresa
http://www.microsoft.com/sql se poate obtine gratuit o versiune de test a sistemului SQL Server sau
se poate cumpara o versiune completa. n plus, pachetul de dezvoltare .NET SDK (.NET Software
Development Kit), care se poate obtine gratuit de la adresa http://msdn.microsoft.com/downloads
contine o versiune mai simpla de server de baze de date numit Microsoft SQL Server 2000 Desktop
Engine (MSDE 2000) care poate fi folosita pentru dezvoltarea si executia exemplelor prezentate n
lucrare.
Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de date
relationale pe platforme de calculatoare personale. MS Access dispune de un sistem de control al
bazei de date (database engine) si o interfata grafica pentru interactiunea cu utilizatorul. Aplicatiile
de baze de date n MS Access se pot dezvolta cu multa usurinta datorita generatoarelor de aplicatii
(Wizards) care permit proiectarea vizuala a bazelor de date si a formularelor (forms) pentru
interfetele grafice. MS Access este folosit n special pentru aplicatii personale sau pentru mici afaceri
si licenta acestuia se poate cumpara odata cu licenta produsului Microsoft Office.
22

MySQL este un sistem de gestiune a bazelor de date relationale cu implementari pentru
sistemele de operare Windows, Linux, Unix. La adresa http://www.mysql.com se gaseste ultima
versiune si documentatia sistemului de gestiune a bazelor de date MySQL care se poate utiliza
gratuit (este open source). Acest sistem este compatibil cu standardul SQL2, dar unele prevederi ale
standardului sunt implementate partial. Versiunea actuala 2007 este versiunea 5.0 care ofera vederi,
proceduri stocate, triggere (caracteristici care lipseau in versiunile precedente).

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