Sunteți pe pagina 1din 91

Curs 1 1

BAZE DE DATE
Curs 1 2
1. Introducere
2. Tipologia bazelor de date
3. Modele de organizare a datelor
n baze de date
4. Metode de accesare a datelor
5. Proiectarea bazelor de date
relaionale
6. Proiectarea bazelor de date
orientate obiect
Curs 1 3
1. Introducere
Curs 1 4
Baza de date este un ansamblu de date
structurate, coerente, neredundante, independente de
orice program i accesibile dup mai multe criterii.
Baza de date este o colecie persistent i
coerent din punct de vedere logic de date legate ntre
ele, construit ntr-un scop precis.
Baza de date este o colecie structurat de date
mpreun cu descrierea lor, necesare i suficiente unei
anumite luri de decizii.
Baza de date este un ansamblu de date,
interconectate, mpreun cu descrierea lor, care rs-
punde calitilor de centralizare, coordonare, integrare
i difuzie a informaiilor i care asigur satisfacerea
necesitilor de prelucrare ale utilizatorilor.
Curs 1 5
Baza de date este totalitatea exemplarelor
nregistrrilor, seturilor de nregistrri i zonelor,
organizate printr-o anumit schem.
Cerine care se impun unei baze de date:
s furnizeze n timp util informaiile solicitate (timpul
de rspuns la o interogare);
s asigure costuri minime de prelucrare, ntreinere,
redundan minim;
s aib capacitatea de a satisface necesitile infor-
maionale ale unui numr mare de utilizatori;
s permit adaptarea la cerine noi, rspunsuri la
interogri neprevzute iniial (flexibilitate);
s asigure securitatea datelor prin mecanisme de
protecie mpotriva accesului neautorizat (confiden-
ialitate);
Curs 1 6
s conin faciliti destinate validrii datelor i re-
cuperrii lor n cazul unor deteriorri accidentale
(integritate);
s permit valorificarea eforturilor anterioare i
anticiparea nevoilor viitoare (compatibilitate i
expandabilitate);
s permit, prin ierarhizarea datelor dup criteriul
frecvenei acceselor, reorganizri (eventual dinami-
ce) care sporesc performanele bazei de date.
Avantajele organizrii n baze de date:
1. Independena datelor memorate de aplicaie.
2. Nivel redus de redundan
3. Posibilitatea aplicrii de restricii de securitate a
datelor i a proteciei fa de accesul neautorizat la
date cu caracter confidenial.
Curs 1 7
4. Integritatea datelor
5. Faciliti de utilizare a datelor fr ca utilizatorii s
cunoasc baza de date n ntreaga complexitate.
6. Existena unor limbaje performante (conversaio-
nale) de regsire a datelor.
7. Accesul la informaii se poate face dup o mulime
de criterii de regsire.
8. Accesul la date i chiar gestiunea datelor se pot
realiza din diferite noduri ale reelei de calcu-
latoare, de ctre utilizatori diferii.
Utilizatorii unei baze de date:
1) Utilizatori nespecialiti (conversaionali), care au la
dispoziie o form de comunicare cu baza de date
apropiat de vorbirea curent. Ei nu cunosc
structura i nici modul de lucru efectiv cu baza.
Curs 1 8
2) Utilizatori specialiti, care cunosc strucutura bazei
de date, au cunotine de programare, cunosc
problemele sistemului de operare, care le permit s
foloseasc raional baza de date i s obin
avantaje maxime.
3) Administratorul bazei de date, care este o persoan
sau grup de persoane responsabile cu:
ntreinerea dicionarului datelor;
definirea regulilor de validare (verificare) a datelor
de intrare;
asigurarea securitii bazei;
efectuarea i pstrarea copiilor bazei de date
(pentru verificaea sau refacerea ei n caz de dete-
riorare parial sau total);
Curs 1 9
Nivelele de abstractizare i percepie a datelor n
cadrul unei baze de date:
Curs 1 10
1. Nivelul fizic (intern) este nivelul elementar i
descrie modalitatea efectiv n care datele sunt
scrise (memorate) pe suportul de stocare (hard-
disc, CD, DVD, ori band magnetic). Structura
datelor este descris detaliat, fiind accesibil doar
specialitilor. La acest nivel structura BD se
concretizeaz n schema intern.
2. Nivelul conceptual (global) privete datele prin
prisma semanticii lor, viznd coninutul lor efectiv i
relaiile care le leag de alte date. Obiectivul
acestui nivel l constituie modelarea realitii:
utilizatorii i exprim cerinele administratorului
bazei de date, care este responsabil cu definirea
schemei conceptuale a bazei de date.
Curs 1 11
3. Nivelul logic (extern) descrie modul n care
utilizatorii folosesc baza de date pentru propriile
aplicaii. Se au n vedere cerinele unui utilizator/
grup de utilizatori, deoarece fiecare lucreaz numai
cu o poriune a BD, n funcie de nevoile i atribuiile
sale. La acest nivel, structura BD se prezint sub
forma unor scheme externe, n funcie de nevoile
fiecrui utilizator.
Nivelele de independen a datelor ntr-o baz de
date:
1. Independena fizic asigur posibilitatea modificrii
schemei fizice a datelor, fr ca aceasta s oblige la
modificarea schemei conceptuale, schemei logice i
a programelor de aplicaie.
Curs 1 12
2. Independena logic asigur posibilitatea modificrii
schemei conceptuale a datelor fr ca aceasta s
oblige la modificarea schemei logice i a programelor
de aplicaie.
3. Independena fa de strategiile de acces permite
programului s precizeze data pe care dorete s o
acceseze, dar nu modul cum acceseaz aceast
dat. SGBD va stabili drumul optim de acces la date.
Cel mai rspndit tip de sistem informatic este cel
orientat spre tranzacii.
Tranzacia este un set de instruciuni elementare
de interogare i/sau modificare a BD, ce se execut sau
se anuleaz mpreun.
O tranzacie se consider efectuat cnd toate
operaiile ei au fost executate cu succes.
Curs 1 13
n cazul accesului simultan al mai multor
utilizatori la BD, BD este protejat de interferena
tranzaciilor ce acioneaz simultan asupra sa.
BD este protejat mpotriva deteriorrilor
pariale sau totale, ntmpltoare sau intenionate. Se
realizeaz prin efectuarea i pstrarea unor copii
(backup) ale imaginilor trecute ale BD i prin nre-
gistrarea detaliilor schimbrilor efectuate asupra BD.
Frecvena efecturii copiilor pentru refacerea
sau restaurarea (recovery) BD depinde de frecvena
schimbrilor ei. Se poate copia mai frecvent dect
restul i separat numai acea parte din BD care se
schimb mai des.
BD se poate avaria ntre dou copieri, cnd au
fost executate operaii de modificare prin tranzacii.
Curs 1 14
Pentru a reface efectul tranzaciilor pierdute, se
ine o eviden a acestora ntr-un fiier numit jurnal,
prin memorarea valorilor cmpurilor nainte i dup
modificare (numite imagini anterioare, respectiv,
imagini ulterioare).
BD se poate avaria i pe parcursul execuiei
unei tranzacii, care rmne neterminat, cu datele
n zonele tampon sau n fiiere temporare. Pentru
restaurare, informaia despre derularea fiecrei
tranzacii se memoreaz n acelai jurnal, dar nu n
imagini, ci n punctul de verificare.
Problema securitii copiilor i a jurnalelor se
poate parial rezolva prin efectuarea unor copii n mai
multe exemplare, a cror deteriorare simultan are o
probabilitate mult mai mic.
Curs 1 15
2. Tipologia bazelor de date
Curs 1 16
Bazele de date s-au impus rapid ca soluie
eficace i eficient de gestiune a coleciilor de date
structurate i voluminoase din firme.
Extinderea utilizrii tehnologiilor informaionale
n procese operaionale, informaionale i de decizie a
dus la tipizarea bazelor de date n funcie de rolul lor.
Din perspectiva utilizatorului, BD pot fi:
Baze de date operaionale, ce stocheaz datele cu
privire la sistemele operaionale din ntreprinderi. Se
mai numesc i baze de date de domeniu ntruct
stocheaz date privind tranzaciile dintr-un anumit
domeniu de activitate. Exemple: BD de gestiune a
produciei, BD de gestiune a resurselor umane etc.
Curs 1 17
n aceast categorie sunt incluse i BD suport pentru
sistemele de schimb informatizat de date (eng.
Electronic Data Interchange). BD operaionale consti-
tuie nucleul sistemelor informaionale din ntreprinderi.
Baze de date de informare a executivului, care
stocheaz rezultate ale prelucrrii datelor din bazele
de date operaionale i/sau din bazele de date externe
Ele constuituie suportul sistemelor informatice ale
executivului (eng. Executive Information System)
Baze de date multidimensionale, ce sunt baze de
date integrate, nevolatile i istorizate, organizate
pentru a ajuta n procesul de management. Ele
regrupeaz i integreaz date:
- din surse diferite: interne (BD operaionale pe
domenii de activitate) sau externe (BD on-line, BD ale
Curs 1 18
unor organisme specializate (ex. camera de comer i
industrie).
- din perioade diferite, timpul fiind o dimensiune de
baz n analiza datelor.
- nevolatile, ca o consecin a istorizrii. O intero-
gare efectuat la momente diferite trebuie s duc la
obinerea aceluiai rezultat la momente diferite.
- de detaliu sau agregate. Datele de detaliu
sunt deduse din sistemele de tranzacie prin pro-
cese de extragere i de transformare. Datele agregate
se materializeaz n structuri multidimensionale care
permit utilizatorilor s efectueze intersecii de date.
Baze de date externe, ce pot conine date comerciale
sau date statistice i pot fi accesate on-line liber sau
printr-un anumit tarif.
Curs 1 19
Interdependena datelor din baze de date tip
impune o abordare federativ a bazei de date a unei
firme.
Baza de date a unei firme este conceput ca o
federaie de baze de date legate funcional (cores-
punztor funciunilor) sau procesual (corespunztor
proceselor de conducere pe niveluri ierarhice).
Componenta principal a federaiei o constituie
bazele de date operaionale, pentru c aceasta
reprezint sursa principal de date pentru celelalte
baze de date care, n fapt, conin date rezultate prin
agregarea datelor din bazele de date operaionale.
Tot mai multe baze de date vor funciona n
sisteme federative deschise spre Intranet/Internet.
Curs 1 20
Curs 1 21
Dup modul de accesare bazele de date pot fi:
BD colective, accesate de ctre mai muli utilizatori
(eventual simultan). Majoritatea BD sunt colective.
Sunt organizate, de regul, pe funcii ale ntreprinderii
i utilizate de ctre cei ce-i desfoar activitatea n
compartimentele corespunztoare. Fiecare utilizator
are un anume rol n sistemul funcional din care
decurge i rolul su n utilizarea bazelor de date.
BD individuale, accesate exclusiv de ctre cel care
le gestioneaz. Ele se ntlnesc mai rar n unitile
economice. in mai mult de practica unor cadre de
conducere pentru informaii personale.
Curs 1 22
Dup modul de localizare (stocare) al datelor,
bazele de date pot fi:
BD locale, stocate de regul pe server-ul unei
reele locale de calculatoare i utilizate de pe mai
multe calculatoare Client (posturi de lucru n reeaua
local);
BD distribuite, stocat parial sau total n diferite
puncte ale une reele distribuite de calculatoare
(recomadate ndeosebi pentru domeniul instituiilor
bancare). Gestiunea BD distribuite ridic probleme
specifice referitoare ndeosebi la soluia de stocare a
datelor (prin replicare sau prin fragmentare) i la
interogare a acestora (fcnd abstracie sau innd
cont de localizare).
Curs 1 23
Dup tipul datelor gestionate i specificitatea lor,
bazele de date pot fi:
BD convenionale, ce conin date alfanumerice
clasice;
BD multimedia, ce conin date multimedia (imagini,
sunete etc.);
BD textuale, ce conin documente.
Curs 1 24
3. Modele de organizare a datelor
n baze de date
3.1. Modelul ierarhic
3.2. Modelul reea
3.3. Modelul entitate-asociere
3.4. Modelul relaional
3.5. Modelul orientat-obiect
3.6. Modelul obiect-relaional
Curs 1 25
Un model este un ansamblu de instrumente
conceptuale ce permit descrierea datelor, a relaiilor
dintre ele, a semanticii lor, ca i a restriciilor la care
sunt supuse.
Un model trebuie s ofere conceptele de baz i
notaiile care s permit proiectanilor BD i
utilizatorilor s comunice cum neleg ei realitatea, de
o manier coerent i neambigu.
Un model de date cuprinde trei componente:
partea de structurare, care const dintr-un set de
reguli care arat cum va fi structurat BD;
partea de manipulare, care definete tipurile de
operaii care sunt permise asupra datelor;
Curs 1 26
regulile de integritate, care asigur consistena
datelor din BD.
n practic sunt disponibile mai multe clase de
modele:
1) modele logice bazate pe obiect (modelul entitate-
asociere, modelul funcional, modelul orientat pe
obiecte);
2) modele logice bazate pe nregistrare (modelul
relaional, modelul reea, modelul ierarhic);
3) modele fizice.
Primele dou clase vizeaz modelarea nivelelor
conceptual i extern de abstractizare a datelor, n timp
ce modelele fizice vizeaz modelarea la nivel fizic.
Curs 1 27
3.1. Modelul ierarhic
Din punct de vedere cronologic, modelul
ierarhic este primul utilizat pentru organizarea datelor
n baze de date.
Este fundamentat pe structura arborescent,
care are pe primul nivel rdcina (nod-printe), iar pe
nivelurile urmtoare diferite elemente subordonate
(noduri-fiu).
Nodul-printe poate avea subordonate mai
multe noduri-fiu, n timp ce un nod-fiu nu poate avea
dect un singur printe. Nodul-fiu poate fi la rndul
su printe pentru alte noduri.
Modelul are dezavantaje pentru operaiile de
actualizare. Astfel, adugarea de noi nregistrri (cu
Curs 1 28
excepia celor din colecia de date rdcin) se poate
efectua numai cu specificarea coleciilor de date
superioare, iar tergerea unei nregistrri duce la
eliminarea fizic a tuturor nregistrrilor subordonate.
Modelul mai are o anumit limit: nu se poate
reprezenta un fiu care este subordonat mai multor
prini; aceasta presupune reprezentarea repetat a
acestuia, deci un grad ridicat de redundan a
datelor.
Curs 1 29
Arbore de structur specific modelului ierarhic
Curs 1 30
3.2. Modelul reea
Modelul reea reprezint o dezvoltare a
modelului ierarhic, care elimin redundanele specifice
acestuia, bazndu-se pe structurile reea i pe relaiile
de tip 1-1, 1-n i n-m.
nregistrrile apar n baza de date ca o colecie
de grafuri: mai multe noduri interconectate prin linii de
legtur.
Att modelul ierarhic, ct i cel reea nu permit
realizarea unei independene logice satisfctoare
ntre date i programe, deoarece relaiile dintre date
trebuie referite i n programele de aplicaii.
Curs 1 31
Graf de date specific modelului reea
Curs 1 32
3.3. Modelul entitate-asociere (E-A)
Acest model a fost introdus n 1976 de ctre
cercettorul american Peter Chen, cu obiectivul de a
crea un model care s permit "o viziune unificat,
global asupra datelor".
Modelul E-A (denumit i E-R, dup denumirea
original: Entity-Relationship) are la baz percepia
lumii reale sub forma unei colecii de obiecte, denumite
entiti, unite prin asociaii.
Este un model semantic de date, simplu i
atractiv datorit reprezentrii grafice. Este utilizat n
multe metode de analiz i proiectare (ex. MERISE).
Conceptele de baz utilizate sunt: entitate,
atribut, clas de entiti, asociaie.
Curs 1 33
Entitatea este considerat un obiect concret
sau abstract din "lumea observat" avnd o existen
proprie, care poate fi identificat i descris printr-un
ansamblu de atribute, care l difereniaz de alte
obiecte.
Atributul reprezint o caracteristic/nsuire a
unui obiect, fiind o informaie elementar care este
definit pe un domeniu de valori.
Clasa de entiti reprezint un ansamblu de
entiti de aceeai natur, deci descrise prin aceleai
atribute, fiecare entitate fiind identificat ntr-o
manier unic. Numrul de atribute este stabilit de
ctre proiectant.
Reprezentarea clasei se realizeaz printr-un
nume i printr-un ansamblu de atribute de descriere.
Curs 1 34
Exemplu: Clasa STUDENT se poate defini (n mod
simplificat) prin atributele: Numr matricol, Nume i
prenume, Specializare, An, Grup i se
reprezint:
STUDENT
Numr matricol
Nume i prenume
Specializare
An
Grup
Exist entiti cu existen fizic (mijloace fixe,
produse, angajai, clieni etc.) i entiti conceptuale
(casare, nchiriere, vnzare, pontaj etc.)
Curs 1 35
O asociere (relaie) reunete dou sau mai
multe entiti, printr-o legtur semantic. O asociaie
"leag" ntre ele entitile. Ea primete un nume (de
regul un verb) care o descrie. Ansamblul asociaiilor
de acelai tip formeaz o clas de asociaii.
Structura de ansamblu a unei baze de date
poate fi descris printr-o diagram E-A care conine
simboluri grafice asociate elementelor ce definesc
modelul. n practic sunt utilizate mai multe
formalisme de reprezentare, cele mai cunoscute fiind
CHEN i MERISE.
Formalismul CHEN utilizeaz urmtoarele
simboluri: dreptunghi pentru clasa de entiti; elips
pentru atribut; romb pentru clasa de asociaii.
Curs 1 36
Liniile pun n legtur clasele de entiti cu
atributele lor, ca i entitile cu asociaiile.
Exemplu: Diagrama E-A, n formalismul lui Chen,
pentru o variant simplist a bazei de date despre
facturile primite de la furnizori, referitoare la achiziiile
de la acetia.
Curs 1 37
3.4. Modelul relaional
Modelul relaional a fost propus n 1970, de E.F.
Codd i se fundamenteaz pe teoria matematic a
relaiilor i pe algebra relaional.
Ideea unui model asamblist de date i-a
aparinut lui D. F. Childs, care n 1968 a demonstrat
c orice structur de date poate fi reprezentat sub
form de tabele (unul sau mai multe) n interiorul
crora trebuie s existe i informaie de legtur.
Datele i legturile dintre ele sunt reprezentate
sub form de tabele, alctuite din linii i coloane,
fiecare din acestea reprezentnd un element distinct
al bazei.
Curs 1 38
Exemplu de tabele relaionale
Curs 1 39
3.5. Modelul orientat obiect
n pofida faptului c modelul relaional este cel
mai utilizat la ora actual, el nu permite:
- descrierea structurilor de date complexe (date n
format multimedia, documente electronice, grafice);
- definirea unor tipuri de date-utilizator;
- partajarea/reutilizarea structurilor de date;
- declararea prelucrrilor aferente structurilor de date
(datele sunt descrise separat de prelucrri).
n anii '90 modelul bazat pe obiecte a fost
prezentat drept viitorului de organizare a datelor. Nu
exist nc un model unic, unanim recunoscut i
utilizat, de baz de date obiectual.
Modelul obiectual deriv din limbajele-obiect i
modelele de date semantice.
Curs 1 40
Modelarea orientat-obiect se bazeaz pe
conceptele: obiect, abstractizare, ncapsulare, mote-
nire, polimorfism.
n esen, modelul orientat obiect permite
modelarea direct a realitii prin intermediul
obiectelor definite ca entiti cu identitate proprie i
caracterizate prin stare i comportament.
Orice entitate din lumea real este un obiect, i
reciproc, orice obiect reprezint o entitate din realitate.
Obiectele pot "comunica" ntre ele prin intermediul
mesajelor.
Identitatea unui obiect este proprietatea
acestuia care l distinge de alte obiecte i este de
regul o adres logic invariant (pointer).
Curs 1 41
Spre deosebire de modelul relaional n care
datele sunt identificate prin valori ale cheilor primare
desemnate de utilizator, n modelul orientat obiect,
identificarea obiectelor este asigurat automat de
sistem i este transparent utilizatorului. Dou
obiecte Ol i O2 sunt identice (se noteaz Ol==O2)
dac au acelai identificator, adic egalitatea
obiectelor este de fapt o egalitate de pointeri. n
schimb, dou obiecte O1 i O2 sunt egale (se scrie
Ol=O2) dac au aceleai valori (aadar Ol==O2
implic O1=O2, reciproca fiind fals).
Starea unui obiect este definit de valorile
(realizrile) atributelor sale.
Un atribut este definit printr-un nume i poate
lua valori elementare (numeric, alfanumeric etc.) sau
Curs 1 42
complexe (structuri de valori multiple, referine spre
alte obiecte, tipuri utilizator etc).
Atributele se pot concretiza n locaii de
memorie n care sunt stocate datele aferente.
Exemple:
Furnizorul FZ1: Cod-1010,
Denumire="S.C. Gamma",
Adres="str. Progresului, nr. 23, Piteti";
Factura FACT1: Numr=354363,
Data=20/04/2001
CotaTVA=19%
Furnizor=FZl
Comportamentul unui obiect este definit de
setul de operaii (metode) aplicabile acelui obiect.
Curs 1 43
Operaiile unui obiect constituie de regul,
modaliti de rspuns la mesaje primite din exterior.
O operaie este definit printr-o semntur
compus din denumire, un set opional de parametri
de apel i un set opional de parametri de retur.
Operaiile sunt de regul proceduri sau funcii ce
acioneaz asupra atributelor obiectului respectiv.
Exemplu:
Factura FACT1: ReturneazValoareTVAQ : real
ReturneazValoareFactura(): real
Abstractizarea este procesul prin care obiectele
cu aceleai atribute i cu un comportament comun
sunt grupate n tipuri abstracte de date numite i clase.
Obiectele devin astfel realizri (instanieri) ale claselor.
Curs 1 44
n timp ce obiectele descriu anumite entiti din
lumea real, clasele sunt reprezentri (modele)
abstracte, conceptuale ale acestor entiti.
Exemple: Factura, Furnizor, Persoan
Paralel ntre modelul relaional i cel obiect:
Modelul O.O. Modelul relaional
Clasa Tabel (relaie)
Obiect Tuplu
(nregistrare)
Atribut Cmp
Operaie (metod) -
Curs 1 45
ncapsularea const n capacitatea obiectelor
(claselor) de a conine la un loc att date ct i
operaii, dintre care numai o parte sunt vizibile din
exterior. n acest fel, obiectele/clasele apar ca nite
cutii negre care ascund detaliile de implementare,
oferind n schimb o interfa mai simpl pentru
rezolvarea problemei.

Curs 1 46
Exemplu: Se consider clasa Persoan descris prin
atributele invizibile (private) din exteriorul clasei:
CNP, NutnePrenume, DataNaterii, Sex
i operaiile accesibile din exterior (publice):
Creaz(CNP, NumePren, DataNastere, Sex)
ReturneazCNP(): ntreg
ReturneazNumePrenume() : text
ReturneazDataNasteref): data
ReturneazSex(): text
ReturneazVrsta(AnReferin):intreg
Datele unei anumite persoane Popescu Ion sunt
atribuite numai la crearea instanei (obiectului) res-
pectiv, prin apelarea metodei-constructor (vizibil din
exteriorul obiectului):
Curs 1 47
Creaz (1600423275941, "Popescu Ion",
24-04-1960,"Masculin")
Dup ce un obiect a fost creat, datele aferente
persoanei respective nu mai pot fi modificate, ci
numai citite prin intermediul metodelor de tip
Returneaz.
Utilizatorul va percepe un obiect Persoan
numai prin datele (read-only): cod-numeric-personal,
nume-prenume, data naterii, sex i vrsta. Este
exclus astfel posibilitatea modificrii datelor unei
persoane ulterior crerii sale.
Se asigur deci o securitate a datelor stocate
de un obiect mpotriva modificrilor neautorizate
sau/i accidentale.
Curs 1 48
Motenirea este procesul prin care toate
atributele i metodele publice (vizibile din exterior)
ale unei clase (clasa de baz) sunt preluate automat
de o alt clas nrudit (clasa derivat sau subclasa).
Clasele derivate pot conine i atribute sau metode
specifice.
Motenirea este o tehnic care ncurajeaz
reutilizarea/partajarea datelor. Se pot exprima relaii
ntre clase: clasificare, generalizare, specializare.
Exemplu: Se consider clasa Persoan definit prin
atributele publice (vizibile din afara clasei):
CNP, NumePrenume, DataNeterii, Sex
i metoda public
ReturneazVrsta (AnReferin)
Curs 1 49
Clasa Persoan poate fi derivat n clasele
Student i Angajat de acelai tip cu prima, astfel nct
fiecare student angajat va fi descris prin CNP, nume i
prenume, data naterii, sex i vrsta calculat n
funcie de un anumit an.
Clasa Student poate conine ca atribute
specifice NumrMatricol, AnStudii, precum i prin
metoda proprie MediaGeneral().
Clasa Angajat poate fi descris prin atributele
proprii Marca, DataAngajat, precum i prin metoda
ReturneazVechime().
Curs 1 50
Clasa
PERSOAN
Clasa
SALARIAT
Clasa
STUDENT
Atribute:
CNP
NumePrenume
DataNaterii
Sex
Metode:

ReturneazVrsta()

Superclasa:
PERSOAN
Atribute:
Marca
DataAngajrii

Metode:

ReturneazVechime()

Superclasa:
PERSOAN
Atribute:
NumrMatricol
AnStudii

Metode:

MediaGeneral()

Curs 1 51
Polimorfismul semnific posibilitatea unui
obiect, instan a unei clase, s rspund diferit la
primirea aceluiai mesaj.
Polimorfismul poate fi asigurat prin dou ci:
- redefinirea(rescrierea) metodelor motenite n cla-
sele derivate;
- suprancrarea unei metode n cadrul aceleiai
clase (crearea unor metode cu acelai nume, dar
cu parametrii diferii).
Polimorfismul mrete flexibilitatea modelului
orientat obiect n reprezentarea ct mai sintetic a
realitii.
Exemplu: Fie clasa Furnizor definit prin atributele:
Cod, Denumire, Adresa
Curs 1 52
i metodele asociate:
terge(Cod: Integer);
terge(Denumire: String).
Clasa se va comporta diferit la primirea
mesajului de tergere (polimorfism prin suprancr-
carea metodei terge):
- dac mesajul conine un parametru ntreg (codul
unui furnizor), atunci se va elimina obiectul-furnizor ce
va conine acest cod;
- dac cererea de tergere conine ca parametru un
ir de caractere, atunci va fi eliminat furnizorul cu
denumirea respectiv.
Curs 1 53
Schema unei BDOO se compune din definiii de
clase, legturi ntre aceste clase i restricii de
integritate.
Definiia unei clase conine atribute i operaii
(metode) folosind un SGBDO.
Schema obiect a unei baze de date se poate
prezenta grafic folosind notaiile UML.
Exemplu: Figura definete schema bazei de date
obiect pentru gestiunea proiectelor de cercetare
elaborate ntr-o unitatea de nvmnt superior. Se
consider c un proiect este elaborat de ctre una sau
mai multe persoane: profesor, n sensul de cadru
didactic i/sau student. Un proiect este compus din
una sau mai multe mai multe teme de cercetare.
Curs 1 54
Curs 1 55
3.6. Modelul obiect-relaional
Modelul relaional se bazeaz pe principii bine
definite i are un atu important prin limbajul de
interogare SQL. Marele su dezavantaj este c nu
poate susine obiecte complexe, necesare n noile
generaii de aplicaii, n special multimedia. Pentru a
depi acest handicap, productorii de baze de date
relaionale au introdus un gen de suport pentru
obiecte, prin introducerea de noi tipuri de date.
Modelul orientat-obiect permite definirea i
manipularea de structuri complexe, dar prezint
deficiene la reprezentarea relaiilor i la interogarea
bazelor de date.
Curs 1 56
mbinnd facilitile modelului orientat obiect
(structuri de date complexe, motenire) cu cele ale
modelului relaional (tabele bidimensionale, acces
optimizat i concurent, standardizare etc), modelul
relaional-obiect (v. fig.) pare a fi (deocamdat) soluia
la dilema existent n domeniul bazelor de date:
relaional sau orientat obiect ?
Modelul obiect-relaional constituie o extensie a
modelului relaional. Principala mbuntire adus
modelului relaional o constituie tipurile abstracte de
date (TAD) care permit:
partajarea datelor;
utilizarea structurilor de date complexe;
ncapsularea;
motenirea.
Curs 1 57
Tipurile abstracte de date (TAD) reprezint tipuri
de date definite de utilizator, diferite de tipurile implicite
(numeric, ir de caractere etc), ce pot fi utilizate la
definirea tabelelor.
Deosebirea fundamental dintre un TAD i o
clas const n faptul c n timp ce clasa admite
instanieri directe, un TAD servete numai ca model
(template) la definirea structurii unuia sau mai multor
tabele (partajarea TAD-lui).
Exemplu: TAD-uI
Persoana (CNP, NumePrenume, Adresa)
poate servi drept structur pentru tabelele Angajat i
Student:
Angajat (Pers: Persoana, Salariu: real)
Student (Pers: Persoana, AnStudii)
Curs 1 58
Complexitatea unui TAD rezid n faptul c un
cmp din structura sa poate fi un tip elementar
(numeric, ir de caractere), un alt TAD sau o colecie.
Imbricarea TAD-lor se poate realiza fie direct, fie prin
intermediul pointerilor.
Exemplu: Fie TAD
Persoana (CNP:text, NumePrenume:text,
Adresa:text)
Acest tip poate fi utilizat la definirea TAD-lui
Angajat prin dou variante:
=> Angajat (Pers:Persoana, SalariulTarifar)
n care tipul Angajat conine elementul Pers de tip
Persoana:
Curs 1 59
=> Angajat (Pers:REF Persoana,SalariulTarifar)
n care tipul Angajat conine o referin (pointer) ctre
o Persoan:
Pentru a reprezenta copiii unui angajat se
poate recurge la folosirea unei colecii (set) de tip
Persoana:
Angajat (Pers:REF Persoana,SalariulTarifar,
Copii SET(Persoana) )
Curs 1 60
Tabelele tblPersoan i tblAngajat, create pe
baza celor dou TAD-ri sunt descrise n figura:
TAD-urile pot sa conin att date/cmpuri ct
i metode/operaii implementate prin proceduri sau
funcii utilizator (ncapsulare).
Curs 1 61
Exemplu: TAD-ul Persoana poate fi definit prin:
atributele
CNP, NumePrenume, Adresa
i metoda
Varsta(AnReferin):Integer
n modelul obiect-relaional, motenirea const
n posibilitatea derivrii unui TAD generic n TAD-uri
specializate.
Prin motenire, un TAD derivat va prelua
structura (datele) i metodele TAD-lui de baz.
Totodat, un TAD derivat poate fi descris i prin date
i metode specifice.
Curs 1 62
Exemplu: Fie TAD-ul
Persoana(CNP, NumePrenume, Adresa).
Acest tip generic poate fi derivat n dou subtipuri:
Angajat Under Persoana (Vechime, SalariulTarifar);
Student Under Persoana (AnStudii,Specializare).
Curs 1 63
Schema unei BDOR conine schemele TAD-
urilor, ale tabelelor, relaiile dintre acestea, precum i
restriciile de integritate. Din punct de vedere grafic,
schema BDOR poate fi reprezentat folosind
formalismul UML utilizat pentru BDOO.
Muli productori de baze de date au adoptat o
strategie de extindere gradual a modelului relaional,
care a ncorporat elemente de programare orientat
obiect, dar a pstrat tehnologiile relaionale n definirea
i manipularea datelor (Visual FoxPro).
Ali productori au mers pe ideea de a pstra
modelul de date orientat pe obiect i de a extinde cu
funcii noi limbajul de interogare dup sintaxa
limbajului SQL, pstrnd astfel compatibilitatea cu
programele SQL existente (Sybase).
Curs 1 64
4. Metode de accesare a datelor
Curs 1 65
Modelul fizic al datelor descrie structura sub
care nregistrrile logice se regsesc efectiv pe
suportul tehnic de date sau n memoria intern a
calculatorului.
Fiecare nregistrare logic este scris la o
anumit adres fizic reprezentat prin cilindru, pist
i sector:
Curs 1 66
Coleciile de date nregistrate pe memorii
externe sunt accesate din diverse motive: citirea unor
nregistrri, regsirea unor date, ordonarea nregistr-
rilor dup anumite criterii etc.
Accesarea datelor organizate n colecii de date
se poate realiza prin dou metode:
metoda secvenial;
metoda indexat.
Regsirea unei nregistrri prin metoda
secvenial presupune parcurgerea n secven a
coleciei de date, ncepnd cu prima nregistrare, pn
la nregistrarea cutat (dac exist) sau pn la
ultima nregistrare (dac nregistrarea cutat nu
exist).
Curs 1 67
Avantaje:
complexitate redus;
colecia de date nu se ncarc cu date suplimentare
Dezavantajul major: viteza redus cu care este
efectuat operaia pe colecii mari de date.
Metoda indexat permite regsirea unei nre-
gistrri ntr-un timp mult mai redus dect metoda
precedent.
Metoda presupune utilizarea unui tabel de
indeci pentru fiecare cmp, ce va permite o astfel de
cutare. Tabelele de indeci conin dou atribute:
- realizrile ordonate (cresctor/descresctor) ale
cmpului de indexare;
- adresele fizice relative ale fiecrei realizri.
Curs 1 68
Exemplu: Tabelul index asociat cmpului CodMaterial
va conine urmtoarele date:
1) Se localizeaz realizarea respectiv n tabelul de
index (aceast operaie se poate realiza rapid cu un
algoritm de cutare n mulimi ordonate).
Pentru regsirea unei realizri a cmpului
CodMaterial (cmpul indexat) se parcurg etapele:
Curs 1 69
2) Dac valoarea exist, atunci se memoreaz adresa
fizic relativ corespunztoare i se localizeaz
nregistrarea logic aflat la adresa memorat
anterior.
Aceast metod poate fi folosit numai pentru
suporturi de date direct adresabile (hard-disk, floppy-
disk, CD etc).
Avantaj: operaia de cutare a unei valori se
realizeaz foarte rapid n comparaie cu metoda
secvenial.
Dezavantaje:
- tabelele de indeci suprancarc colecia de date;
- orice actualizare a coleciei de date presupune o
actualizare i a tabelelor de indeci.
Curs 1 70
5. Proiectarea bazelor de date
relaionale
Curs 1 71
Proiectarea modelului relaional al datelor are ca
scop obinerea unor colecii de date ce respect att
cerinele informaionale ale utilizatorului, ct i
restriciile impuse de modelul relaional. n funcie de
complexitatea bazei de date, exist dou metode de
proiectare a modelului relaional:
a) Conceperea modelului relaional pe baza unui
model conceptual semantic (entitate-asociere).
Modelul entitate-asociere permite modelarea realitii
prin intermediul unor concepte abstracte: entiti,
asocieri i atribute. Aceasta este metoda cea mai
utilizat n practic, mai ales n cazul unor baze de
date complexe.
Curs 1 72
b) Obinerea modelului relaional prin procesul de
normalizare, proces ce presupune aplicarea formelor
normale asupra unui set de atribute ce formeaz iniial
un singur tabel. n urma normalizrii va rezulta un set
de tabele normalizate. Aceast metod se poate aplica
numai n cazul unor baze de date de dimensiuni mici.
Oricare din metode se va alege pentru o tem
dat, se pot obine mai multe soluii. Aceasta, deoarece
modelarea este un proces subiectiv, n care realitatea
poate fi perceput diferit de utilizatori diferii sau chiar
de acelai utilizator n perioade diferite.
Curs 1 73
Proiectarea modelului relaional prin normalizare
Proiectarea prin normalizare, este un proces
laborios i riguros ce permite obinerea unui model
relaional pe baza unor atribute (cmpuri) i a
dependenelor dintre acestea. Metoda se bazeaz pe
primele trei forme normale (FN1, FN2, FN3) i
presupune parcurgerea urmtoarelor etape:
1. Inventarierea atributelor. Proiectantul va selecta
atributele din diverse documente utilizate n circuitul
informaional: nomenclatoare (nomenclatorul materia-
lelor, lista furnizorilor etc), documente primare i cen-
tralizatoare (facturi, chitane, situaia aprovizionrilor,
balana stocurilor etc).
Curs 1 74
Exemplu:
Numr factur
Data factur
Cod furnizor
Denumire furnizor
Adresa
2. Specificarea regulilor de gestiune: diversele
restricii/condiii impuse datelor sunt atent studiate
deoarece vor constitui logica dependenelor dintre
atribute i a regulilor de validare.
Exemplu:
- o factur este emis de un singur furnizor;
- codul materialului este unic;
- o factur conine mai multe materiale
- furnizorii pot fi numai persoane juridice etc.
Curs 1 75
Algoritmii de calcul sunt asimilai regulilor de
gestiune.
Exemplu:
Valoare material facturat = Cantitate facturat
Pre facturare
Dobnda = ValoareCredit RataDobnd
SoldFinal = Soldlniial + lntrri - leiri.
3. ntocmirea dicionarului de date: atributele obinute n
prima faz sunt nscrise ntr-un dicionar al datelor cu
respectarea urmtoarelor reguli:
a. Un atribut poate fi nscris o singur dat n dicionar.
b. Sunt eliminate atributele sinonime.
Exemplu:
CodMaterial=Cod material facturat
AdresaAngajat=DomiciliuAngajat
Curs 1 76
c. Dicionarul datelor nu admite atribute derivate/
calculate.
Exemple:
Valoare(Cantitate*Pret), Dobnda, SoldFinal.
Dicionarul datelor obinut n baza listei de
atribute de mai sus poate fi reprezentat ntr-o form
simplificat:
Curs 1 77
4. Stabilirea dependenelor dintre atribute: dependen-
ele sunt descrise fie printr-o matrice (conine ca linii i
coloane toate atributele din dicionar n aceeai ordine)
fie printr-un graf al dependenelor. Sunt vizate
ndeosebi dependenele funcionale. Dependenele
funcionale tranzitive sunt evideniate n mod distinct.
Exemplu:
Curs 1 78
Dependenele funcionale dintre atribute sunt
reprezentate prin valoarea 1, pe linie, iar cele
tranzitive au fost marcate cu 1
T
.
Dependenele dintre atribute pot fi reprezentate
i prin intermediul unui graf (cele funcionale prin
sgei, iar cele tranzitive prin sgei punctate).
Curs 1 79
5. Pentru atributele rmase izolate se vor cuta
grupuri de cmpuri ce pot constitui determinani ai
acestora.
6. Toate atributele (grupuri de atribute) determinante
devine chei candidate. Cheile candidate ce vor
aparine aceluiai tabel sunt caracterizate prin
dependene funcionale reciproce (CodFurnizor<->
DenumireFunizor, CodFurnizor<->Adresa)
7. Se stabilesc cheile primare dintre atributele
candidate.
Exemplu: CodFurnizor, NumrFactur
8. Cu fiecare cheie primar i atributele determinate
direct (netranzitiv) de aceasta se va forma un tabel.
Curs 1 80
Exemplu:
Furnizor (CodFurnizor, DenumireFurnizor,
AdresaFurnizor)
Factur (NumrFactur, Data, CodFurnizor)
9. Se stabilesc cheile externe (atribute comune ale
tabelelor i care sunt chei primare n alte tabele)
Exemplu:
Furnizor (CodFurnizor, DenumireFurnizor,
AdresaFurnizor)
Factur (NumrFactur, Data, CodFurnizor)
Curs 1 81
Curs 1 82
6. Proiectarea bazelor de date
orientate obiect
Curs 1 83
Proiectarea schemei obiect a unei baze de date
se realizeaz n urmtoarele etape:
a) identificarea obiectelor i a claselor;
b) identificarea asocierilor;
c) identificarea atributelor, a restriciilor din interiorul
unei clase i a metodelor specifice fiecrei clase;
d) validarea modelului obiect i eventual revenirea n
etapele anterioare.
Un prim pas n proiectarea bazelor de date
orientate pe obiecte l constituie identificarea tipurilor
de obiecte, respectiv, a claselor de obiecte.
Curs 1 84
Cum se identific clasele de obiecte din speci-
ficaiile de definire a datelor ntocmite de utilizatori ?
Se opteaz pentru analiza speficaiilor utiliza-
torilor i delimitarea substantivelor care se regsesc n
aceste specificaii.
Exemplu: Fie specificaia:
O firm este organizat pe departamente i ine
o eviden strict a aplicaiilor cumprate i instalate.
Cum aplicaia poate fi instalat pe mai multe calcu-
latoare, departamentele in o eviden a numrului de
licene pentru fiecare aplicaie.
La o prim analiz rezult c substantivele
departamente i aplicaii exprim clase de obiecte
gestionate n cadrul firmei.
Curs 1 85
Un departament deine un anumit numr de
licene din fiecare aplicaie. DeineLicene constituie o
clas-asociere ntre clasele Aplicaii i Departamente.
Elementele astfel identificate se pot reprezenta grafic
folosind limbajul universal de modelare UML:
Curs 1 86
Cum asocierea leag instanieri ale claselor este
necesar s se precizeze cardinalitile (ele se citesc n
sensul clas ctre asociere) i opional rolurile jucate
de fiecare clas (n exemplul Utilizate i, respectiv,
Utilizeaz):
Curs 1 87
Pentru a face referiri i la numrul instanelor
legate prin asociere se precizeaz

cardinalitile, adic
numrul minim obligatoriu i maxim autorizat:
0, pentru un minim;
1, pentru un minim i/sau un maxim;
*, pentru a indica un numr ntreg superior lui 1.
Trebuie precizate atributele i metodele proprii
fiecrei clase identificate.
Exemplul considerat este simplu fr atribute
multivaloare (valorile lor reprezint instane ale altor
clase) i fr atribute compuse (care se constituie n
noi clase).
Convenii pentru prezentarea metodelor:
+, pentru public;
#, pentru protejat (vizibil subclaselor)
-, pentru privat.
Curs 1 88
Schema obiect a bazei de date se poate
implementa n una din variantele:
- un SGBD relaional (ex: ACCESS);
- un SGBD obiect-relaional (ex: Oracle 9i);
- un SGBD obiect.
Schema obiect a bazei de date
Curs 1 89
Primele dou variante sunt cele mai utilizate n
practic. Acesta impune conversia schemei n formatul
cerut la implementare.

Curs 1 90
Reguli de conversie din modelul obiect n relaional:
1) O clas este reprezentat printr-o tabel (fiecare
tabel posed, n principiu, o cheie primar);
2) O asociere cu cardinalitile x..1 - x..n se reprezint
n modelul relaional prin includerea n tabela
corespunztoare clasei cu cardinalitatea x..1 a cheii
primare din clasa corespondent.
3) O clas-asociere este reprezentat printr-o tabel
care are o cheie primar compus din cheile primare
ale claselor asociate (ex. CodAplicatie i CodDepar-
tament) i eventual atribute proprii (ex. NrLicene);
4) O specializare a clasei de obiecte CO n mai multe
sub-clase SCO
1
, SCO
2
,.. SCO
n
se poate traduce prin
repetarea cheii din tabela CO n tabelele corespun-
ztoare sub-claselor SCO
1
, SCO
2
, .. SCO
n
.
Curs 1 91
Exemplu: Elaborarea modelului obiect al bazei de
date privind contabilitatea financiar.
Modelul trebuie s formalizeze majoritatea
datelor cu care opereaz contabilitatea i s permit
furnizarea principalelor situaii i rapoarte contabile.
Prezentarea grafic a modelului obiect folosind
UML este ilustrat n figura urmtoare: