Sunteți pe pagina 1din 93

Sisteme Informatice

de Gestiune
Curs 1

BAZE DE DATE

© Conf. dr. ing. mat. Ovidiu Blăjină

SIG-Curs 1 Baze de date 1


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
relaţionale
6. Proiectarea bazelor de date
orientate obiect

SIG-Curs 1 Baze de date 2


1. Introducere

SIG-Curs 1 Baze de date 3


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 colecţie persistentă şi
coerentă din punct de vedere logic de date legate între
ele, construită într-un scop precis.
Baza de date este o colecţie structurată de date
împreună cu descrierea lor, necesare şi suficiente unei
anumite luări de decizii.
Baza de date este un ansamblu de date,
interconectate, împreună cu descrierea lor, care răs-
punde calităţilor de centralizare, coordonare, integrare
şi difuzie a informaţiilor şi care asigură satisfacerea
necesităţilor de prelucrare ale utilizatorilor.
SIG-Curs 1 Baze de date 4
Baza de date este totalitatea exemplarelor
înregistrărilor, seturilor de înregistrări şi zonelor,
organizate printr-o anumită schemă.
Cerinţe care se impun unei baze de date:
¾ să furnizeze în timp util informaţiile solicitate (timpul
de răspuns la o interogare);
¾ să asigure costuri minime de prelucrare, întreţinere,
redundanţă minimă;
¾ să aibă capacitatea de a satisface necesităţile infor-
maţionale ale unui număr mare de utilizatori;
¾ să permită adaptarea la cerinţe noi, răspunsuri la
interogări neprevăzute iniţial (flexibilitate);
¾ să asigure securitatea datelor prin mecanisme de
protecţie împotriva accesului neautorizat (confiden-
ţialitate);
SIG-Curs 1 Baze de date 5
¾ să conţină facilităţi destinate validării datelor şi re-
cuperării lor în cazul unor deteriorări accidentale
(integritate);
¾ să permită valorificarea eforturilor anterioare şi
anticiparea nevoilor viitoare (compatibilitate şi
expandabilitate);
¾ să permită, prin ierarhizarea datelor după criteriul
frecvenţei acceselor, reorganizări (eventual dinami-
ce) care sporesc performanţele bazei de date.
Avantajele organizării în baze de date:
1. Independenţa datelor memorate de aplicaţie.
2. Nivel redus de redundanţă
3. Posibilitatea aplicării de restricţii de securitate a
datelor şi a protecţiei faţă de accesul neautorizat la
date cu caracter confidenţial.
SIG-Curs 1 Baze de date 6
4. Integritatea datelor
5. Facilităţi de utilizare a datelor fără ca utilizatorii să
cunoască baza de date în întreaga complexitate.
6. Existenţa unor limbaje performante (conversaţio-
nale) de regăsire a datelor.
7. Accesul la informaţii se poate face după o mulţime
de criterii de regăsire.
8. Accesul la date şi chiar gestiunea datelor se pot
realiza din diferite noduri ale reţelei de calcu-
latoare, de către utilizatori diferiţi.
Utilizatorii unei baze de date:
1) Utilizatori nespecialişti (conversaţionali), care au la
dispoziţie o formă de comunicare cu baza de date
apropiată de vorbirea curentă. Ei nu cunosc
structura şi nici modul de lucru efectiv cu baza.
SIG-Curs 1 Baze de date 7
2) Utilizatori specialişti, care cunosc strucutura bazei
de date, au cunoştinţe de programare, cunosc
problemele sistemului de operare, care le permit să
folosească raţional baza de date şi să obţină
avantaje maxime.
3) Administratorul bazei de date, care este o persoană
sau grup de persoane responsabile cu:
9 întreţinerea dicţionarului datelor;
9 definirea regulilor de validare (verificare) a datelor
de intrare;
9 asigurarea securităţii bazei;
9 efectuarea şi păstrarea copiilor bazei de date
(pentru verificaea sau refacerea ei în caz de dete-
riorare parţială sau totală);

SIG-Curs 1 Baze de date 8


Nivelele de abstractizare şi percepţie a datelor în
cadrul unei baze de date:

Fig.1
SIG-Curs 1 Baze de date 9
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
specialiştilor. La acest nivel structura BD se
concretizează în schema internă.
2. Nivelul conceptual (global) priveşte datele prin
prisma semanticii lor, vizând conţinutul lor efectiv şi
relaţiile care le leagă de alte date. Obiectivul
acestui nivel îl constituie modelarea realităţii:
utilizatorii îşi exprimă cerinţele administratorului
bazei de date, care este responsabil cu definirea
schemei conceptuale a bazei de date.
SIG-Curs 1 Baze de date 10
3. Nivelul logic (extern) descrie modul în care
utilizatorii folosesc baza de date pentru propriile
aplicaţii. Se au în vedere cerinţele unui utilizator/
grup de utilizatori, deoarece fiecare lucrează numai
cu o porţiune a BD, în funcţie de nevoile şi atribuţiile
sale. La acest nivel, structura BD se prezintă sub
forma unor scheme externe, în funcţie de nevoile
fiecărui utilizator.
Nivelele de independenţă a datelor într-o bază de
date:
1. Independenţa fizică asigură posibilitatea modificării
schemei fizice a datelor, fără ca aceasta să oblige la
modificarea schemei conceptuale, schemei logice şi
a programelor de aplicaţie.
SIG-Curs 1 Baze de date 11
2. Independenţa logică asigură posibilitatea modificării
schemei conceptuale a datelor fără ca aceasta să
oblige la modificarea schemei logice şi a programelor
de aplicaţie.
3. Independenţa faţă de strategiile de acces permite
programului să precizeze data pe care doreşte să o
acceseze, dar nu modul cum accesează această
dată. SGBD va stabili drumul optim de acces la date.
Cel mai răspândit tip de sistem informatic este cel
orientat spre tranzacţii.
Tranzacţia este un set de instrucţiuni elementare
de interogare şi/sau modificare a BD, ce se execută sau
se anulează împreună.
O tranzacţie se consideră efectuată când toate
operaţiile ei au fost executate cu succes.
SIG-Curs 1 Baze de date 12
În cazul accesului simultan al mai multor
utilizatori la BD, BD este protejată de interferenţa
tranzacţiilor ce acţionează simultan asupra sa.
BD este protejată împotriva deteriorărilor
parţiale sau totale, întâmplătoare sau intenţionate. Se
realizează prin efectuarea şi păstrarea unor copii
(backup) ale imaginilor trecute ale BD şi prin înre-
gistrarea detaliilor schimbărilor efectuate asupra BD.
Frecvenţa efectuării copiilor pentru refacerea
sau restaurarea (recovery) BD depinde de frecvenţa
schimbărilor ei. Se poate copia mai frecvent decât
restul şi separat numai acea parte din BD care se
schimbă mai des.
BD se poate avaria între două copieri, când au
fost executate operaţii de modificare prin tranzacţii.
SIG-Curs 1 Baze de date 13
Pentru a reface efectul tranzacţiilor pierdute, se
ţine o evidenţă a acestora într-un fişier numit jurnal,
prin memorarea valorilor câmpurilor înainte şi după
modificare (numite imagini anterioare, respectiv,
imagini ulterioare).
BD se poate avaria şi pe parcursul execuţiei
unei tranzacţii, care rămâne neterminată, cu datele
în zonele tampon sau în fişiere temporare. Pentru
restaurare, informaţia despre derularea fiecărei
tranzacţii se memorează în acelaşi jurnal, dar nu în
imagini, ci în punctul de verificare.
Problema securităţii copiilor şi a jurnalelor se
poate parţial rezolva prin efectuarea unor copii în mai
multe exemplare, a căror deteriorare simultană are o
probabilitate mult mai mică.
SIG-Curs 1 Baze de date 14
2. Tipologia bazelor de date

SIG-Curs 1 Baze de date 15


Bazele de date s-au impus rapid ca soluţie
eficace şi eficientă de gestiune a colecţiilor de date
structurate şi voluminoase din firme.
Extinderea utilizării tehnologiilor informaţionale
în procese operaţionale, informaţionale şi de decizie a
dus la tipizarea bazelor de date în funcţie de rolul lor.
Din perspectiva utilizatorului, BD pot fi:
• Baze de date operaţionale, ce stochează datele cu
privire la sistemele operaţionale din întreprinderi. Se
mai numesc şi baze de date de domeniu întrucât
stochează date privind tranzacţiile dintr-un anumit
domeniu de activitate. Exemple: BD de gestiune a
producţiei, BD de gestiune a resurselor umane etc.

SIG-Curs 1 Baze de date 16


În această categorie sunt incluse şi BD suport
pentru sistemele de schimb informatizat de date
(Electronic Data Interchange). BD operaţionale consti-
tuie nucleul sistemelor informaţionale.
• Baze de date de informare a executivului, care
stochează rezultate ale prelucrării datelor din bazele
de date operaţionale şi/sau din bazele de date externe
Ele constuituie suportul sistemelor informatice ale
executivului (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 operaţionale pe
domenii de activitate) sau externe (BD on-line, BD ale
SIG-Curs 1 Baze de date 17
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 istorizării. O intero-
gare efectuată la momente diferite trebuie să ducă la
obţinerea aceluiaşi rezultat la momente diferite.
- de detaliu sau agregate. Datele de detaliu
sunt deduse din sistemele de tranzacţie prin pro-
cese de extragere şi de transformare. Datele agregate
se materializează în structuri multidimensionale care
permit utilizatorilor să efectueze intersecţii de date.
• Baze de date externe, ce pot conţine date comerciale
sau date statistice şi pot fi accesate on-line liber sau
printr-un anumit tarif.
SIG-Curs 1 Baze de date 18
Interdependenţa datelor din baze de date tip
impune o abordare federativă a bazei de date a unei
firme (fig.2).
Baza de date a unei firme este concepută ca o
federaţie de baze de date legate funcţional (cores-
punzător funcţiunilor) sau procesual (corespunzător
proceselor de conducere pe niveluri ierarhice).
Componenta principală a federaţiei o constituie
bazele de date operaţionale, pentru că aceasta
reprezintă sursa principală de date pentru celelalte
baze de date care, în fapt, conţin date rezultate prin
agregarea datelor din bazele de date operaţionale.
Tot mai multe baze de date vor funcţiona în
sisteme federative deschise spre Intranet/Internet.
SIG-Curs 1 Baze de date 19
Fig.2

SIG-Curs 1 Baze de date 20


După modul de accesare bazele de date pot fi:
• BD colective, accesate de către mai mulţi utilizatori
(eventual simultan). Majoritatea BD sunt colective.
Sunt organizate, de regulă, pe funcţii ale întreprinderii
şi utilizate de către cei ce-şi desfăşoară activitatea în
compartimentele corespunzătoare. Fiecare utilizator
are un anume rol în sistemul funcţional din care
decurge şi rolul său în utilizarea bazelor de date.
• BD individuale, accesate exclusiv de către cel care
le gestionează. Ele se întâlnesc mai rar în unităţile
economice. Ţin mai mult de practica unor cadre de
conducere pentru informaţii personale.

SIG-Curs 1 Baze de date 21


După modul de localizare (stocare) al datelor,
bazele de date pot fi:
• BD locale, stocate de regulă pe server-ul unei
reţele locale de calculatoare şi utilizate de pe mai
multe calculatoare Client (posturi de lucru în reţeaua
locală);
• BD distribuite, stocat parţial sau total în diferite
puncte ale une reţele distribuite de calculatoare
(recomadate îndeosebi pentru domeniul instituţiilor
bancare). Gestiunea BD distribuite ridică probleme
specifice referitoare îndeosebi la soluţia de stocare a
datelor (prin replicare sau prin fragmentare) şi la
interogare a acestora (făcând abstracţie sau ţinând
cont de localizare).
SIG-Curs 1 Baze de date 22
După tipul datelor gestionate şi specificitatea lor,
bazele de date pot fi:
• BD convenţionale, ce conţin date alfanumerice
clasice;
• BD multimedia, ce conţin date multimedia (imagini,
sunete etc.);
• BD textuale, ce conţin documente.

SIG-Curs 1 Baze de date 23


3. Modele de organizare a datelor
în baze de date
3.1. Modelul ierarhic
3.2. Modelul reţea
3.3. Modelul entitate-asociere
3.4. Modelul relaţional
3.5. Modelul orientat-obiect
3.6. Modelul obiect-relaţional

SIG-Curs 1 Baze de date 24


Un model este un ansamblu de instrumente
conceptuale ce permit descrierea datelor, a relaţiilor
dintre ele, a semanticii lor, ca şi a restricţiilor la care
sunt supuse.
Un model trebuie să ofere conceptele de bază şi
notaţiile care să permită proiectanţilor BD şi
utilizatorilor să comunice cum înţeleg 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 defineşte tipurile de
operaţii care sunt permise asupra datelor;

SIG-Curs 1 Baze de date 25


• regulile de integritate, care asigură consistenţa
datelor din BD.
În practică sunt disponibile mai multe clase de
modele:
1) modele logice bazate pe obiect (modelul entitate-
asociere, modelul funcţional, modelul orientat pe
obiecte);
2) modele logice bazate pe înregistrare (modelul
relaţional, modelul reţea, 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.

SIG-Curs 1 Baze de date 26


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 rădăcina (nod-părinte), iar pe
nivelurile următoare diferite elemente subordonate
(noduri-fiu).
Nodul-părinte poate avea subordonate mai
multe noduri-fiu, în timp ce un nod-fiu nu poate avea
decât un singur părinte. Nodul-fiu poate fi la rândul
său părinte pentru alte noduri.
Modelul are dezavantaje pentru operaţiile de
actualizare. Astfel, adăugarea de noi înregistrări (cu
SIG-Curs 1 Baze de date 27
excepţia celor din colecţia de date rădăcină) se poate
efectua numai cu specificarea colecţiilor de date
superioare, iar ştergerea unei înregistrări duce la
eliminarea fizică a tuturor înregistrărilor subordonate.
Modelul mai are o anumită limită: nu se poate
reprezenta un fiu care este subordonat mai multor
părinţi; aceasta presupune reprezentarea repetată a
acestuia, deci un grad ridicat de redundanţă a
datelor.

SIG-Curs 1 Baze de date 28


Fig.3. Arbore de structură specific modelului ierarhic

SIG-Curs 1 Baze de date 29


3.2. Modelul reţea
Modelul reţea reprezintă o dezvoltare a
modelului ierarhic, care elimină redundanţele specifice
acestuia, bazându-se pe structurile reţea şi pe relaţiile
de tip 1-1, 1-n şi n-m.
Înregistrările apar în baza de date ca o colecţie
de grafuri: mai multe noduri interconectate prin linii de
legătură.
Atât modelul ierarhic, cât şi cel reţea nu permit
realizarea unei independenţe logice satisfăcătoare
între date şi programe, deoarece relaţiile dintre date
trebuie referite şi în programele de aplicaţii.

SIG-Curs 1 Baze de date 30


Fig.4. Graf de date specific modelului reţea

SIG-Curs 1 Baze de date 31


3.3. Modelul entitate-asociere (E-A)
Acest model a fost introdus în 1976 de către
cercetătorul 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ă percepţia
lumii reale sub forma unei colecţii de obiecte, denumite
entităţi, unite prin asociaţii.
Este un model semantic de date, simplu şi
atractiv datorită reprezentării grafice. Este utilizat în
multe metode de analiză şi proiectare (ex. MERISE).
Conceptele de bază utilizate sunt: entitate,
atribut, clasă de entităţi, asociaţie.
SIG-Curs 1 Baze de date 32
Entitatea este considerată un obiect concret
sau abstract din "lumea observată" având o existenţă
proprie, care poate fi identificat şi descris printr-un
ansamblu de atribute, care îl diferenţiază de alte
obiecte.
Atributul reprezintă o caracteristică/însuşire a
unui obiect, fiind o informaţie elementară care este
definită pe un domeniu de valori.
Clasa de entităţi reprezintă un ansamblu de
entităţi de aceeaşi natură, deci descrise prin aceleaşi
atribute, fiecare entitate fiind identificată într-o
manieră unică. Numărul de atribute este stabilit de
către proiectant.
Reprezentarea clasei se realizează printr-un
nume şi printr-un ansamblu de atribute de descriere.
SIG-Curs 1 Baze de date 33
Exemplu: Clasa STUDENT se poate defini (în mod
simplificat) prin atributele: Număr matricol, Nume şi
prenume, Specializare, An, Grupă şi se reprezintă:

STUDENT
Număr matricol
Nume şi prenume
Specializare
An
Grupă

Există entităţi cu existenţă fizică (mijloace fixe,


produse, angajaţi, clienţi etc.) şi entităţi conceptuale
(casare, închiriere, vânzare, pontaj etc.)
SIG-Curs 1 Baze de date 34
O asociere (relaţie) reuneşte două sau mai
multe entităţi, printr-o legătură semantică. O asociaţie
"leagă" între ele entităţile. Ea primeşte un nume (de
regulă un verb) care o descrie. Ansamblul asociaţiilor
de acelaşi tip formează o clasă de asociaţii.
Structura de ansamblu a unei baze de date
poate fi descrisă printr-o diagramă E-A care conţine
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ă următoarele
simboluri: dreptunghi pentru clasa de entităţi; elipsă
pentru atribut; romb pentru clasa de asociaţii.
SIG-Curs 1 Baze de date 35
Liniile pun în legătură clasele de entităţi cu
atributele lor, ca şi entităţile cu asociaţiile.
Exemplu: Diagrama E-A, în formalismul lui Chen,
pentru o variantă simplistă a bazei de date despre
facturile primite de la furnizori, referitoare la achiziţiile
de la aceştia.

Fig.5

SIG-Curs 1 Baze de date 36


3.4. Modelul relaţional
Modelul relaţional a fost propus în 1970, de
E.F. Codd şi se fundamentează pe teoria matematică
a relaţiilor şi pe algebra relaţională.
Ideea unui model asamblist de date i-a
aparţinut 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
cărora trebuie să existe şi informaţie de legătură.
Datele şi legăturile dintre ele sunt reprezentate
sub formă de tabele, alcătuite din linii şi coloane,
fiecare din acestea reprezentând un element distinct
al bazei.

SIG-Curs 1 Baze de date 37


Fig.6. Exemplu de tabele relaţionale

SIG-Curs 1 Baze de date 38


3.5. Modelul orientat obiect
În pofida faptului că modelul relaţional 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 prelucrărilor aferente structurilor de date
(datele sunt descrise separat de prelucrări).
Î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.
SIG-Curs 1 Baze de date 39
Modelarea orientată-obiect se bazează pe
conceptele: obiect, abstractizare, încapsulare, moşte-
nire, polimorfism.
În esenţă, modelul orientat obiect permite
modelarea directă a realităţii prin intermediul
obiectelor definite ca entităţi 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).
SIG-Curs 1 Baze de date 40
Spre deosebire de modelul relaţional î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 acelaşi 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 aceleaşi valori (aşadar Ol==O2
implică O1=O2, reciproca fiind falsă).
Starea unui obiect este definită de valorile
(realizările) atributelor sale.
Un atribut este definit printr-un nume şi poate
lua valori elementare (numeric, alfanumeric etc.) sau
SIG-Curs 1 Baze de date 41
complexe (structuri de valori multiple, referinţe spre
alte obiecte, tipuri utilizator etc).
Atributele se pot concretiza în locaţii de
memorie în care sunt stocate datele aferente.
Exemple:
Furnizorul FZ1: Cod-1010,
Denumire="S.C. Gamma",
Adresă="str. Progresului, nr. 23, Piteşti";
Factura FACT1: Număr=354363,
Data=20/04/2001
CotaTVA=19%
Furnizor=FZl
Comportamentul unui obiect este definit de
setul de operaţii (metode) aplicabile acelui obiect.
SIG-Curs 1 Baze de date 42
Operaţiile unui obiect constituie de regulă,
modalităţi de răspuns la mesaje primite din exterior.
O operaţie este definită printr-o semnătură
compusă din denumire, un set opţional de parametri
de apel şi un set opţional de parametri de retur.
Operaţiile sunt de regulă proceduri sau funcţii ce
acţionează asupra atributelor obiectului respectiv.
Exemplu:
Factura FACT1: ReturneazăValoareTVAQ : real
ReturneazăValoareFactura(): real
Abstractizarea este procesul prin care obiectele
cu aceleaşi atribute şi cu un comportament comun
sunt grupate în tipuri abstracte de date numite şi clase.
Obiectele devin astfel realizări (instanţieri) ale claselor.
SIG-Curs 1 Baze de date 43
În timp ce obiectele descriu anumite entităţi din
lumea reală, clasele sunt reprezentări (modele)
abstracte, conceptuale ale acestor entităţi.
Exemple: Factura, Furnizor, Persoană
Paralelă între modelul relaţional şi cel obiect:
Modelul O.O. Modelul relaţional
Clasa Tabel (relaţie)
Obiect Tuplu
(înregistrare)
Atribut Câmp
Operaţie -
(metodă)
SIG-Curs 1 Baze de date 44
Încapsularea constă în capacitatea obiectelor
(claselor) de a conţine la un loc atât date cât şi
operaţii, dintre care numai o parte sunt vizibile din
exterior. În acest fel, obiectele/clasele apar ca nişte
cutii negre care ascund detaliile de implementare,
oferind în schimb o interfaţă mai simplă pentru
rezolvarea problemei (v. fig.7).

SIG-Curs 1 Baze de date 45


Exemplu: Se consideră clasa Persoană descrisă prin
atributele invizibile (private) din exteriorul clasei:
CNP, NutnePrenume, DataNaşterii, Sex
şi operaţiile accesibile din exterior (publice):
Crează(CNP, NumePren, DataNastere, Sex)
ReturneazăCNP(): întreg
ReturneazăNumePrenume() : text
ReturneazăDataNasteref): data
ReturneazăSex(): text
ReturneazăVârsta(AnReferinţă):intreg
Datele unei anumite persoane Popescu Ion sunt
atribuite numai la crearea instanţei (obiectului) res-
pectiv, prin apelarea metodei-constructor (vizibilă din
exteriorul obiectului):
SIG-Curs 1 Baze de date 46
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 naşterii, sex şi vârsta. Este
exclusă astfel posibilitatea modificării datelor unei
persoane ulterior creării sale.
Se asigură deci o securitate a datelor stocate
de un obiect împotriva modificărilor neautorizate
sau/şi accidentale.
SIG-Curs 1 Baze de date 47
Moştenirea 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 conţine şi atribute sau metode
specifice.
Moştenirea este o tehnică care încurajează
reutilizarea/partajarea datelor. Se pot exprima relaţii
între clase: clasificare, generalizare, specializare.
Exemplu: Se consideră clasa Persoană definită prin
atributele publice (vizibile din afara clasei):
CNP, NumePrenume, DataNeşterii, Sex
şi metoda publică
ReturneazăVârsta (AnReferinţă)
SIG-Curs 1 Baze de date 48
Clasa Persoană poate fi derivată în clasele
Student şi Angajat de acelaşi tip cu prima, astfel încât
fiecare student angajat va fi descris prin CNP, nume şi
prenume, data naşterii, sex şi vârsta calculată în
funcţie de un anumit an.
Clasa Student poate conţine ca atribute
specifice NumărMatricol, AnStudii, precum şi prin
metoda proprie MediaGenerală().
Clasa Angajat poate fi descrisă prin atributele
proprii Marca, DataAngajat, precum şi prin metoda
ReturneazăVechime().

SIG-Curs 1 Baze de date 49


Clasa Clasa Clasa
PERSOANĂ SALARIAT STUDENT
Atribute: Superclasa: Superclasa:
CNP PERSOANĂ PERSOANĂ
NumePrenume Atribute: Atribute:
DataNaşterii Marca NumărMatricol
Sex DataAngajării AnStudii
Metode: … …
Metode: Metode:
ReturneazăVârsta() MediaGenerală()
… ReturneazăVechime() …

SIG-Curs 1 Baze de date 50


Polimorfismul semnifică posibilitatea unui
obiect, instanţă a unei clase, să răspundă diferit la
primirea aceluiaşi mesaj.
Polimorfismul poate fi asigurat prin două căi:
- redefinirea(rescrierea) metodelor moştenite în cla-
sele derivate;
- supraîncărarea unei metode în cadrul aceleiaşi
clase (crearea unor metode cu acelaşi nume, dar
cu parametrii diferiţi).
Polimorfismul măreşte flexibilitatea modelului
orientat obiect în reprezentarea cât mai sintetică a
realităţii.
Exemplu: Fie clasa Furnizor definită prin atributele:
Cod, Denumire, Adresa
SIG-Curs 1 Baze de date 51
şi metodele asociate:
Şterge(Cod: Integer);
Şterge(Denumire: String).
Clasa se va comporta diferit la primirea
mesajului de ştergere (polimorfism prin supraîncăr-
carea metodei Şterge):
- dacă mesajul conţine un parametru întreg (codul
unui furnizor), atunci se va elimina obiectul-furnizor ce
va conţine acest cod;
- dacă cererea de ştergere conţine ca parametru un
şir de caractere, atunci va fi eliminat furnizorul cu
denumirea respectivă.

SIG-Curs 1 Baze de date 52


Schema unei BDOO se compune din definiţii de
clase, legături între aceste clase şi restricţii de
integritate.
Definiţia unei clase conţine atribute şi operaţii
(metode) folosind un SGBDO.
Schema obiect a unei baze de date se poate
prezenta grafic folosind notaţiile UML.
Exemplu: Fig.8 defineşte schema bazei de date obiect
pentru gestiunea proiectelor de cercetare elaborate
într-o unitatea de învăţământ superior. Se consideră
că un proiect este elaborat de către 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.
SIG-Curs 1 Baze de date 53
Fig.8

SIG-Curs 1 Baze de date 54


3.6. Modelul obiect-relaţional
Modelul relaţional se bazează pe principii bine
definite şi are un atu important prin limbajul de
interogare SQL. Marele său dezavantaj este că nu
poate susţine obiecte complexe, necesare în noile
generaţii de aplicaţii, în special multimedia. Pentru a
depăşi acest handicap, producătorii de baze de date
relaţionale 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ă
deficienţe la reprezentarea relaţiilor şi la interogarea
bazelor de date.

SIG-Curs 1 Baze de date 55


Îmbinând facilităţile modelului orientat obiect
(structuri de date complexe, moştenire) cu cele ale
modelului relaţional (tabele bidimensionale, acces
optimizat şi concurent, standardizare etc), modelul
relaţional-obiect (fig.9) pare a fi (deocamdată) soluţia
la dilema existentă în domeniul bazelor de date:
relaţional sau orientat obiect ?
Modelul obiect-relaţional constituie o extensie a
modelului relaţional. Principala îmbunătăţire adusă
modelului relaţional o constituie tipurile abstracte de
date (TAD) care permit:
9 partajarea datelor;
9 utilizarea structurilor de date complexe;
9 încapsularea;
9 moştenirea.
SIG-Curs 1 Baze de date 56
Fig.9
SIG-Curs 1 Baze de date 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
instanţieri directe, un TAD serveşte 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)
SIG-Curs 1 Baze de date 58
Complexitatea unui TAD rezidă în faptul că un
câmp din structura sa poate fi un tip elementar
(numeric, şir de caractere), un alt TAD sau o colecţie.
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 conţine elementul Pers de tip
Persoana:

SIG-Curs 1 Baze de date 59


=> Angajat (Pers:REF Persoana,SalariulTarifar)
în care tipul Angajat conţine o referinţă (pointer) către
o Persoană:

Pentru a reprezenta copiii unui angajat se


poate recurge la folosirea unei colecţii (set) de tip
Persoana:
Angajat (Pers:REF Persoana,SalariulTarifar,
Copii SET(Persoana) )
SIG-Curs 1 Baze de date 60
Tabelele tblPersoană şi tblAngajat, create pe
baza celor două TAD-ri sunt descrise în fig:

TAD-urile pot sa conţină atât date/câmpuri cât


şi metode/operaţii implementate prin proceduri sau
funcţii utilizator (încapsulare).

SIG-Curs 1 Baze de date 61


Exemplu: TAD-ul Persoana poate fi definit prin:
atributele
CNP, NumePrenume, Adresa
şi metoda
Varsta(AnReferinţă):Integer
În modelul obiect-relaţional, moştenirea constă
în posibilitatea derivării unui TAD generic în TAD-uri
specializate.
Prin moştenire, 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.

SIG-Curs 1 Baze de date 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).

Fig.10
SIG-Curs 1 Baze de date 63
Schema unei BDOR conţine schemele TAD-
urilor, ale tabelelor, relaţiile dintre acestea, precum şi
restricţiile de integritate. Din punct de vedere grafic,
schema BDOR poate fi reprezentată folosind
formalismul UML utilizat pentru BDOO.
Mulţi producători de baze de date au adoptat o
strategie de extindere graduală a modelului relaţional,
care a încorporat elemente de programare orientată
obiect, dar a păstrat tehnologiile relaţionale în definirea
şi manipularea datelor (Visual FoxPro).
Alţi producători au mers pe ideea de a păstra
modelul de date orientat pe obiect şi de a extinde cu
funcţii noi limbajul de interogare după sintaxa
limbajului SQL, păstrând astfel compatibilitatea cu
programele SQL existente (Sybase).
SIG-Curs 1 Baze de date 64
4. Metode de accesare a datelor

SIG-Curs 1 Baze de date 65


Modelul fizic al datelor descrie structura sub
care înregistrările logice se regăsesc 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 (fig.11):

Fig.11
SIG-Curs 1 Baze de date 66
Colecţiile de date înregistrate pe memorii
externe sunt accesate din diverse motive: citirea unor
înregistrări, regăsirea unor date, ordonarea înregistră-
rilor după anumite criterii etc.
Accesarea datelor organizate în colecţii de date
se poate realiza prin două metode:
¾ metoda secvenţială;
¾ metoda indexată.
Regăsirea unei înregistrări prin metoda
secvenţială presupune parcurgerea în secvenţă a
colecţiei de date, începând cu prima înregistrare, până
la înregistrarea căutată (dacă există) sau până la
ultima înregistrare (dacă înregistrarea căutată nu
există).
SIG-Curs 1 Baze de date 67
Avantaje:
9complexitate redusă;
9colecţia de date nu se încarcă cu date suplimentare
Dezavantajul major: viteza redusă cu care este
efectuată operaţia pe colecţii mari de date.
Metoda indexată permite regăsirea unei înre-
gistrări într-un timp mult mai redus decât metoda
precedentă.
Metoda presupune utilizarea unui tabel de
indecşi pentru fiecare câmp, ce va permite o astfel de
căutare. Tabelele de indecşi conţin două atribute:
- realizările ordonate (crescător/descrescător) ale
câmpului de indexare;
- adresele fizice relative ale fiecărei realizări.
SIG-Curs 1 Baze de date 68
Exemplu: Tabelul index asociat câmpului CodMaterial
va conţine următoarele date:

Fig.12
Pentru regăsirea unei realizări a câmpului
CodMaterial (câmpul indexat) se parcurg etapele:
1) Se localizează realizarea respectivă în tabelul de
index (această operaţie se poate realiza rapid cu un
algoritm de căutare în mulţimi ordonate).
SIG-Curs 1 Baze de date 69
2) Dacă valoarea există, atunci se memorează adresa
fizică relativă corespunzătoare ş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: operaţia de căutare a unei valori se
realizează foarte rapid în comparaţie cu metoda
secvenţială.
Dezavantaje:
- tabelele de indecşi supraîncarcă colecţia de date;
- orice actualizare a colecţiei de date presupune o
actualizare şi a tabelelor de indecşi.
SIG-Curs 1 Baze de date 70
5. Proiectarea bazelor de date
relaţionale

SIG-Curs 1 Baze de date 71


Proiectarea modelului relaţional al datelor are ca
scop obţinerea unor colecţii de date ce respectă atât
cerinţele informaţionale ale utilizatorului, cât şi
restricţiile impuse de modelul relaţional. În funcţie de
complexitatea bazei de date, există două metode de
proiectare a modelului relaţional:
a) Conceperea modelului relaţional pe baza unui
model conceptual semantic (entitate-asociere).
Modelul entitate-asociere permite modelarea realităţii
prin intermediul unor concepte abstracte: entităţi,
asocieri şi atribute. Aceasta este metoda cea mai
utilizată în practică, mai ales în cazul unor baze de
date complexe.

SIG-Curs 1 Baze de date 72


b) Obţinerea modelului relaţional prin procesul de
normalizare, proces ce presupune aplicarea formelor
normale asupra unui set de atribute ce formează iniţial
un singur tabel. În urma normalizării 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 obţine mai multe soluţii. Aceasta, deoarece
modelarea este un proces subiectiv, în care realitatea
poate fi percepută diferit de utilizatori diferiţi sau chiar
de acelaşi utilizator în perioade diferite.

SIG-Curs 1 Baze de date 73


Proiectarea modelului relaţional prin normalizare
Proiectarea prin normalizare, este un proces
laborios şi riguros ce permite obţinerea unui model
relaţional pe baza unor atribute (câmpuri) şi a
dependenţelor dintre acestea. Metoda se bazează pe
primele trei forme normale (FN1, FN2, FN3) şi
presupune parcurgerea următoarelor etape:
1. Inventarierea atributelor. Proiectantul va selecta
atributele din diverse documente utilizate în circuitul
informaţional: nomenclatoare (nomenclatorul materia-
lelor, lista furnizorilor etc), documente primare şi cen-
tralizatoare (facturi, chitanţe, situaţia aprovizionărilor,
balanţa stocurilor etc).

SIG-Curs 1 Baze de date 74


Exemplu:
Număr factură
Data factură
Cod furnizor
Denumire furnizor
Adresa
2. Specificarea regulilor de gestiune: diversele
restricţii/condiţii impuse datelor sunt atent studiate
deoarece vor constitui logica dependenţelor dintre
atribute şi a regulilor de validare.
Exemplu:
- o factură este emisă de un singur furnizor;
- codul materialului este unic;
- o factură conţine mai multe materiale
- furnizorii pot fi numai persoane juridice etc.
SIG-Curs 1 Baze de date 75
Algoritmii de calcul sunt asimilaţi regulilor de
gestiune.
Exemplu:
Valoare material facturat = Cantitate facturată ×
 × Preţ facturare
Dobânda = ValoareCredit × RataDobândă
SoldFinal = Soldlniţial + lntrări - leşiri.
3. Întocmirea dicţionarului de date: atributele obţinute în
prima fază sunt înscrise într-un dicţionar al datelor cu
respectarea următoarelor reguli:
a. Un atribut poate fi înscris o singură dată în dicţionar.
b. Sunt eliminate atributele sinonime.
Exemplu:
CodMaterial=Cod material facturat
AdresaAngajat=DomiciliuAngajat
SIG-Curs 1 Baze de date 76
c. Dicţionarul datelor nu admite atribute derivate/
calculate.
Exemple:
Valoare(Cantitate*Pret), Dobânda, SoldFinal.
Dicţionarul datelor obţinut în baza listei de
atribute de mai sus poate fi reprezentat într-o formă
simplificată:

Fig.13
SIG-Curs 1 Baze de date 77
4. Stabilirea dependenţelor dintre atribute: dependen-
ţele sunt descrise fie printr-o matrice (conţine ca linii şi
coloane toate atributele din dicţionar în aceeaşi ordine)
fie printr-un graf al dependenţelor. Sunt vizate
îndeosebi dependenţele funcţionale. Dependenţele
funcţionale tranzitive sunt evidenţiate în mod distinct.
Exemplu:

Fig.14
SIG-Curs 1 Baze de date 78
Dependenţele funcţionale dintre atribute sunt
reprezentate prin valoarea 1, pe linie, iar cele
tranzitive au fost marcate cu 1T.
Dependenţele dintre atribute pot fi reprezentate
şi prin intermediul unui graf (cele funcţionale prin
săgeţi, cele tranzitive prin săgeţi punctate) (fig.15).

Fig.15
SIG-Curs 1 Baze de date 79
5. Pentru atributele rămase izolate se vor căuta
grupuri de câmpuri ce pot constitui determinanţi ai
acestora.
6. Toate atributele (grupuri de atribute) determinante
devine chei candidate. Cheile candidate ce vor
aparţine aceluiaşi tabel sunt caracterizate prin
dependenţe funcţionale reciproce (CodFurnizor<->
DenumireFunizor, CodFurnizor<->Adresa)
7. Se stabilesc cheile primare dintre atributele
candidate.
Exemplu: CodFurnizor, NumărFactură
8. Cu fiecare cheie primară şi atributele determinate
direct (netranzitiv) de aceasta se va forma un tabel.
SIG-Curs 1 Baze de date 80
Exemplu:
Furnizor (CodFurnizor, DenumireFurnizor,
AdresaFurnizor)
Factură (NumărFactură, 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ă (NumărFactură, Data, CodFurnizor)

SIG-Curs 1 Baze de date 81


Fig.16
SIG-Curs 1 Baze de date 82
6. Proiectarea bazelor de date
orientate obiect

SIG-Curs 1 Baze de date 83


Proiectarea schemei obiect a unei baze de date
se realizează în următoarele etape:
a) identificarea obiectelor şi a claselor;
b) identificarea asocierilor;
c) identificarea atributelor, a restricţiilor din interiorul
unei clase şi a metodelor specifice fiecărei 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.

SIG-Curs 1 Baze de date 84


Cum se identifică clasele de obiecte din speci-
ficaţiile de definire a datelor întocmite de utilizatori ?
Se optează pentru analiza speficaţiilor utiliza-
torilor şi delimitarea substantivelor care se regăsesc în
aceste specificaţii.
Exemplu: Fie specificaţia:
O firmă este organizată pe departamente şi ţine
o evidenţă strictă a aplicaţiilor cumpărate şi instalate.
Cum aplicaţia poate fi instalată pe mai multe calcu-
latoare, departamentele ţin o evidenţă a numărului de
licenţe pentru fiecare aplicaţie.
La o primă analiză rezultă că substantivele
departamente şi aplicaţii exprimă clase de obiecte
gestionate în cadrul firmei.
SIG-Curs 1 Baze de date 85
Un departament deţine un anumit număr de
licenţe din fiecare aplicaţie. DeţineLicenţe constituie o
clasă-asociere între clasele Aplicaţii şi Departamente.
Elementele astfel identificate se pot reprezenta grafic
folosind limbajul universal de modelare UML (fig.17):

Fig.17
SIG-Curs 1 Baze de date 86
Cum asocierea leagă instanţieri ale claselor este
necesar să se precizeze cardinalităţile (ele se citesc în
sensul clasă către asociere) şi opţional rolurile jucate
de fiecare clasă (în exemplul Utilizate şi, respectiv,
Utilizează) (v.fig.18):

Fig.18

SIG-Curs 1 Baze de date 87


Pentru a face referiri şi la numărul instanţelor
legate prin asociere se precizează cardinalităţile, adică
numărul minim obligatoriu şi maxim autorizat:
0, pentru un minim;
1, pentru un minim şi/sau un maxim;
*, pentru a indica un număr întreg superior lui 1.
Trebuie precizate atributele şi metodele proprii
fiecărei clase identificate.
Exemplul considerat este simplu fără atribute
multivaloare (valorile lor reprezintă instanţe ale altor
clase) şi fără atribute compuse (care se constituie în
noi clase).
Convenţii pentru prezentarea metodelor:
+, pentru public;
#, pentru protejat (vizibil subclaselor)
-, pentru privat.
SIG-Curs 1 Baze de date 88
Fig.19. Schema obiect a bazei de date

Schema obiect a bazei de date se poate


implementa în una din variantele:
- un SGBD relaţional (ex: ACCESS);
- un SGBD obiect-relaţional (ex: Oracle 9i);
- un SGBD obiect.
SIG-Curs 1 Baze de date 89
Primele două variante sunt cele mai utilizate în
practică. Acesta impune conversia schemei în formatul
cerut la implementare.

Fig.20. Schema relaţională a bazei de date

SIG-Curs 1 Baze de date 90


Reguli de conversie din modelul obiect în relaţional:
1) O clasă este reprezentată printr-o tabelă (fiecare
tabelă posedă, în principiu, o cheie primară);
2) O asociere cu cardinalităţile x..1 - x..n se reprezintă
în modelul relaţional prin includerea în tabela
corespunzătoare 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. NrLicenţe);
4) O specializare a clasei de obiecte CO în mai multe
sub-clase SCO1, SCO2,.. SCOn se poate traduce prin
repetarea cheii din tabela CO în tabelele corespun-
zătoare sub-claselor SCO1, SCO2, .. SCOn.
SIG-Curs 1 Baze de date 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 situaţii şi rapoarte contabile.
Prezentarea grafică a modelului obiect folosind
UML este ilustrată în fig.21.

SIG-Curs 1 Baze de date 92


Fig.21
SIG-Curs 1 Baze de date 93

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