UNIVERSITATEA PETROL-GAZE DIN PLOIEŞTI
DEPARTAMENTUL D.I.D.F.R.
Specializarea CONTABILITATE şi INFORMATICĂ DE GESTIUNE
DUŞMĂNESCU DOREL
BAZE DE DATE
PLOIEŞTI
2013
i
CUPRINS
Pagina
Unitatea de învăţare nr. 1. ELEMENTE DE TEORIA BAZELOR DE DATE
Organizarea datelor. Structuri de date. Relaţii între date
Obiectivele unităţii de învăţare nr. 1 5
1.1. Organizarea datelor 5
1.2. Relaţii între date 9
1.3. Structuri de date 11
1.4. Modele de date 17
1.5. Răspunsuri şi comentarii la testele de autoevaluare 21
1.6. Lucrare de verificare a cunoştinţelor 24
Unitatea de învăţare nr. 2. ELEMENTE DE TEORIA BAZELOR DE DATE
Baze de date. Sistem de Gestiune a Bazelor de Date.
Funcţiile unui SGBD
Obiectivele unităţii de învăţare nr. 2 27
2.1. Baze de date 27
2.2. Sisteme de gestiune a bazelor de date 30
2.3. Funcţiile unui sistem de gestiune a bazelor de date 33
2.4. Răspunsuri şi comentarii la testele de autoevaluare 35
2.5. Lucrare de verificare a cunoştinţelor 36
Unitatea de învăţare nr. 3. PROIECTAREA BAZELOR DE DATE
Analiza sistemului informaţional existent
Obiectivele unităţii de învăţare nr. 3 39
3.1. Etapele de realizare a bazelor de date 39
ii
3.2. Analiza sistemului informaţional 8
3.2.1. Analiza structurală a sistemului informaţional 41
Tehnica diagramelor entitate-asociere
3.2.2. Analiza dinamică (de comportament) a 49
sistemului informaţional
3.2.3. Analiza cerinţelor informaţionale 51
(analiza funcţională a sistemului)
3.2.4. Integrarea modelelor sistemului informatic 52
analizat
3.3. Răspunsuri şi comentarii la testele de autoevaluare 53
3.4. Lucrare de verificare a cunoştinţelor 55
Unitatea de învăţare nr. 4. PROIECTAREA BAZELOR DE DATE
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
Obiectivele unităţii de învăţare nr. 4 58
4.1. Proiectarea structurii bazei de date 58
4.1.1. Alegerea sistemului de gestiune al bazei de date 59
4.1.2. Proiectarea schemei conceptuale 61
4.1.3. Proiectarea schemei externe 66
4.2. În cărcarea datelor în baza de date 67
4.3. Exploatarea şi întreţinerea bazei de date 68
4.4. Răspunsuri şi comentarii la testele de autoevaluare 70
4.5. Lucrare de verificare a cunoştinţelor 71
Unitatea de învăţare nr. 5. BAZE DE DATE RELAŢIONALE
Modelul relaţional al datelor
Obiectivele unităţii de învăţare nr. 5 75
5.1. Modelul relaţional al datelor 75
5.2. Structura relaţională a datelor 78
5.2.1. Domeniu 78
iii
5.2.2. Relaţie 78
5.2.3. Atribut 79
5.2.4. Schema unei relaţii 81
5.3. Operatorii modelului relaţional 82
5.4. Restricţiile de integritate ale modelului relaţional 89
5.5. Răspunsuri şi comentarii la testele de autoevaluare 93
5.6. Lucrare de verificare a cunoştinţelor 94
Unitatea de învăţare nr. 6. BAZE DE DATE RELAŢIONALE
Proiectarea Bazelor de Date relaţionale
Obiectivele unităţii de învăţare nr. 1 97
6.1. Proiectarea bazelor de date relaţionale 97
6.1.1. Proiectarea schemei conceptuale 97
6.1.2. Proiectarea schemei externe 101
6.2. Sisteme de gestiune a bazelor de date relaţionale 103
6.3. Răspunsuri şi comentarii la testele de autoevaluare 105
6.4. Lucrare de verificare a cunoştinţelor 108
Unitatea de învăţare nr. 7
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
Obiectivele unităţii de învăţare nr. 7 111
7.1. Modelul de date orientat pe obiecte. 112
Concepte de bază
7.2. Baze de date orientate pe obiecte 118
7.3. Răspunsuri şi comentarii la testele de autoevaluare 122
7.4. Lucrare de verificare a cunoştinţelor 123
iv
Unitatea de învăţare nr. 8.
Noţiuni introductive privind Bazele de Date Distribuite
Obiectivele unităţii de învăţare nr. 8 125
8.1. Baze de date distribuite 125
8.2. Sistemul de gestiune a bazelor de date distribuite 129
8.3. Răspunsuri şi comentarii la testele de autoevaluare 132
8.4. Lucrare de verificare a cunoştinţelor 133
Unitatea de învăţare nr. 9.
Protecţia şi securitatea bazelor de date
Obiectivele unităţii de învăţare nr. 9 135
9.1. Protecţia baze de date 135
9.1.1. Integritatea datelor 136
9.2. Securitatea bazei de date 139
9.3. Răspunsuri şi comentarii la testele de autoevaluare 143
9.4. Lucrare de verificare a cunoştinţelor 145
Bibliografie
1
I. Introducere
I.1. Locul cursului în cadrul programului de studiu
Cursul de Baze de Date urmăreşte formarea la studenţi a deprinderilor
fundamentale pentru proiectarea de baze de date integrate în sisteme
informatice. Ca mediu de dezvoltare de aplicaţii a fost ales Sistemul de
Gestiune a Bazelor de Date relaţionale, MS-Access deoarece este un
SGBD simplu, uşor de asimilat de către studenţi, şi care include toate
mecanismele fundamentale pentru crearea bazelor de date. Toate acestea
permit dezvoltarea de aplicaţii puternice, profesionale. Un alt aspect avut în
vedere a fost dat de accesibilitatea uşoară a SGDB-ului MS-Access, acesta
fiind parte a pachetului MS-Office.
Cursul introduce concepte de informatică de gestiune noi, alături de
cele achiziţionate deja de către studenţi şi permite formarea unui mod de
gândire algoritmic, util pentru înţelegerea disciplinelor informatice ulterioare
(Proiectarea Sistemelor Informatice, Sisteme informatice pentru asistarea
deciziei sau Auditul sistemelor informatice).
I.2. Obiectivele cursului
Obiectivele cursului de Baze de Date sunt următoarele:
a. competenţe generale:
- înţelegerea analizei sistemelor informaţionale şi a identificării
structurilor de date asociate acestora;
- înţelegerea modului de organizare a datelor în colecţii de
date;
- înţelegerea modelelor de date şi a conceptului de bază de
date;
b. competenţe specifice:
- înţelegerea modului de proiectare a unei baze de date;
- însuşirea cunoştinţelor necesare pentru utilizarea SGBD-ului
relaţional MS-Access;
- însuşirea etapelor de proiectare şi realizare a aplicaţiilor cu
baze de date;
2
- însuşirea principiilor de proiectare a interfeţei aplicaţiilor cu
MS-Access (fromulare);
- înţelegerea şi implementarea interogărilor;
- dezvoltarea capacităţii de analiză a problemelor şi de
elaborare de soluţii funcţionale;
- deprinderea lucrului în echipă.
I.3. Structura cursului
Structura cursului, exprimată sub forma unităţilor de învăţare, este
prezentată mai jos:
1. ELEMENTE DE TEORIA BAZELOR DE DATE. Organizarea datelor.
Structuri de date. Relaţii între date
2. Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui
SGBD
3. Analiza sistemului informaţional existent
4. Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
5. Modelul relaţional al datelor
6. Proiectarea Bazelor de Date relaţionale
7. Noţiuni introductive privind bazele de date orientate pe obiecte
8. Noţiuni introductive privind bazele de date distribuite
9. Protecţia şi securitatea bazelor de date
I.4. Resursele complementare
În afară de suportul de curs se poate utiliza orice carte care prezintă
conceptele bazelor de date şi informaţii privind aplicaţia MS-Access.
I.5. Evaluarea
Evaluarea studenţilor se va realiza printr-o apreciere a activităţii
acestora desfăşurată la laborator (prezenţă, activitate, rezultate test de
verificare), şi printr-un examen oral care include o probă practică, la
calculator.
3
Evaluarea la laborator se va realiza la sfârşitul perioadei destinate
acestei activităţi, iar examenul final va avea loc în sesiunea de vară.
Promovarea examenului este condiţionată de asigurarea unei
prezenţe bune la laborator şi de cunoaşterea SGBD-ului MS-Access astfel
încât studentul să poată dezvolta o aplicaţie simplă, care să fie funcţională.
Ponderea celor două note, în nota finală a examenului, este de 40%
nota de la laborator şi 60% nota la proba de examen final.
Organizarea datelor. Structuri de date. Relaţii între date
4
Unitatea de învăţare nr. 1.
ELEMENTE DE TEORIA BAZELOR DE DATE
Organizarea datelor. Structuri de date. Relaţii între date
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 1 5
1.1. Organizarea datelor 5
1.2. Relaţii între date 9
1.3. Structuri de date 11
1.4. Modele de date 17
1.5. Răspunsuri şi comentarii la testele de autoevaluare 21
1.6. Lucrare de verificare a cunoştinţelor 24
Rezumat 24
Bibliografie 24
Organizarea datelor. Structuri de date. Relaţii între date
5
OBIECTIVELE unităţii de învăţare nr. 1
Principalele obiective ale unităţii de învăţare numărul 1 sunt
următoarele:
1.1. Organizarea datelor
Activitatea umană include o mulţime de activităţi desfăşurate
pentru a satisface diverse necesităţi, fie ele de natură materială sau
spirituală. Pentru desfăşurarea acestor activităţi s-au dezvoltat
societăţi comerciale şi organizaţii speciale care, în vederea
îndeplinirii scopului propus, necesită manevrarea unui volum ridicat
de informaţii. Au apărut şi s-au dezvoltat sisteme informaţionale care
ocupă astăzi un loc important în funcţionarea complexului mecanism
reprezentat de societatea modernă. Un sistem informaţional
reprezintă un ansamblu de tehnici şi metode de organizare şi
manevrare a informaţiilor specifice unui anumit domeniu de activitate
(ex. circuitul informaţiilor într-o firmă, evidenţa populaţiei, evidenţa
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
conceptul de dată;
conceptul de informaţie;
modalităţile de organizare a datelor simple în structuri
complexe;
relaţiile care pot apare între date;
conceptul de model de date.
Organizarea datelor. Structuri de date. Relaţii între date
6
cărţilor într-o bibliotecă etc.), de la generarea acestora şi până la
ştergerea sau stocarea lor. Apariţia calculatorului electronic a permis
automatizarea acestor activităţi conducând la apariţia sistemelor
informatice.
Sistemele informatice sunt sisteme de organizare, culegere,
stocare, manevrare şi exploatare a informaţiilor (respectiv a datelor),
specifice unui anumit domeniu de activitate, cu ajutorul calculatorului.
Pentru a rezolva problemele legate de manevrarea informaţiilor,
reprezentate prin intermediul datelor, apare ca o necesitate existenţa
unor modele şi mecanisme de organizare a datelor deoarece, de
modul în care sunt organizate datele depinde eficienţa sistemului
informatic. Bazele de date, ca principale componente ale sistemelor
informatice, oferă tocmai aceste modele şi mecanisme de organizare
a datelor.
Pentru început trebuiesc clarificate noţiunile de informaţie şi date.
Datele sunt reprezentări simbolice ale unor fenomene, procese,
obiecte etc. susceptibile a fi stocate pe un suport de memorie
externă, şi care pot fi manevrate folosind diverse mijloace tehnice
(exemple de date: cifre, şiruri de caractere, imagini, culori etc.).
Informaţia reprezintă sensul pe care oamenii îl acordă datelor
(astfel că aceeaşi dată poate reprezenta diverse informaţii, funcţie de
cei care o folosesc şi de contextul în care este folosită).
Organizarea datelor presupune efectuarea următoarele activităţi:
- definirea, structurarea, ordonarea şi gruparea datelor;
- stabilirea legăturilor (relaţiilor) între date, între elementele unei
colecţii de date şi între colecţii de date;
- stocarea datelor pe un suport de stocare electronic, accesibil
unui sistem de calcul.
Organizarea datelor se realizează pentru a permite regăsirea lor
automată după anumite criterii şi forme.
Organizarea datelor. Structuri de date. Relaţii între date
7
Obiectivele urmărite la organizarea datelor sunt:
- realizarea unui acces rapid la date stocate pe diferite suporturi
de memorie;
- spaţiul de memorie internă şi externă ocupat să fie cât mai mic
(economie de memorie);
- datele să apară o singură dată în sistem (unicitatea datelor);
- modul de organizare a datelor să reflecte, pe cât posibil, toate
legăturile dintre obiectele, fenomenele sau procesele pe care
acestea le reprezintă;
- schimbarea structurii datelor şi a relaţiilor dintre ele să se facă
fără a fi necesară modificarea programelor ce le gestionează
(flexibilitatea datelor).
Conceptele de bază utilizate în activitatea de organizare a datelor
sunt: entitate, atribut, valoare.
Entitatea reprezintă un obiect concret sau abstract, caracterizat
de proprietăţile sale.
O proprietate a unui obiect poate fi exprimată printr-o pereche
(ATRIBUT, VALOARE). Spre exemplu: “studentul X este în anul de
studii II”, unde “anul de studii” reprezintă atributul, iar “II” reprezintă
valoarea. Deoarece o entitate este caracterizată de proprietăţile sale
înseamnă că ea se poate reprezenta prin mai multe perechi
(ATRIBUT, VALOARE).
De exemplu, o persoană X poate fi reprezentată prin mulţimea de
perechi: (NUME, IONESCU), (VÂRSTA, 25), (SEX, MASCULIN),
(PROFESIE, INGINER). Se observă însă că mulţimea atributelor
NUME, VÂRSTA, SEX, PROFESIE poate fi asociată cu mai multe
persoane care se individualizează prin valorile acestor atribute.
Rezultă că un atribut nu caracterizează doar o entitate, ci poate
caracteriza o clasă de entităţi numită entitate grup.
Atributele mai sunt cunoscute şi sub numele de câmpuri sau
caracteristici.
Organizarea datelor. Structuri de date. Relaţii între date
8
Un atribut este caracterizat de mulţimea valorilor pe care le poate
lua. Aceste valori pot fi numerice, alfanumerice (şiruri de caractere)
etc. În general atributele au valori elementare, dar pot exista şi
situaţii de atribute compuse (formate prin înlănţuirea mai multor
atribute elementare).
Atributele care identifică în mod unic o anumită entitate se numesc
atribute cheie, celelalte atribute numindu-se atribute non-cheie.
Test de autoevaluare nr. 1
1. Care este diferenţa între date şi informaţii ?
2. Care sunt obiectivele activităţii de organizare a datelor ?
3. Ce activităţi presupune organizarea datelor ?
4. Definiţi conceptele de entitate, atribut, valoare ?
5. Ce caracteristici are atributul cheie ?
Organizarea datelor. Structuri de date. Relaţii între date
9
1.2. Relaţii între date
Datele folosite pentru a descrie diverse procese, fenomene sau
obiecte se găsesc în legătură una cu alta. Între datele care aparţin
unor tipuri de entităţi pot exista două categorii de legături:
- o categorie de legături definită de însăşi apartenenţa datelor la
o anumită entitate;
- o a doua categorie constituită de legăturile dintre entităţile de
acelaşi tip sau de tipuri diferite.
Exemplu:
Fie A mulţimea datelor despre salariaţii unei societăţi comerciale.
Între datele acestei mulţimi se pot stabili relaţii de tipul:
- x are aceeaşi profesie cu y;
- x este şeful lui y;
- x este mai în vârstă decât y;
- x are salariul mai mare sau egal cu al persoanei y etc.
Relaţia binară
Dacă luăm exemplul anterior putem spune că relaţia “are aceeaşi
profesie cu” asociază fiecărui salariat din mulţimea A pe toţi cei care
au aceeaşi profesie, cu condiţia să facă parte tot din A. Astfel, se
pune în evidenţă o mulţime de perechi ordonate (x,y) cu proprietatea
că elementelor x li se asociază elementele y prin relaţia “are aceeaşi
profesie cu”. Aceasta se poate reprezenta astfel:
"",/, yxsiAyxAAyxR cuprofesieaceeasiare
Definiţie. Fie A o colecţie oarecare de date, nevidă. Se numeşte
relaţie binară pe A o submulţime R a produsului cartezian A x A
care îndeplineşte o proprietate (o legătură).
Numim elemente asociate prin relaţia R acele elemente x, y pentru
care Ryx, .
Organizarea datelor. Structuri de date. Relaţii între date
10
Dacă Ryx, spunem că “x este asociat lui y prin relaţia R” sau că
“x este în relaţia R cu y”, fapt care se mai simbolizează prin x R y.
Proprietăţile relaţiei binare dintre date sunt:
1. Reflexivitate. Spunem că o relaţie R, definită pe o mulţime de
date A, este reflexivă dacă pentru Rx , avem x R x.
Exemplu: Rxxx , .
2. Simetrie. O relaţie R definită pe mulţimea de date A spunem că
este simetrică dacă pentru yRximplicaxRyAyx ,, .
Exemplu: Fie A mulţimea judeţelor ţării.
Dacă x “este vecin cu” y rezultă că y “este vecin cu” x.
3. Asimetrie. Spunem că o relaţie R definită pe o mulţime de date
A este antisimetrică dacă pentru Ayx, cu proprietatea că x R y
şi y R x, avem x=y.
Exemplu: yx şi xy implică yx .
4. Tranzitivitate. Fie A o mulţime de date. Spunem că o relaţie R
pe mulţimea A este tranzitivă dacă pentru Azyx ,, cu
proprietatea că x R y şi y R z, atunci x R z.
Exemplu: Dacă produsul x “intră în componenţa lui” y şi y
“intră în componenţa lui” z, atunci x “intră în componenţa lui” z.
Definiţie. O relaţie binară R, definită pe mulţimea de date A se
numeşte relaţie de echivalenţă dacă este reflexivă, simetrică şi
tranzitivă.
Definiţie. Fie A o colecţie de date. Dacă Ayx, , există relaţia
x R y sau y R x, spunem că relaţia dintre elementele colecţiei este de
ordine totală.
Definiţie. O relaţie binară R, definită pe o mulţime de date A, care
este reflexivă, asimetrică şi tranzitivă se numeşte relaţie de ordine.
Definiţie. Relaţia binară R, definită pe o mulţime de date A, care
este reflexivă şi tranzitivă se numeşte relaţie de preordine.
Organizarea datelor. Structuri de date. Relaţii între date
11
1.3. Structuri de date
Prelucrarea şi manevrarea eficientă a datelor impune folosirea
unor structuri de date complexe. Tipurile de structuri de date folosite
în sistemele informatice depind de sistemul informaţional automatizat
şi de tehnologiile de prelucrare a datelor folosite.
Structura de date este definită ca o colecţie de date între care s-
au stabilit o serie de relaţii care conduc la un anumit mecanism de
selecţie şi identificare a componentelor. Mulţimea de date asociată
structurii poate fi alcătuită din datele unui tip sau mai multor tipuri de
entităţi. Componentele unei structuri de date pot fi individualizate şi
identificate prin nume (identificator) sau prin poziţia pe care o ocupă
în structură (în raport cu ordinea specificată).
După modul de localizare al unei componente, o structură de date
poate avea acces direct sau secvenţial. Accesul secvenţial
presupune parcurgerea tuturor componentelor structurii, aflate
înaintea componentei căutate, în timp ce accesul direct permite
localizarea unei componente fără a ţine seama de celelalte
componente.
Elementele care formează o structură de date pot fi date
elementare sau pot fi ele însele structuri de date.
Operaţiile care se pot efectua asupra structurilor de date se referă
la valori şi/sau la structură. Dintre acestea, cele mai frecvente sunt:
crearea datelor (memorarea datelor în forma iniţială pe
suportul de memorie);
consultarea datelor (accesul la componentele structurii în
vederea prelucrării valorilor);
actualizarea datelor (schimbarea stării structurii prin
adăugarea, ştergerea unor elemente componente,
modificarea valorii unor elemente, modificarea relaţiilor dintre
elemente);
Organizarea datelor. Structuri de date. Relaţii între date
12
sortarea datelor (aranjarea elementelor unei structuri după
anumite criterii);
ventilarea structurii (spargerea structurii în două sau mai
multe structuri);
fuzionarea (formarea unei noi structuri din două sau mai
multe structuri);
copierea;
interclasarea etc.
Structurile de date care au aceeaşi organizare şi sunt supuse
aceloraşi operaţii formează un tip de structură de date.
Un tip de structură de date este o mulţime ordonată de date între
care s-au stabilit anumite relaţii şi în care, pentru realizarea
operaţiilor specifice, se foloseşte un grup de operatori de bază cu o
anumită semantică.
Clasificarea structurilor de date
Clasificarea structurilor de date se poate realiza după mai multe
criterii. După tipul componentelor, structurile de date se clasifică în:
structuri omogene, în care componentele sunt toate de acelaşi
tip;
structuri eterogene, în care componentele sunt de tipuri
diferite.
Dacă o structură se poate descompune în structuri de acelaşi tip
atunci avem o structură recursivă.
După posibilitatea de modificare a structurii, avem:
structuri statice, care pe tot parcursul existenţei lor au acelaşi
număr de componente în aceeaşi ordine;
structuri dinamice, care permit modificarea numărului de
componente sau a poziţiei acestora în structură, prin aplicarea
operatorilor specifici structurii. Aceste structuri pot avea,
teoretic, un număr nelimitat de componente şi de aceea se
mai numesc structuri cu cardinalitate infinită.
Organizarea datelor. Structuri de date. Relaţii între date
13
Asemănător, structurile statice se consideră că sunt structuri cu
cardinalitate finită.
Din punct de vedere al nivelului de structurare al datelor avem:
structura logică, care se referă la modul de ordonare al datelor
şi la operatorii folosiţi pentru tratarea datelor;
structura fizică, ce se referă la modul de implementare, de
reprezentare efectivă pe un suport de memorie;
Principalele tipuri de structuri logice de date sunt:
structura punctuală;
structura liniară;
structura arborescentă;
structura reţea;
structura relaţională.
Structura punctuală este reprezentată de o entitate grup izolată,
care nu are legături (relaţii) cu alte entităţi.
Structura liniară (lista) este o structură care defineşte o relaţie de
ordine totală între elementele unei colecţii de date. După cum am
văzut mai înainte, o relaţie de ordine totală este o relaţie care există
între oricare două elemente ale unei colecţii de date. Structura liniară
presupune că fiecare element al structurii conţine, pe lângă
informaţiile care trebuiesc manevrate, informaţiile necesare pentru a
realiza o legătură (relaţie) cu alt element al aceleiaşi structuri.
Fig. 1.1. Structuri de date liniare
a1 a2 a3 aN
a1 a2 a3 aN
Organizarea datelor. Structuri de date. Relaţii între date
14
Acest tip de structură are următoarele caracteristici:
- are un singur element iniţial şi un singur element terminal;
- orice element care nu este iniţial şi nici terminal are un singur
succesor imediat;
- primul element nu are predecesori;
- ultimul element nu are succesori;
- dacă există o relaţie între ultimul şi primul element atunci
structura este inelară sau circulară;
- relaţiile stabilite între date sunt de tipul 1 la 1.
O structură este arborescentă sau ierarhică (descendentă) dacă
între elementele sale există o relaţie de ordine. Aceasta înseamnă că
fiecare element (cu o singură excepţie) provine din alt element aflat
pe un nivel ierarhic superior.
Fig. 1.2. Structură de date arborescentă
Structura de date arborescentă are următoarele caracterisitci:
- elementele structurii se numesc noduri;
- există un element unic, numit rădăcina arborelui, care nu are
un predecesor;
- orice nod diferit de rădăcină are un predecesor imediat unic;
- orice nod neterminal are un număr finit de succesori imediaţi;
Organizarea datelor. Structuri de date. Relaţii între date
15
- relaţiile stabilite între noduri sunt de tipul 1 la m.
Se numeşte drum de lungime n-1 de la nodul ai1 la nodul a
in
succesiunea de noduri (ai1, a
i2, ..., a
in) în care pentru
1,, ,, kiki anka este un succesor imediat al lui aik. Drumul de
lungime maximă constituie înălţimea arborelui.
Un arbore în care fiecare nod are strict numai doi succesori se
numeşte arbore binar.
Structura de tip reţea este o structură în care între elementele
componente există o relaţie de preordine. În acest caz elementele
sunt legate unele de altele prin legături multiple.
Caracteristicile acestui tip de structură de date sunt:
- o reţea este un graf în care, între două noduri, există legături
bidirecţionale;
- un nod are mai mulţi predecesori şi el însuşi poate fi
predecesor pentru propriul său predecesor, caz în care apar
cicluri în reţea. Un ciclu este un drum în care nodul iniţial este
acelaşi cu nodul final.
- între elementele reţelei se stabilesc legături de tipul “m la n”.
O reţea în care există doar legături univoce între elemente se
numeşte reţea “simplă”. În caz contrar reţeaua spunem că este o
reţea complexă. Într-o reţea simplă nu există cicluri. Exemple de
reţele simplă şi complexă sunt date în figura următoare.
Fig. 1.3. Exemple de reţele de date
a
b
c
d
e
a c
b d
e
Organizarea datelor. Structuri de date. Relaţii între date
16
Structura relaţională a datelor consideră că acestea sunt
organizate la nivel logic sub formă de tabele (relaţii, tablouri) de date
elementare, între care nu sunt legături explicite. Fiecare linie dintr-un
asemenea tabel se numeşte înregistrare şi fiecare element al unei
înregistrări ce corespunde unei anumte coloane se numeşte câmp.
Legăturile între date sunt introduse indirect prin intermediul
coloanelor comune la mai multe tabele de date (vezi figura).
Fig. 1.4. Structura relaţională a datelor
Test de autoevaluare nr. 2
1. Ce se înţelege prin structură de date ?
2. De câte feluri pot fi structurile de date ?
3. Ce fel de operaţii se pot efectua asupra unei structuri de
date ?
NUME PRENUME GRUPA NR. MATRICOL
Popescu Ion 4175 1245
Ionescu Amalia 5412 1452
Vasilescu Sergiu 5321 1385
FACULTATE SPECIALIZARE NR. MATRICOL
Popescu Ion 1245
Ionescu Amalia 1452
Vasilescu Sergiu 1385
Organizarea datelor. Structuri de date. Relaţii între date
17
1.4. Modele de date
Prelucrarea datelor cu ajutorul calculatorului presupune folosirea
unor modele de date, care modelează diferite obiecte şi/sau procese
reale sau abstracte.
Pentru a putea defini un model de date trebuiesc precizate
următoarele elemente:
- structura modelului;
- operatorii care acţionează asupra structurilor de date folosite;
- restricţiile care se impun pentru menţinerea corectitudinii
datelor, restricţii numite şi reguli de integritate.
Precizarea structurii modelului presupune descrierea tuturor
obiectelor (entităţilor) şi a caracteristicilor asociate acestora. Acest
lucru se realizează folosind următoarele elemente generice:
- câmpul; este cel mai mic element al structurii care poate fi
accesat pentru prelucrare;
- grupul simplu sau compus; este un set format din mai multe
câmpuri şi/sau grupuri;
- înregistrarea, care este un ansamblu de grupuri şi câmpuri,
constituind totodată şi elementul generic al structurii.
Stabilirea relaţiilor între obiecte se face prin stabilirea relaţiilor care
există între înregistrările structurilor folosite la definirea modelului de
date respectiv.
Structura unui model de date fără valori reprezintă un obiect
generic. O colecţie de date cu valori bine precizate şi care respectă
un model definit reprezintă o realizare sau o instanţă a tipului de
obiect precizat.
Legăturile dintre obiecte (entităţi) poartă denumirea de asociere.
Legăturile dintre două entităţi pot fi de trei tipuri:
- legături “unu la unu” . Aceasta înseamnă că fiecare obiect are
o legătură cu un alt obiect şi numai cu unul. De exemplu,
Organizarea datelor. Structuri de date. Relaţii între date
18
relaţia dintre locurile existente într-un cămin studenţesc şi
studenţi. Un loc poate fi ocupat de un singur student, iar un
student are dreptul la un singur loc în cămin.
- legături “unu la mulţi”. În acest caz un obiect poate avea
legături (relaţii) cu mai multe obiecte. De exemplu, un student
poate face parte dintr-o singură grupă dar o grupă poate avea
mai mulţi studenţi.
- legături de tipul “mulţi la mulţi”. Acest tip de legătură
presupune că fiecare obiect poate avea multiple legături
(relaţii) cu alte obiecte. Spre exemplu, un produs este
cumpărat de mai mulţi clienţi şi un client poate achiziţiona mai
multe produse.
Operatorii care acţionează asupra structurilor de date constituie
cel de-al doilea element al unui model de date. Aceşti operatori pot fi
de citire, memorare, modificare, joncţiune etc.
Regulile de integritate sunt restricţii menite să asigure menţinerea
corectitudinii datelor. Ca exemple de astfel de restricţii putem
menţiona:
- să nu se permită ştergerea valorilor atributelor unui client
dacă acesta nu a achitat integral factura pentru cumpărarea
unui produs anume;
- să nu se permită memorarea valorilor asociate unui produs
dacă nu se cunoaşte valoarea unui anumit atribut
caracteristic, numit atribut cheie etc.
Modelele de date se împart, în funcţie de modul în care se
definesc elementele amintite mai sus, în: modele ierarhice sau
arborescente, modele reţea, modele relaţionale, modele orientate
obiect etc.
Organizarea datelor. Structuri de date. Relaţii între date
19
Modelul ierarhic
Foloseşte tipuri de înregistrări care grupează toate atributele unei
entităţi. Pentru a realiza asocierile dintre tipuri de înregistrări acest
model foloseşte o structură de date arborescentă (o ierarhie).
Fig. 1.5. Ierarhie de date
O ierarhie are un tip de înregistrare definit ca rădăcină şi mai
multe tipuri de înregistrări subordonate, legate sub formă de arbore.
Fiecare nod din arbore care nu este rădăcină sau nod final are un
singur nod superior şi unul sau mai multe noduri inferioare. Legătura
de la un nod superior la unul inferior este de tipul “unu la mulţi”, iar
legătura de la un nod inferior la unul superior este de tipul “unu la
unu”.
Modelul reţea
În acest model, datele sunt reprezentate asemănător cu modelul
ierarhic, cu deosebirea că fiecare inferior poate avea mai mulţi
superiori. Toate structurile de date, inclusiv legăturile de tipul “m la n”
sunt definite natural, fără a recurge la artificii. În cadrul acestui model
întâlnim două tipuri de structuri:
-tipul de înregistrare ( care asigură atributele unei entităţi);
-tipul de set (care asigură legăturile între tipurile de înregistrări).
Organizarea datelor. Structuri de date. Relaţii între date
20
Modelul relaţional
Modelul relaţional are la bază teoria matematică a relaţiilor. El
foloseşte o singură structură de date: relaţia (tabelul) care este o
submulţime a produsului cartezian al unor domenii (un domeniu este
reprezentat de o mulţime de valori ale entităţilor).
Modelul relaţional poate fi privit ca o mulţime de tabele obţinute
prin metoda normalizării. Normalizarea pleacă de la o mulţime de
atribute (câmpuri de date) şi o mulţime de dependenţe funcţionale
dintre atribute şi conduce la o schemă conceptuală a modelului
relaţional, într-o formă normalizată, în care se vor elimina anomaliile
de actualizări.
La cele trei modele de date prezentate mai sus se adaugă
modelele orientat obiect, distribuit şi modelul funcţional.
Test de autoevaluare nr. 3
1. Caracterizaţi modelul arborescent al datelor?
2. Caracterizaţi modelul relaţional al datelor ?
Organizarea datelor. Structuri de date. Relaţii între date
21
1.5. Răspunsuri la testele de autoevaluare
Test de autoevaluare nr. 1
1. Datele sunt reprezentări simbolice ale unor entităţi, procese,
fenomene, care au o existenţă fizică şi pot fi păstrate o
perioadă indefinit de lungă, pe un suport de memorie, în timp
ce informaţia reprezintă sensul pe care îl acordă oamenii
anumitor date. Informaţia depinde de contextul în care este
declarată şi utilizată.
2. Obiectivele activităţii de organizare a datelor sunt :
- minimizarea spaţiului ocupat de date pe suportul de
memorie;
- asigurarea unui acces cât mai rapid la date ;
- asigurarea unicităţii datelor, astfel încât valorile datelor să
fie păstrate o singură dată în colecţia de date;
- modelarea datelor să reflecte relaţiile existente în viaţă
reală între entităţile unui sistem economic ;
- asigurarea unei flexibilităţi cât mai ridicate a datelor
(modificarea structurii datelor şi a componenţei acestora
să nu necesite recompilarea programelor).
3. Organizarea datelor presupune efectuarea următoarelor
activităţi:
- definirea, structurarea, ordonarea şi gruparea datelor;
- stabilirea legăturilor (relaţiilor) care se formează între
date simple, între elementele unei colecţii de date şi între
colecţiile de date;
- stocarea datelor pe un suport de memorie externă,
accesibil unui sistem de calcul.
4. Entitatea reprezintă un obiect sau un concept abstract, care
poate fi definit prin proprietăţile sale. O proprietate a unui
Organizarea datelor. Structuri de date. Relaţii între date
22
obiect este dată de o pereche atribut-valoare. Un atribut este
o proprietate abstractă a unei entităţi, care, pentru a fi
completă, trebuie să primească o valoare.
5. Atributul cheie este atributul, sau combinaţia minimă de
atribute, care identifică în mod unic o entitate. Rezultă că,
atributul cheie trebuie să conţină numai valori distincte şi
trebuie să aibă totdeauna o valoare (nu poate fi NULL).
Test de autoevaluare nr. 2
1. O structură de date este o colecţie de date între care s-au
stabilit o serie de relaţii ce conduc la un anumit mecanism de
selecţie şi identificare a componentelor. Mulţimea de date
asociată structurii poate fi alcătuită din datele unui tip sau
mai multor tipuri de entităţi.
2. Structurile de date se pot clasifica astfel:
A. După tipul datelor care compun structura, avem :
- structuri omogene, cu date de acelaşi tip ;
- eterogene, cu date de tipuri diferite;
B. După comportarea în timpul funcţionării programului
care le utilizează:
- structuri statice, a căror mărime şi compunere nu se
pot modifica în timpul executării programului;
- structuri dinamice, care pot să îşi schimbe legăturile
interne între datele structurii, precum şi numărul de
componente ale structurii.
3. Operaţiile care se pot efectua asupra structurilor de date se
referă la valori şi/sau la structură. Dintre acestea, cele mai frecvente
sunt:
crearea datelor (memorarea datelor în forma iniţială pe
suportul de memorie);
Organizarea datelor. Structuri de date. Relaţii între date
23
consultarea datelor (accesul la componentele structurii în
vederea prelucrării valorilor);
actualizarea datelor (schimbarea stării structurii prin
adăugarea, ştergerea unor elemente componente, modificarea
valorii unor elemente, modificarea relaţiilor dintre elemente);
sortarea datelor (aranjarea elementelor unei structuri după
anumite criterii);
ventilarea structurii (spargerea structurii în două sau mai multe
structuri);
fuzionarea (formarea unei noi structuri din două sau mai multe
structuri);
copierea;
interclasarea etc.
Test de autoevaluare nr. 3
1. Modelul arborescent al datelor este format din noduri şi
legături între acestea, organizate toate într-o ierarhie.
Nodurile conţin informaţii privind diferite entităţi, iar legăturile
sunt de tipul părinte-fiu, de subordonare. Modelul
arborescent permite implementarea naturală a relaţiilor de
ordine ierarhice. Fiecare nod din arbore care nu este
rădăcină sau nod final are un singur nod superior şi unul sau
mai multe noduri inferioare.
2. Modelul relaţional al datelor foloseşte ca structură de date
relaţia sau tabelul. Legăturile între aceste colecţii de date se
realizează implicit, prin intermediul câmpurilor comune la mai
multe tabele.
Organizarea datelor. Structuri de date. Relaţii între date
24
1.6. Lucrare de verificare
Răspundeţi la următoarele întrebări:
1. Precizaţi diferenţele existente între conceptul de dată şi cel
de informaţie.
2. Definiţi conceptele de sistem informaţional şi sistem
informatic. Ce asemănări şi ce diferenţe există între acestea?
3. Clasificaţi atributele care pot descrie o entitate.
4. Definiţi conceptul de structură de date. Exemplificaţi.
5. Definiţi conceptul de model de date. Caracteristicile unui
model de date.
Rezumat
În această unitate de învăţare au fost prezentate o serie de
concepte privind sistemele informationale şi sistemele informatice,
aspecte caracteristice acestora şi diferenţe existente între ele.
Au fost prezentate conceptele de dată şi informaţie, precum şi
structurile de date utilizate frecvent în aplicaţiile informatice şi, în
particular, în cele de baze de date.
Au mai fost prezentate caracteristicile modelelor de date şi o
clasificare a acestora.
Bibliografie
1. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
Organizarea datelor. Structuri de date. Relaţii între date
25
2. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
4. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
5. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
6. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
26
Unitatea de învăţare nr. 2
ELEMENTE DE TEORIA BAZELOR DE DATE
Baze de date. Sistem de Gestiune a Bazelor de Date.
Funcţiile unui SGBD
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 2 27
2.1. Baze de date 27
2.2. Sisteme de gestiune a bazelor de date 30
2.3. Funcţiile unui sistem de gestiune a bazelor de date 33
2.4. Răspunsuri şi comentarii la testele de autoevaluare 35
2.5. Lucrare de verificare a cunoştinţelor 36
Rezumat 37
Bibliografie 37
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
27
OBIECTIVELE unităţii de învăţare nr. 2
Principalele obiective ale unităţii de învăţare numărul 1 sunt
următoarele:
2.1. Baze de date
Conceptul de bază de date a apărut în 1969 cu ocazia prezentării
primului raport CODASYL în cadrul unei conferinţe pe probleme de
limbaje de gestiune a datelor.
Evoluţia metodelor şi tehnicilor de organizare a datelor a fost
determinată de necesitatea de a avea un acces cât mai rapid şi uşor
la un volum din ce în ce mai mare de informaţii precum şi de
perfecţionarea echipamentelor de culegere, memorare, transmitere şi
prelucrare a datelor.
Ideea principală a organizării datelor în baze de date se
bazează pe existenţa unei descrieri globale a datelor (metadate),
stocată separat de colecţiile de date. Prin intermediul acestei
descrieri se asigură independenţa programelor faţă de date şi a
datelor faţă de programe.
Accesul oricărui utilizator la baza de date se va realiza prin
intermediul acestei descrieri globale a datelor.
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
conceptul de model de date;
conceptul de bază de date;
rolul şi funcţiile sistemului de gestiune a bazelor de date.
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
28
În esenţă, conceptul de bază de date poate fi definit ca fiind una
sau mai multe colecţii de date (Ki), aflate în interdependenţă,
împreună cu descrierea datelor şi a relaţiilor dintre ele, (B={K1, K2,
...})
O bază de date astfel definită trebuie să îndeplinească
următoarele condiţii:
- să asigure o independenţă completă a datelor faţă de
programe şi invers;
- structura bazei de date trebuie astfel concepută încât să
asigure informaţiile necesare şi suficiente pentru a satisface
cerinţele informaţionale şi de decizie ale utilizatorului;
- să asigure o redundanţă minimă şi controlată a datelor;
- să permită accesul rapid la informaţiile stocate în bază.
Arhitectura generală a bazelor de date a fost standardizată
internaţional şi cuprinde următoarele elemente componente:
- baza de date propriu-zisă în care se memorează colecţia
de date;
- sistemul de gestiune al bazei de date, care este un
ansamblu de programe ce realizează gestiunea şi
prelucrarea complexă a datelor;
- un set de proceduri manuale şi automate, precum şi
reglementările administrative, destinate bunei funcţionări a
întregului sistem;
- un dicţionar al bazei de date (metabaza de date), ce
conţine informaţii despre date, structura acestora, elemente
de descriere a semanticii, statistici, documentaţie etc.
- echipamentele de calcul (hardware) utilizate (comune sau
specializate);
- personalul implicat (categorii de utilizatori: finali sau de
specialitate, analişti-programatori, gestionari, operatori).
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
29
Bazele de date sunt extrem de variate, în funcţie de criteriile de
apreciere considerate. În continuare sunt prezentate câteva criterii de
clasificare:
- după orientare: generalizate, specializate;
- după modelul de date folosit: ierarhice, în reţea, relaţionale,
orientate obiect;
- după amploarea geografică: locale, distribuite;
- după limbajele utilizate: autonome (cu limbaje proprii), cu
limbaj gazdă, mixte.
Componentele bazei de date pot fi structurate pe trei nivele, în
funcţie de clasa utilizatorilor implicaţi:
- nivelul logic. Este dat de viziunea programatorului de
aplicaţii, care realizează programele de aplicaţii pentru
manipularea datelor şi structura logică (subschema)
corespunzăroare descrierii datelor aplicaţiei;
- nivelul conceptual (global). Este dat de viziunea
administratorului bazei de date, care realizează structura
conceptuală (schema) corespunzătoare descrierii bazei de
date şi administrează componentele bazei de date pentru
manipularea datelor;
- nivelul fizic. Este date de viziunea inginerului de sistem
care realizează structura fizică corespunzăroare descrierii
datelor pe suportul fizic.
Testul de autoevaluare nr. 1 1. Care sunt nivelele de structurare ale unei baze de date?
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
30
2.2. Sisteme de gestiune a bazelor de date
O bază de date poate fi privită ca o colecţie de date stocate pe
suporţi de memorie externă, adresabile de către mai mulţi utilizatori
şi care satisface cerinţele de informare ale acestora.
Sistemul de gestiune al bazei de date reprezintă ansamblul de
programe (software) care permite îndeplinirea scopului pentru care a
fost creată baza de date.
El trebuie să asigure realizarea următoarelor activităţi:
- definirea structurii bazei de date;
- încărcarea bazei de date;
- accesul la date (interogare, actualizare);
- întreţinerea bazei de date (colectarea şi refolosirea spaţiilor
goale, refacerea bazei de date în cazul unui incident);
- reorganizarea bazei de date ( restructurarea şi modificarea
strategiei de acces);
- protejarea datelor.
Într-un alt sens, sistemul de gestiune al bazei de date se constituie
într-o interfaţă între utilizator şi baza de date, reprezentând
mecanismul prin intermediul căruia acesta are acces la date.
Pentru a-şi putea îndeplini funcţiunile prevăzute, unui sistem de
gestiune al bazei de date modern îi revin o serie de obiective de
îndeplinit, cum sunt:
1. Asigurarea independenţei datelor. Aceasta presupune că
modificarea strategiei de memorare a datelor sau a strategiei de
acces la date nu trebuie să afecteze aplicaţia care prelucrează
aceste date. Independenţa datelor faţă de aplicaţie este necesară
deoarece diferite aplicaţii au nevoie de viziuni diferite ale aceloraşi
date; administratorul bazei de date trebuie să aibă libertatea de a
schimba structura de memorare sau strategia de acces, ca răspuns
la cerinţe (schimbări de standarde, priorităţile aplicaţiilor, schimbarea
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
31
unităţilor fizice de memorare etc.), fără a modifica aplicaţiile
existente; iar baza de date existentă, precum şi programele de
exploatare a ei reprezintă o investiţie importantă la care nu trebuie să
se renunţe prea uşor.
Independenţa datelor trebuie privită din două puncte de vedere:
independenţa fizică şi independenţa logică a datelor.
Independenţa fizică a datelor implică modificarea tehnicilor fizice
de memorare a datelor fără a necesita rescrierea programelor de
aplicaţie.
Independenţa logică a datelor se referă la posibilitatea adăugării
de noi articole de date sau extinderea structurii conceptuale
(globale), fără ca aceasta să impună rescrierea programelor
existente.
2. Asigurarea unei redundanţe minime şi controlate a datelor
din baza de date. Redundanţa se referă la numărul de apariţii în
baza de date a unei date. În general, stocarea datelor în baze de
date ar trebui să se facă astfel încât fiecare dată să apară o singură
dată. Totuşi, există cazuri în care, pentru a reduce timpul de căutare
al unei date şi implicit timpul de răspuns la solicitările utilizatorilor, se
acceptă o anumită redundanţă a datelor. Această redundanţă trebuie
controlată automat, prin program, pentru a se asigura coerenţa
datelor din bază.
3. Asigurarea unor facilităţi sporite de utilizare a datelor.
Aceasta presupune:
- folosirea datelor de către mai mulţi utilizatori în diferite aplicaţii;
- accesul cât mai simplu al utilizatorilor la date, fără ca aceştia
să fie nevoiţi să cunoască structura întregii baze de date, acest
lucru rămânând în sarcina administratorului bazei de date;
- existenţa unor limbaje performante de regăsire a datelor, care
permit exprimarea sub forma unei conversaţii, a unor criterii de
selecţie a datelor şi indicarea unor reguli cât mai generale
pentru editarea informaţiilor solicitate;
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
32
- utilizarea unui limbaj cât mai apropiat de limbajul natural, cu
posibilitatea exploatării bazei de date în regim conversaţional,
lucru care ar oferi posibilitatea exploatării bazei de date
şi de către utilizatori neinformaticieni.
4. Sporirea gradului de securitate a datelor împotriva accesului
neautorizat la ele. În condiţiile bazelor de date, administratorul bazei
de date poate prevedea ca acesul la baza de date să se facă numai
prin canalele corespunzătoare, şi poate, totodată, defini verificări de
autorizare, realizate oricând se încearcă accesul neautorizat la
anumite date.
5. Asigurarea integrităţii datelor împotriva unor ştergeri
intenţionate sau neintenţionate, prin intermediul unor proceduri de
validare, a unor protocoale de control concurent şi a unor proceduri
de refacere a bazei de date după incidente.
6. Asigurarea partajabilităţii datelor. Partajabilitatea datelor
trebuie înţeleasă nu numai sub aspectul asigurării accesului mai
multor utilizatori la aceleaşi date, cişi acela al posibilităţii dezvoltării
unor aplicaţii fără a se modifica structura bazei de date.
Testul de autoevaluare nr. 2 1. Ce presupune asigurarea independenţei datelor?
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
33
2.3. Funcţiile unui sistem de gestiune a bazelor de date
Sistemele de gestiune a bazelor de date au o multitudine de
sarcini de îndeplinit. Grupând aceste sarcini se obţin activităţile şi
apoi funcţiile sistemului de gestiune al bazei de date. Ţinând seama
de complexitatea sistemului de gestiune, de facilităţile oferite, de
limbajele utilizate şi tipul bazei de date ce urmează a fi gestionată
gruparea activităţilor pe funcţii poate avea un caracter relativ.
În continuare sunt prezentate câteva funcţii mai importante ale
sistemelor de gestiune a bazelor de date, funcţii cu caracter de
generalitate, valabile pentru toate tipurile de sisteme de gestiune a
bazelor de date.
1. Funcţia de descriere a datelor, care permite definirea
structurii bazei de date cu ajutorul unui limbaj de definire. Definirea
datelor poate fi realizată la nivel logic, conceptual şi fizic. La nivelul
acestei funcţii se descriu multitudinea atributelor (câmpurilor) din
cadrul structurii bazei de date, legăturile dintre entităţile bazei de
date sau dintre atributele aceleiaşi entităţi, se definesc eventualele
criterii de validare a datelor, metodele de acces la date, aspectele
referitoare la asigurarea integrităţii şi confidenţialităţii datelor etc.
2. Funcţia de manipulare a datelor este cea mai complexă
funcţie şi realizează următoarele activităţi:
- crearea bazei de date;
- încărcarea bazei de date;
- adăugarea de noi înregistrări (tupluri);
- ştergerea unor înregistrări;
- modificarea valorilor corespunzătoare unor câmpuri;
- căutarea, sortarea şi editarea parţială sau totală a unei
înregistrări virtuale etc.
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
34
3. Funcţia de utilizare asigură mulţimea interfeţelor necesare
pentru comunicarea tuturor utilizatorilor cu baza de date. În cadrul
realizării acestei funcţii apar mai multe categorii de utilizatori:
- utilizatori “liberi” sau conversaţionali. Aceştia reprezintă
categoriea beneficiarilor de informaţii (utilizatori finali) care
utilizează limbajele de interogare a bazei de date într-o formă
simplistă. Ei apar ca utilizatori neinformaticieni.
- utilizatori programatori, care utilizează limbaje de manipulare,
realizând proceduri complexe de exploatare a bazei de date;
- administratorul bazei de date, care este un utilizator special
având un rol hotărâtor în ceea ce priveşte funcţionarea optimă
a întregului ansamblu.
4. Funcţia de administrare a bazei de date. Aceasta apare ca o
funcţie complexă şi este de competenţa administratorului bazei de
date. Prin intermediul acestei funcţii, SGBD-ul oferă administratorului
bazei de date instrumentele necesare pentru asigurarea accesului
controlat la date (pe bază de user şi parolă), pentru realizarea
operaţiilor de back-up, diverse statistici privind utilizarea bazei de
date şi altele.
Testul de autoevaluare nr. 3 1. Ce presupune funcţia SGBD-ului de descriere a datelor ?
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
35
2.4. Răspunsuri şi comentarii la testele de
autoevaluare
Testul de autoevaluare nr. 1
Nivelele de structurare ale unei baze de date, în funcţie de clasa
utilizatorilor implicaţi, sunt următoarele:
- nivelul logic. Este dat de viziunea programatorului de
aplicaţii, care realizează programele de aplicaţii pentru
manipularea datelor şi structura logică (subschema)
corespunzăroare descrierii datelor aplicaţiei;
- nivelul conceptual (global). Este dat de viziunea
administratorului bazei de date, care realizează structura
conceptuală (schema) corespunzătoare descrierii bazei de
date şi administrează componentele bazei de date pentru
manipularea datelor;
- nivelul fizic. Este date de viziunea inginerului de sistem
care realizează structura fizică corespunzăroare descrierii
datelor pe suportul fizic.
Testul de autoevaluare nr. 2
Asigurarea independenţei datelor presupune că modificarea
strategiei de memorare a datelor sau a strategiei de acces la date nu
trebuie să afecteze aplicaţia care prelucrează aceste date.
Independenţa datelor faţă de aplicaţie este necesară deoarece
diferite aplicaţii au nevoie de viziuni diferite ale aceloraşi date;
administratorul bazei de date trebuie să aibă libertatea de a schimba
structura de memorare sau strategia de acces, ca răspuns la cerinţe
(schimbări de standarde, priorităţile aplicaţiilor, schimbarea unităţilor
fizice de memorare etc.), fără a modifica aplicaţiile existente; iar baza
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
36
de date existentă, precum şi programele de exploatare a ei
reprezintă o investiţie importantă la care nu trebuie să se renunţe
prea uşor.
Independenţa datelor trebuie privită din două puncte de vedere:
independenţa fizică şi independenţa logică a datelor.
Independenţa fizică a datelor implică modificarea tehnicilor fizice
de memorare a datelor fără a necesita rescrierea programelor de
aplicaţie.
Independenţa logică a datelor se referă la posibilitatea adăugării
de noi articole de date sau extinderea structurii conceptuale
(globale), fără ca aceasta să impună rescrierea programelor
existente.
Testul de autoevaluare nr. 3
Funcţia de descriere a datelor permite definirea structurii bazei de
date cu ajutorul unui limbaj de definire. La nivelul acestei funcţii se
descriu multitudinea atributelor (câmpurilor) din cadrul structurii bazei
de date, legăturile dintre entităţile bazei de date sau dintre atributele
aceleiaşi entităţi, se definesc eventualele criterii de validare a datelor,
metodele de acces la date, aspectele referitoare la asigurarea
integrităţii şi confidenţialităţii datelor etc.
2.5. Lucrare de verificare a cunoştinţelor
1. Care sunt componentele unui model de date ?
2. De câte tipuri pot fi legăturile între entităţi ?
3. Care este structura unei baze de date ?
4. Care sunt obiectivele pe care trebuie să le îndeplinească un
SGBD ?
5. Caracterizaţi funcţia de manevrare a datelor!
Baze de date. Sistem de Gestiune a Bazelor de Date. Funcţiile unui SGBD
37
Rezumat
În cadrul acestei unităţi de învăţare a fost definit conceptul de
bază de date, împreună cu cel de Sistem de Gestiune a Bazelor de
Date, ca aplicaţie software care permite crearea şi exploatarea
bazelor de date.
Au fost prezentate principalele activităţi pe care trebuie să le
execute un SGBD precum şi funcţiile de bază ale unui SGBD.
Bibliografie
1. Cârstoiu, Dorin, Baze de date relaţionale, Editura Printech,
Bucureşti, 1999
2. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
3. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
5. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
6. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Analiza sistemului informaţional existent
38
Unitatea de învăţare nr. 3
PROIECTAREA BAZELOR DE DATE
Analiza sistemului informaţional existent
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 1 39
3.1. Etapele de realizare a bazelor de date 39
3.2. Analiza sistemului informaţional 8
3.2.1. Analiza structurală a sistemului informaţional 41
Tehnica diagramelor entitate-asociere
3.2.2. Analiza dinamică (de comportament) a 49
sistemului informaţional
3.2.3. Analiza cerinţelor informaţionale 51
(analiza funcţională a sistemului)
3.2.4. Integrarea modelelor sistemului informatic 52
analizat
3.3. Răspunsuri şi comentarii la testele de autoevaluare 53
3.4. Lucrare de verificare a cunoştinţelor 55
Rezumat 55
Bibliografie 55
Analiza sistemului informaţional existent
39
OBIECTIVELE unităţii de învăţare nr. 3
Principalele obiective ale unităţii de învăţare numărul 3 sunt
următoarele:
3.1. Etapele de realizare a bazelor de date
Pentru a realiza o bază de date este necesară parcurgerea unor
etape care nu depind de tipul bazei de date create. Aceste etape
sunt:
- analiza sistemului informatic pentru care se realizează baza de
date şi a cerinţelor informaţionale solicitate de acest sistem;
- proiectarea structurii bazei de date (schema conceptuală,
externă şi internă);
- încărcarea datelor în baza de date;
- exploatarea şi întreţinerea bazei de date.
Conţinutul acestor etape, respectiv activităţile implicate şi modul
lor de desfăşurare depind, în general, de tipul bazei de date precum
şi de domeniul de activitate pentru care se construieşte baza de
date. Există însă o serie de aspecte cu caracter general care nu sunt
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
modul de analiză a sistemului informaţional, pentru
determinarea cerinţelor necesare proiectării bazei de date;
etapele realizării unei baze de date;
tehnica diagramelor entitate-asociere pentru modelarea
structurii colecţiilor de date.
Analiza sistemului informaţional existent
40
influenţate de specificul unui anumit domeniu de activitate sau de
caracteristicile unui anumit tip de baze de date. În continuare vor fi
prezentate aceste aspecte generale, aspectele specifice urmând a fi
tratate atunci când vor fi tratate diferite tipuri de baze de date.
Realizarea unei baze de date presupune şi folosirea unor metode
şi tehnici de analiză (tehnica normalizării relaţiilor, a diagramelor de
dependenţă riguroasă etc.), de programare precum şi a unor
instrumente de lucru (limbaje de descriere a datelor - LDD, limbaje
de manipulare a datelor - LMD etc.) specifice.
3.2. Analiza sistemului informaţional
Bazele de date sunt componente importante ale sistemelor
informatice. Sistemul informatic este o componentă a unui sistem
economic/social care foloseşte tehnica de calcul pentru culegerea,
stocarea, prelucrarea şi transmiterea informaţiilor care se folosesc în
cadrul sistemului economic/social respectiv. Un sistem informatic
implementează un sistem informaţional, care există la nivelul unui
sistem economic/social. Sistemul informaţional realizează legătura
între subsistemul conducător şi subsistemul executant, existente în
cadrul unui sistem economic/social.
Analiza sistemului informatic are ca scop elaborarea unuia sau
mai multor modele ale acestui sistem, modele care să permită
ulterior elaborarea structurii bazei de date. Această analiză
presupune următoarele etape:
- analiza componentelor sistemului şi a legăturilor (asocierilor)
dintre acestea, activitate cunoscută şi sub numele de analiză
statică sau structurală, în urma căruia se obţine modelul
structural (static) al sistemului;
- analiza stărilor sistemului şi a tranziţiilor posibile între aceste
stări, în raport de anumite evenimente. Aceasta este aşa
Analiza sistemului informaţional existent
41
numita analiză temporală (comportamentală), prin care se
obţine modelul dinamic (sau temporal) al sistemului;
- analiza cerinţelor informaţionale, respectiv a transformărilor de
date (a tranzacţiilor) din cadrul sistemului prin care sunt
satisfăcute cerinţele informaţionale asociate sistemului. În
urma acestei activităţi se obţine modelul funcţional al
sistemului informatic analizat;
- integrarea modelelor sistemului informatic (structural, dinamic
şi funcţional) în scopul corelării şi completării lor.
3.2.1. Analiza structurală a sistemului informaţional. Tehnica
diagramelor entitate-asociere
Analiza structurală a sistemului informatic are ca obiectiv
evidenţierea componentelor (obiectelor) din cadrul sistemului, pentru
care urmează să se colecteze şi să se memoreze date în cadrul
bazei de date, precum şi evidenţierea legăturilor dintre aceste
componente.
Există astăzi mai multe tehnici de analiză structurală, cea mai
utilizată dintre acestea fiind tehnica entitate-asociere. Această
Testul de autoevaluare nr. 1 1. Care sunt etapele realizării unei baze de date?
2. Care sunt obiectivele analizei structurale?
Analiza sistemului informaţional existent
42
tehnică permite constituirea modelului structural sub forma unei
diagrame entitate-asociere prin parcurgerea următorilor paşi:
- identificarea componentelor (entităţilor) din cadrul sistemului
informatic analizat;
- identificarea asocierilor dintre entităţi şi calificarea acestora;
- identificarea atributelor aferente entităţilor şi asocierilor dintre
entităţi;
- stabilirea atributelor de identificare a entităţilor.
Tehnica diagramelor entitate-asociere a cunoscut ma multe forme
de reprezentare. În continuare vom prezenta diagramele DER în
forma definită de Chen. Aceasta este mai sugestivă în ceea ce
priveşte înţelegerea structurii entităţilor care compun un sistem dar
este mai greu de utilizat practic. Ulterior se va prezenta o formă a
diagramelor entitate-relaţie care sunt mai uşor de folosit în aplicaţii
practice dar pentru înţelegerea cărora trebuie ceva mai mult efort.
Identificarea componentelor sistemului informatic
Componentele sistemului informatic sunt entităţi (obiecte) care au
anumite proprietăţi şi care fac schimb de informaţii cu alte entităţi ale
sistemului. Ele sunt reprezentate în cadrul diagramei entitate-
asociere prin blocuri dreptunghiulare.
Considerând activitatea dintr-o instituţie de învăţământ superior se
pot identifica următoarele entităţi:
- cadre didactice (CADRE_DIDACTICE);
- studenţi (STUDENŢI);
- personal didactic auxiliar (PERS.DID.AUX.);
- personal administrativ (PERS.ADMIN.);
- serviciul administrativ (SERV.ADMIN.);
- serviciul personal (SERV.PERS.);
- serviciul contabilitate (SERV.CONTAB.);
- serviciul social (SERV.SOCIAL).
Analiza sistemului informaţional existent
43
Fiecare entitate poate prezenta în cadrul sistemului mai multe
instanţe (realizări). În urma acestei etape se elaborează o primă
formă a diagramei entitate-asociere, formă prezentată în figura
următoare.
Fig. 3.1. Reprezentarea entităţilor în diagrama entitate-asociere
Identificarea asocierilor dintre entităţi şi calificarea acestora
Componentele unui sistem nu sunt decât arareori izolate, între
acestea stabilindu-se legături (asocieri). Spre exemplu, între entităţile
STUDENŢI şi SERV.SOCIAL există o asociere, în sensul că serviciul
social pune la dispoziţia studenţilor locuri de cazare în cămin.
Legăturile dintre entităţi sunt reprezentate prin arce neorientate,
care fac legătura între nodurile ce reprezintă entităţile participante la
asociere.
Semnificaţia legăturii se exprimă printr-un nume acordat legăturii
şi se reprezintă cu ajutorul unui nod etichetă în formă de romb, plasat
ca nod intermediar între entităţi.
Tipul (forma) legăturii se exprimă cu ajutorul cardinalităţii.
Cardinalitatea unei legături reprezintă numărul minim şi numărul
maxim de realizări (instanţe) de entitate care pot fi asociate cu o
realizare a partenerului de asociere. Cardinalitatea se exprimă prin
Analiza sistemului informaţional existent
44
perechi de numere, câte o pereche pentru fiecare entitate din cadrul
legăturii.
Fig. 3.2. Reprezentarea unei legături (asocieri) între două entităţi
cu menţionarea semnificaţiei şi a cardinalităţii
În figura de mai sus este prezentat modul de reprezentare al unei
legături cu menţionarea semnificaţiei legăturii şi a cardinalităţii
acesteia. Cardinalitatea legăturii de mai sus se poate interpreta
astfel:
- Serviciul social este obligat să asigure, în limita locurilor
disponibile în cămine, locuri de cazare pentru toţi studenţii care
solicită acest lucru chiar dacă este vorba doar de un singur
student;
- Pot solicita locuri de cazare în cămine un număr de studenţi
până la numărul maxim de studenţi care locuiesc în alte
localităţi, fiind posibilă şi situaţia în care nici un student nu
solicită cazare în cămin.
Legăturile (asocierile) între entităţi pot fi de mai multe tipuri şi
anume:
1. După cardinalitatea asocierii putem avea două situaţii, funcţie
de gradul asocierii, respectiv obligativitatea participării entităţilor la
asociere.
După gradul asocierii (valorile maxime ale cardinalităţi) avem:
- asocieri de tipul “unu la unu”. Aceasta înseamnă că cel puţin
o realizare a fiecărei entităţi trebuie să participe la asociere.
Analiza sistemului informaţional existent
45
- asocieri de tipul “unu la mulţi”. În acest caz o realizare a unei
entităţi are legături cu mai multe realizări ale celeilalte entităţi
care participă la asociere.
- asocieri de tipul “mulţi la mulţi”, caz în care mai multe
realizări ale unei entităţi participante la legătură se asocieză cu
mai multe realizări ale celeilalte entităţi.
După obligativitatea participării entităţilor la asociere (minimele
cardinalităţii) avem:
- asocieri parţiale; la care entităţile nu sunt obligate să participe
(deci pot avea valoarea minimă a cardinalităţii zero);
- asocieri totale sau complete; când cel puţin o realizare a
fiecărei entităţi trebuie să participe la sociere.
2. După numărul de entităţi distincte care participă la asociere
avem:
- asocieri binare; care se realizează între două entităţi distincte;
- asocieri recursive; asocieri ale entităţilor cu ele însele;
- asocieri complexe; asocieri realizate între mai mult de două
entităţi distincte.
3. După semnificaţia lor asocierile se pot clasifica într-o multitudine
de categorii datorită semnificaţiilor extrem de variate în cadrul unui
anumit sistem informatic. În cadrul analizei structurale este necesar
să fie identificate şi analizate asocierile dintre entităţile aflate pe
nivele de abstractizare diferite, mai precis asocierile de tipul “este un”
şi “este conţinut în”.
Asocierile de tipul “este un”
Entităţile puse în evidenţă în cadrul primei etape de analiză
structurală pot prezenta diferite grade de abstractizare, deci se pot
plasa pe diferite nivele în cadrul schemei de clasificare a entităţilor.
În acest sens există entităţi generice (clase), obţinute printr-un
Analiza sistemului informaţional existent
46
proces de generalizare a entităţilor cu anumite caracteristici comune,
numite subclase.
De exemplu, membrii unei universităţi reprezintă o entitate clasă,
care generează entităţile STUDENŢI şi ANGAJAŢI, ultima generând,
la rândul ei, entităţile CADRE DIDACTICE, PERS.DID.AUXILIAR şi
PERS.ADMINISTRATIV.
Asocierea de tip “este un” se prezintă întotdeauna ca o asociere
parţială de tip “unu la unu”.
Asocierile de tipul “este conţinut în”
Asocierile de tipul “este conţinut în” exprimă un proces de
agregare, de grupare a mai multor entităţi într-o entitate de nivel
superior. Spre deosebire de tipul “este un”, asocierea “este conţinut
în” este calificată, după cardinalitate drept asociere de tip “unu la
mulţi” sau “mulţi la mulţi”, totală sau parţială.
Identificarea atributelor aferente entităţilor şi asocierilor
dintre entităţi
Atributele exprimă caracteristici, proprietăţi ale componentelor
sistemului informatic analizat sau ale asocierilor (legăturilor) dintre
aceste componente.
În cadrul diagramei entitate-asociere, atributele sunt figurate prin
blocuri ovale, legate de entitatea, respectiv asocierea pe care o
descriu într-un mod specific, în funcţie de tipul atributelor. Ex.:
Atributele pot fi de mai multe tipuri, după cum urmează:
Analiza sistemului informaţional existent
47
1. Atribut compus (bloc). Acesta este un atribut format din cel
puţin două alte atribute. Valoarea sa este reprezentată de
valorile atributelor componente. Ex.:
2. Atribut calculat (dedus). Acesta reprezintă un atribut a cărui
valoare nu este cunoscută direct, ci se calculează pe baza
valorilor altor atribute (de exemplu, atributul VALOARE,
calculat ca produs între CANTITATE şi PREŢ).
3. Atribut simplu; atribut care nu este nici compus şi nici
calculat. Valorile sale sunt valori atomice, adică nu mai pot fi
descompuse în elemente componente.
4. Atribut repetitiv multivaloare. Acesta este un atribut format
din mai multe valori care se repetă de mai multe ori pentru
aceeaşi entitate. De exemplu : entitatea STUDENT poate fi
caracterizată de atributele simple NUME şi GRUPĂ precum şi
de atributul repetitiv DISCIPLINĂ, NOTĂ care este identic
pentru toate disciplinele audiate de un student.
5. Atribut de identificare (cheie). Reprezintă un atribut care se
caracterizează prin unicitatea valorii sale pentru fiecare
instanţă a entităţii căreia îi aparţine.
Atributele de identificare au un rol aparte în organizarea şi
manipularea informaţiilor din baza de date. Stabilirea atributelor de
identificare pentru entităţile din cadrul sistemului informatic analizat
Analiza sistemului informaţional existent
48
necesită examinarea mai întâi a capacităţii fiecărui atribut de a se
constitui drept atribut de identificare (cheie).
Un atribut poate fi atribut de identificare dacă îndeplineşte o serie
de cerinţe şi anume:
- oferă o identificare unică a realizărilor (instanţelor) de entitate;
- posedă o semnificaţie clară;
- este uşor de utilizat;
- este scurt.
Pentru o aceeaşi entitate pot exista mai multe atribute care pot
servi drept atribute de identificare, adică pot exista mai multe chei
candidate.
Selectarea unuia dintre candidaţii cheie drept atribut de
identificare a entităţii (cheie) se realizează astfel:
1. Se determină atributele care potenţial pot constitui atribute de
identificare a entităţii, deci care respectă cerinţele menţionate
anterior şi care poartă numele de candidaţi cheie. Dacă nu
există astfel de atribute se introduce un nou atribut (sau grup
de atribute) drept candidat cheie.
2. Dacă există un singur candidat cheie, se va selecta acesta
drept atribut de identificare a entităţii.
3. Dacă există mai mulţi candidaţi cheie, se selectează unul, cu
ajutorul unor euristici, precum:
- se preferă atributele ale căror valori sunt mai puţin volatile;
- se preferă atributele ale căror valori sunt mai scurte.
Testul de autoevaluare nr. 2 Precizaţi principalele tipuri de atribute existente.
Analiza sistemului informaţional existent
49
3.2.2. Analiza dinamică (de comportament) a sistemului
informaţional
Analiza dinamică are drept scop explicarea comportamentului
elementelor componente ale sistemului informatic analizat. În urma
acestei analize se obţine modelul dinamic al sistemului analizat.
Construirea modelului dinamic presupune următoarele etape:
- identificarea stărilor în care se pot afla componentele
sistemului;
- identificarea evenimentelor care determină trecerea unei
componente dintr-o stare în alta;
- stabilirea succesiunii (fluxului) de evenimente şi construirea
unei diagrame care să reflecte tranziţiile de stare pentru
componentele sistemului (diagramă de flux a evenimentelor).
La realizare diagramei de flux a evenimentelor este necesar să se
ţină cont de restricţiile dinamice ale sistemului care servesc la
identificarea tranziţiilor admisibile între două stări.
Fig. 3.3. Stările unei resurse de producţie (utilaj, secţie etc.) şi
tranziţiile între aceste stări
În figura de mai sus sunt prezentate stările posibile ale unei
resurse de producţie generice. Particularizarea acestui model pentru
un depozit de materii prime este prezentată în figura următoare.
Analiza sistemului informaţional existent
50
Fig. 3.4. Modelul dinamic al unui depozit de materii prime privit ca
resursă de producţie
3.2.3. Analiza cerinţelor informaţionale (analiza funcţională a
sistemului)
Analiza cerinţelor informaţionale are drept scop determinarea
transformărilor de date care se produc în cadrul sistemului informatic
analizat, în scopul satisfacerii cerinţelor informaţionale aferente
acestuia. Transformările de date (tranzacţiile) se vor reprezenta sub
Testul de autoevaluare nr. 3 1. Care este obiectivul analizei dinamice ?
Analiza sistemului informaţional existent
51
forme unei diagrame de flux a prelucrărilor (modelul funcţional), în
care nodurile reflectă procesele de prelucrare informaţională, iar
arcele reflectă fluxurile informaţionale.
În cadrul analizei funcţionale accentul se deplasează de la
realitatea analizată către cerinţele informaţionale ale utilizatorilor,
cerinţe a căror satisfacere constituie obiectivul realizării bazei de
date.
Construirea modelului funcţional presupune parcurgerea
următoarelor etape:
- identificarea datelor de intrare şi a datelor de ieşire din sistem;
- construirea diagramelor de flux, prin care sunt reflectate
legăturile procedurale dintre intrări şi ieşiri;
- identificarea restricţiilor;
precizarea criteriilor de optimizare.
În figura următoare sunt prezentate două modele funcţionale
parţiale, primul se referă la căutarea preţului unui articol dintr-un
nomenclator de articole, iar al doilea la tranzacţiile (transformările de
date) care se fac pentru a opera o modificare într-un cont bancar al
unui client.
Fig. 3.5. Modele funcţionale parţiale
Analiza sistemului informaţional existent
52
3.2.4. Integrarea modelelor sistemului informaţional analizat
Analiza sistemului informatic se finalizează prin integrarea
modelelor structural, dinamic şi a celui funcţional.
Modelul structural şi cel dinamic sunt obţinute prin investigarea
sistemului real a proprietăţilor intrinseci, statice şi dinamice ale
componentelor acestui sistem, proprietăţi care sunt independente de
aplicaţiile care operează asupra lor.
Modelul funcţional este rezultatul analizei cerinţelor informaţionale
ale utilizatorilor, mai precis a tranzacţiilor (aplicaţiilor) prin care pot fi
satisfăcute aceste cerinţe.
Perspectiva diferită din care este realizată analiza explică de ce
rezultatele obţinute pot să difere fiind necesară o coordonare, deci o
integrare a lor.
În cadrul etapei de integrare a modelelor sistemului se stabileşte
în ce măsură modelul structural şi cel dinamic satisfac necesităţile
diferitelor aplicaţii, verificându-se completitudinea (existenţa
Testul de autoevaluare nr. 4
1. Care este obiectivul analizei funcţionale ?
Analiza sistemului informaţional existent
53
elementelor informaţionale solicitate) şi consistenţa lor (în ce măsură
componentele modelelor sunt necesare şi suficiente în raport cu
procesele de prelucrare). Se verifică dacă relaţiile dintre
componentele sistemului sunt stabilite în mod corespunzător, pentru
a face posibilă regăsirea informaţiilor din mai multe entităţi. Se
determină, de asemenea, dacă legăturile dintre entităţi asigură
coerenţa informaţiilor, posibilitatea efectuării de actualizări
concomitente asupra datelor redundante.
Se urmăreşte ca toate elementele informaţionale participante la
diferitele tranzacţii să fie asignate, ca atribute ale diferitelor entităţi.
Pe baza acestei analize integrate se efectuează adăugările şi/sau
corelările necesare între modelele sistemului.
În final se ajunge ca modelul structural şi cel dinamic să nu mai fie
complet independente de aplicaţii, iar modelul funcţional să nu mai
fie orientat exclusiv pe aplicaţii.
3.3. Răspunsuri şi comentarii la testele de
autoevaluare
Testul de autoevaluare nr. 1
1. Etapele realizării unei baze de date sunt:
- analiza sistemului informatic pentru care se realizează baza de
date şi a cerinţelor informaţionale solicitate de acest sistem;
- proiectarea structurii bazei de date (schema conceptuală,
externă şi internă);
- încărcarea datelor în baza de date;
- exploatarea şi întreţinerea bazei de date.
2. Obiectivul analizei structurale constă în identificarea
componentelor sistemului şi a legăturilor (asocierilor) dintre acestea,
Analiza sistemului informaţional existent
54
activitate în urma căreia se obţine modelul structural (static) al
sistemului;
Testul de autoevaluare nr. 2
Atributele pot fi :
1. Atribut compus (bloc). Acesta este un atribut format din cel
puţin două alte atribute. Valoarea sa este reprezentată de
valorile atributelor componente. Ex.:
2. Atribut calculat (dedus). Acesta reprezintă un atribut a cărui
valoare nu este cunoscută direct, ci se calculează pe baza
valorilor altor atribute (de exemplu, atributul VALOARE,
calculat ca produs între CANTITATE şi PREŢ).
3. Atribut simplu; atribut care nu este nici compus şi nici
calculat. Valorile sale sunt valori atomice, adică nu mai pot fi
descompuse în elemente componente.
4. Atribut repetitiv multivaloare. Acesta este un atribut format
din mai multe valori care se repetă de mai multe ori pentru
aceeaşi entitate. De exemplu : entitatea STUDENT poate fi
caracterizată de atributele simple NUME şi GRUPĂ precum
şi de atributul repetitiv DISCIPLINĂ, NOTĂ care este identic
pentru toate disciplinele audiate de un student.
5. Atribut de identificare (cheie). Reprezintă un atribut care se
caracterizează prin unicitatea valorii sale pentru fiecare
instanţă a entităţii căreia îi aparţine.
Testul de autoevaluare nr. 3
Analiza dinamică are drept scop explicarea comportamentului
elementelor componente ale sistemului informatic analizat. În urma
acestei analize se obţine modelul dinamic al sistemului analizat.
Analiza sistemului informaţional existent
55
Testul de autoevaluare nr. 4
Analiza funcţională are drept scop determinarea transformărilor de
date care se produc în cadrul sistemului informatic analizat, în scopul
satisfacerii cerinţelor informaţionale aferente acestuia. Transformările
de date (tranzacţiile) se vor reprezenta sub forme unei diagrame de
flux a prelucrărilor (modelul funcţional), în care nodurile reflectă
procesele de prelucrare informaţională, iar arcele reflectă fluxurile
informaţionale.
3.4. Lucrare de verificare a cunoştinţelor
1. Explicaţi tehnica diagramelor entitate-asociere.
2. Definiţi cardinalitatea unei legături.
3. Precizaţi tipurile de legături posibile între entităţi.
4. Cum se clasifică atributele unei entităţi ?
5. Prin ce se caracterizează atributul cheie ?
Rezumat
În această unitate de învăţare au fost prezentate etapele de
analiză a sistemelor informaţionale împreună cu tehnica diagramelor
entitate-asociere.
Bibliografie
1. Cârstoiu, Dorin, Baze de date relaţionale, Editura Printech,
Bucureşti, 1999
2. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
Analiza sistemului informaţional existent
56
3. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
5. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
6. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
57
Unitatea de învăţare nr. 4
PROIECTAREA BAZELOR DE DATE
Proiectarea structurii bazei de date. Implementarea şi
exploatarea BD
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 4 58
4.1. Proiectarea structurii bazei de date 58
4.1.1. Alegerea sistemului de gestiune al bazei de date 59
4.1.2. Proiectarea schemei conceptuale 61
4.1.3. Proiectarea schemei externe 66
4.2. În cărcarea datelor în baza de date 67
4.3. Exploatarea şi întreţinerea bazei de date 68
4.4. Răspunsuri şi comentarii la testele de autoevaluare 70
4.5. Lucrare de verificare a cunoştinţelor 71
Rezumat 72
Bibliografie 73
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
58
OBIECTIVELE unităţii de învăţare nr. 4
Principalele obiective ale unităţii de învăţare numărul 4 sunt
următoarele:
4.1. Proiectarea structurii bazei de date
Modelele obţinute în urma analizei sistemului informaţional sunt
modele ale datelor despre sistem. O caracteristică esenţială a
acestor modele (denumite şi modele conceptuale sau semantice)
este faptul că sunt independente de instrumentul, respectiv SGBD-ul
prin intermediul căruia devin operaţionale.
Etapa de analiză a sistemului informatic este important să se
realizeze independent de un SGBD specificat. Orientarea pe
conceptele proprii unui anumit SGBD prezintă numeroase
dezavantaje cum sunt:
schimbarea SGBD-ului impune reproiectarea Bazei de Date;
conceptele tehnice ale SGBD-ului pot influenţa negativ
activitatea de analiză şi modelare, prin restricţii impuse de
acesta, care pot încuraja sau descuraja anumite reprezentări;
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
modul de proiectare a structurii unei baze de date;
un set minim de principii care se folosesc la proiectarea
unei baze de date.
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
59
fixând ca punct de plecare facilităţile unui SGBD, utilizatorul
neinformatician care nu stăpâneşte acest SGBD nu îşi poate
exprima cerinţele în deplină cunoştinţă de cauză.
Trecerea la proiectarea structurii bazei de date impune luarea în
considerare a SGBD-ului cu ajutorul căruia va fi implementată şi
exploatată baza de date. Acesta deoarece baza de date reprezintă
un model al datelor exprimat cu ajutorul conceptelor specifice unui
anumit SGBD, ceea ce face ca proiectarea structurii bazei de date să
reprezinte transpunerea modelelor conceptuale în termenii unui
model al datelor suportat de un anumit tip de SGBD (model ierarhic,
reţea, relaţional, orientat obiect etc.).
Etapa de proiectare a structurii bazei de date constă în
următoarele activităţi:
alegerea SGBD-ului care va fi utilizat pentru implementarea şi
exploatarea bazei de date;
proiectarea schemei conceptuale a bazei de date;
proiectarea schemei externe (subschemei) a bazei de date;
proiectarea schemei interne (de memorare) a bazei de date.
Deoarece aceste activităţi sunt puternic influenţate de tipul bazei
de date care se proiectează, în continuare sunt prezentate aspectele
generale, valabile indiferent de tipul bazei de date proiectate.
Aspectele particulare urmează a fi prezentate atunci când vor fi
prezentate diferite tipuri de baze de date.
4.1.1. Alegerea sistemului de gestiune al bazei de date
Alegerea unui SGBD presupune realizarea următoarelor activităţi:
1. Stabilirea cerinţelor utilizatorilor, sub aspectul:
tipurilor de aplicaţii dorite;
timpului de răspuns;
confidenţialităţii datelor;
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
60
securităţii datelor;
uşurinţei de utilizare şi altele.
2. Stabilirea cerinţelor de ordin tehnic privind realizarea bazei de
date, cum sunt:
portabilitatea SGBD-ului, adică posibilitatea folosirii SGBD-ului
pe diferite sisteme de calcul;
portabilitatea colecţiilor de date şi a programelor. Aceasta
înseamnă că datele pregătite cu ajutorul unui calculator să
poată fi transferate direct pe alt tip de calculator, împreună cu
programele aferente, fără alte operaţii auxiliare;
facilităţile de încărcare, exploatare şi întreţinere a bazei de date
care trebuiesc asigurate (modalităţile de descriere a datelor,
tehnicile de organizare şi regăsire a datelor etc.) şi altele.
3. Stabilirea cerinţelor de ordin economic, privind:
încadrarea în bugetul alocat pentru realizarea bazei de date;
timpul necesar pentru pregătire utilizatorilor şi trecerea la
exploatarea curentă a bazei de date.
4. Ierarhizarea cerinţelor de la punctele anterioare, în funcţie de
importanţa (prioritatea) acordată fiecărei cerinţe în parte.
5. Analiza comparativă a SGBD-urilor disponibile şi/sau posibil de
achiziţionat, în funcţie de caracteristicile pe care le prezintă aceste
SGBD-uri.
6. Stabilirea corespondenţei între cerinţele formulate la punctele 1-
3 şi caracteristicile diferitelor SGBD-uri analizate, pentru a determina
măsura în care diferitele SGBD-uri analizate permit satisfacerea
cerinţelor formulate.
7. Alegerea propriu-zisă a SGBD-ului care va fi folosit la realizarea
bazei de date.
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
61
4.1.2. Proiectarea schemei conceptuale
Proiectarea schemei conceptuale a bazei de date presupune
următoarele activităţi:
stabilirea colecţiilor de date şi definirea detaliată a
conţinutului acestora;
determinarea legăturilor dintre colecţiile de date şi a modului
de reprezentare a acestora în cadrul schemei conceptuale;
testarea schemei obţinute şi revizuirea acesteia, dacă este
cazul;
descrierea schemei conceptuale în limbajul de descriere a
datelor de care dispune SGBD-ul şi încărcarea acestei
descrieri în baza de date.
La realizarea acestor activităţi sunt utilizate, în principal, modelul
structural şi cel dinamic al sistemului analizat.
Test de autoevaluare nr. 1
Ce presupune alegerea sistemului de gestiune a bazelor de
date utilizat?
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
62
Stabilirea colecţiilor de date şi a conţinutului acestora
La stabilirea colecţiilor de date (a componentelor schemei
conceptuale) se pleacă de la entităţile identificate în etapa de analiză
a sistemului. Fiecărei entităţi îi corespunde, de obicei, o colecţie de
date în cadrul schemei conceptuale. În aceste colecţii vor figura
atributele specifice entităţilor plus eventual o serie de atribute pentru
exprimarea legăturilor cu celelalte componente ale sistemului real,
atribute cunoscute sub numele de chei externe.
Deoarece nu întotdeauna există o corespondenţă strictă între
entităţile din modele semantice şi colecţiile de date din schema
conceptuală a bazei de date şi din considerente de ameliorare a
lucrului pe aceste colecţii de date se poate decide <spargerea> unei
entităţi în două sau mai multe colecţii de date. Acest lucru duce la o
creştere a flexibilităţii de operare cu colecţiile de date respective.
“Spargerea” unei entităţi în două sau mai multe colecţii de date se
realizează ţinând seama de cerinţele informaţionale ale sistemului şi
de durata de existenţă a datelor în cadrul sistemului. Astfel, datele
care sunt solicitate mai des de către utilizatori, cele care se modifică
la intervale reduse de timp sau cele care, deşi nu se modifică prea
des, sunt solicitate frecvent de către programe pentru a genera alte
date (prin calcul sau în alt mod), pot constitui colecţii separate de
date pentru a reduce timpul necesar regăsirii informaţiilor căutate. De
exemplu, să considerăm entitatea UTILAJE aparţinând unui model al
unei unităţi de producţie. Un utilaj este caracterizat de următoarele:
denumire, tip, număr de inventar, valoare de achiziţionare, data
achiziţiei, durata normată de funcţionare, totalul orelor de
funcţionare, datele reparaţiilor curente planificate etc. Dar nu toate
aceste informaţii prezintă importanţă pentru utilizatori la un moment
dat. Aceştia pot fi interesaţi, de exemplu, de caracteristicile generale
ale utilajului sau de caracteristicile legate de funcţionarea sau
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
63
întreţinerea utilajului. Din acest motiv, în cadrul schemei conceptuale
a bazei de date pot apare două sau mai multe colecţii de date
referitoare la utilajele de producţie şi anume: un nomenclator de
utilaje, o colecţie de date referitoare la funcţionarea utilajelor, o
colecţie privind reparaţiile efectuate sau planificate.
Un alt motiv pentru care apare necesară descompunerea unei
colecţii de date în două sau mai multe colecţii derivă din legăturile
care apar între atributele unei entităţi. Aceste legături conduc la
dependenţe între date datorită cărora, la momentul exploatării bazei
de date pot apare o serie de disfuncţionalităţi, aşa numitele
“anomalii” de actualizare. Se impune deci reducerea la minimum a
dependenţelor (condiţionărilor) dintre atributele unei colecţii de date,
lucru realizat, de obicei, prin descompunerea colecţiei în două sau
mai multe colecţii de date cu un număr mai mic de atribute. Cu toate
acestea, îmbunătăţirea performanţelor în manipularea entităţilor nu
presupune obligatoriu mărirea numărului colecţiilor de date folosite în
cadrul schemei conceptuale. Aceasta deoarece nu se poate admite o
creştere nelimitată a numărului de colecţii de date, lucru care
determină creşterea dificultăţilor de localizare şi accesare a datelor.
Legăturile între un număr mare de colecţii de date impune şi
creşterea redundanţei datelor în cadrul bazei de date şi deci o
utilizare ineficientă a suportului de memorare.
Rezultatele obţinute prin prelucrări costisitoare efectuate asupra
datelor din baza de date pot fi memorate folosind colecţii de date
special introduse, astfel încât aceste rezultate să nu fie recalculate
ori de câte ori sunt solicitate de utilizatori. Este vorba, bineînţeles de
informaţii solicitate frecvent de către utilizatori. Prin memorarea
acestor rezultate creşte redundanţa datelor, dar se evită efectuarea
repetată a unor calcule complicate.
Pentru scurtarea căilor de acces la date se mai admite un tip de
redundanţă, şi anume cea care apare datorită includerii unor atribute,
simultan în mai multe colecţii ale bazei de date.
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
64
În continuare este prezentat un exemplu referitor la drepturile
profesorilor care lucrează într-un liceu. Se pot forma două colecţii de
date, una cu informaţiile privind:
numele angajatului;
salariul de bază;
vechimea;
numărul de ore suplimentare;
numărul de ore de dirigenţie etc.
informaţii care au un grad ridicat de stabilitate, şi alta cu informaţii privind:
numele angajatului;
salariul de bază;
sporul de vechime;
numărul de zile lucrate;
numărul zilelor de concediu medical şi de odihnă;
numărul de ore suplinite;
suma pentru orele suplinite;
restanţe de plată;
suma dedusă pentru pensie suplimentară şi şomaj;
impozitul pe salariu;
chirii;
alte reţineri;
avans;
restul de plată la lichidare;
informaţii care trebuiesc adăugate în baza de date lunar, fie din
exterior, fie prin calculul acestora prin program.
Determinarea legăturilor dintre colecţiile de date şi a modului
de reprezentare a acestora
Aceasta se realizează, în principiu, pe baza legăturilor dintre
entităţile identificate în cadrul etapei de analiză a sistemului şi a
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
65
cerinţelor informaţionale. Este necesar să se determine, de
asemenea şi legăturile dintre colecţiile care nu au un corespondent
direct în entităţile care compun sistemul, dar care la rândul lor se află
în asociere, unele cu altele.
Modul de reprezentare a legăturilor dintre colecţiile de date
depinde de modelul datelor suportatde SGBD. Astfel, modelul
ierarhic şi cel reţea utilizează pointeri (adrese de legătură) pentru
înlănţuirea datelor în cadrul diferitelor colecţii.
Modelul relaţional reprezintă legăturile dintre colecţiile de date
(relaţii) cu ajutorul cheilor externe sau cu ajutorul unor colecţi de date
distincte. Această reprezentare uniformă a datelor şi a asocierilor
între date prin intermediul relaţiilor constituie o caracteristică a
modelului relaţional, care conferă acestuia o mare simplitate şi
flexibilitate.
Testarea schemei conceptuale
Testarea schemei conceptuale presupune verificarea
completitudinii şi consistenţei schemei conceptuale, adică
determinarea gradului în care schema conţine elementele
informaţionale necesare satisfacerii cerinţelor informaţionale ale
diferiţilor utilizatori şi măsura în care legăturile stabilite între aceste
elemente informaţionale reflectă raporturile naturale dintre
componentele sistemului real. De asemenea, prin testarea schemei
conceptuale trebuie să se verifice dacă redundanţa datelor este la un
nivel minim şi poate fi controlată.
Testarea schemei conceptuale permite identificarea unor
eventuale erori de proiectare care fac necesară revizuirea schemei.
În acest caz se va relua etapa de proiectare a structurii bazei de
date, şi, uneori, chiar şi etapa de analiză a sistemului şi a cerinţelor
informaţionale.
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
66
Descrierea schemei conceptuale în limbajul de descriere a
datelor şi încărcarea sa în baza de date
Descrierea schemei conceptuale a bazei de date se realizează în
limbajul de descriere a datelor de care dispune SGBD-ul folosit.
Rezultatul acestei descrieri îl constituie proiectul bazei de date sau
schema bazei de date.
Compilatorul limbajului de descriere a datelor permite aducerea
schemei bazei de date în forma la care aceasta să poată fi memorată
în baza de date.
4.1.3. Proiectarea schemei externe
Schema externă a bazei de date reprezintă forma sub care apare
schema conceptuală pentru utilizatori. Ea este formată din
multitudinea viziunilor (vederilor) utilizator. O vedere utilizator
Test de autoevaluare nr. 2
Ce presupune testarea schemei conceptuale ?
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
67
reprezintă acea parte din schema conceptuală pe care o poate
vedea un anumit utilizator.
Programele de aplicaţie operează asupra schemei conceptuale
prin intermediul schemei externe, având acces doar la acele
elemente care sunt incluse în schema externă.
Folosirea vederilor reprezintă mecanismul prin care sunt
satisfăcute cererile de informaţii ale utilizatorilor (deoarece un
utilizator nu este interesat de toate informaţiile stocate în baza de
date) asigurând totodată şi protecţia datelor contra accesului
neautorizat la date (folosind vederile se limitează accesul fiecărui
utilizator doar la acele date care îi sunt necesare).
4.1.4. Proiectarea schemei interne
Schema internă reprezintă modul în care sunt memorate datele pe
suport fizic. Schema conceptuală foloseşte diferite structuri de date:
liniară, arborescentă, reţea, relaţională în timp ce memorarea datelor
pe suport fizic se poate face numai sub forma unei structuri linare.
Din această cauză, la proiectarea schemei interne a bazei de date
se pune problema modului în care să fie liniarizată schema
conceptuală.
Metoda de liniarizare a schemei conceptuale depinde de SGBD-ul
folosit. Există astfel SGBD-uri care fac apel la metodele de
memorare ale datelor pe suportul fizic de memorare pe care le
folosesc şi sistemele de operare gazdă şi SGBD-uri care utilizează
metode proprii de stocare a datelor pe suportul fizic. Aceste SGBD-
uri depind mai puţin de sistemul de operare gazdă, ceea ce le oferă o
portabilitate sporită, comparativ cu SGBD-urile din prima categorie.
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
68
4.2. Încărcarea datelor în baza de date
Aceasta este etapa în care se realizează popularea masivă cu
date a bazei de date. Deşi conţinutul acestei etape este relativ
simplu, fără dificultatea şi creativitatea reclamate de activităţile de
analiză şi proiectare, încărcarea datelor în baza de date reprezintă
totuşi o activitate dificil de realizat datorită volumului mare de date
care se transferă în baza de date de la diferite surse de date.
Test de autoevaluare nr. 3
Definiţi conceptele de schemă externă, respectiv, schmeă
internă ?
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
69
Fig. 4.1. Fazele încărcării datelor în baza de date
După cum se vede în figura de mai sus, sursele de alimentare cu
date a bazei pot fi:
documente primare (facturi, bonuri, chitanţe etc.);
colecţii de date, gestionate prin diverse instrumente
informatice, de exemplu preluarea datelor dintr-o bază de
date creată anterior, folosind un SGBD cu care nu se mai
lucrează în continuare.
Indiferent de sursa datelor, se recomandă ca, în scopul încărcării
bazei de date, să se constituie colecţii temporare de date (fişiere). În
situaţia în care datele se preiau din documente primare este
necesară utilizarea unor colecţii temporare pentru a se deplasa
activitatea de validare a datelor cât mai devreme în procesul de
încărcare a datelor în baza de date. Programele de încărcare a bazei
de date, scrise în limbajul de manipulare a datelor de care dispune
SGBD-ul trebuie să conţină cât mai puţine validări deoarece aceste
validări încetinesc mult execuţia programelor şi determină apariţia
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
70
unor “puncte albe” în baza de date, de exemplu, legături
neconstituite datorită inexistenţei datelor corespunzătoare.
Pe de altă parte, în situaţia în care datele se preiau din colecţii
gestionate prin alte instrumente informatice, este necesară utilizarea
colecţiilor temporare pentru a se putea adapta cât mai bine structura
acestor colecţii la modul de organizare a datelor în baza de date.
Programele de încărcare vor fi în acest caz mai simple şi mai
robuste, asigurând un transfer mai rapid al datelor în baza de date.
4.3. Exploatarea şi întreţinerea bazei de date
Exploatarea bazelor de date de către diferiţi utilizatori finali are ca
scop satisfacerea cerinţelor informaţionale ale acestora. SGBD-urile
sprijină utilizatorii finali în exploatrea bazelor de date oferind o serie
de mecanisme şi instrumente pentru descrierea cerinţelor de date,
cum ar fi limbaje de manipulare a datelor etc.
Întreţinerea bazei de date este o activitate complexă care are ca
scop actualizarea datelor din baza de date, recuperarea datelor
pierdute accidental, reproiectarea structurii bazei de date şi orice alte
activităţi necesare menţinerii funcţionalităţii bazei de date.
Întreţinerea bazei de date este realizată în principal de către
administratorul acesteia.
Test de autoevaluare nr. 4
Precizaţi câteva surse de date pentru încărcarea bazelor de
date ?
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
71
4.4. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
Alegerea sistemului de gestiune a bazelor de date utilizat
presupune următoarele activităţi:
1. Stabilirea cerinţelor utilizatorilor;
2. Stabilirea cerinţelor de ordin tehnic privind realizarea bazei
de date;
3. Stabilirea cerinţelor de ordin economic;
4. Ierarhizarea cerinţelor de la punctele anterioare, în funcţie
de importanţa (prioritatea) acordată fiecărei cerinţe în parte.
5. Analiza comparativă a SGBD-urilor disponibile şi/sau posibil
de achiziţionat, în funcţie de caracteristicile pe care le prezintă
aceste SGBD-uri.
6. Stabilirea corespondenţei între cerinţele formulate la
punctele 1-3 şi caracteristicile diferitelor SGBD-uri analizate,
pentru a determina măsura în care diferitele SGBD-uri
analizate permit satisfacerea cerinţelor formulate.
7. Alegerea propriu-zisă a SGBD-ului care va fi folosit la
realizarea bazei de date.
Test de autoevaluare nr. 2
Testarea schemei conceptuale presupune verificarea
completitudinii şi consistenţei schemei conceptuale, adică
determinarea gradului în care schema conţine elementele
informaţionale necesare satisfacerii cerinţelor informaţionale ale
diferiţilor utilizatori şi măsura în care legăturile stabilite între aceste
elemente informaţionale reflectă raporturile naturale dintre
componentele sistemului real. De asemenea, prin testarea schemei
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
72
conceptuale trebuie să se verifice dacă redundanţa datelor este la un
nivel minim şi poate fi controlată.
Testarea schemei conceptuale permite şi identificarea unor
eventuale erori de proiectare care fac necesară revizuirea schemei.
Test de autoevaluare nr. 3
Schema externă a bazei de date reprezintă forma sub care apare
schema conceptuală pentru utilizatori. Ea este formată din
multitudinea viziunilor (vederilor) utilizator.
Schema internă reprezintă modul în care sunt memorate datele pe
suport fizic. Schema conceptuală foloseşte diferite structuri de date:
liniară, arborescentă, reţea, relaţională în timp ce memorarea datelor
pe suport fizic se poate face numai sub forma unei structuri linare.
Test de autoevaluare nr. 4
Sursele de date pentru încărcarea bazelor de date sunt
următoarele:
documente primare (facturi, bonuri, chitanţe etc.);
colecţii de date, gestionate prin diverse instrumente
informatice, de exemplu preluarea datelor dintr-o bază de
date creată anterior, folosind un SGBD cu care nu se mai
lucrează în continuare.
4.5. Lucrare de verificare a cunoştinţelor
1. Care sunt etapele proiectării structurii bazei de date ?
2. Care sunt etapele proiectării schemei conceptuale a bazei de
date ?
3. Care este scopul activităţii de întreţinere a bazei de date ?
Proiectarea structurii bazei de date. Implementarea şi exploatarea BD
73
Rezumat
În cadrul acestei unităţi de învâţare au fost prezentate etapele
realizării unei baze de date. Au fost prezentate activităţile specifice
proiectării schemelor bazelor de date (conceptuală, externă şi
internă) precum şi cele specifice încărcării datelor în baza de date şi
aspectele care ţin de exploatarea bazelor de date.
Bibliografie
1. Cârstoiu, Dorin, Baze de date relaţionale, Editura Printech,
Bucureşti, 1999
2. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
3. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
5. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
6. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
74
Unitatea de învăţare nr. 5
BAZE DE DATE RELAŢIONALE
Modelul relaţional al datelor
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 5 75
5.1. Modelul relaţional al datelor 75
5.2. Structura relaţională a datelor 78
5.2.1. Domeniu 78
5.2.2. Relaţie 78
5.2.3. Atribut 79
5.2.4. Schema unei relaţii 81
5.3. Operatorii modelului relaţional 82
5.4. Restricţiile de integritate ale modelului relaţional 89
5.5. Răspunsuri şi comentarii la testele de autoevaluare 93
5.6. Lucrare de verificare a cunoştinţelor 94
Rezumat 94
Bibliografie 95
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
75
OBIECTIVELE unităţii de învăţare nr. 5
Principalele obiective ale unităţii de învăţare numărul 5 sunt
următoarele:
Ideea bazelor de date relaţionale a fost lansată pentru prima dată
de către D. F. Childs care a subliniat faptul că orice structură de date
poate fi reprezentată printr-una sau mai multe tabele de date, în
cadrul cărora este necesar să existe şi informaţii de legătură, pentru
a se asigura legăturile între tabele. Bazele modelului de date
relaţional au fost puse de către Codd E.F., în 1970. Acesta are
meritul de a fi articulat şi dezvoltat ideile cu privire la utilizarea teoriei
apartenenţei la ansambluri sub forma unui model coerent de
structurare a datelor - modelul relaţional.
5.1. Modelul relaţional al datelor
Componentele modelului relaţional sunt:
1. Structura relaţională a datelor. Aceasta înseamnă că, în
bazele de date relaţionale, datele sunt organizate sub forma unor
tablouri bidimensionale (tabele) de date, numite relaţii. Asocierile
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
modelul relaţional al datelor ;
operaţiile care se pot efectua asupra bazelor de date
relaţionale ;
restricţiile specifice modelului relaţional al datelor.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
76
dintre relaţii se reprezintă explicit prin atribute de legătură. Aceste
atribute figurează într-una din relaţiile implicate în asociere (de
regulă, în cazul legăturilor de tip “unu la mulţi”) sau sunt plasate
într-o relaţie distinctă, construită special pentru exprimarea legăturilor
între relaţii (în cazul legăturilor de tip “mulţi la mulţi”). O bază de
date relaţională (BDR) reprezintă un ansamblu de relaţii, prin care se
reprezintă atât datele cât şi legăturile dintre date.
2. Operatorii modelului relaţional. Aceştia definesc operaţiile
care se pot executa asupra relaţiilor, în scopul realizării funcţiilor de
prelucrare asupra bazei de date, respectiv consultarea, inserarea,
modificarea şi ştergerea datelor.
3. Restricţiile de integritate ale modelului relaţional. Permit
definirea stărilor coerente ale bazei de date.
În comparaţie cu modelele ierarhice şi în reţea, modelul relaţional
prezintă o serie de avantaje, precum:
► Asigurarea unui grad sporit de independenţă a programelor
de aplicaţie faţă de modul de reprezentare internă a
datelor şi metodele de acces la date. În precizarea
prelucrărilor asupra datelor, programele de aplicaţie nu fac
apel la pointeri, fişiere inverse sau alte elemente ale schemei
interne a bazei de date. În ceea ce priveşte independenţa
logică, aceasta nu este complet rezolvată nici cu ajutorul
modelului relaţional. O deficienţă a modelului relaţional este
aceea că nu permite modelarea comportamentului dinamic al
datelor, ceea ce face ca o mare parte din semantica
aplicaţiilor să fie codificată în programe şi nu în schema
conceptuală a bazei de date.
► Furnizarea unor metode şi tehnici eficiente de control a
coerenţei redundanţei datelor, cu o bună fundamentare
teoretică. Modificările pe care le suferă în timp datele ridică
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
77
probleme serioase la întreţinerea bazei de date, în ceea ce
priveşte controlul actualizărilor, reflectarea modificărilor din
structura mediului economic real în structura datelor etc.
Modelul relaţional, prin tehnica normalizării relaţiilor permite
definirea unei structuri conceptuale optime a datelor, prin
care se minimizează riscurile de eroare la actualizare,
reducându-se redundanţa datelor.
► Oferirea unor facilităţi multiple de definire şi manipulare a
datelor. În primul rând, modelul relaţional oferă posibilitatea
utilizării unor limbaje procedurale, bazate pe algebra
relaţională, precum şi a unor limbaje neprocedurale având la
bază calculul relaţional. Limbajele neprocedurale
(declarative) contribuie la îmbunătăţirea semnificativă a
comunicării dintre sistem şi utilizatorii neinformaticieni. În al
doilea rând, manipularea datelor se realizează la nivel de
ansamblu (relaţie), fiind posibilă utilizarea paralelismului în
prelucrarea datelor.
► Ameliorarea integrităţii şi confidenţialităţii datelor. Modelul
relaţional realizează acest lucru prin mecanisme flexibile şi
eficace de specificare şi utilizare a restricţiilor de integritate şi
a relaţiilor virtuale.
Test de autoevaluare nr. 1
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
78
5.2. Structura relaţională a datelor
Pentru a defini structura relaţională a datelor trebuie să definim
noţiunile de: domeniu, relaţie, atribut şi schemă a unei relaţii.
5.2.1. Domeniu
Domeniul reprezintă un ansamblu de valori, caracterizat printr-un
nume. Un domeniu se poate defini explicit, prin enumerarea tuturor
valorilor aparţinând acestuia sau implicit, prin precizarea
proprietăţilor pe care le au valorile domeniului respectiv.
Spre exemplu să consideră următoarele domenii D1, D2, D3,
definite astfel:
D1 : {“F”,”M”}
D2 : }100,0,|{ xNxx
D3 : {s | s = şir de caractere }
Domeniul D1 este definit explicit în timp ce domeniile D2 şi D3
sunt definite implicit.
Pentru un ansamblu de domenii D1, D2, ..., Dn produsul cartezian
al acestora reprezintă ansamblul tuplurilor <v1, v2, ..., vn>, unde vi
este o valoare aparţinând domeniului Di. De exemplu, tuplurile
<”Maria”, “F”, 45>, <”Vasile”, “M”, 24> aparţin produsului cartezian:
D3xD1xD2.
5.2.2. Relaţie
Relaţia reprezintă un subansamblu al produsului cartezian al mai
multor domenii, subansamblu caracterizat printr-un nume şi care
conţine doar tupluri cu semnificaţie. Considerând, de exemplu că
pentru produsul cartezian definit mai sus se cunosc doar două
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
79
persoane, definim relaţia R prin tuplurile care descriu aceste
persoane:
R : {<”Maria”, “F”, 20>, <”Vasile”, “M”, 22>}
Într-o relaţie, tuplurile trebuie să fie distincte ( nu se admit duplicări
ale tuplurilor ).
O reprezentare comodă a relaţiei este tabelul bidimensional
(tabela de date), în care liniile reprezintă tuplurile, iar coloanele
corespund domeniilor (vezi figura).
R:
D3 D1 D2
“Maria” “F” 20
“Vasile” “M” 22
În prezentarea conceptului de relaţie se poate recurge la analogii
cu alte concepte, extrem de bine cunoscute în domeniul prelucrării
automate a datelor, precum este conceptul de fişier. Relaţia poate
avea semnificaţia unui fişier, tuplul poate fi considerat drept o
înregistrare, iar valorile din cadrul tuplului pot fi interpretate drept
valori ale câmpurilor înregistrării.
În cadrul modelului relaţional nu interesează decât relaţiile finite,
chiar dacă la construirea relaţiilor se admit domenii infinite. Numărul
tuplurilor dintr-o relaţie reprezintă cardinalul relaţiei, în timp ce
numărul valorilor dintr-un tuplu defineşte gradul relaţiei.
5.2.3. Atribut
Atributul reprezintă coloana unei tabele de date, caracterizată
printr-un nume. Numele coloanei (atributului) exprimă de obicei
semnificaţia valorilor din cadrul coloanei respective.
Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a
înţelege această problemă vom considera următorul exemplu. Să
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
80
presupunem că pentru o persoană dispunem de următoarele date:
nume, sex, vârstă şi numele soţului/soţiei.
O posibilitate de organizare a acestor date este reprezentată de
relaţia din figura următoare.
PERS: D3 D1 D2 D3
“Maria” “F” 30 “Vasile”
“Vasile” “M” 32 “Maria”
Relaţia PERS reprezintă un subansamblu al produsului cartezian:
D3 x D1 x D2 x D3.
Semnificaţia valorilor din cadrul unui tuplu se stabileşte în acest
caz nu numai pe baza domeniului de care aparţin valorile, ci şi în
funcţie de poziţia ocupată în cadrul tuplului.
Dependenţa faţă de ordine a datelor înseamnă o reducere a
flexibilităţii organizării datelor. Într-o organizare eficientă, flexibilă,
ordinea liniilor şi a coloanelor din cadrul tabelei de date nu trebuie să
prezinte nici o importanţă.
Pentru a diferenţia coloanele care conţin valori ale aceluiaşi
domeniu şi a elimina astfel dependenţa de poziţie în cadrul tabelei se
asociază fiecărei coloane un nume distinct, lucru care a dus la
apariţia noţiunii de atribut.
Prin folosirea atributelor, relaţia PERS poate fi prezentată într-unul
din modurile menţionate mai jos.
PERS: PERS:
Nume (D3)
Sex (D1)
Vârsta
(D2)
Sot
(D3)
Nume (D3)
Sot
(D3)
Sex
(D1) Vârsta (D2)
“Maria” “F” 30 “Vasile” “Maria” “Vasile” “F” 30
“Vasile” “M” 32 “Maria” “Vasile” “Maria” “M” 32
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
81
5.2.4. Schema unei relaţii
Prin schema unei relaţii se înţelege numele relaţiei, urmat de lista
atributelor, pentru fiecare atribut precizându-se domeniul asociat.
Astfel, pentru o relaţie R, cu atributele A1, A2, ..., An şi domeniile D1,
D2, ..., Dm, schema relaţiei R poate fi reprezentată într-una din
formele prezentate în figura de mai jos.
R (A1:D1, A2:D2, ..., An:Dm)
sau
R:
A1:D1 A2:D2 .
..
An:Dm
Schema unei relaţii se mai numeşte şi intensia relaţiei, ca
expresie a proprietăţilor comune şi invariante ale tuplurilor care
compun relaţia.
Spre deosebire de intensie, extensia unei relaţii reprezintă
ansamblul tuplurilor care compun la un moment dat relaţia, ansamblu
care este variabil în timp.
De obicei, extensia unei relaţii este stocată fizic în spaţiul asociat
bazei de date, caz în care relaţia poartă numele de relaţie de bază.
Există însă şi situaţii în care extensia nu este memorată în baza de
date. Este cazul aşa-numitelor relaţii virtuale, cunoscute şi sub
numele de relaţii derivate sau viziuni. Relaţia virtuală nu este
definită explicit ca relaţie de bază, prin ansamblul tuplurilor
componente, ci implicit, pe baza altor relaţii, prin intermediul unei
expresii relaţionale. Stabilirea efectivă a tuplurilor care compun
relaţia virtuală se realizează prin evaluarea expresiei, ori de câte ori
utilizatorul invocă această relaţie.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
82
5.3. Operatorii modelului relaţional
Modelul de date relaţional oferă două colecţii de operatori pentru
operaţii cu relaţii şi anume:
- algebra relaţională;
- calculul relaţional.
Algebra relaţională (AR) se poate defini ca o colecţie de operaţii
pe relaţii, fiecare operaţie având drept operanzi una sau mai multe
relaţii şi producând ca rezultat o altă relaţie.
Operaţiile algebrei relaţionale se pot împărţi în:
- operaţii de bază, precum: reuniunea, diferenţa, produsul
cartezian etc.
- operaţii derivate, ca: intersecţia, diviziunea etc.
Algebra relaţională standard, definită de Codd, este constituită
din 6 operaţii de bază: reuniunea, diferenţa, produsul cartezian,
Test de autoevaluare nr. 2 Definiţi conceptul de domeniu.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
83
proiecţia, selecţia şi joncţiunea precum şi din două operaţii derivate:
intersecţia şi diviziunea.
Ulterior, la operaţiile AR standard au fost adăugate şi alte operaţii,
aşa numitele operaţii “adiţionale” sau extensii ale AR standard,
precum: complementarea unei relaţii, splitarea (spargerea) unei
relaţii, închiderea tranzitivă etc.
În general, operaţiile AR pot fi grupate în:
- operaţii tradiţionale pe mulţimi (reuniunea, intersecţia,
diferenţa, produsul cartezian);
- operaţii relaţionale speciale (selecţia, proiecţia, joncţiunea
etc.).
În continuare sunt prezentate principalele operaţii ale algebrei
relaţionale, precum şi modul lor de utilizare.
1. Reuniunea. Reprezintă o operaţie a algebrei relaţionale definită
pe două relaţii: R1 şi R2, ambele cu aceeaşi schemă, operaţie care
constă din construirea unei noi relaţii R3, cu o schemă identică cu R1
şi R2 şi având drept extensie tuplurile din R1 şi R2, luate împreună o
singură dată.
Reuniunea se notează uzual cu:
OR (R1,R2)
APPEND (R1,R2)
UNION (R1,R2)
În figura următoare este prezentat un exemplu de reuniune a două
relaţii ORAŞE şi MUNICIPII, formând astfel o a treia relaţie,
LOCALITĂŢI.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
84
2. Diferenţa. Reprezintă o operaţie a algebrei relaţuionale
construită pe două relaţii: R1 şi R2, ambele cu o aceeaşi schemă,
operaţie care constă din construirea unei noi relaţii R3, cu schema
identică cu a operanzilor şi cu extensia formată din acele tupluri ale
relaţiei R1 care nu se regăsesc şi în relaţia R2.
Notaţiile uzuale pentru operaţia de diferenţă a două relaţii sunt:
R1-R2
REMOVE (R1,R2)
MINUS (R1,R2)
Un exemplu de diferenţă a două relaţii este dat în continuare.
3. Produs cartezian. Reprezintă o operaţie a algebrei relaţionale
definită pe două relaţii: R1 şi R2, operaţie care constă din construirea
unei noi relaţii R3, a cărei schemă se obţine prin concatenarea
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
85
schemelor relaţiilor R1 şi R2 şi a cărei extensie cuprinde toate
combinaţiile tuplurilor din R1 cu cele din R3.
Notaţiile uzuale pentru desemnarea operaţiei sunt:
R1 x R2
PRODUCT (R1,R2)
TIMES (R1,R2)
În continuare este prezentat un exemplu de produs cartezian a
două relaţii.
4. Proiecţia. Reprezintă o operaţie din algebra relaţională definită
asupra unei relaţii R, operaţie care constă din construirea unei noi
relaţii P, în care se regăsesc numai acele atribute din R specificate
explicit în cadrul operaţiei. Suprimarea unor atribute din R înseamnă
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
86
efectuarea unor tăieturi verticale asupra lui R, care pot avea ca efect
apariţia unor tupluri duplicate ce se cer a fi eliminate.
Prin proiecţie se trece de la o relaţie de grad n la o relaţie de grad p,
mai mic decât cel iniţial, adică de la un spaţiu cu n dimensiuni la un
spaţiu cu mai puţine dimensiuni, ceea ce explică şi numele de
proiecţie atribuit operaţiei.
Notaţiile uzuale pentru operaţia de proiecţie:
)(,...,, Rmji AAA
R [ Ai, Aj, ..., Am ]
PROJECT(R, Aj, Aj, ..., Am)
În figura de mai sus este prezentată proiecţia relaţiei ORAŞE pe
atributul JUDEŢ.
5. Selecţia reprezintă o operaţie din algebra relaţională definită
asupra unei relaţii R, operaţie care constă din construirea unei relaţii
S, a cărei schemă este identică cu cea a relaţiei R şi a cărei extensie
este constituită din acele tupluri din R care satisfac o condiţie
menţionată explicit în cadrul operaţiei. Întrucât cel mai adesea, nu
toate tuplurile din R satisfac această condiţie, selecţia înseamnă
efectuarea unor tăieturi orizontale asupra relaţiei R, adică eliminarea
de tupluri.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
87
Condiţia precizată în cadrul operaţiei de selecţie este în general
de forma:
atribut operator de comparaţie valoare
unde: <operator de comparaţie> poate fi: <, <=, >=, > sau #.
Notaţiile folosite pentru desemnarea operaţiei de selecţie sunt
următoarele:
)(Rconditie
R [condiţie]
RESTRICT(R, condiţie).
6. Joncţiunea (Joinul) reprezintă o operaţie din algebra relaţională
definită pe două relaţii: R1 şi R2, operaţie care constă din construirea
unei noi relaţii R3, prin concatenarea unor tupluri din R1 cu tupluri din
R2. Se concatenează acele tupluri din R1 şi R2 care satisfac o
anumită condiţie, specificată explicit în cadrul operaţiei. Extensia
relaţiei R3 va conţine deci combinaţiile acelor tupluri care satisfac
condiţia de concatenare.
Notaţiile uzuale pentru desemnarea operaţiei de joncţiune sunt:
R1 R2
condiţie
JOIN (R1, R2, condiţie)
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
88
7. Intersecţia reprezintă o operaţie din AR definită pe două relaţii:
R1 şi R2, ambele cu aceeaşi schemă, operaţie care constă din
construirea unei noi relaţii R3, cu schema identică cu a relaţiilor R1 şi
R2 şi cu extensia formată din tuplurile comune lui R1 şi R2.
Notaţiile uzuale pentru operaţia de intersecţie sunt:
21 RR
INTERSECT (R1, R2)
AND (R1, R2).
8. Diviziunea reprezintă o operaţie din AR definită asupra unei
relaţii R din care se obţine, cu ajutorul altei relaţii P, relaţia Q a cărei
extensie este formată din atributele din R care rămân după
eliminarea atributelor relaţiei P.
Notaţiile folosite pentru operaţia de diviziune sunt:
rR
DIVISION(R,r).
Test de autoevaluare nr. 3 Care sunt operaţiile algebrei relaţionale standard ?
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
89
5.4. Restricţiile de integritate ale modelului relaţional
Restricţiile de integritate, denumite şi reguli de integritate, definesc
cerinţele pe care trebuie să le satisfacă datele din cadrul bazei de
date pentru a putea fi considerate corecte, coerente în raport cu
lumea reală pe care o reflectă.
Restricţiile de integritate reprezintă principalul mod de integrare a
semanticii datelor în cadrul modelului relaţional al datelor,
mecanismele de definire şi verificare a acestor restricţii reprezentând
principalele instrumente pentru controlul semantic al datelor.
Avantajele încorporării semanticii datelor în cadrul bazelor de date
constau din posibilitatea întreţinerii mai uşoare a aplicaţiilor şi
posibilitatea implementării unor mecanisme fizice mai eficiente.
În teoria sistemelor relaţionale, restricţiile de integritate sunt
studiate în principal sub aspectul puterii lor de modelare şi al
posibilităţilor de verificare eficace a respectării lor. Un exemplu
semnificativ îl reprezintă dependenţele între date, şi în primul rând
dependenţele funcţionale. Dependenţele între date, ca restricţii de
integritate constituie un suport teoretic solid pentru problemele de
modelare informatică. În acest sens, dependenţele funcţionale au
permis definirea conceptului de “structură relaţională optimă”, stând
la baza teoriei optimizării structurii relaţionale a datelor, respectiv
teoria normalizării relaţiilor.
Restricţiile de integritate ale modelului relaţional sunt următoarele:
1. Restricţii de integritate minimale, obligatoriu de definit şi de
respectat atunci când se lucrează cu modelul relaţional. Din această
categorie fac parte:
restricţia de unicitate a cheii;
restricţia referenţială;
restricţia entităţii.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
90
2. Alte restricţii de integritate, din care fac parte:
dependenţele între date;
restricţiile de comportament.
Restricţiile de integritate minimale sunt definite în raport cu
noţiunea de cheie a unei relaţii. Cheia unei relaţii, R, reprezintă
ansamblul minimal de atribute prin care se poate identifica în mod
unic orice tuplu din R. Orice relaţie posedă cel puţin o cheie. La
limită, cheia este constituită fie dintr-un singur atribut, fie din
totalitatea atributelor din schema relaţiei respective. Când cheia este
constituită dintr-un singur atribut poartă numele de cheie simplă, iar
atunci când este formată din mai multe atribute este denumită cheie
compusă.
Într-o relaţie pot exista mai multe combinaţii de atribute cu
proprietatea de identificare unică a tuplurilor. Se spune în acest caz
că relaţia posedă mai mulţi candidaţi cheie (sau mai multe chei
candidate). În această situaţie, administratorul bazei de date va
alege dintre cheile candidate una care să servească în mod efectiv la
identificarea tuplurilor şi care va primi numele de cheie primară.
Restul cheilor candidate vor purta numele de chei alternate.
Cheia unei relaţii trebuie să fie minimală, adică nici o parte a sa nu
trebuie să fie la rândul ei cheie. Un grup de atribute din cadrul unei
relaţii care conţine o cheie a relaţiei poartă numele de supercheie.
Modelarea asocierilor dintre entităţi impune recurgerea la conceptul
de cheie externă. O cheie externă reprezintă un atribut/grup de
atribute dintr-o relaţie R1 ale cărui/căror valori sunt definite pe
acelaşi/aceleaşi domeniu/domenii ca şi cheia primară a unei relaţii,
R2 şi care are rolul de a modela asocierea între entităţile
reprezentate prin relaţiile R1 şi R2. În acest context, R1 este
denumită relaţie care referă, în timp ce R2 poartă numele de relaţie
referită.
Restricţia de unicitate a cheii reprezintă restricţia de integritate
care impune ca într-o relaţie, R care are cheia K, oricare ar fi tuplurile
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
91
t1 şi t2 să fie satisfăcută inegalitatea: t1 (K) # t2 (K). Această
inegalitate semnifică faptul că într-o relaţie nu pot exista două tupluri
cu aceeaşi valoare pentru atributele cheie.
Restricţia referenţială (integritatea referirii) reprezintă restricţia
de integritate care impune ca într-o relaţie R1 care referă o relaţie
R2, valorile cheii externe să figureze printre valorile cheii primare din
relaţia R2 sau să fie valori nedefinite (“null”). R1 şi R2 nu trebuie să
fie neapărat distincte. Semnificaţia restricţiei de integritate a referirii
este următoarea : o asociere nu poate exista decât între entităţi deja
definite. Atunci când, într-o anumită situaţie, asocierea nu este
aplicabilă, unul din parteneri va fi desemnat prin valoarea “null”, cu
semnificaţia de “partener inexistent”.
Restricţia entităţii (integritatea entităţii) reprezintă restricţia de
integritate care impune ca într-o relaţie atributele cheii primare să fie
nenule. Unicitatea cheii impune ca la încărcarea unui tuplu, valoarea
cheii să fie cunoscută, pentru a se putea verifica faptul că această
valoare nu există deja încărcată (tuplul nu figurează deja în baza de
date). Cu valori <null>, cheia îşi pierde rolul de identificator de tuplu.
Restricţia de integritate a entităţii nu se aplică cheilor externe dintr-o
relaţie, dacă acestea nu aparţin cheii primare.
Restricţiile referitoare la dependenţa datelor semnifică modul în
care datele depind unele de altele. Această dependenţă între date
poate fi de mai multe tipuri şi anume:
- dependenţă funcţională; reprezintă dependenţa între
date prin care se poate identifica un atribut/grup de atribute
prin intermediul altui atribut/grup de atribute. Fiind dată o
relaţie R, un atribut Y din R este dependent funcţional de
un alt atribut X din R, dacă şi numai dacă fiecare valoare a
lui X are asociată o valoare precisă a lui Y.
- dependenţă multivaloare; reprezintă acel tip de
dependenţă între date în care un atribut/grup de atribute
poate prezenta mai multe valori pentru o singură valoare a
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
92
unui alt atribut/grup de atribute. Fie o relaţie R, în care
apar atributele/grupurile de atribute:X, Y şi Z. În cadrul
relaţiei R există o dependenţă multivaloare dacă şi numai
dacă mulţimea valorilor lui Y corespunzătoare unei
perechi: (valoare X, valoare Z) depinde numai de valoarea
lui X, nu şi de valoarea lui Z;
- dependenţă jocţiune; această restricţie exprimă o
dependenţă între date mai generală decât dependenţa
funcţională sau dependenţa multivaloare.
Restricţiile de comportament se pot defini de către utilizator în
funcţie de realitatea descrisă în baza de date şi pot fii:
restricţii de domeniu; care impun ca valorile unui atribut
dintr-o relaţie să se încadreze în anumite limite;
restricţii temporale etc.
Test de autoevaluare nr. 4 Enumeraţi restricţiile de integritate ale modelului relaţional.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
93
5.5. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
În comparaţie cu modelele ierarhice şi în reţea, modelul relaţional
prezintă o serie de avantaje, precum:
Asigurarea unui grad sporit de independenţă a programelor de
aplicaţie faţă de modul de reprezentare internă a datelor şi
metodele de acces la date.
Furnizarea unor metode şi tehnici eficiente de control a
coerenţei redundanţei datelor, cu o bună fundamentare
teoretică.
Oferirea unor facilităţi multiple de definire şi manipulare a
datelor.
Ameliorarea integrităţii şi confidenţialităţii datelor.
Test de autoevaluare nr. 2
Domeniul reprezintă un ansamblu de valori, caracterizat printr-un
nume. Un domeniu se poate defini explicit, prin enumerarea tuturor
valorilor aparţinând acestuia, sau implicit, prin precizarea
proprietăţilor pe care le au valorile domeniului respectiv.
Test de autoevaluare nr. 3
Algebra relaţională standard, definită de Codd, este constituită din
6 operaţii de bază: reuniunea, diferenţa, produsul cartezian,
proiecţia, selecţia şi joncţiunea precum şi din două operaţii derivate:
intersecţia şi diviziunea.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
94
Test de autoevaluare nr. 4
Restricţiile de integritate ale modelului relaţional sunt următoarele:
1. Restricţii de integritate minimale, obligatoriu de definit şi de
respectat atunci când se lucrează cu modelul relaţional. Din această
categorie fac parte:
restricţia de unicitate a cheii;
restricţia referenţială;
restricţia entităţii.
2. Alte restricţii de integritate, din care fac parte:
dependenţele între date;
restricţiile de comportament.
5.6. Lucrare de verificare a cunoştinţelor
1. Care este structura modelului relaţional al datelor ?
2. Care sunt noţiunile care definesc structura relaţională a
datelor ?
3. Definiţi conceptul de schemă a unei relaţii ?
4. Definiţi operaţia algebrei relaţionale de proiecţie.
5. Definiţi operaţia algebrei relaţionale de selecţie.
6. Definiţi operaţia algebrei relaţionale de join.
7. Explicaţi restricţia de unicitate a cheii.
Rezumat
În această unitate de învăţare a fost prezentat modelul relaţional
de organizare a datelor în baze de date. Au fost prezentate
conceptele de domeniu şi atribut. S-au prezentat, de asemenea,
operaţiile algebrei relaţionale şi restricţiile de integritate a datelor,
restricţii specifice modelului relaţional al datelor.
BAZE DE DATE RELAŢIONALE. Modelul relaţional al datelor
95
Bibliografie
1. Cârstoiu, Dorin, Baze de date relaţionale, Editura Printech,
Bucureşti, 1999
2. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
3. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
5. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
6. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
96
Unitatea de învăţare nr. 6.
BAZE DE DATE RELAŢIONALE
Proiectarea Bazelor de Date relaţionale
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 6 97
6.1. Proiectarea bazelor de date relaţionale 97
6.1.1. Proiectarea schemei conceptuale 97
6.1.2. Proiectarea schemei externe 101
6.2. Sisteme de gestiune a bazelor de date relaţionale 103
6.3. Răspunsuri şi comentarii la testele de autoevaluare 105
6.4. Lucrare de verificare a cunoştinţelor 108
Rezumat 108
Bibliografie 109
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
97
OBIECTIVELE unităţii de învăţare nr. 6
Principalele obiective ale unităţii de învăţare numărul 6 sunt
următoarele:
6.1. Proiectarea bazelor de date relaţionale
Proiectarea bazelor de date relaţionale se realizează conform cu
cele prezentate în capitolul anterior. Diferenţe apar la activităţile
legate de proiectarea schemelor conceptuale, interne şi externe, de
încărcarea, exploatarea şi întreţinerea bazei de date.
6.1.1. Proiectarea schemei conceptuale
La proiectarea bazelor de date relaţionale se foloseşte frecvent
termenul de “schemă conceptuală optimă”, prin care se înţelege
acea schemă conceptuală care înlătură posibilităţile apariţiei de
anomalii în lucrul cu baza de date, asigurând totodată facilităţi şi
performanţe sporite la încărcarea, exploatarea şi întreţinerea bazei
de date.
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
modelul relaţional al datelor ;
operaţiile care se pot efectua asupra bazelor de date
relaţionale ;
restricţiile specifice modelului relaţional al datelor ;
aspecte privind normalizarea relaţiilor ;
caracteristicile SGBD-urilor relaţionale.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
98
Anomaliile care apar la lucrul cu baze de date se manifestă
îndeosebi la întreţinerea bazei de date, fiind cunoscute şi sub numele
de anomalii de actualizare a datelor. Ele se manifestă nu numai în
cazul bazelor de date relaţionale, ci şi la celelalte tipuri de baze de
date. În cadrul teoriei relaţionale a bazelor de date, anomaliile de
actualizare sunt puse în legătură cu dependenţele care se manifestă
între date. Abordarea anomaliilor de actualizare a permis, pe de o
parte caracterizarea riguroasă a relaţiilor după gradul de
“perfecţiune” pe care îl prezintă (aşa numitele “forme normale” ale
relaţiilor) şi pe de altă parte a făcut posibilă definirea unor tehnici
formale pentru înlăturarea anomaliilor de actualizare.
Formele normale ale relaţiilor
Anomaliile care apar în lucrul cu baze de date relaţionale se
produc datorită dependenţelor “nedorite” care se manifestă între
datele din cadrul relaţiilor bazei de date. Aceste dependenţe
determină creşterea redundanţei datelor şi reducerea flexibilităţii
structurii bazei de date, efect manifestat prin:
limitarea posibilităţilor de inserare a datelor; apare când
anumite date despre o entitate nu pot fi introduse în baza de
date datorită lipsei altor date, relative la aceeaşi entitate, şi
fără de care, datele noi nu pot fi introduse datorită
dependenţelor dintre aceste date;
pierderi de date la ştergere; apar atunci când, în urma unei
ştergeri din baza de date sunt şterse şi altele, care nu mai
pot fi obţinute (reconstituite) din baza de date;
apariţia unor inconsistenţe la modificarea datelor; adică
menţinerea, pentru unele atribute, a unor valori
neactualizate alături de valorile actualizate.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
99
Dependenţa datelor semnifică modul în care datele depind unele
de altele. Aceste dependenţe între date pot fi de mai multe tipuri, şi
anume:
- dependenţă funcţională; reprezintă dependenţa între
date prin care se poate identifica un atribut/grup de atribute
prin intermediul altui atribut/grup de atribute. Fiind dată o
relaţie R, un atribut Y din R este dependent funcţional de
un alt atribut X din R, dacă şi numai dacă fiecare valoare a
lui X are asociată o valoare precisă a lui Y.
- dependenţă parţială; apare atunci când avem o relaţie cu
cheie compusă şi un atribut X depinde funcţional de cheia
(completă) relaţiei, dar depinde şi de o parte componentă a
cheii;
- dependenţa tranzitivă; apare atunci când un atribut X
depinde funcţional direct de cheia relaţiei dar depinde şi de
un alt atribut Y, non-cheie. Rezultă astfel o dependenţă
indirectă între atributul X şi cheia relaţiei prin intermediul
atributului Y (Y depinde de cheia relaţiei iar X depinde de
Y).
- dependenţă multivaloare; reprezintă acel tip de
dependenţă între date în care un atribut/grup de atribute
poate prezenta mai multe valori pentru o singură valoare a
unui alt atribut/grup de atribute.
- dependenţă jocţiune; această dependenţă apare atunci
când o relaţie poate fi obţinută prin aplicarea operaţiei de
JOIN pe alte două relaţii.
În afară de dependenţa funcţională, care este considerată naturală
şi acceptată, restul dependenţelor generează anomalii în exploatarea
bazelor de date.
Formele normale ale relaţiilor dintr-o bază de date relaţională sunt
definite în raport de anomaliile care pot apare în lucrul cu aceste
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
100
relaţii, deci în funcţie de dependenţele “nedorite” care se manifestă în
cadrul acestor relaţii.
La proiectarea bazelor de date relaţionale se pot defini cinci forme
normale, formând cinci nivele de normalizare a relaţiilor.
O relaţie R este în forma normală unu, FN1, dacă domeniile pe
care sunt definite atributele relaţiei sunt constituite numai din valori
atomice (elementare). În plus, un tuplu nu trebuie să conţină atribute
sau grupuri de atribute repetitive.
O relaţie R este în forma normală doi, FN2, dacă este în FN1 şi
oricare dintre atributele noncheie este dependent funcţional complet
de cheia primară a relaţiei (nu există dependenţe parţiale). Dacă
relaţia are cheie simplă atunci automat se găseşte în FN2.
O relaţie R este în forma normală trei, FN3, dacă este în FN2 şi
atributele noncheie nu sunt dependente tranzitiv de cheia primară a
relaţiei.
Relaţia R este în forma normală patru, FN4, dacă este în FN3 şi în
cadrul ei nu există dependenţe multivaloare.
Spunem că relaţia R este în forma normală cinci, FN5, dacă au fost
eliminate dependenţele joncţiune.
Etapele procesului de proiectare a schemei conceptuale
Proiectare schemei conceptuale a unei baze de date relaţionale
presupune parcurgerea următoarelor etape:
1. Determinarea formei normale în care trebuie să se afle relaţiile
din baza de date (a nivelului de “perfecţiune” impus schemei
conceptuale). Relaţiile aflate în forme normale superioare
determină apariţia unui număr redus de anomali în lucrul cu
baza de date, comparativ cu relaţiile nenormalizate sau aflate
în primele forme normale, dar conduc todată la creşterea
timpului de acces la date. Aceasta deoarece relaţiile aflate în
forme normale superioare conţin, de regulă, un număr mai mic
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
101
de atribute, lucru care impune creşterea numărului de relaţii
din baza de date, deci interogarea simultană a mai multor
relaţii pentru a găsi anumite informaţii.
În determinarea formei normale la care trebuiesc aduse relaţiile
din bazele de date relaţionale se vor avea în vedere următoarele:
ponderea operaţiilor de interogare şi a celor de actualizare
în lucrul cu bazele de date relaţionale;
exigenţele de performaţă şi flexibilitate impuse de utilizatorii
finali la interogarea şi, respectiv la actualizarea bazelor de
date relaţionale.
2. Stabilirea relaţiilor care să facă parte din baza de date, în
forma normală stabilită anterior. Aceasta presupune definirea
relaţiilor şi a restricţiilor de integritate asociate, lucru realizat
pe baza modelelor conceptuale ale sistemului, modele
obţinute în etapa de analiză a sistemului şi a cerinţelor
informaţionale asociate. În cadrul acestei etape se pot aplica
mai multe tehnici de proiectare (tehnica normalizării, tehnica
diagramelor de dependenţă riguroasă etc.).
3. Testarea schemei conceptuale obţinute şi revizuirea acesteia,
dacă este cazul;
4. Descrierea schemei conceptuale în limbajul de descriere a
datelor utilizat de SGBD-ul relaţional folosit şi încărcarea
acestei descrieri în baza de date relaţională.
6.1.2. Proiectarea schemei externe
Schema externă a unei baze de date relaţionale reprezintă
ansamblul relaţiilor (tabelelor de date) la care are acces un utilizator
(un program de aplicaţie). Deşi mai mulţi utilizatori pot lucra cu o
aceeaşi schemă externă, în general, se consideră pentru o bază de
date relaţională atâtea scheme externe câţi utilizatori există la un
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
102
moment dat, scheme care trebuiesc proiectate şi apoi făcute
operaţionale.
Schema externă reprezintă modul de organizare, structurare, a
datelor de care are nevoie un anumit utilizator pentru a-şi satisface
toate cerinţele informaţionale. Deoarece, de cele mai multe ori, un
utilizator nu are nevoie de ansamblul datelor memorate în cadrul
bazei de date ci numai de o parte a acestor date, se consideră
schema externă drept o partiţie logică a schemei conceptuale a bazei
de date. Din această cauză, schema externă a unei baze de date
mai este cunoscută şi sub numele de subschemă a bazei de date.
Modul de structurare a datelor în cadrul schemei externe poate fi
cel din cadrul schemei conceptuale sau poate să fie diferit. Acest
lucru se explică prin faptul că structurarea datelor în cadrul schemei
conceptuale are ca obiectiv optimizarea structurii de ansamblu a
bazei de date relaţionale, în raport de ansamblul cerinţelor
informaţionale ale tuturor utilizatorilor, în timp ce structurarea datelor
în cadrul schemei externe urmăreşte facilitarea satisfacerii cerinţelor
informaţionale pentru un anumit utilizator. Deoarece aceste două
criterii nu sunt echivalente se obţin rezultate, deci structuri ale datelor
diferite.
La proiectarea unei scheme externe a unei baze de date
relaţionale se parcurg următoarele etape:
1. Determinarea zonei (ariei) de interes pentru un anumit
utilizator din cadrul sistemului informatic reflectat
informaţional cu ajutorul bazei de date;
2. Analiza structurală, dinamică şi funcţională a acestei zone
din domeniul activităţii economice reprezentate prin
sistemul informatic pentru care se realizează baza de date;
3. Proiectarea schemei externe, pe baza analizei anterioare, în
modul de lucru descris la proiectarea schemei conceptuale
a bazei de date relaţionale, ţinând cont de faptul că aceeaşi
schemă poate apare drept o schemă conceptuală, dacă
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
103
sistemul de referinţă este întregul domeniu economic
analizat, sau drept o schemă externă, dacă sistemul de
referinţă este o parte din domeniul economic analizat;
4. Testarea schemei externe şi modificarea acesteia, dacă este
cazul;
5. Aducerea schemei externe în forma operaţională. Acest lucru
se realizează în mod diferit faţă de schema conceptuală a
bazelor de date, pentru care operaţionalizarea presupune
descrierea sa cu ajutorul limbajului de descriere a datelor
utilizat de SGBDR, compilarea acestei descrieri şi
încărcarea acestei descrieri compilate în cadrul bazei de
date. Pentru ca o schemă externă să devină operaţională,
să poată fi aplicată, utilizatorul căruia îi este destinată
trebuie să primească drepturi de acces asupra tabelelor de
date care compun schema externă.
Test de autoevaluare nr. 1
Enumeraţi şi explicaţi dependenţele între date
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
104
6.2. Sisteme de gestiune a bazelor de date relaţionale
Un sistem de gestiune a bazelor de date relaţionale poate fi definit
ca reprezentând un SGBD care utilizează drept concepţie de
organizare a datelor modelul relaţional.
Diversitatea modelelor relaţionale “operaţionale” au determinat, în
mod natural existenţa unei mari diversităţi de SGBDR, care se
apropie mai mult sau mai puţin de modelul relaţional “teoretic”.
Cerinţele teoretice pe care trebuie să le satisfacă un SGBD relaţional
au fost specificate de Codd, printr-o serie de 13 reguli, numite
regulile lui Codd.
Deoarece aceste reguli au fost mult disputate şi deoarece nici unul
dintre SGBD-urile relaţionale (SGBDR) disponibile astăzi nu respectă
întrutotul cerinţele exprimate de Codd, în cadrul celor 13 reguli,
caracterizarea unui SGBD se realizează folosind o serie de cerinţe
minimale pe care trebuie să le satisfacă un sistem de gestiune a
bazelor de date pentru a putea fi considerat relaţional.
Un SGBD este minim relaţional dacă satisface următoarele
condiţii:
1. Toate datele din cadrul bazei de date sunt reprezentate prin
valori în tabele.
2. Nu există pointeri observabili de către utilizator între tabele,
în sensul că operaţiile cu relaţii nu fac apel la pointeri,
indecşi, fişiere inverse etc.
3. Sistemul suportă operatorii relaţionali de proiecţie, selecţie şi
join natural, fără limitări impuse din considerente interne
(cum ar fi de exemplu, necesitatea indexării atributelor).
Unitatea de informaţie cu care se lucrează în cadrul
acestor operaţii trebuie să fie relaţia.
Un SGBD este complet relaţional dacă este minimal relaţional şi
satisface în plus următoarele condiţii:
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
105
4. Sistemul suportă toate operaţiile de bază ale algebrei
relaţionale, fără limitări impuse din considerente interne.
5. Sistemul suportă două dintre restricţiile de integritate de bază
ale modelului relaţional şi anume unicitatea cheii unei
relaţii şi restricţia referenţială.
Un SGBD este pseudorelaţional dacă satisface numai condiţiile 1 şi
3.
Dintre instrumentele şi mecanismele de lucru de care dispune un
SGBD relaţional se pot menţiona:
un limbaj relaţional pentru descrierea datelor la nivel fizic,
logic şi conceptual;
un limbaj relaţional pentru manipularea datelor (interogare şi
actualizare);
mecanisme pentru controlul integrităţii semantice a datelor;
mecanisme pentru asigurarea coerenţei datelor în condiţiile
accesului concurent la date şi apariţiei unor avarii;
mecanisme pentru optimizarea cererilor de date;
utilitare pentru prezentarea rezultatelor, de tipul
generatoarelor de rapoarte, utilitare pentru generarea de
aplicaţii, pentru generarea de statistici despre starea şi
activitatea bazei de date.
Dintre SGBD-urile relaţionale mai cunoscute putem menţiona:
INGRES, ORACLE, DB2, FOCUS, SQL\DS ş.a. care lucrează sub
sistemele de operare VMS şi UNIX. Pentru calculatoarele
compatibile IBM-PC avem dBase IV, FoxPro, Paradox ş.a.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
106
Test de autoevaluare nr. 2
1. Definiţi forma normală FN1.
2. Definiţi forma normală FN2.
3. Definiţi forma normală FN3.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
107
6.3. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
Dependenţele între date reprezintă legături care se manifestă între
atributele unei relaţii. Ele pot fi de mai multe tipuri, şi anume:
- dependenţă funcţională; reprezintă dependenţa între
date prin care se poate identifica un atribut/grup de atribute
prin intermediul altui atribut/grup de atribute. Fiind dată o
relaţie R, un atribut Y din R este dependent funcţional de
un alt atribut X din R, dacă şi numai dacă fiecare valoare a
lui X are asociată o valoare precisă a lui Y.
- dependenţă parţială; apare atunci când avem o relaţie cu
cheie compusă şi un atribut X depinde funcţional de cheia
(completă) relaţiei, dar depinde şi de o parte componentă a
cheii;
- dependenţa tranzitivă; apare atunci când un atribut X
depinde funcţional direct de cheia relaţiei dar depinde şi de
un alt atribut Y, non-cheie. Rezultă astfel o dependenţă
indirectă între atributul X şi cheia relaţiei prin intermediul
atributului Y (Y depinde de cheia relaţiei iar X depinde de
Y).
- dependenţă multivaloare; reprezintă acel tip de
dependenţă între date în care un atribut/grup de atribute
poate prezenta mai multe valori pentru o singură valoare a
unui alt atribut/grup de atribute.
- dependenţă jocţiune; această dependenţă apare atunci
când o relaţie poate fi obţinută prin aplicarea operaţiei de
JOIN pe alte două relaţii.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
108
Test de autoevaluare nr. 2
O relaţie R este în forma normală unu, FN1, dacă domeniile pe
care sunt definite atributele relaţiei sunt constituite numai din valori
atomice (elementare). În plus, un tuplu nu trebuie să conţină atribute
sau grupuri de atribute repetitive.
O relaţie R este în forma normală doi, FN2, dacă este în FN1 şi
oricare dintre atributele noncheie este dependent funcţional complet
de cheia primară a relaţiei (nu există dependenţe parţiale). Dacă
relaţia are cheie simplă atunci automat se găseşte în FN2.
O relaţie R este în forma normală trei, FN3, dacă este în FN2 şi
atributele noncheie nu sunt dependente tranzitiv de cheia primară a
relaţiei.
6.4. Lucrare de verificare a cunoştinţelor
1. Explicaţi noţiunea de « schemă conceptuală optimă ».
2. Care sunt etapele procesului de proiectare a schemei
conceptuale a unei baze de date relaţionale ?
3. Definiţi forma normală FN4.
4. Definiţi forma normală FN5.
5. Care sunt cerinţele impuse unui SGBD pentru a putea fi
considerat minim relaţional ?
Rezumat
În cadrul acestei unităţi de învăţare au fost prezentate aspecte
specifice proiectării bazelor de date relaţionale. S-a introdus
conceptul de schemă conceptuală optimă, obţinută prin normalizarea
relaţiilor care compun baza de date. S-au definit primele cinci forme
normale.
BAZE DE DATE RELAŢIONALE. Proiectarea Bazelor de Date relaţionale
109
Bibliografie
1. Cârstoiu, Dorin, Baze de date relaţionale, Editura Printech,
Bucureşti, 1999
2. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
3. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
4. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
5. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
6. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
7. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
110
Unitatea de învăţare nr. 7
Noţiuni introductive privind Bazele de Date Orientate
pe Obiecte
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 7 111
7.1. Modelul de date orientat pe obiecte. 112
Concepte de bază
7.2. Baze de date orientate pe obiecte 118
7.3. Răspunsuri şi comentarii la testele de autoevaluare 122
7.4. Lucrare de verificare a cunoştinţelor 123
Rezumat 123
Bibliografie 123
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
111
OBIECTIVELE unităţii de învăţare nr. 7
Principalele obiective ale unităţii de învăţare numărul 7 sunt
următoarele:
Dezvoltarea tehnologiei sistemelor de calcul în ultimii ani a condus
la pătrunderea acestora în tot mai multe domenii de activitate, având
de rezolvat probleme din cele mai diverse şi mai complexe. Pentru
aceasta, structurile clasice de date bazate pe text şi valori numerice
fie se dovedesc insuficiente, fie complexitatea lor depăşeşte
posibilităţile de prelucrare oferite de tehnologiile clasice.
Aplicaţiile specifice anumitor domenii cum ar fi: proiectarea
asistată de calculator, sisteme informatice geografice, sisteme
bazate pe cunoştinţe etc., presupun stocarea unor cantităţi mari de
informaţii cu o structură complexă. De exemplu, aplicaţiile de
proiectare asistată de calculator necesită stocarea şi manevrarea
unor desene formate din grupuri de elemente complexe, alături de
acestea fiind necesară stocarea şi a altor informaţii privind
materialele folosite, maşini şi utilaje disponibile, rezultate ale
verificărilor efectuate asupra proiectului etc.
Un alt domeniu al informaticii care necesită structuri de date
complexe este multimedia. Acest domeniu, spre care există o
orientare tot mai puternică, presupune integrarea imaginilor reale sau
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
va înţelege modelul de date orientat pe obiecte;
va cunoaşte şi va înţelege operaţiile care se pot efectua
asupra bazelor de date orientate pe obiecte;
va cunoaşte restricţiile specifice modelului de date
orientat pe obiecte.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
112
sintetizate cu sunet şi muzică, integrare ce nu mai permite folosirea
datelor numerice sau de tip şir de caractere.
O modalitate de rezolvare a acestor probleme este dată şi de
tehnologia aplicaţiilor orientate pe obiecte.
Bazele de date orientate pe obiecte permit crearea de obiecte
complexe din componente mai simple, fiecare având propriile
atribute şi propriul comportament. Domeniile care se pretează în mod
deosebit la o tratare orientată pe obiecte sunt:
proiectare (CAD), fabricare (CAM) şi inginerie (CAE)
asistate de calculator;
simulare şi modelare;
sisteme informaţionale spaţiale (GIS);
administrarea documentelor şi automatizarea muncii de
birou;
multimedia;
ingineria cunoaşterii: baze de cunoştinţe, sisteme expert;
controlul proceselor în timp real, pe bază de evenimente.
Obiectivele principale ale sistemelor de gestiune orientate pe
obiecte sunt:
Puterea de modelare superioară a datelor.
Posibilităţi de deducţie superioară (ierarhie de clase,
moştenire);
Ameliorarea interfeţei cu utilizatorul;
Luarea în considerare a aspectelor dinamice, integrarea
descrierii structurale şi comportamentale a obiectelor.
7.1. Modelul de date orientat pe obiecte. Concepte de
bază
Un model de date orientat pe obiecte are la bază noţiunea de
entitate conceptuală şi defineşte un obiect ca o colecţie de proprietăţi
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
113
care descriu entitatea. Principalele concepte care stau la baza unui
model orientat pe obiecte sunt: obiectul, încapsularea, persistenţa,
clasa, tipul, moştenirea, polimorfismul, identitatea şi domeniul.
Obiectul
Conceptual, un obiect reprezintă o unitate identificabilă şi cu
conţinut propriu, care se deosebeşte de ceea ce o înconjoară.
Obiectele sunt abstractizări ale entităţilor lumii reale şi se
caracterizează prin stare şi comportament.
Starea unui obiect este exprimată prin valorile atributelor sale.
Colecţia de atribute aleasă pentru un obiect trebuie să fie suficientă
pentru a descrie entitatea, adică trebuie să includă acele atribute pe
care le cunosc utilizatorii.
Comportamentul unui obiect reprezintă un set de metode sau
operaţii care acţionează asupra atributelor sale.
Considerând, de exemplu obiectul AVION acesta poate avea ca
atribute: viteza, anvergura, greutatea, culoarea, înălţimea de zbor
etc.
Un obiect înglobează următoarele elemente:
structura de date;
specificarea operaţiilor;
implementarea operaţiilor.
Structura unui obiect şi operaţiile (metodele) permise pentru acel
obiect sunt definite împreună.
O metodă reprezintă o procedură ce manipulează obiectul sau
indică starea sa şi este totdeauna asociată unei clase.
Metodele şi atributele nu sunt vizibile din “exteriorul” obiectului. Un
obiect comunică cu “exteriorul” prin intermediul mesajelor . Mesajele
reprezintă cereri adresate obiectului pentru a returna o valoare sau
pentru a-şi schimba starea.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
114
Obiectele pot fi simple sau compuse din alte obiecte. Un obiect
compus poate avea ca atribute alte obiecte, formând astfel o
structură ierarhică.
Încapsularea
Structura obiectului şi modul de acţiune al metodelor sale nu pot fi
accesate şi actualizate direct de către un agent extern, dar pot fi
modificate indirect prin intermediul mesajelor. Această caracteristică
ascunsă a stării obiectului este cunoscută sub numele de
încapsulare. Un obiect este astfel divizat în două părţi: o parte de
interfaţă reprezentată de mesaje şi o parte ascunsă, de
implementare, reprezentată de starea internă şi de metodele
obiectului.
Încapsularea ascunde utilizatorului complexitatea unui obiect,
oferindu-i în schimb o imagine funcţională simplificată a acestuia,
imagine care îi permite să modeleze şi să rezolve cu mai multă
uşurinţă problemele complexe.
Persistenţa
Aceasta este o proprietate a datelor sau a obiectelor care implică
existenţa mai îndelungată a acestora faţă de procesul care le-a creat.
Este proprietatea prin care starea bazei de date asigură păstrarea
unui proces pentru a fi refolosit ulterior în alt proces.
Codul aferent metodelor, fiind parte integrantă din obiect, este
stocat, ca şi starea obiectului, în baza de date. Aceasta înseamnă
că, odată ce a fost descrisă, o metodă devine permanentă,
decongestionând astfel aplicaţia şi asigurându-i independenţa faţă de
date. O modificare adusă unei metode devine imediat operantă şi
persistă până la o nouă modificare.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
115
Tipuri şi clase
Obiectele care au acelaşi fel de atribute şi acelaşi comportament
pot fi categorisite ca făcând parte din acelaşi tip sau din aceeaşi
clasă.
Într-un sistem orientat pe obiecte, tipul sintetizează elementele
comune ale unui set de obiecte cu aceleaşi caracteristici.
Corespunde noţiunii de tip abstract de date şi are două componente:
interfaţa;
implementarea.
Noţiunea de clasă, deşi are aceeaşi specificaţie cu cea de tip,
este diferită de acesta, fiind mai mult asociată cu faza de execuţie şi
presupune două aspecte:
generarea de obiecte;
stocarea setului de obiecte care reprezintă instanţele
clasei.
O clasă are o descriere ce constă dintr-un set de structuri de date
comune, cunoscute ca variabile de instanţă, un protocol comun ce
constă dintr-un set de mesaje, la care instanţele clasei vor răspunde
şi un set de metode pentru implementarea de operaţii comune.
Clasele sunt referite uneori ca tip de date abstracte. Descrierea
clasei serveşte ca şablon după care vor fi create noile obiecte. O
clasă este deci un tip abstract de date care defineşte atât structura
obiectelor din clasa respectivă, cât şi mulţimea metodelor existente
pentru aceste obiecte. Ca urmare, obiectele din aceeaşi clasă au
aceleaşi atribute şi aceleaşi metode şi răspund la aceleaşi mesaje.
Clasele sunt organizate ierarhic fiecare clasă nou creată trebuind
să fie obţinută din altă clasă deja existentă. Dacă nu există nici o
clasă potrivită pentru definirea unei noi clase, aceasta va fi
identificată ca o subclasă a clasei generale sistem (metaclasă).
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
116
Orice subclasă moşteneşte structurile şi metodele superclasei din
care face parte. O clasă poate crea noi instanţe ale obiectelor.
Moştenire
Într-o bază de date orientate pe obiecte, clasele sunt aranjate într-
o ierarhie în care fiecare clasă moşteneşte toate atributele şi
metodele superclasei din care face parte. Moştenirea este un
concept puternic, care conduce la posibilitatea de reutilizare a
codului.
Prin moştenire, o clasă preia toate atributele şi metodele clasei din
care derivă adăugând la ele atributele şi metodele proprii. Este de
asemenea posibil ca o clasă să aibă mai mult decât o superclasă.
Acest lucru este cunoscut ca moştenire multiplă.
Polimorfism
Polimorfismul se referă la faptul că, la primirea unui mesaj,
stabilirea metodei care se aplică se face în mod dinamic, în funcţie
de clasa obiectului în cauză. Astfel, instanţe ale unor clase diferite
pot fi adresate uniform (primesc aceleaşi mesaje), dar manifestă
comportamente diferite. Acest fapt asigură manipularea simplă şi
coerentă a seturilor eterogene de obiecte.
Un alt tip de comportament polimorfic este asociat cu moştenirea.
Răspunsul unui obiect la un mesaj poate fi determinat de metodele
moştenite de la superclasă. Moştenirea multiplă permite definirea
unor forme complexe de comportament polimorfic care pot antrena
uneori combinarea metodelor de la două sau mai multe superclase.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
117
Identitatea
Identitatea este un mijloc de a distinge un obiect de altul. Prin
identitate se asigură şi persistenţa datelor.
Oricare din obiectele unei baze de date orientate pe obiecte are
identitate care este independentă de valorile atributelor sale. Spre
deosebire de modelul relaţional, care utilizează unicitatea cheii
primare pentru a identifica “obiectul”, tehnologia orientată pe obiecte
permite modificarea valorilor oricărui atribut fără a-i afecta
identitatea. Mai mult chiar, obiectele au “conştiinţa de sine”, adică se
pot referi pe ele însele prin intermediul pointerului SELF.
Fiecare instanţă sau realizare a obiectului are un identificator de
obiect intern, repartizat lui şi cunoscut ca ID obiect sau pointer.
Acesta este independent de valorile atributelor sale. Fiind generat de
sistem, identificatorul este unic şi nu este accesibil utilizatorului.
Restricţii de integritate ale modelului de date orientat pe
obiecte
În cazul modelului de date orientat pe obiecte, restricţiile de
integritate cunt o consecinţă a structurii modelului şi a operaţiilor.
Următoarele reguli sunt important de reţinut:
toate obiectele trebuie să respecte protocolul specificat
prin definirile lor de clasă;
obiectele sunt încapsulate. Aceasta presupune accesul la
obiect numai prin folosirea protocolului de mesaje definit
pentru clasa obiectului;
identificatorul obiectului trebuie să asigure integritatea
referirii la un obiect. Astfel, un obiect nu există fără să
aibă asignat un identificator.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
118
Dacă un obiect este şters sau mutat atunci trebuie să fie şterse
sau mutate toate obiectele derivate din acesta.
7.2. Baze de date orientate pe obiecte
O bază de date orientată pe obiecte poate fi definită ca fiind
rezultatul aplicării tehnologiei orientate pe obiecte în domeniul
stocării şi regăsirii informaţiilor. Ea oferă posibilitatea de a reprezenta
structuri de date foarte complexe cu ajutorul obiectelor.
Definirea clasei este mecanismul de specificare a schemei bazei
de date. Schema bazei de date constă din toate clasele care au fost
definite pentru o aplicaţie particulară. Definiţiile de clasă includ
moştenirea, relaţiile de înrudire (superclasa, subclasa) şi relaţiile
Test de autoevaluare nr. 1
2. Explicaţi conceptul de moştenire.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
119
structurale dintre clase (analog cu relaţiile din modelul entitate-
relaţie-atribut).
O schemă completă de bază de date poate consta din una sau
mai multe ierarhii de clasă împreună cu relaţiile structurale.
Descrierile individuale ale schemei se referă la variabile de instanţă
ale claselor individuale.
Schema bazei de date poate fi modificată dinamic, în funcţie de
necesităţile utilizatorilor. Pot fi identificate două tipuri de schimbare a
schemei unei baze de date orientate pe obiecte:
1. Schimbări referitoare la modul de definire al unei clase.
Acestea includ schimbările atributelor şi metodelor definite
pentru o clasă, cum ar fi schimbarea numelui sau domeniului
unui atribut, adăugarea, ştergerea unui atribut sau metode;
2. Schimbări referitoare la structura ierarhiei de clase care includ
adăugarea sau ştergerea unei clase şi schimbarea relaţiilor
superclasa/subclasa dintre o pereche de clase.
Proiectarea bazelor de date orientate pe obiecte
Modul clasic de proiectare se bazează pe tehnica top-down. Se
identifică mai întâi componentele majore, se stabilesc corelaţiile între
ele, iar apoi se trece la rafinări succesive, “în cascadă”, a
componentelor.
Proiectarea orientată pe obiecte se bazează mai mult pe tehnica
bottom-up. Se identifică mai întâi componentele funcţionale pe baza
cărora se va construi apoi întregul edificiu. Se identifică în colecţiile
existente obiectele care pot fi reutilizate pentru noul proiect. Acestea
vor fi preluate ca atare sau, dacă este cazul, vor fi ajustate. Cele care
nu există vor fi create, uneori din temelii, dar de cele mai multe ori ca
subclase ale unor clase existente. Odată creată ierarhia de clase
potrivită, se testează componentele specifice, se pune la punct
documentaţia şi se poate începe acţiunea de implementare.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
120
Această metodologie modifică în mod substanţial planificarea
lucrărilor şi etapelor. Partea cea mai minuţioasă a proiectării se mută
la începutul proiectului. Dacă există deja biblioteci de obiecte utilizate
în alte aplicaţii, realizarea uni prototip se poate face foarte rapid. Pe
baza lui se stabilesc aspectele funcţionale şi de interfaţă ale
aplicaţiei, după care se trce la etapa de identificare a obiectelor, a
claselor, a ierarhiei, a modului de comunicare între obiecte. Etapa
finală a proiectului constă în asamblarea acestor elemente.
Sisteme de gestiune a bazelor de date orientate pe obiecte
Sistemele de gestiune a bazelor de date orientate pe obiecte
trebuie să păstreze funcţiunile oferite de SGBD-urile dezvoltate
anterior, folosind totodată structuri de date şi reguli orientate spre
lucrul cu obiecte.
Un SGBD orientat pe obiecte trebuie să satisfacă două criterii:
să fie un sistem orientat pe obiecte, deci bazat pe modelul
orientat pe obiecte;
să îndeplinească cerinţele unui sistem de gestiune a
bazelor de date.
Arhitectura unui SGBD se referă la o descriere abstractă a
organizării unui sistem în scopul de a prezenta componentele
funcţinale şi interfeţele dintre ele. Arhitectura unui SGBD-OO
cuprinde trei componente majore:
Gestionarul de obiecte (Object Manager) care asigură interfaţa
dintre procese (prelucrările) externe şi SGBD-OO;
Server-ul de obiecte care este responsabil cu asigurarea serviciilor
de bază ale SGBD-urilor, cum ar fi: gestiunea tranzacţiilor şi
gestiunea stocului de obiecte;
Stocul rezident de obiecte sau chiar baza de date obiect.
Procesele externe pot fi generate de către diverşi utilizatori prin
accesarea SGBD-OO. Utilizatorii finali externi şi cei care dezvoltă
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
121
aplicaţii pot folosi diverse instrumente soft, cum ar fi: editoare de
texte, browseri de obiecte şi clase, accesorii de proiectare automată
de baze de date şi interfeţe pentru sisteme de proiectare CAD/CAM.
Aceste sisteme pot servi ca instrumente (kits) front_end ce
realizează interfaţa cu gestionarul de obiecte.
În prezent, SGBD-OO comerciale sunt accesate în primul rând
prin limbajele de programare orientate obiect, cum ar fi: Smalltalk,
Common Lisp şi C++. Interfaţa dintre limbajele de programare
orientate pe obiecte şi SGBD-OO o reprezintă limbajul pentru baza
de date. Un SGBD trebuie să asigure un limbaj pentru baze de date
pentru a permite definirea şi manipularea schemei bazei de date şi a
datelor. Exemple de SGBD-OO sunt: GemStone, ObjectStore,
Ontos, Raima Object Manager, Versant etc.
Test de autoevaluare nr. 2
1. Care sunt modalităţile de schimbare a schemei unei
baze de date orientate obiect ?
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
122
7.3. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
Într-o bază de date orientate pe obiecte, clasele sunt aranjate într-
o ierarhie în care fiecare clasă moşteneşte toate atributele şi
metodele superclasei din care face parte. Moştenirea este un
concept puternic, care conduce la posibilitatea de reutilizare a
codului.
Prin moştenire, o clasă preia toate atributele şi metodele clasei din
care derivă adăugând la ele atributele şi metodele proprii. Este de
asemenea posibil ca o clasă să aibă mai mult decât o superclasă.
Acest lucru este cunoscut ca moştenire multiplă.
Test de autoevaluare nr. 2
Schema bazei de date poate fi modificată dinamic, în funcţie de
necesităţile utilizatorilor. Pot fi identificate două tipuri de schimbare a
schemei unei baze de date orientate pe obiecte:
1. Schimbări referitoare la modul de definire al unei clase.
Acestea includ schimbările atributelor şi metodelor definite
pentru o clasă, cum ar fi schimbarea numelui sau domeniului
unui atribut, adăugarea, ştergerea unui atribut sau metode;
2. Schimbări referitoare la structura ierarhiei de clase care includ
adăugarea sau ştergerea unei clase şi schimbarea relaţiilor
superclasa/subclasa dintre o pereche de clase.
Noţiuni introductive privind Bazele de Date Orientate pe Obiecte
123
7.4. Lucrare de verificare a cunoştinţelor
1. Care sunt caracteristicile unui obiect ?
2. Explicaţi conceptul de încapsulare.
3. Explicaţi conceptul de polimorfism.
4. Precizaţi restricţiile de integritate ale modelului de date orientat
obiect.
5. Caracterizaţi proiectarea bazelor de date orientate obiect.
Rezumat
În această unitate de învăţare sunt prezentate aspectele
caracteristice modelului de date orientat pe obiecte şi elementele
care definesc bazele de date orientate obiect.
Bibliografie
1. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
2. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
3. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Noţiuni introductive privind Bazele de Date Distribuite
124
Unitatea de învăţare nr. 8.
Noţiuni introductive privind Bazele de Date Distribuite
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 8 125
8.1. Baze de date distribuite 125
8.2. Sistemul de gestiune a bazelor de date distribuite 129
8.3. Răspunsuri şi comentarii la testele de autoevaluare 132
8.4. Lucrare de verificare a cunoştinţelor 133
Rezumat 133
Bibliografie 133
Noţiuni introductive privind Bazele de Date Distribuite
125
OBIECTIVELE unităţii de învăţare nr. 8
Principalele obiective ale unităţii de învăţare numărul 8 sunt
următoarele:
8.1. Baze de date distribuite
O bază de date distribuită poate fi definită ca o colecţie de date
integrate, din punct de vedere logic, dar distribuite, din punct de
vedere fizic, pe staţiile unei reţele de calculatoare. Fiecare staţie a
reţelei are autonomie de prelucrare care îi permite să realizeze
aplicaţii locale. De asemenea, fiecare staţie participă la execuţia
aplicaţiilor globale care necesită accesarea datelor din mai multe
staţii.
Reţelele de calculatoare pot fi locale (LAN - Local Area Network)
sau la nivel de judeţ, ţară, continent etc. (WAN - World Area
Network).
Realizarea şi exploatarea bazelor de date distribuite implică
rezolvarea unor probleme cum ar fi:
- Controlul centralizat. Spre deosebire de bazele de date
locale care erau controlate de un administrator unic, bazele de
date distribuite presupun existenţa unui administrator global,
care are responsabilitatea centrală a întregii baze de date
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
va înţelege modelul distribuit al datelor ;
va cunoaşte şi va înţelege operaţiile care se pot efectua
asupra bazelor de date distribuite ;
va cunoaşte specificaţiile SGBD-urilor distribuite.
Noţiuni introductive privind Bazele de Date Distribuite
126
distribuită şi a unor administratori locali, cărora le revin
responsabilităţile legate de bazele de date locale.
Administratorii locali pot avea un grad înalt de autonomie care
poate merge până la realizarea coordonării între staţii.
- Independenţa datelor. În cazul bazelor de date distribuite
asigurarea independenţei datelor faţă de programele de
aplicaţii are aceeaşi importanţă ca şi în cazul bazelor de date
locale, dar apare un nou aspect legat de transparenţa
distribuţiei. Prin transparenţa distribuţiei programele pot fi
scrise făcând abstracţie de distribuirea fizică a datelor. Mutarea
datelor dintr-o staţie în alta trebuie să afecteze numai viteza de
execuţie, nu şi corectitudinea programului.
- Asigurarea unei redundanţe minime şi controlate. În cadrul
bazelor de date distribuite există mai multe motive pentru a
considera redundanţa datelor o caracteristică acceptabilă, şi
anume:
localizarea este mai rapidă atunci când datele sunt
replicate la toate staţiile unde sunt cerute de aplicaţii;
disponibilitatea, siguranţa sistemului creşte atunci
când datele sunt replicate. În cazul căderii unei staţii,
aplicaţiile pot fi dirijate la staţiile unde datele sunt
replicate.
Redundanţa datelor reduce efortul de regăsire a datelor dar creşte
efortul de actualizare. Evaluarea unui grad optim al redundanţei
trebuie să ţină seama de raportul între accesele de regăsire şi
accesele de actualizare a datelor.
- Integritatea, restaurarea datelor şi controlul concurenţei. În
cazul bazelor de date distribuite soluţiile privind integritatea,
restaurarea datelor şi controlul concurenţei (cererea simultană
a aceloraşi date) sunt legate de modul de realizare a
tranzacţiilor. O tranzacţie este o unitate atomică de execuţie, o
secvenţă de operaţii care fie sunt realizate în întregime fie nu
Noţiuni introductive privind Bazele de Date Distribuite
127
sunt realizate. În cadrul bazelor de date distribuite problema
atomicităţii tranzacţiilor capătă un aspect particular legat de
modul în care trebuie să se comporte sistemul atunci când una
din staţii nu este operaţională: să abandoneze întreaga
tranzacţie sau să încerce să execute corect tranzacţia chiar
dacă ambele staţii nu sunt simultan operaţionale.
- Siguranţa şi securitatea datelor. În bazele de date
tradiţionale, administratorul bazei de date care are controlul
centralizat permite numai un aces autorizat la date. În bazele
de date distribuite, administratorii se confruntă cu aceleaşi
probleme ca administratorii bazelor de date tradiţionale. Sunt
de menţionat două aspecte particulare:
în bazele de date distribuite, cu un grad ridicat de
autonomie a staţiilor, bazele de date locale sunt mai
protejate deoarece administratorii locali îşi
realizează propria protecţie fără să depindă de un
administrator centralizat;
problemele securităţii sunt intrinseci sistemelor
distribuite deoarece comunicaţia în reţea poate
reprezenta un punct slab în realizare protecţiei.
Faţă de bazele de date centralizate, bazele de date distribuite au
următoarele avantaje:
Creşterea adaptabilităţii sistemului. În orice moment baza
de date poate fi extinsă prin adăugarea de noi structuri de
baze de date, cu un impact minim asupra structurii bazei
de date distribuite şi fără a afecta aplicaţiile existente. În
cazul sistemelor centralizate, dimensiunile iniţiale ale
sistemului trebuie să prevadă viitoarele expansiuni, lucru
greu de realizat şi costisitor de implementat.
Sporirea performanţelor sistemului deoarece partajarea şi
replicarea datelor ca şi existenţa mai multor procesoare
Noţiuni introductive privind Bazele de Date Distribuite
128
au ca rezultat creşterea gradului de paralelism în
executarea aplicaţiilor.
Creşterea siguranţei sistemului. Sistemul distribuit este
proiectat astfel încât căderea unei staţii nu afectează
întregul sistem.
Disponibilitatea sporită a datelor asigurată de replicarea
lor. Chiar dacă o staţie cade, datele sunt încă disponibile
prin copiile memorate pe alte staţii.
Test de autoevaluare nr. 1
1. Care sunt avantajele bazelor de date distribuite ?
Noţiuni introductive privind Bazele de Date Distribuite
129
8.2. Sistemul de gestiune a bazelor de date
distribuite
Un sistem de baze de date distribuite este un sistem în cadrul
căruia mai multe baze de date locale sunt legate printr-un sistem de
comunicaţie astfel încât datele din orice staţie pot fi accesate de
utilizatori de la alte staţii.
Un sistem de baze de date distribuite conţine următoarele
componente software:
componenta de comunicaţie;
sistemul de gestiune al bazei de date locale (SGBDL);
dicţionarul de date global (DDG);
sistemul de gestiune al bazei de date distribuite
(SGBDD).
Componenta de comunicaţie este cea care realizează legăturile în
cadrul reţelei. El cuprinde descrierea completă a nodurilor şi a
legăturilor din cadrul reţelei.
Sistemul de gestiune al bazei de date locale este un sistem
standard de gestiune a bazelor de date. De obicei conţine propriul
său dicţionar pentru datele locale.
Dicţionarul de date global cuprinde informaţii despre baza de date
distribuită: localizarea, structura, disponibilitatea şi modul de utilizare
a datelor.
SGBDD cuprinde un sistem complex de programe care asigură
interfaţa între baza de date distribuită şi utilizatorii acesteia.
Funcţiile pe care le îndeplineşte un SGBDD sunt următoarele:
1. Asigurarea interfeţei cu utilizatorul. Unul din obiectivele
majore ale unei baze de date distribuite este asigurarea
transparenţei localizării datelor. Utilizatorul nu trebuie să
cunoască nodul la care sunt localizate datele şi să
interacţioneze cu baza de date distribuită în acelaşi mod ca şi
cu o bază de date locală.
Noţiuni introductive privind Bazele de Date Distribuite
130
2. Localizarea datelor. După primirea unei cereri de date,
SGBDD consultă dicţionarul de date global pentru a localiza
nodul în care sunt memorate datele. Cererile de date pot fi
împărţite în cereri locale, la distanţă şi compuse. Dacă cererea
poate fi satisfăcută în întregime local este preluată de SGBD-ul
local. O cerere la distanţă este o cerere care poate fi prelucrată
în întregime într-un alt nod decât cel care a emis cererea. În
acest caz SGBDD transferă crerea SGBD-ului de la nodul
respectiv. O cerere compusă este o cerere care necesită
informaţii din mai multe noduri. Pentru a prelucra o cerere
compusă este necesară mai întâi descompunerea acesteia în
cereri locale şi cereri la distanţă. În urma prelucrării, rezultatele
sunt transferate SGBDD care le transferă la rândul lui
utilizatorului. Pentru a superviza execuţia cererilor, un nod
trebuie să-şi asume rolul de coordonator. Celelalte noduri care
concură la realizarea unei cereri se numesc noduri cooperante.
Un nod poate fi în acelaţi timp nod şi coordonator (pentru
crerile lansate din acest nod) şi cooperant (pentru cererile
lansate din celelalte noduri care solicită acces la acest nod).
3. Asigurarea controlului concurenţei şi restaurarea datelor
la nivelul întregului sistem. Fiecare SGBD răspunde de
actualizarea şi restaurarea datelor din propria bază de date. În
caz de incident, SGBD local poate restaura datele la starea
anterioară producerii incidentului dar numai SGBDD poate
păstra şi aplica modificările care au intervenit după producerea
incidentului. Controlul concurenţei la nivelul sistemelor este
necesar pentru a asigura sincronizarea proceselor.
4. Realizarea administrării bazei de date distribuite şi
controlul acesteia. SGBDD dispune de instrumente pentru
monitorizarea bazei de date distribuite, colectarea informaţiilor
despre modul de utilizare a acesteia şi, pe baza acestora,
realizează viziunea globală asupra ei.
Noţiuni introductive privind Bazele de Date Distribuite
131
O caracteristică importantă a SGBDD este omogenitatea sau
eterogenitatea. Un SGBDD este omogen atunci când toate SGBD-
urile locale sunt de acelaşi fel. Un SGBDD eterogen implică cel puţin
două SGBD-uri locale diferite.
Astăzi există SGBDD omogene cum sunt: SDD-1, R*, DDM ş.a. şi
SGBDD eterogene cum ar fi: MULTIBASE, DDTS ş.a. De un interes
crescând se bucură sistemele eterogene de baze de date distribuite.
Test de autoevaluare nr. 2
Care sunt componentele unui SGBD distribuit (SGBDD) ?
Noţiuni introductive privind Bazele de Date Distribuite
132
8.3. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
Faţă de bazele de date centralizate, bazele de date distribuite au
următoarele avantaje:
Creşterea adaptabilităţii sistemului. În orice moment baza
de date poate fi extinsă prin adăugarea de noi structuri de
baze de date, cu un impact minim asupra structurii bazei
de date distribuite şi fără a afecta aplicaţiile existente. În
cazul sistemelor centralizate, dimensiunile iniţiale ale
sistemului trebuie să prevadă viitoarele expansiuni, lucru
greu de realizat şi costisitor de implementat.
Sporirea performanţelor sistemului deoarece partajarea şi
replicarea datelor ca şi existenţa mai multor procesoare
au ca rezultat creşterea gradului de paralelism în
executarea aplicaţiilor.
Creşterea siguranţei sistemului. Sistemul distribuit este
proiectat astfel încât căderea unei staţii nu afectează
întregul sistem.
Disponibilitatea sporită a datelor asigurată de replicarea lor. Chiar
dacă o staţie cade, datele sunt încă disponibile prin copiile memorate
pe alte staţii.
Test de autoevaluare nr. 2
Un sistem de baze de date distribuite conţine următoarele
componente software:
componenta de comunicaţie;
sistemul de gestiune al bazei de date locale (SGBDL);
Noţiuni introductive privind Bazele de Date Distribuite
133
dicţionarul de date global (DDG);
sistemul de gestiune al bazei de date distribuite
(SGBDD).
8.4. Lucrare de verificare a cunoştinţelor
1. Ce este o bază de date distribuită ?
2. Enumeraţi şi explicaţi principalele probleme ridicate de
realizarea şi exploatarea bazelor de date distribuite.
3. Explicaţi funcţia SGBDD de asigurare a interfeţei cu utilizatorul.
4. Explicaţi funcţia SGBDD de localizare a datelor.
5. Explicaţi funcţia SGBDD de asigurare a controlului accesului
concurent la date.
Rezumat
În această unitate de învăţare sunt prezentate aspectele
caracteristice bazelor de date distribuite precum şi caracteristicile
SGBD-urilor distribuite.
Bibliografie
1. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
2. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
3. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
Protecţia şi securitatea bazelor de date
134
Unitatea de învăţare nr. 9.
Protecţia şi securitatea bazelor de date
Cuprins Pagina
Obiectivele unităţii de învăţare nr. 9 135
9.1. Protecţia baze de date 135
9.1.1. Integritatea datelor 136
9.2. Securitatea bazei de date 139
9.3. Răspunsuri şi comentarii la testele de autoevaluare 143
9.4. Lucrare de verificare a cunoştinţelor 145
Rezumat 145
Bibliografie 145
Protecţia şi securitatea bazelor de date
135
OBIECTIVELE unităţii de învăţare nr. 9
Principalele obiective ale unităţii de învăţare numărul 9 sunt
următoarele:
9.1. Protecţia bazelor de date
Protecţia bazelor de date constă dintr-un set de măsuri umane şi
facilităţi oferite de SGBD prin care se urmăreşte asigurarea
integrităţii datelor, definită ca fiind corectitudinea datelor introduse şi
manipulate, şi a securităţii datelor, ce vizează interzicerea accesului
la date pentru persoanele ce nu au competenţe în folosirea lor.
Aceasta capătă o importanţă deosebită în contextul extinderii folosirii
configuraţiilor cu număr mare de utilizatori şi cu un volum mare de
date de prelucrat.
În ceea ce priveşte sfera de acţiune a metodelor utilizate pentru
protecţia datelor, pot fi puse în evidenţă două tendinţe: protecţia
împotriva unor defecte sau erori accidentale şi protecţia completă
care realizează în plus faţă de prima şi protecţia contra unor acţiuni
voite. Teoretic, toate sistemele ar trebui să asigure protecţia
completă a datelor. În practică însă, costul protecţiei, care creşte pe
măsură ce sunt reduse posibilităţile de apariţie a unor erori şi de
violare a confidenţialităţii datelor, este cel care dictează
complexitatea metodelor de protecţie care vor fi utilizate. Aspectele
După parcurgerea acestei unităţi studentul va putea demonstra
că are suficiente cunoştinţe pentru a înţelege:
aspectele care definesc protecţia datelor ;
tehnicile de asigurare a integrităţii datelor din baza de
date ;
metodele de asigurare a securităţii datelor.
Protecţia şi securitatea bazelor de date
136
protecţiei bazelor de date ce vor fi prezentate mai jos se bazează pe
presupunerea că, la nivelul sistemului de operare, protecţia
informaţiilor din bazele de date este asigurată.
9.1.1. Integritatea datelor
Corespunzător situaţiilor care pot genera apariţia unor date
incorecte în baza de date, se disting trei aspecte ale asigurării
integrităţii datelor:
1. Asigurarea integrităţii semantice a datelor - presupune
prevenirea introducerii unor date incorecte şi a efectuării unor
prelucrări greşite. Dacă acest lucru nu va fi împiedicat sau
semnalat imediat, datele vor fi utilizate în alte prelucrări,
declanşându-se astfel un proces necontrolat de alterare a
bazei de date. Cu cât sesizarea unei erori are loc după o
perioadă mai mare, cu atât efectele ei vor fi mai greu de
controlat.
2. Controlul accesului concurent la date - presupune
prevenirea obţinerii unor rezultate incorecte din execuţia
concurentă (simultană) a unor prelucrări în regim multiutilizator.
O altă problemă care poate apare la prelucrarea concurentă
este dată de interblocare. Aceasta înseamnă că două tranzacţii
blochează anumite resurse, apoi solicită fiecare resursele
blocate de cealaltă.
3. Salvarea şi restaurarea bazei de date. Au ca scop
readucerea datelor la o formă consistentă în urma unor
evenimente care au alterat corectitudinea lor precum:
funcţionarea anormală sau o cădere a SGBD sau a
sistemului de operare;
defecţiune fizică a suportului fizic pe care este memorată
baza de date.
Protecţia şi securitatea bazelor de date
137
În primul caz, prin întreruperea tranzacţiilor active în momentul
respectiv, baza de date va rămâne într-o stare de inconsistenţă. În
cel de-al doilea caz, suportul pe care rezidă baza de date va fi
inutilizabil, deci toate datele se vor pierde.
Pentru restaurarea bazei de date este necesară existenţa unor
informaţii despre derularea tranzacţiilor până în momentul întreruperii
lucrului şi aplicarea, după caz a uneia din următoarele tehnici de
restaurare de bază:
- derularea înapoi a tranzacţiilor (ROLLBACK) - care presupune
anularea modificărilor efectuate de acestea asupra bazei de
date;
- derularea înainte a tranzacţiilor completate dar nereflectate în
baza de date (ROLLFORWARD) - care presupune efectuarea
acelor transformări prin care baza de date restaurată să
conţină rezultatele acestora.
Se observă deci că tranzacţia poate fi considerată unitatea de
restaurare, în sensul că baza de date restaurată trebuie, fie să
reflecte rezultatele finale ale tranzacţiilor, fie să nu fie afectată de
acestea.
Procesul de restaurare utilizează o serie de infromaţii obţinute prin
aplicarea unei anumite strategii de salvare.
Datele salvate pot fi diferite combinaţii între:
- copii ale bazei de date şi copii ale jurnalelor acesteia;
- jurnale ale tranzacţiilor;
- jurnale ale imaginii înregistrărilor din baza de date.
Copiile bazei de date pot fi realizate automat de către sistem la
anumite intervale de timp, sau la comanda administratorului bazei de
date, ori de câte ori este nevoie, de preferat pe suporturi magnetice
diferite de cele pe care este stocată baza de date. În cazul unei
deteriorări a suportului magnetic care păstrează baza de date,
acesta este singura posibilitate de recuperare a bazei de date.
Protecţia şi securitatea bazelor de date
138
Jurnalul tranzacţiilor este un fişier special, întreţinut de SGBD, în
care sunt memorate informaţii despre tranzacţiile efectuate asupra
bazei de date, cum sunt:
identificatorul sau codul tranzacţiei;
momentul începerii execuţiei tranzacţiei;
numărul terminalului sau identificatorul utilizatorului care a
iniţiat tranzacţia;
datele introduse;
înregistrările modificate şi tipul modificării.
Pe baza lui va putea fi stabilită ulterior succesiunea corectă şi
natura prelucrărilor efectuate în intervalul de timp pentru care trebuie
să se sigure restaurarea bazei de date.
Jurnalul imaginilor se deosebeşte de jurnalul tranzacţiilor prin
aceea că el nu conţine descrierea operaţiilor efectuate asupra bazei
de date ci efectul acestora. Poate îmbrăca una din urmăroarele
forme:
jurnalul cu imaginea înregistrărilor după modificare (after
image) - va conţine copia fiecărei înregistrări ce este
modificată, în forma rezultată după modificare;
jurnalul cu imaginea înregistrărilor înaintea unei modificări
(before image) - va conţine copia fiecărei înregistrări ce
este modificată, în forma iniţială, anterioară efectuării
modificării;
jurnalul care conţine atât imaginea înregistrărilor inainte
cât şi după modificare.
Restaurarea bazei de date se poate face automat sau manual.
Protecţia şi securitatea bazelor de date
139
9.2. Securitatea bazei de date
Asigurarea securităţii bazei de date presupune interzicerea
accesului neautorizat la date. Aceasta se realizează cu ajutorul unui
set de măsuri de protecţie umane, software şi hardware.
O primă astfel de măsură o poate constitui izolarea sistemului de
calcul în încăperi în care accesul persoanelor să fie permis pe bază
de legitimaţii sau a altor forme de identificare.
Un alt nivel de protecţie îl poate constitui stabilirea de parole pe
baza cărora să fie permis accesul la resursele sistemului de calcul.
În timpul lucrului efectiv cu baza de date se va verifica dacă
utilizatorul are dreptul de a executa un tip de operaţie asupra
anumitor date. SGBD poate ţine şi un jurnal pentru urmărirea
accesului la baza de date, pe baza căruia pot fi depistate încercările
de acces neautorizat la baza de date.
Test de autoevaluare nr. 1
Care sunt aspectele asigurăririi integrităţii datelor ?
Protecţia şi securitatea bazelor de date
140
Pentru cererile de intrare/ieşire transmise sistemului de operare de
către SGBD sunt posibile verificări suplimentare referitoare la
utilizarea corectă a fişierelor sau a funcţiilor sistemului de operare.
Hardware-ul poate să ofere o protecţie suplimentară, ca de
exemplu transferarea datelor numai în zona de memorie controlată
de SGBD. De asemenea, datele pot fi memorate pe suportul extern
într-o formă criptată.
În continuare vor fi prezentate următoarele mecanisme de
asigurare a securităţii datelor din baza de date:
1. Autorizarea şi controlul accesului la date presupune
identificarea utilizatorilor, restricţionarea accesului acestora la date
precum şi restricţionarea operaţiilor ce pot fi executate asupra datelor
accesate.
Cea mai mare parte a SGBD-urilor actuale folosesc pentru
identificarea utilizatorilor parole. Fiecare parolă va fi asociată cu
anumite drepturi de acces la date, ea nefind decât un prim obstacol
pentru cei care încearcă să violeze securitatea bazei de date.
Astfel, pentru fiecare utilizator identificat prin parolă, SGBD
menţine o listă a privilegiilor acestuia. De asemenea, utilizatorii pot fi
asociaţi unor grupuri de utilizatori, la drepturile fiecăruie dăugându-se
drepturile stabilite pentru grupul respectiv. Privilegiile unui utilizator
depind astfel de clasa de utilizatori căreia îi aparţine. Din acest
punct de vedere, utilizatorii se împart în: administratorul bazei de
date care are toate drepturile asupra acesteia, utilizatori proprietari
de obiecte (tabele, viziuni, proceduri), un obiect fiind întotdeauna în
proprietatea celui care-l creează, şi utilizatorii obişnuiţi, care nu au în
proprietate obecte şi nu au alte privilegii decât cele moştenite ca
membrii ai unui grup sau menţionate explicit de administratorul bazei
de date.
2. Definirea şi utilizarea viziunilor. Viziunile (schemele externe)
sunt partiţii logice ale bazei de date. Ele sunt definite pentru diferiţi
Protecţia şi securitatea bazelor de date
141
utilizatori în raport cu necesităţile acestora de a avea acces la date,
putând fi utilizate pentru a restricţiona accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele
pentru obiectele pe baza căreia este definită. Securitatea datelor
este asigurată prin definirea tuturor drepturilor necesare unui
utilizator pentru o viziune şi revocarea drepturilor pentru obiectele
iniţiale.
Această modalitate este suficientă în cazul în care asupra datelor
viziunii este permisă doar operaţia de citire. Pentru operaţia de
modificare trebuiesc avute în vedere efectele laterale pe care
aceasta le poate produce asupra obiectelor iniţiale. Utilizatorului nu
trebuie să i se permită să efectueze asupra viziunii acele operaţii
care pot afecta obiectele iniţiale. În caz contrar, pot să apară erori
sau inconsistenţe în baza de date.
3. Realizarea de proceduri speciale. Unele SGBD oferă
facilitatea definirii unor proceduri ce vor fi păstrate la nivelul
sistemului într-o formă precompilată.
În cadrul acestor proceduri vor fi specificate explicit operaţiile ce
trebuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul
de execuţie a acestor proceduri şi i se va interzice accesul direct la
obiectele bazei de date gestionate de procedură.
4. Criptarea datelor este operaţia de codifcare a datelor în timpul
stocării sau al transportului, astfel încât descifrarea lor să poată fi
făcută numai de posesorii de cod.
La nivelul SGBD această facilitate poate îmbrăca două forme:
existenţa unor rutine speciale care realizează criptarea
datelor la cerere sau automat;
existenţa unor instrumente de criptare care permit
utilizatorului să-şi realizeze propriile rutine de criptare.
Procesul efectiv de criptare presupune folosirea unui sistem de
cifrare, ale cărui componente sunt:
Protecţia şi securitatea bazelor de date
142
1. Algoritmul de criptare - realizează transformarea datelor
din forma iniţială în forma criptată (cifrată).
2. Cheia de criptare - valoare ce constituie o intrare a
algoritmului de criptare, aleasă dintr-o mulţime de chei
posibile.
3. Algoritmul de decriptare - realizează transformarea datelor
din forma criptată în forma iniţială.
4. Cheia de decriptare - valoare ce constituie o intrare în
algoritmul de decriptare, dependentă de cheia de criptare.
Test de autoevaluare nr. 2
Care sunt principalele mecanisme de asigurare a securităţii
datelor ?
Protecţia şi securitatea bazelor de date
143
8.3. Răspunsuri şi comentarii la testele de
autoevaluare
Test de autoevaluare nr. 1
Corespunzător situaţiilor care pot genera apariţia unor date
incorecte în baza de date, se disting trei aspecte ale asigurării
integrităţii datelor:
4. Asigurarea integrităţii semantice a datelor - presupune
prevenirea introducerii unor date incorecte şi a efectuării unor
prelucrări greşite. Dacă acest lucru nu va fi împiedicat sau
semnalat imediat, datele vor fi utilizate în alte prelucrări,
declanşându-se astfel un proces necontrolat de alterare a
bazei de date. Cu cât sesizarea unei erori are loc după o
perioadă mai mare, cu atât efectele ei vor fi mai greu de
controlat.
5. Controlul accesului concurent la date - presupune
prevenirea obţinerii unor rezultate incorecte din execuţia
concurentă (simultană) a unor prelucrări în regim multiutilizator.
O altă problemă care poate apare la prelucrarea concurentă
este dată de interblocare. Aceasta înseamnă că două tranzacţii
blochează anumite resurse, apoi solicită fiecare resursele
blocate de cealaltă.
6. Salvarea şi restaurarea bazei de date. Are ca scop
readucerea datelor la o formă consistentă în urma unor
evenimente care au alterat corectitudinea lor precum:
funcţionarea anormală sau o cădere a SGBD sau a
sistemului de operare;
defecţiune fizică a suportului fizic pe care este memorată
baza de date.
Protecţia şi securitatea bazelor de date
144
Test de autoevaluare nr. 2
Mecanismele de asigurare a securităţii datelor din baza de date
sunt următoarele:
1. Autorizarea şi controlul accesului la date ; presupune
identificarea utilizatorilor, restricţionarea accesului acestora la date
precum şi restricţionarea operaţiilor ce pot fi executate asupra datelor
accesate.
2. Definirea şi utilizarea viziunilor. Viziunile (schemele externe)
sunt partiţii logice ale bazei de date. Ele sunt definite pentru diferiţi
utilizatori în raport cu necesităţile acestora de a avea acces la date,
putând fi utilizate pentru a restricţiona accesul la date.
Privilegiile pentru o viziune sunt specificate independent de cele
pentru obiectele pe baza căreia este definită. Securitatea datelor
este asigurată prin definirea tuturor drepturilor necesare unui
utilizator pentru o viziune şi revocarea drepturilor pentru obiectele
iniţiale.
3. Realizarea de proceduri speciale. Unele SGBD oferă
facilitatea definirii unor proceduri ce vor fi păstrate la nivelul
sistemului într-o formă precompilată.
În cadrul acestor proceduri vor fi specificate explicit operaţiile ce
trebuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul
de execuţie a acestor proceduri şi i se va interzice accesul direct la
obiectele bazei de date gestionate de procedură.
4. Criptarea datelor este operaţia de codifcare a datelor în timpul
stocării sau al transportului, astfel încât descifrarea lor să poată fi
făcută numai de posesorii de cod.
La nivelul SGBD această facilitate poate îmbrăca două forme:
existenţa unor rutine speciale care realizează criptarea
datelor la cerere sau automat;
existenţa unor instrumente de criptare care permit
utilizatorului să-şi realizeze propriile rutine de criptare.
Protecţia şi securitatea bazelor de date
145
9.4. Lucrare de verificare a cunoştinţelor
1. Cum se poate realiza restaurarea bazei de date în cazul
căderilor accidentale ale SGBD sau SO ?
2. Cum se asigura refacerea bazei de date în cazul defectării
suportului de memorie pe care este stocata aceasta ?
3. Ce conţine jurnalul tranzacţiilor ?
4. Ce conţine jurnalul imaginilor ?
5. Ce presupune activitatea de asigurare a securităţii bazei de
date ?
Rezumat
În această unitate de învăţare sunt prezentate aspectele
caracteristice bazelor de date distribuite precum şi caracteristicile
SGBD-urilor distribuite.
Bibliografie
1. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
2. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
Bibliografie
146
Bibliografie
1. Duşmănescu Dorel, Baze de date, Editura Universităţii Petrol-
Gaze din Ploieşti, 2005
2. Fotache M., Proiectarea bazelor de date. Normalizare şi
postnormalizare. Implementări SQl şi Oracle, Editura Polirom,
Iaşi, 2005
3. Fotache, Marin, SQL: Dialecte DB2, Oracle, PostgreSQL şi
SQL Server, ediţia a II-a, Editura Polirom, Iaşi, 2009
4. Ionescu, Felicia, Baze de date relaţionale şi aplicaţii, Editura
Tehnică, 2004
5. Pătraşcu Aurelia, Tănăsescu Ana, Duşmănescu Dorel, Baze
de date MS-Access. Teorie şi aplicaţii, Editura Universităţii
Petrol-Gaze din Ploieşti, 2006
6. Thomas Connolly, Carolyn Begg, Anne Strachan, Baze de
date. Proiectare. Gestiune. Implementare, Editura Teora,
Bucureşti, 2001
7. Velicanu Manole, Sisteme de gestiune a bazelor de date prin
exemple, Editura ASE, Bucureşti, 2013
8. Ion Lungu, Adela Bara, Constanta Bodea, Iuliana Botha, Vlad
Diaconita, Alexandra Florea, Anda Velicanu, Tratat de baze
de date, Editura ASE, Bucureşti, 2011
9. Velicanu Manole, Baze de date prin exemple, Editura ASE,
Bucureşti, 2007