Baze de Date

113
1. ELEMENTE DE TEORIA BAZELOR DE DATE 1.1. Organizarea datelor Activitatea umană include o mulţime de activităţi desfăşurate pentru a satisface diverse necesităţi, fie ele de natură materială sau spirituală. Pentru desfăşurarea acestor activităţi s-au dezvoltat întreprinderi şi organizaţii speciale care, în vederea îndeplinirii scopului propus, necesită manevrarea unui volum ridicat de informaţii. Au apărut şi s-au dezvoltat sisteme informaţionale care ocupă astăzi un loc important în funcţionarea complexului mecanism reprezentat de societatea modernă. Sisteme informaţionale reprezintă un ansamblu de tehnici şi metode de organizare şi manevrare a informaţiilor specifice unui anumit domeniu de activitate (ex. circuitul informaţiilor într-o întreprindere, evidenţa populaţiei, evidenţa cărţilor într-o bibliotecă etc.), de la generarea acestora şi până la ştergerea sau stocarea lor. Apariţia calculatorului electronic a permis automatizarea acestor activităţi conducând la apariţia sistemelor informatice. Sistemele informatice sunt sisteme de organizare, manevrare şi exploatare a informaţiilor (respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a rezolva problemele legate de manevrarea informaţiilor, reprezentate prin intermediul datelor, apare ca o necesitate existenţa unor modele şi mecanisme de organizare a datelor deoarece, de modul în care sunt organizate datele depinde eficienţa sistemului informatic. Bazele de date, ca principale componente ale sistemelor informatice, oferă tocmai aceste modele şi mecanisme de organizare a datelor. Pentru început trebuiesc clarificate noţiunile de informaţie şi date. 5

description

Baze de Date

Transcript of Baze de Date

Page 1: Baze de Date

1. ELEMENTE DE TEORIA BAZELOR DE DATE

1.1. Organizarea datelor

Activitatea umană include o mulţime de activităţi desfăşurate pentru a satisface diverse necesităţi,

fie ele de natură materială sau spirituală. Pentru desfăşurarea acestor activităţi s-au dezvoltat

întreprinderi şi organizaţii speciale care, în vederea îndeplinirii scopului propus, necesită manevrarea

unui volum ridicat de informaţii. Au apărut şi s-au dezvoltat sisteme informaţionale care ocupă astăzi

un loc important în funcţionarea complexului mecanism reprezentat de societatea modernă. Sisteme

informaţionale reprezintă un ansamblu de tehnici şi metode de organizare şi manevrare a informaţiilor

specifice unui anumit domeniu de activitate (ex. circuitul informaţiilor într-o întreprindere, evidenţa

populaţiei, evidenţa cărţilor într-o bibliotecă etc.), de la generarea acestora şi până la ştergerea sau

stocarea lor. Apariţia calculatorului electronic a permis automatizarea acestor activităţi conducând la

apariţia sistemelor informatice.

Sistemele informatice sunt sisteme de organizare, manevrare şi exploatare a informaţiilor

(respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a

rezolva problemele legate de manevrarea informaţiilor, reprezentate prin intermediul datelor, apare ca

o necesitate existenţa unor modele şi mecanisme de organizare a datelor deoarece, de modul în care

sunt organizate datele depinde eficienţa sistemului informatic. Bazele de date, ca principale

componente ale sistemelor informatice, oferă tocmai aceste modele şi mecanisme de organizare a

datelor.

Pentru început trebuiesc clarificate noţiunile de informaţie şi date.

Datele sunt reprezentări simbolice ale unor fenomene, procese, obiecte etc. susceptibile a fi stocate

pe un suport de memorie externă, şi care pot fi manevrate folosind diverse mijloace tehnice (exemple

de date: cifre, şiruri de caractere, imagini, culori etc.).

Informaţia reprezintă sensul pe care oamenii îl acordă datelor (astfel că aceeaşi dată poate

reprezenta diverse informaţii, funcţie de cei care o folosesc).

Organizarea datelor presupune efectuarea următoarele activităţi:

- definirea, structurarea, ordonarea şi gruparea datelor;

- stabilirea legăturilor ( relaţiilor ) între date, între elementele unei colecţii de date şi între

colecţii de date;

- stocarea datelor pe un suport informaţional, prelucrabil într-un sistem de calcul.

Organizarea datelor se realizează pentru a permite regăsirea lor automată după anumite criterii şi

forme.

Obiectivele urmărite la organizarea datelor sunt:

5

Page 2: Baze de Date

- realizarea unui acces rapid la date stocate pe diferite suporturi de memorie;

- spaţiul de memorie internă şi externă ocupat să fie cât mai mic (economie de memorie);

- datele să apară o singură dată în sistem (unicitatea datelor);

- modul de organizare a datelor să reflecte, pe cât posibil, toate legăturile dintre obiectele,

fenomenele, procesele pe care acestea le reprezintă;

- schimbarea structurii datelor şi a relaţiilor dintre ele să se facă fără a modifica programele ce le

gestionează (flexibilitatea datelor).

Conceptele de bază utilizate în activitatea de organizare a datelor sunt: entitate, atribut, valoare.

Entitatea reprezintă un obiect concret sau abstract, caracterizat de proprietăţile sale.

O proprietate a unui obiect poate fi exprimată printr-o pereche (ATRIBUT, VALOARE). Spre

exemplu: “studentul X este în anul de studii II”, unde “anul de studii” reprezintă atributul, iar “II”

reprezintă valoarea. Deoarece o entitate este caracterizată de proprietăţile sale înseamnă că ea se

poate reprezenta prin mai multe perechi (ATRIBUT, VALOARE).

De exemplu, o persoană X poate fi reprezentată prin mulţimea de perechi: (NUME, IONESCU),

(VÂRSTA, 25), (SEX, MASCULIN), (PROFESIE, INGINER). Se observă însă că mulţimea

atributelor NUME, VÂRSTA, SEX, PROFESIE poate fi asociată cu mai multe persoane care se

individualizează prin valorile acestor atribute. Rezultă că un atribut nu caracterizează doar o entitate,

ci poate caracteriza o clasă de entităţi numită entitate grup.

Atributele mai sunt cunoscute şi sub numele de câmpuri sau caracteristici.

Un atribut este caracterizat de mulţimea valorilor pe care le poate lua. Aceste valori pot fi

numerice, alfanumerice (şiruri de caractere) etc. În general atributele au valori elementare, dar pot

exista şi situaţii de atribute compuse (formate prin înlănţuirea mai multor atribute elementare).

Atributele care identifică în mod unic o anumită entitate se numesc atribute cheie, celelalte atribute

numindu-se atribute non-cheie.

1.2. Relaţii între date

Datele folosite pentru a descrie diverse procese, fenomene sau obiecte se găsesc în legătură una cu

alta. Între datele care aparţin unor tipuri de entităţi pot exista două categorii de legături:

- o categorie de legături definită de însăşi apartenenţa datelor la o anumită entitate;

- o a doua categorie constituită de legăturile dintre entităţile de acelaşi tip sau de tipuri diferite.

Exemplu:

Fie A mulţimea datelor despre salariaţii unei societăţi comerciale. Între datele acestei mulţimi se

pot stabili relaţii de tipul:

- x are aceeaşi profesie cu y;

- x este şeful lui y;6

Page 3: Baze de Date

- 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:

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 .

Dacă 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

, avem x R x.

Exemplu: .

2. Simetrie. O relaţie R definită pe mulţimea de date A spunem că este simetrică dacă pentru

.

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

cu proprietatea că x R y şi y R x, avem x=y.

Exemplu: şi implică .

4. Tranzitivitate. Fie A o mulţime de date. Spunem că o relaţie R pe mulţimea A este tranzitivă

dacă pentru cu proprietatea că x R y şi y R z, atunci x R z.

Exemplu: Dacă produsul x “intră în componenţa lui” y şi y “intră în componenţa lui” z,

atunci x “intră în componenţa lui” z.

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

dacă este reflexivă, simetrică şi tranzitivă.

7

Page 4: Baze de Date

Definiţie. Fie A o colecţie de date. Dacă , există relaţia x R y sau y R x, spunem că

relaţia dintre elementele colecţiei este de ordine totală.

Definiţie. O relaţie binară R, definită pe o mulţime de date A, care este reflexivă, asimetrică şi

tranzitivă se numeşte relaţie de ordine.

Definiţie. Relaţia binară R, definită pe o mulţime de date A, care este reflexivă şi tranzitivă se

numeşte relaţie de preordine.

1.3. Structuri de date

Prelucrarea şi manevrarea eficientă a datelor impune folosirea unor structuri de date complexe.

Tipurile de structuri de date folosite în sistemele informatice depind de sistemul informaţional

automatizat şi de tehnologiile de prelucrare a datelor folosite.

Structura de date este definită ca o colecţie de date între care s-au stabilit o serie de relaţii care

conduc la un anumit mecanism de selecţie şi identificare a componentelor. Mulţimea de date asociată

structurii poate fi alcătuită din datele unui tip sau mai multor tipuri de entităţi. Componentele unei

structuri de date pot fi individualizate şi identificate prin nume (identificator) sau prin poziţia pe care

o ocupă în structură (în raport cu ordinea specificată).

După modul de localizare al unei componente, o structură de date poate avea acces direct sau

secvenţial. Accesul secvenţial presupune parcurgerea tuturor componentelor structurii, aflate înaintea

componentei căutate, în timp ce accesul direct permite localizarea unei componente fără a ţine seama

de celelalte componente.

Elementele care formează o structură de date pot fi date elementare sau pot fi ele însele structuri de

date.

Operaţiile care se pot efectua asupra structurilor de date se referă la valori şi/sau la structură.

Dintre acestea, cele mai frecvente sunt:

crearea datelor (memorarea datelor în forma iniţială pe suportul de memorie);

consultarea datelor (accesul la componentele structurii în vederea prelucrării valorilor);

actualizarea datelor (schimbarea stării structurii prin adăugarea, ştergerea unor elemente

componente, modificarea valorii unor elemente, modificarea relaţiilor dintre elemente);

sortarea datelor (aranjarea elementelor unei structuri după anumite criterii);

ventilarea structurii (spargerea structurii în două sau mai multe structuri);

fuzionarea (formarea unei noi structuri din două sau mai multe structuri);

copierea;

interclasarea etc.

Structurile de date care au aceeaşi organizare şi sunt supuse aceloraşi operaţii formează un tip de

structură de date.8

Page 5: Baze de Date

Un tip de structură de date este o mulţime ordonată de date între care s-au stabilit anumite relaţii şi

pentru realizarea operaţiilor se foloseşte un grup de operatori de bază cu o anumită semantică.

Clasificarea structurilor de date

Clasificarea structurilor de date se poate realiza după mai multe criterii. După tipul componentelor,

structurile de date se clasifică în:

structuri omogene, în care componentele sunt toate de acelaşi tip;

structuri eterogene, în care componentele sunt de tipuri diferite.

Dacă o structură se poate descompune în structuri de acelaşi tip atunci avem o structură recursivă.

După posibilitatea de modificare a structurii, avem:

structuri statice, care pe tot parcursul existenţei lor au acelaşi număr de componente în aceeaşi

ordine;

structuri dinamice, care permit modificarea numărului de componente sau a poziţiei acestora

în structură, prin aplicarea operatorilor specifici strucutrii. Aceste structuri pot avea, teoretic,

un număr nelimitat de componente şi de aceea se mai numesc structuri cu cardinalitate

infinită.

Asemănător, structurile statice se consideră că sunt structuri cu cardinalitate finită.

Din punct de vedere al nivelului de structurare al datelor avem:

structura logică, care se referă la modul de ordonare al datelor şi la operatorii folosiţi pentru

tratarea datelor;

structura fizică, ce se referă la modul de implementare, de reprezentare efectivă pe un suport

de memorie;

Principalele tipuri de structuri logice de date sunt:

structura punctuală;

structura liniară;

structura arborescentă;

structura reţea;

structura relaţională.

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

entităţi.

Structura liniară (lista) este o structură care defineşte o relaţie de ordine totală între elementele

unei colecţii de date. După cum am văzut mai înainte, o relaţie de ordine totală este o relaţie care

există între oricare două elemente ale unei colecţii de date. Structura liniară presupune că fiecare

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.

9

Page 6: Baze de Date

Fig. 1.1. Structuri de date liniare

Acest tip de structură are următoarele caracteristici:

- are un singur element iniţial şi un singur element terminal;

- orice element care nu este iniţial şi nici terminal are un singur succesor imediat;

- primul element nu are predecesori;

- ultimul element nu are succesori;

- dacă există o relaţie între ultimul şi primul element atunci structura este inelară sau circulară;

- relaţiile stabilite între date sunt de tipul 1 la 1.

O structură este arborescentă sau ierarhică (descendentă) dacă între elementele sale există o

relaţie de ordine. Aceasta înseamnă că fiecare element (cu o singură excepţie) provine din alt element

aflat pe un nivel ierarhic superior.

10

Page 7: Baze de Date

Fig. 1.2. Structură de date arborescentă

Structura de date arborescentă are următoarele caracterisitci:

- elementele structurii se numesc noduri;

- există un element unic, numit rădăcina arborelui, care nu are un predecesor;

- orice nod diferit de rădăcină are un predecesor imediat unic;

- orice nod netermical are un număr finit de succesori imediaţi;

- relaţiile stabilita între noduri sunt de tipul 1 la m.

Se numeşte drum de lungime n-1 de la nodul ai1 la nodul ain succesiunea de noduri (ai1, ai2, ..., ain)

în care pentru este un succesor imediat al lui aik. Drumul de lungime maximă

constituie înălţimea arborelui.

Un arbore în care fiecare nod are strict numai doi succesori se numeşte arbore binar.

Structura de tip reţea este o structură în care între elementele componente există o relaţie de

preordine. În acest caz elementele sunt legate unele de altele prin legături multiple.

Caracteristicile acestui tip de structură de date sunt:

- o reţea este un graf în care, între două noduri, există legături bidirecţionale;

- un nod are mai mulţi predecesori şi el însuşi poate fi predecesor pentru propriul său

predecesor, caz în care apar cicluri în reţea. Un ciclu este un drum în care nodul iniţial este

acelaşi cu nodul final.

- între elementele reţelei se stabilesc legături de tipul “m la n”.

O reţea în care există doar legături univoce între elemente se numeşte reţea “simplă”. În caz

contrar reţeaua spunem că este o reţea complexă. Într-o reţea simplă nu există cicluri. Exemple de

reţele simplă şi complexă sunt date în figura următoare.

11

Page 8: Baze de Date

Fig. 1.3. Exemple de reţele de date

Structura relaţională a datelor consideră că acestea sunt organizate la nivel logic sub formă de

tabele (relaţii, tablouri) de date elementare, între care nu sunt legături explicite. Fiecare linie dintr-un

asemenea tabel se numeşte înregistrare şi fiecare element al unei înregistrări ce corespunde unei

anumte coloane se numeşte câmp.

Legăturile între date sunt introduse indirect prin intermediul coloanelor comune la mai multe

tabele de date (vezi figura).

Fig. 1.4. Structura relaţională a datelor

1.4. Modele de date

12

NUMEPRENUMEGRUPANR. MATRICOLPopescuIon41751245IonescuAmalia54121452Vasiles

cuSergiu53211385

FACULTATESPECIALIZARENR. MATRICOLPopescuIon1245IonescuAmalia1452VasilescuSergiu1

385

Page 9: Baze 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, relaţia dintre locurile existente într-un cămin studenţesc şi

studenţi. Un loc poate fi ocupat de un singur student, iar un student are dreptul la un singur loc

în cămin.

- legături “unu la mulţi”. În acest caz un obiect poate avea legături (relaţii) cu mai multe

obiecte. De exemplu, un student poate face parte dintr-o singură grupă dar o grupă poate avea

mai mulţi studenţi.

- legături de tipul “mulţi la mulţi”. Acest tip de legătură presupune că fiecare obiect poate avea

multiple legături (relaţii) cu alte obiecte. Spre exemplu, un produs este cumpărat de mai mulţi

clienţi şi un client poate achiziţiona mai multe produse.

Operatorii care acţionează asupra structurilor de date constituie cel de-al doilea element al unui

model de date. Aceşti operatori pot fi de citire, memorare, modificare, joncţiune etc.

Regulile de integritate sunt restricţii menite să asigure menţinerea corectitudinii datelor. Ca

exemple de astfel de restricţii putem menţiona:

13

Page 10: Baze de Date

- să nu se permită ştergerea valorilor atributelor unui client dacă acesta nu a achitat integral

factura pentru cumpărarea unui produs anume;

- să nu se permită memorarea valorilor asociate unui produs dacă nu se cunoaşte valoarea

unui anumit atribut caracteristic, numit atribut cheie etc.

Modelele de date se împart, în funcţie de modul în care se definesc elementele amintite mai sus, în:

modele ierarhice sau arborescente, modele reţea, modele relaţionale, modele orientate obiect etc.

Modelul ierarhic

Foloseşte tipuri de înregistrări care grupează toate atributele unei entităţi. Pentru a realiza

asocierile dintre tipuri de înregistrări acest model foloseşte o structură de date arborescentă (o

ierarhie).

Fig. 1.5. Ierarhie de date

O ierarhie are un tip de înregistrare definit ca rădăcină şi mai multe tipuri de înregistrări

subordonate, legate sub formă de arbore.

Fiecare nod din arbore care nu este rădăcină sau nod final are un singur nod superior şi unul sau

mai multe noduri inferioare. Legătura de la un nod superior la unul inferior este de tipul “unu la

mulţi”, iar legătura de la un nod inferior la unul superior este de tipul “unu la unu”.

Modelul reţea

În acest model, datele sunt reprezentate asemănător cu modelul ierarhic, cu deosebirea că fiecare

inferior poate avea mai mulţi superiori. Toate structurile de date, inclusiv legăturile de tipul “m la n”

sunt definite natural, fără a recurge la artificii. În cadrul acestui model întâlnim două tipuri de

structuri:14

Page 11: Baze de Date

-tipul de înregistrare ( care asigură atributele unei entităţi);

-tipul de set (care asigură legăturile între tipurile de înregistrări).

Modelul relaţional

Modelul relaţional are la bază teoria matematică a relaţiilor. El foloseşte o singură structură de

date: relaţia (tabelul) care este o submulţime a produsului cartezian al unor domenii (un domeniu este

reprezentat de o mulţime de valori ale entităţilor).

Modelul relaţional poate fi privit ca o mulţime de tabele obţinute prin metoda normalizării.

Normalizarea pleacă de la o mulţime de atribute (câmpuri de date) şi o mulţime de dependenţe

funcţionale dintre atribute şi conduce la o schemă conceptuală a modelului relaţional într-o formă

normalizată în care se vor elimina anomaliile de actualizări.

La cele trei modele de date prezentate mai sus se adaugă modelul orientat obiect, modelul

distribuit şi modelul funcţional. Ordinea în care au fost prezentate modelele de date este cea istorică,

în ultimii ani utilizându-se practic numai modelul relaţional sau cel distribuit, datorită avantajelor faţă

de celelalte modele.

1.5. Baze de date

Conceptul de bază de date a apărut în 1969 cu ocazia prezentării primului raport CODASYL în

cadrul unei conferinţe pe probleme de limbaje de gestiune a datelor.

Evoluţia metodelor şi tehnicilor de organizare a datelor a fost determinată de necesitatea de a avea

un acces cât mai rapid şi uşor la un volum din ce în ce mai mare de informaţii precum şi de

perfecţionarea echipamentelor de culegere, memorare, transmitere şi prelucrare a datelor.

Ideea principală a organizării datelor în baze de date se sprijină pe existenţa unui fişier de

descriere globală a datelor prin care se realizează independenţa programelor faţă de date şi a

datelor faţă de programe.

Accesul oricărui utilizator la baza de date se realiza prin intermediul fişierului de descriere

globală a datelor. Fişierul de date conţinea colecţiile de date şi legăturile dintre ele.

În esenţă, conceptul de bază de date poate fi definit ca fiind una sau mai multe colecţii de date

(Ki), aflate în interdependenţă, împreună cu descrierea datelor şi a relaţiilor dintre ele, (B={K1,

K2, ...})

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

15

Page 12: Baze de Date

- să asigure o independenţă sporită a datelor faţă de programe şi invers;

- structura bazei de date trebuie astfel concepută încât să asigure informaţiile necesare şi

suficiente pentru a satisface cerinţele informaţionale şi de decizie ale utilizatorului;

- să asigure o redundanţă minimă şi controlată a datelor;

- să permită accesul rapid la informaţiile stocate în bază.

Arhitectura generală a bazelor de date a fost standardizată internaţional şi cuprinde următoarele

elemente componente:

- baza de date propriu-zisă în care se memorează colecţia de date;

- sistemul de gestiune al bazei de date, care este un ansamblu de programe ce realizează

gestiunea şi prelucrarea complexă a datelor;

- un set de proceduri manuale şi automate, precum şi reglementările administrative, destinate

bunei funcţionări a întregului sistem;

- un dicţionar al bazei de date (metabaza de date)), ce conţine informaţii despre date, structura

acestora, elemente de descriere a semanticii, statistici, documentaţie etc.

- echipamentele de calcul (hardware) utilizate (comune sau specializate);

- personalul implicat (categorii de utilizatori: finali sau de specialitate, analişti-programatori,

gestionari, operatori).

Bazele de date sunt extrem de variate în funcţie de criteriile de apreciere considerate. În continuare

sunt prezentate câteva criterii de clasificare:

- după orientare: generalizate, specializate;

- după modelul de date folosit: ierarhice, în reţea, relaţionale, orientate obiect;

- după amploarea geografică: locale, distribuite;

- după limbajele utilizate: autonome (cu limbaje proprii), cu limbaj gazdă, mixte.

Componentele bazei de date pot fi structurate pe trei nivele, în funcţie de clasa utilizatorilor

implicaţi:

- nivelul logic. Este dat de viziunea programatorului de aplicaţii, care realizează programele

de aplicaţii pentru manipularea datelor şi structura logică (subschema) corespunzăroare

descrierii datelor aplicaţiei;

- nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care

realizează structura conceptuală (schema) corespunzătoare descrierii bazei de date şi

administrează componentele bazei de date pentru manipularea datelor;

- nivelul fizic. Este date de viziunea inginerului de sistem care realizează structura fizică

corespunzăroare descrierii datelor pe suportul fizic.

1.6. Sisteme de gestiune a bazelor de date

16

Page 13: Baze 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 unităţilor fizice de memorare etc.), fără a modifica aplicaţiile

existente; baza de date existentă, precum şi programele de exploatare a ei reprezintă o investiţie

importantă la care nu trebuie să se renunţe prea uşor.

Independenţa datelor trebuie privită din două puncte de vedere: independenţa fizică şi

independenţa logică a datelor.

Independenţa fizică a datelor implică modificarea tehnicilor fizice de memorare a datelor fără a

necesita rescrierea programelor de aplicaţie.

Independenţa logică a datelor se referă la posibilitatea adăugării de noi articole de date sau

extinderea structurii conceptuale (globale), fără ca aceasta să impună rescrierea programelor

existente.

2. Asigurarea unei redundanţe minime şi controlate a datelor din baza de date. Redundanţa se

referă la numărul de apariţii în baza de date a unei date. }n general, stocarea datelor în baze de date ar

trebui să se facă astfel încât fiecare dată să apară o singură dată. Totuşi, există cazuri în care, pentru a

reduce timpul de căutare al unei date şi implicit timpul de răspuns la solicitările utilizatorilor, se

17

Page 14: Baze de Date

acceptă o anumită redundanţă a datelor. Această redundanţă trebuie controlată automat, prin program,

pentru a se asigura coerenţa datelor din bază.

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

- folosirea datelor de către mai mulţi utilizatori în diferite aplicaţii;

- accesul cât mai simplu al utilizatorilor la date, fără ca aceştia să fie nevoiţi să cunoască

structura întregii baze de date, acest lucru rămânând în sarcina administratorului bazei de date;

- existenţa unor limbaje performante de regăsire a datelor, care permit exprimarea sub forma

unei conversaţii, a unor criterii de selecţie a datelor şi indicarea unor reguli cât mai generale

pentru editarea informaţiilor solicitate;

- utilizarea unui limbaj cât mai apropiat de limbajul natural, cu posibilitatea exploatării bazei de

date în regim conversaţional, lucru care ar oferi posibilitatea exploatării bazei de date şi de

către utilizatori neinformaticieni.

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

bazelor de date, administratorul bazei de date poate prevedea ca acesul la baza de date să se facă

numai prin canalele corespunzătoare, şi poate, totodată, defini verificări de autorizare, realizate

oricând se încearcă accesul neautorizat la anumite date.

5. Asigurarea integrităţii datelor împotriva unor ştergeri intenţionate sau neintenţionate, prin

intermediul unor proceduri de validare, a unor protocoale de control concurent şi a unor proceduri de

refacere a bazei de date după incidente.

6. Asigurarea partajabilităţii datelor. Partajabilitatea datelor trebuie înţeleasă nu numai sub

aspectul asigurării accesului mai multor utilizatori la aceleaşi date, cişi acela al posibilităţii

dezvoltării unor aplicaţii fără a se modifica structura bazei de date.

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

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

sarcini se obţin activităţile şi apoi funcţiile sistemului de gestiune al bazei de date. Ţinând seama de

complexitatea sistemului de gestiune, de facilităţile oferite, de limbajele utilizate şi tipul bazei de date

ce urmează a fi gestionată gruparea activităţilor pe funcţii poate avea un caracter relativ.

În continuare sunt prezentate câteva funcţii mai importante ale sistemelor de gestiune a bazelor de

date, funcţii cu caracter de generalitate, valabile pentru toate tipurile de sisteme de gestiune a bazelor

de date.18

Page 15: Baze 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.

3. Funcţia de utilizare asigură mulţimea interfeţelor necesare pentru comunicarea tuturor

utilizatorilor cu baza de date. În cadrul realizării acestei funcţii apar mai multe categorii de utilizatori:

- utilizatori “liberi” sau conversaţionali. Aceştia reprezintă categoriea beneficiarilor de

informaţii (utilizatori finali) care utilizează limbajele de interogare a bazei de date într-o formă

simplistă. Ei apar ca utilizatori neinformaticieni.

- utilizatori programatori, care utilizează limbaje de manipulare, realizând proceduri complexe

de exploatare a bazei de date;

- administratorul bazei de date, care este un utilizator special având un rol hotărâtor în ceea ce

priveşte funcţionarea optimă a întregului ansamblu.

4. Funcţia de administrare a bazei de date. Aceasta apare ca o funcţie complexă şi este de

competenţa administratorului bazei de date.

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

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

3. Care sunt obiectivele activităţii de organizare a datelor ?

4. Ce activităţi presupune organizarea datelor ?

5. Definiţi conceptele de entitate, atribut, valoare ?

6. Ce se înţelege prin structură de date ?

7. De câte feluri pot fi structurile de date ?

8. Ce fel de operaţii se pot efectua asupra unei structuri de date ?

9. Caracterizaţi structura de date arborescentă ?19

Page 16: Baze de Date

10. Caracterizaţi structura de date relaţională ?

11. Care sunt componentele unui model de date ?

12. De câte tipuri pot fi legăturile între entităţi ?

13. Care este structura unei baze de date ?

14. Care sunt nivelele de structurare ale unei baze de date ?

15. Care sunt obiectivele pe care trebuie să le îndeplinească un SGBD ?

16. Care sunt funcţiile unui SGBD ?

2. PROIECTAREA BAZELOR DE DATE

2.1. Etapele de realizare a bazelor de date

Pentru a realiza o bază de date este necesară parcurgerea unor etape care nu depind de tipul bazei

de date create. Aceste etape sunt:

- analiza sistemului informatic pentru care se realizează baza de date şi a cerinţelor

informaţionale solicitate de acest sistem;

- proiectarea structurii bazei de date (schema conceptuală, externă şi internă);

- încărcarea datelor în baza de date;

- exploatarea şi întreţinerea bazei de date.

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

20

Page 17: Baze de Date

date. Există însă o serie de aspecte cu caracter general care nu sunt influenţate de specificul unui

anumit domeniu de activitate sau de caracteristicile unui anumit tip de baze de date. În continuare vor

fi prezentate aceste aspecte generale, aspectele specifice urmând a fi tratate atunci când vor fi tratate

diferite tipuri de baze de date.

Realizarea unei baze de date presupune şi folosirea unor metode şi tehnici de analiză (tehnica

normalizării relaţiilor, a diagramelor de dependenţă riguroasă etc.), de programare precum şi a unor

instrumente de lucru (limbaje de descriere a datelor - LDD, limbaje de manipulare a datelor - LMD

etc.) specifice.

2.2. Analiza sistemului informatic şi a cerinţelor sale

informaţionale

Analiza sistemului informatic are ca scop elaborarea unuia sau mai multor modele ale acestui

sistem, modele care să permită ulterior elaborarea structurii bazei de date. Această analiză presupune

următoarele etape:

- analiza componentelor sistemului şi a legăturilor (asocierilor) dintre acestea, activitate

cunoscută şi sub numele de analiză statică sau structurală, în urma căruia se obţine modelul

structural (static) al sistemului;

- analiza stărilor sistemului şi a tranziţiilor posibile între aceste stări, în raport de anumite

evenimente. Aceasta este aşa numita analiză temporală (comportamentală), prin care se obţine

modelul dinamic (sau temporal) al sistemului;

- analiza cerinţelor informaţionale, respectiv a transformărilor de date (a tranzacţiilor) din

cadrul sistemului prin care sunt satisfăcute cerinţele informaţionale asociate sistemului. În

urma acestei activităţi se obţine modelul funcţional al sistemului informatic analizat;

- integrarea modelelor sistemului informatic (structural, dinamic şi funcţional) în scopul

corelării şi completării lor.

2.2.1. Analiza structurală a sistemului informatic. Tehnica

diagramelor entitate-asociere

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

din cadrul sistemului, pentru care urmează să se colecteze şi să se memoreze date în cadrul bazei de

date, precum şi evidenţierea legăturilor dintre aceste componente.

Există astăzi mai multe tehnici de analiză structurală, cea mai utilizată dintre acestea fiind tehnica

entitate-asociere. Această tehnică permite constituirea modelului structural sub forma unei diagrame

entitate-asociere prin parcurgerea următorilor paşi:21

Page 18: Baze de Date

- identificarea componentelor (entităţilor) din cadrul sistemului informatic analizat;

- identificarea asocierilor dintre entităţi şi calificarea acestora;

- identificarea atributelor aferente entităţilor şi asocierilor dintre entităţi;

- stabilirea atributelor de identificare a entităţilor.

Identificarea componentelor sistemului informatic

Componentele sistemului informatic sunt entităţi (obiecte) care au anumite proprietăţi şi care fac

schimb de informaţii cu alte entităţi ale sistemului. Ele sunt reprezentate în cadrul diagramei entitate-

asociere prin blocuri dreptunghiulare.

Considerând activitatea dintr-o instituţie de învăţământ superior se pot identifica următoarele

entităţi:

- cadre didactice (CADRE_DIDACTICE);

- studenţi (STUDENŢI);

- personal didactic auxiliar (PERS.DID.AUX.);

- personal administrativ (PERS.ADMIN.);

- serviciul administrativ (SERV.ADMIN.);

- serviciul personal (SERV.PERS.);

- serviciul contabilitate (SERV.CONTAB.);

- serviciul social (SERV.SOCIAL).

Fiecare entitate poate prezenta în cadrul sistemului mai multe instanţe (realizări). În urma acestei

etape se elaborează o primă formă a diagramei entitate-asociere, formă prezentată în figura

următoare.

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

22

Page 19: Baze de Date

Identificarea asocierilor dintre entităţi şi calificarea acestora

Componentele unui sistem nu sunt decât arareori izolate, între acestea stabilindu-se legături

(asocieri). Spre exemplu, între entităţile STUDENŢI şi SERV.SOCIAL există o asociere, în sensul că

serviciul social pune la dispoziţia studenţilor locuri de cazare în cămin.

Legăturile dintre entităţi sunt reprezentate prin arce neorientate, care fac legătura între nodurile ce

reprezintă entităţile participante la asociere.

Semnificaţia legăturii se exprimă printr-un nume acordat legăturii şi se reprezintă cu ajutorul unui

nod etichetă în formă de romb, plasat ca nod intermediar între entităţi.

Tipul (forma) legăturii se exprimă cu ajutorul cardinalităţii.

Cardinalitatea unei legături reprezintă numărul minim şi numărul maxim de realizări (instanţe) de

entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprimă prin

perechi de numere, câte o pereche pentru fiecare entitate din cadrul legăturii.

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

a cardinalităţii

În figura de mai sus este prezentat modul de reprezentare al unei legături cu menţionarea

semnificaţiei legăturii şi a cardinalităţii acesteia. Cardinalitatea legăturii de mai sus se poate interpreta

astfel:

- Serviciul social este obligat să asigure, în limita locurilor disponibile în cămine, locuri de

cazare pentru toţi studenţii care solicită acest lucru chiar dacă este vorba doar de un singur

student;

- Pot solicita locuri de cazare în cămine un număr de studenţi până la numărul maxim de

studenţi care locuiesc în alte localităţi, fiind posibilă şi situaţia în care nici un student nu

solicită cazare în cămin.

Legăturile (asocierile) între entităţi pot fi de mai multe tipuri şi anume:

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:

23

Page 20: Baze de Date

- asocieri de tipul “unu la unu”. Aceasta înseamnă că cel puţin o realizare a fiecărei entităţi

trebuie să participe la asociere.

- asocieri de tipul “unu la mulţi”. În acest caz o realizare a unei entităţi are legături cu mai

multe realizări ale celeilalte entităţi care participă la asociere.

- asocieri de tipul “mulţi la mulţi”, caz în care mai multe realizări ale unei entităţi participante

la legătură se asocieză cu mai multe realizări ale celeilalte entităţi.

După obligativitatea participării entităţilor la asociere (minimele cardinalităţii) avem:

- asocieri parţiale; la care entităţile nu sunt obligate să participe (deci pot avea valoarea minimă

a cardinalităţii zero);

- asocieri totale sau complete; când cel puţin o realizare a fiecărei entităţi trebuie să participe la

sociere.

2. După numărul de entităţi distincte care participă la asociere avem:

- asocieri binare; care se realizează între două entităţi distincte;

- asocieri recursive; asocieri ale entităţilor cu ele însele;

- asocieri complexe; asocieri realizate între mai mult de două entităţi distincte.

3. După semnificaţia lor asocierile se pot clasifica într-o multitudine de categorii datorită

semnificaţiilor extrem de variate în cadrul unui anumit sistem informatic. În cadrul analizei

structurale este necesar să fie identificate şi analizate asocierile dintre entităţile aflate pe nivele de

abstractizare diferite, mai precis asocierile de tipul “este un” şi “este conţinut în”.

Asocierile de tipul “este un”

Entităţile puse în evidenţă în cadrul primei etape de analiză structurală pot prezenta diferite grade

de abstractizare, deci se pot plasa pe diferite nivele în cadrul schemei de clasificare a entităţilor. În

acest sens există entităţi generice (clase), obţinute printr-un proces de generalizare a entităţilor cu

anumite caracteristici comune, numite subclase.

De exemplu, membrii unei universităţi reprezintă o entitate clasă, care generează entităţile

STUDENŢI şi ANGAJAŢI, ultima generând, la rândul ei, entităţile CADRE DIDACTICE,

PERS.DID.AUXILIAR şi PERS.ADMINISTRATIV.

Asocierea de tip “este un” se prezintă întotdeauna ca o asociere parţială de tip “unu la unu”.

Asocierile de tipul “este conţinut în”

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”

24

Page 21: Baze de Date

este calificată, după cardinalitate drept asociere de tip “unu la mulţi” sau “mulţi la mulţi”, totală sau

parţială.

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

Atributele exprimă caracteristici, proprietăţi ale componentelor sistemului informatic analizat sau

ale asocierilor (legăturilor) dintre aceste componente.

În cadrul diagramei entitate-asociere, atributele sunt figurate prin blocuri ovale, legate de entitatea,

respectiv asocierea pe care o descriu într-un mod specific, în funcţie de tipul atributelor. Ex.:

Atributele pot fi de mai multe tipuri, după cum urmează:

1. Atribut compus (bloc). Acesta este un atribut format din cel puţin două alte atribute.

Valoarea sa este reprezentată de valorile atributelor componente. Ex.:

2. Atribut calculat (dedus). Acesta reprezintă un atribut a cărui valoare nu este cunoscută

direct, ci se calculează pe baza valorilor altor atribute (de exemplu, atributul VALOARE,

calculat ca produs între CANTITATE şi PREŢ).

3. Atribut simplu; atribut care nu este nici compus şi nici calculat. Valorile sale sunt valori

atomice, adică nu mai pot fi descompuse în elemente componente.

4. Atribut repetitiv multivaloare. Acesta este un atribut format din mai multe valori care se

repetă de mai multe ori pentru aceeaşi entitate. De exemplu : entitatea STUDENT poate fi

caracterizată de atributele simple NUME şi GRUPĂ precum şi de atributul repetitiv

DISCIPLINĂ, NOTĂ care este identic pentru toate disciplinele audiate de un student.

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.

25

Page 22: Baze de Date

Atributele de identificare au un rol aparte în organizarea şi manipularea informaţiilor din baza de

date. Stabilirea atributelor de identificare pentru entităţile din cadrul sistemului informatic analizat

necesită examinarea mai întâi a capacităţii fiecărui atribut de a se constitui drept atribut de

identificare (cheie).

Un atribut poate fi atribut de identificare dacă îndeplineşte o serie de cerinţe şi anume:

- oferă o identificare unică a realizărilor (instanţelor) de entitate;

- posedă o semnificaţie clară;

- este uşor de utilizat;

- este scurt.

Pentru o aceeaşi entitate pot exista mai multe atribute care pot servi drept atribute de identificare,

adică pot exista mai multe chei candidate.

Selectarea unuia dintre candidaţii cheie drept atribut de identificare a entităţii (cheie) se realizează

astfel:

1. Se determină atributele care potenţial pot constitui atribute de identificare a entităţii, deci care

respectă cerinţele menţionate anterior şi care poartă numele de candidaţi cheie. Dacă nu există

astfel de atribute se introduce un nou atribut (sau grup de atribute) drept candidat cheie.

2. Dacă există un singur candidat cheie, se va selecta acesta drept atribut de identificare a

entităţii.

3. Dacă există mai mulţi candidaţi cheie, se selectează unul, cu ajutorul unor euristici, precum:

- se preferă atributele ale căror valori sunt mai puţin volatile;

- se preferă atributele ale căror valori sunt mai scurte.

2.2.2. Analiza dinamică (de comportament) a sistemului

informatic

Analiza dinamică are drept scop explicarea comportamentului elementelor componente ale

sistemului informatic analizat. În urma acestei analize se obţine modelul dinamic al sistemului

analizat.

Construirea modelului dinamic presupune următoarele etape:

- identificarea stărilor în care se pot afla componentele sistemului;

- identificarea evenimentelor care determină trecerea unei componente dintr-o stare în alta;

26

Page 23: Baze de Date

- stabilirea succesiunii (fluxului) de evenimente şi construirea unei diagrame care să reflecte

tranziţiile de stare pentru componentele sistemului (diagramă de flux a evenimentelor).

La realizare diagramei de flux a evenimentelor este necesar să se ţină cont de restricţiile dinamice

ale sistemului care servesc la identificarea tranziţiilor admisibile între două stări.

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

În figura de mai sus sunt prezentate stările posibile ale unei resurse de producţie generice.

Particularizarea acestui model pentru un depozit de materii prime este prezentată în figura următoare.

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

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

Analiza cerinţelor informaţionale are drept scop determinarea transformărilor de date care se

produc în cadrul sistemului informatic analizat, în scopul satisfacerii cerinţelor informaţionale

aferente acestuia. Transformările de date (tranzacţiile) se vor reprezenta sub forme unei diagrame de

27

Page 24: Baze de Date

flux a prelucrărilor (modelul funcţional), în care nodurile reflectă procesele de prelucrare

informaţională, iar arcele reflectă fluxurile informaţionale.

În cadrul analizei funcţionale accentul se deplasează de la realitatea analizată către cerinţele

informaţionale ale utilizatorilor, cerinţe a căror satisfacere constituie obiectivul realizării bazei de

date.

Construirea modelului funcţional presupune parcurgerea următoarelor etape:

- identificarea datelor de intrare şi a datelor de ieşire din sistem;- construirea diagramelor de flux, prin care sunt reflectate legăturile

procedurale dintre intrări şi ieşiri;- identificarea restricţiilor;

precizarea criteriilor de optimizare.În figura următoare sunt prezentate două modele funcţionale parţiale, primul se referă la căutarea

preţului unui articol dintr-un nomenclator de articole, iar al doilea la tranzacţiile (transformările de

date) care se fac pentru a opera o modificare într-un cont bancar al unui client.

Fig. 2.5. Modele funcţionale parţiale

2.2.4. Integrarea modelelor sistemului informatic analizat

Analiza sistemului informatic se finalizează prin integrarea modelelor structural, dinamic şi a celui

funcţional.

Modelul structural şi cel dinamic sunt obţinute prin investigarea sistemului real a proprietăţilor

intrinseci, statice şi dinamice ale componentelor acestui sistem, proprietăţi care sunt independente de

aplicaţiile care operează asupra lor.

28

Page 25: Baze de Date

Modelul funcţional este rezultatul analizei cerinţelor informaţionale ale utilizatorilor, mai precis a

tranzacţiilor (aplicaţiilor) prin care pot fi satisfăcute aceste cerinţe.

Perspectiva diferită din care este realizată analiza explică de ce rezultatele obţinute pot să difere

fiind necesară o coordonare, deci o integrare a lor.

În cadrul etapei de integrare a modelelor sistemului se stabileşte în ce măsură modelul structural şi

cel dinamic satisfac necesităţile diferitelor aplicaţii, verificându-se completitudinea (existenţa

elementelor informaţionale solicitate) şi consistenţa lor (în ce măsură componentele modelelor sunt

necesare şi suficiente în raport cu procesele de prelucrare). Se verifică dacă relaţiile dintre

componentele sistemului sunt stabilite în mod corespunzător, pentru a face posibilă regăsirea

informaţiilor din mai multe entităţi. Se determină, de asemenea, dacă legăturile dintre entităţi asigură

coerenţa informaţiilor, posibilitatea efectuării de actualizări concomitente asupra datelor redundante.

Se urmăreşte ca toate elementele informaţionale participante la diferitele tranzacţii să fie asignate,

ca atribute ale diferitelor entităţi.

Pe baza acestei analize integrate se efectuează adăugările şi/sau corelările necesare între modelele

sistemului.

În final se ajunge ca modelul structural şi cel dinamic să nu mai fie complet independente de

aplicaţii, iar modelul funcţional să nu mai fie orientat exclusiv pe aplicaţii.

2.3. Proiectarea structurii bazei de date

Modelele obţinute în urma analizei sistemului informaţional sunt modele ale datelor despre sistem.

O caracteristică esenţială a acestor modele (denumite şi modele conceptuale sau semantice) este

faptul că sunt independente de instrumentul, respectiv SGBD-ul prin intermediul căruia devin

operaţionale.

Etapa de analiză a sistemului informatic este important să se realizeze independent de un SGBD

specificat. Orientarea pe conceptele proprii unui anumit SGBD prezintă numeroase dezavantaje cum

sunt:

schimbarea SGBD-ului impune reproiectarea Bazei de Date; conceptele tehnice ale SGBD-ului pot influenţa negativ activitatea de

analiză şi modelare, prin restricţii impuse de acesta, care pot încuraja sau descuraja anumite reprezentări;

fixând ca punct de plecare facilităţile unui SGBD, utilizatorul neinformatician care nu stăpâneşte acest SGBD nu îşi poate exprima cerinţele în deplină cunoştinţă de cauză.

Trecerea la proiectarea structurii bazei de date impune luarea în considerare a SGBD-ului cu

ajutorul căruia va fi implementată şi exploatată baza de date. Acesta deoarece baza de date reprezintă

29

Page 26: Baze de Date

un model al datelor exprimat cu ajutorul conceptelor specifice unui anumit SGBD, ceea ce face ca

proiectarea structurii bazei de date să reprezinte transpunerea modelelor conceptuale în termenii unui

model al datelor suportat de un anumit tip de SGBD (model ierarhic, reţea, relaţional, orientat obiect

etc.).

Etapa de proiectare a structurii bazei de date constă în următoarele activităţi:

alegerea SGBD-ului care va fi utilizat pentru implementarea şi exploatarea bazei de date;

proiectarea schemei conceptuale a bazei de date; proiectarea schemei externe (subschemei) a bazei de date; proiectarea schemei interne (de memorare) a bazei de date.Deoarece aceste activităţi sunt puternic influenţate de tipul bazei de date care se proiectează, în

continuare sunt prezentate aspectele generale, valabile indiferent de tipul bazei de date proiectate.

Aspectele particulare urmează a fi prezentate atunci când vor fi prezentate diferite tipuri de baze de

date.

2.3.1. Alegerea sistemului de gestiune a bazei de date

Alegerea unui SGBD presupune realizarea următoarelor activităţi:

1. Stabilirea cerinţelor utilizatorilor, sub aspectul: tipurilor de aplicaţii dorite; timpului de răspuns; confidenţialităţii datelor; securităţii datelor; uşurinţei de utilizare şi altele.

2. Stabilirea cerinţelor de ordin tehnic privind realizarea bazei de date, cum sunt:

portabilitatea SGBD-ului, adică posibilitatea folosirii SGBD-ului pe diferite sisteme de calcul;

portabilitatea colecţiilor de date şi a programelor. Aceasta înseamnă că datele pregătite cu ajutorul unui calculator să poată fi transferate direct pe alt tip de calculator, împreună cu programele aferente, fără alte operaţii auxiliare;

30

Page 27: Baze de Date

facilităţile de încărcare, exploatare şi întreţinere a bazei de date care trebuiesc asigurate (modalităţile de descriere a datelor, tehnicile de organizare şi regăsire a datelor etc.) şi altele.

3. Stabilirea cerinţelor de ordin economic, privind: încadrarea în bugetul alocat pentru realizarea bazei de date; timpul necesar pentru pregătire utilizatorilor şi trecerea la exploatarea

curentă a bazei de date.4. Ierarhizarea cerinţelor de la punctele anterioare, în funcţie de importanţa (prioritatea) acordată fiecărei cerinţe în parte.5. Analiza comparativă a SGBD-urilor disponibile şi/sau posibil de achiziţionat, în funcţie de caracteristicile pe care le prezintă aceste SGBD-uri.6. Stabilirea corespondenţei între cerinţele formulate la punctele 1-3 şi caracteristicile diferitelor SGBD-uri analizate, pentru a determina măsura în care diferitele SGBD-uri analizate permit satisfacerea cerinţelor formulate.7. Alegerea propriu-zisă a SGBD-ului care va fi folosit la realizarea bazei de date.

2.3.2 Proiectarea schemei conceptuale

Proiectarea schemei conceptuale a bazei de date presupune următoarele activităţi:

stabilirea colecţiilor de date şi definirea detaliată a conţinutului acestora; determinarea legăturilor dintre colecţiile de date şi a modului de

reprezentare a acestora în cadrul schemei conceptuale; testarea schemei obţinute şi revizuirea acesteia, dacă este cazul; descrierea schemei conceptuale în limbajul de descriere a datelor de

care dispune SGBD-ul şi încărcarea acestei descrieri în baza de date.La realizarea acestor activităţi sunt utilizate, în principal, modelul structural şi cel dinamic al

sistemului analizat.

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

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

identificate în etapa de analiză a sistemului. Fiecărei entităţi îi corespunde, de obicei, o colecţie de

date în cadrul schemei conceptuale. În aceste colecţii vor figura atributele specifice entităţilor plus

eventual o serie de atribute pentru exprimarea legăturilor cu celelalte componente ale sistemului real,

atribute cunoscute sub numele de chei externe.31

Page 28: Baze de Date

Deoarece nu întotdeauna există o corespondenţă strictă între entităţile din modele semantice şi

colecţiile de date din schema conceptuală a bazei de date şi din considerente de ameliorare a lucrului

pe aceste colecţii de date se poate decide <spargerea> unei entităţi în două sau mai multe colecţii de

date. Acest lucru duce la o creştere a flexibilităţii de operare cu colecţiile de date respective.

“Spargerea” unei entităţi în două sau mai multe colecţii de date se realizează ţinând seama de

cerinţele informaţionale ale sistemului şi de durata de existenţă a datelor în cadrul sistemului. Astfel,

datele care sunt solicitate mai des de către utilizatori, cele care se modifică la intervale reduse de timp

sau cele care, deşi nu se modifică prea des, sunt solicitate frecvent de către programe pentru a genera

alte date (prin calcul sau în alt mod), pot constitui colecţii separate de date pentru a reduce timpul

necesar regăsirii informaţiilor căutate. De exemplu, să considerăm entitatea UTILAJE aparţinând

unui model al unei unităţi de producţie. Un utilaj este caracterizat de următoarele: denumire, tip,

număr de inventar, valoare de achiziţionare, data achiziţiei, durata normată de funcţionare, totalul

orelor de funcţionare, datele reparaţiilor curente planificate etc. Dar nu toate aceste informaţii

prezintă importanţă pentru utilizatori la un moment dat. Aceştia pot fi interesaţi, de exemplu, de

caracteristicile generale ale utilajului sau de caracteristicile legate de funcţionarea sau întreţinerea

utilajului. Din acest motiv, în cadrul schemei conceptuale a bazei de date pot apare două sau mai

multe colecţii de date referitoare la utilajele de producţie şi anume: un nomenclator de utilaje, o

colecţie de date referitoare la funcţionarea utilajelor, o colecţie privind reparaţiile efectuate sau

planificate.

Un alt motiv pentru care apare necesară descompunerea unei colecţii de date în două sau mai

multe colecţii derivă din legăturile care apar între atributele unei entităţi. Aceste legături conduc la

dependenţe între date datorită cărora, la momentul exploatării bazei de date pot apare o serie de

disfuncţionalităţi, aşa numitele “anomalii” de actualizare. Se impune deci reducerea la minimum a

dependenţelor (condiţionărilor) dintre atributele unei colecţii de date, lucru realizat, de obicei prin

descompunerea colecţiei în două sau mai multe colecţii de date cu un număr mai mic de atribute. Cu

toate acestea, îmbunătăţirea performanţelor în manipularea entităţilor nu presupune obligatoriu

mărirea numărului colecţiilor de date folosite în cadrul schemei conceptuale. Aceasta deoarece nu se

poate admite o creştere nelimitată a numărului de colecţii de date, lucru care determină creşterea

dificultăţilor de localizare şi accesare a datelor. Legăturile între un număr mare de colecţii de date

impune şi creşterea redundanţei datelor în cadrul bazei de date şi deci o utilizare ineficientă a

suportului de memorare.

Rezultatele obţinute prin prelucrări costisitoare efectuate asupra datelor din baza de date pot fi

memorate folosind colecţii de date special introduse, astfel încât aceste rezultate să nu fie recalculate

ori de câte ori sunt solicitate de utilizatori. Este vorba, bineânţeles de informaţii solicitate frecvent de

către utilizatori. Prin memorarea acestor rezultate creşte redundanţa datelor, dar se evită efectuarea

repetată a unor calcule complicate.

32

Page 29: Baze de Date

Pentru scurtarea căilor de acces la date se mai admite un tip de redundanţă, şi anume cea care

apare datorită includerii unor atribute, simultan în mai multe colecţii ale bazei de date.

În continuare este prezentat un exemplu referitor la drepturile profesorilor care lucrează într-un

liceu. Se pot forma două colecţii de date, una cu informaţiile privind:

numele angajatului; salariul de bază; vechimea; numărul de ore suplimentare; numărul de ore de dirigenţie etc. informaţii care au un grad ridicat de stabilitate, şi alta cu informaţii privind: numele angajatului; salariul de bază; sporul de vechime; numărul de zile lucrate; numărul zilelor de concediu medical şi de odihnă; numărul de ore suplinite; suma pentru orele suplinite; restanţe de plată; suma dedusă pentru pensie suplimentară şi şomaj; impozitul pe salariu; chirii; alte reţineri; avans; restul de plată la lichidare;

informaţii care trebuiesc adăugate în baza de date lunar, fie din exterior, fie prin calculul acestora prin program.

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

Aceasta se realizează, în principiu, pe baza legăturilor dintre entităţile identificate în cadrul etapei

de analiză a sistemului şi a cerinţelor informaţionale. Este necesar să se determine, de asemenea şi

legăturile dintre colecţiile care nu au un corespondent direct în entităţile care compun sistemul, dar

care la rândul lor se află în asociere, unele cu altele.

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.

33

Page 30: Baze de Date

Modelul relaţional reprezintă legăturile dintre colecţiile de date (relaţii) cu ajutorul cheilor externe

sau cu ajutorul unor colecţi de date distincte. Această reprezentare uniformă a datelor şi a asocierilor

între date prin intermediul relaţiilor constituie o caracteristică a modelului relaţional, care conferă

acestuia o mare simplitate şi flexibilitate.

Testarea schemei conceptuale

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

conceptuale, adică determinarea gradului în care schema conţine elementele informaţionale necesare

satisfacerii cerinţelor informaţionale ale diferiţilor utilizatori şi măsura în care legăturile stabilite între

aceste elemente informaţionale reflectă raporturile naturale dintre componentele sistemului real. De

asemenea, prin testarea schemei conceptuale trebuie să se verifice dacă redundanţa datelor este la un

nivel minim şi poate fi controlată.

Testarea schemei conceptuale permite identificarea unor eventuale erori de proiectare care fac

necesară revizuirea schemei. În acest caz se va relua etapa de proiectare a structurii bazei de date, şi,

uneori, chiar şi etapa de analiză a sistemului şi a cerinţelor informaţionale.

Descrierea schemei conceptuale în limbajul de descriere a datelor şi încărcarea sa în baza de

date

Descrierea schemei conceptuale a bazei de date se realizează în limbajul de descriere a datelor

de care dispune SGBD-ul folosit. Rezultatul acestei descrieri îl constituie proiectul bazei de date sau

schema bazei de date.

Compilatorul limbajului de descriere a datelor permite aducerea schemei bazei de date în forma la

care aceasta să poată fi memorată în baza de date.

2.3.3. Proiectarea schemei externe

Schema externă a bazei de date reprezintă forma sub care apare schema conceptuală pentru

utilizatori. Ea este formată din multitudinea viziunilor (vederilor) utilizator. O vedere utilizator

reprezintă acea parte din schema conceptuală pe care o poate vedea un anumit utilizator.

Programele de aplicaţie operează asupra schemei conceptuale prin intermediul schemei externe,

având acces doar la acele elemente care sunt incluse în schema externă.

34

Page 31: Baze de Date

Folosirea vederilor reprezintă mecanismul prin care sunt satisfăcute cererile de informaţii ale

utilizatorilor (deoarece un utilizator nu este interesat de toate informaţiile stocate în baza de date)

asigurând totodată şi protecţia datelor contra accesului neautorizat la date (folosind vederile se

limitează accesul fiecărui utilizator doar la acele date care îi sunt necesare).

2.3.4. Proiectarea schemei interne

Schema internă reprezintă modul în care sunt memorate datele pe suport fizic. Schema conceptuală

foloseşte diferite structuri de date: liniară, arborescentă, reţea, relaţională în timp ce memorarea

datelor pe suport fizic se poate face numai sub forma unei structuri linare. Din această cauză, la

proiectarea schemei interne a bazei de date se pune problema modului în care să fie liniarizată

schema conceptuală.

Metoda de liniarizare a schemei conceptuale depinde de SGBD-ul folosit. Există astfel SGBD-uri

care fac apel la metodele de memorare ale datelor pe suportul fizic de memorare pe care le folosesc şi

sistemele de operare gazdă şi SGBD-uri care utilizează metode proprii de stocare a datelor pe

suportul fizic. Aceste SGBD-uri depind mai puţin de sistemul de operare gazdă, ceea ce le oferă o

portabilitate sporită, comparativ cu SGBD-urile din prima categorie.

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

Aceasta este etapa în care se realizează popularea masivă cu date a bazei de date. Deşi conţinutul

acestei etape este relativ simplu, fără dificultatea şi creativitatea reclamate de activităţile de analiză şi

proiectare, încărcarea datelor în baza de date reprezintă totuşi o activitate dificil de realizat datorită

volumului mare de date care se transferă în baza de date de la diferite surse de date.

35

Page 32: Baze de Date

Fig. 2.6. Fazele încărcării datelor în baza de date

După cum se vede în figura de mai sus, sursele de alimentare cu date a bazei pot fi:

documente primare (facturi, bonuri, chitanţe etc.); colecţii de date, gestionate prin diverse instrumente informatice, de

exemplu preluarea datelor dintr-o bază de date creată anterior, folosind un SGBD cu care nu se mai lucrează în continuare.

Indiferent de sursa datelor, se recomandă ca, în scopul încărcării bazei de date, să se constituie

colecţii temporare de date (fişiere). În situaţia în care datele se preiau din documente primare este

necesară utilizarea unor colecţii temporare pentru a se deplasa activitatea de validare a datelor cât mai

devreme în procesul de încărcare a datelor în baza de date. Programele de încărcare a bazei de date,

scrise în limbajul de manipulare a datelor de care dispune SGBD-ul trebuie să conţină cât mai puţine

validări deoarece aceste validări încetinesc mult execuţia programelor şi determină apariţia unor

“puncte albe” în baza de date, de exemplu, legături neconstituite datorită inexistenţei datelor

corespunzătoare.

Pe de altă parte, în situaţia în care datele se preiau din colecţii gestionate prin alte instrumente

informatice, este necesară utilizarea colecţiilor temporare pentru a se putea adapta cât mai bine

structura acestor colecţii la modul de organizare a datelor în baza de date. Programele de încărcare

vor fi în acest caz mai simple şi mai robuste, asigurând un transfer mai rapid al datelor în baza de

date.

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

Exploatarea bazelor de date de către diferiţi utilizatori finali are ca scop satisfacerea cerinţelor

informaţionale ale acestora. SGBD-urile sprijină utilizatorii finali în exploatrea bazelor de date

oferind o serie de mecanisme şi instrumente pentru descrierea cerinţelor de date, cum ar fi limbaje de

manipulare a datelor etc.

Întreţinerea bazei de date este o activitate complexă care are ca scop actualizarea datelor din baza

de date, recuperarea datelor pierdute accidental, reproiectarea structurii bazei de date şi orice alte

activităţi necesare menţinerii funcţionalităţii bazei de date. Întreţinerea bazei de date este realizată în

principal de către administratorul acesteia.

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

Page 33: Baze de Date

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

2. Care este obiectivul analizei statice a sistemului informaţional existent ?

3. Explicaţi tehnica diagramelor entitate-asociere.

4. Definiţi cardinalitatea unei legături.

5. Cum se clasifică atributele unei antităţi ?

6. Prin ce se caracterizează atributul cheie ?

7. Care este obiectivul analizei dinamice ?

8. Care este obiectivul analizei funcţionale ?

9. Care sunt etapele proiectării structurii bazei de date ?

10. Care sunt activităţile desfăşurate pentru alegerea unui SGBD ?

11. Ce activităţi presupune proiectarea schemei conceptuale a bazei de date ?

12. Din ce este compusă schema externă a unei baze de date ?

13. Care sunt sursele de date folosite la încărcarea bazei de date ?

14. Care este scopul activităţii de întreţinere a bazei de date ?

37

Page 34: Baze de Date

3. BAZE DE DATE RELAŢIONALE

Ideea bazelor de date relaţionale a fost lansată pentru prima dată de către D. F. Childs care a

subliniat faptul că orice structură de date poate fi reprezentată printr-una sau mai multe tabele de date,

în cadrul cărora este necesar să existe şi informaţii de legătură, pentru a se asigura legăturile între

tabele. Bazele modelului de date relaţional au fost puse de către Codd E.F., în 1970 care are meritul

de a fi articulat şi dezvoltat ideile cu privire la utilizarea teoriei apartenenţei la ansambluri sub forma

unui model coerent de structurare a datelor - modelul relaţional.

3.1. Modelul relaţional al datelor

Componentele modelului relaţional sunt:

1. Structura relaţională a datelor. Aceasta înseamnă că, în bazele de date relaţionale, datele sunt

organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relaţii. Asocierile dintre

relaţii se reprezintă explicit prin atribute de legătură. Aceste atribute figurează într-una din relaţiile

implicate în asociere (de regulă, în cazul legăturilor de tip “unu la mulţi”) sau sunt plasate într-o

relaţie distinctă, construită special pentru exprimarea legăturilor între relaţii (în cazul legăturilor de

tip “mulţi la mulţi”). O bază de date relaţională (BDR) reprezintă un ansamblu de relaţii, prin care se

reprezintă atât datele cât şi legăturile dintre date.

2. Operatorii modelului relaţional. Aceştia definesc operaţiile care se pot executa asupra

relaţiilor, în scopul realizării funcţiilor de prelucrare asupra bazei de date, respectiv consultarea,

inserarea, modificarea şi ştergerea datelor.

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

de date.

Î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

38

Page 35: Baze de Date

independenţa logică, aceasta nu este complet rezolvată nici cu ajutorul modelului relaţional. O deficienţă a modelului relaţional este aceea că nu permite modelarea comportamentului dinamic al datelor, ceea ce face ca o mare parte din semantica aplicaţiilor să fie codificată în programe şi nu în schema conceptuală a bazei de date.

►Furnizarea unor metode şi tehnici eficiente de control a coerenţei redundanţei datelor, cu o bună fundamentare teoretică. Modificările pe care le suferă în timp datele ridică probleme serioase la întreţinerea bazei de date, în ceea ce priveşte controlul actualizărilor, reflectarea modificărilor din structura mediului economic real în structura datelor etc. Modelul relaţional, prin tehnica normalizării relaţiilor permite definirea unei structuri conceptuale optime a datelor, prin care se minimizează riscurile de eroare la actualizare, reducându-se redundanţa datelor.

►Oferirea unor facilităţi multiple de definire şi manipulare a datelor. În primul rând, modelul relaţional oferă posibilitatea utilizării unor limbaje procedurale, bazate pe algebra relaţională, precum şi a unor limbaje neprocedurale având la bază calculul relaţional. Limbajele neprocedurale (declarative) contribuie la îmbunătăţirea semnificativă a comunicării dintre sistem şi utilizatorii neinformaticieni. În al doilea rând, manipularea datelor se realizează la nivel de ansamblu (relaţie), fiind posibilă utilizarea paralelismului în prelucrarea datelor.

►Ameliorarea integrităţii şi confidenţialităţii datelor. Modelul relaţional realizează acest lucru prin mecanisme flexibile şi eficace de specificare şi utilizare a restricţiilor de integritate şi a relaţiilor virtuale.

3.2. Structura relaţională a datelor

Pentru a defini structura relaţională a datelor trebuie să definim noţiunile de: domeniu, relaţie,

atribut şi schemă a unei relaţii.

3.2.1. Domeniu

Domeniul reprezintă un ansamblu de valori, caracterizat printr-un nume. Un domeniu se poate defini explicit, prin enumerarea tuturor valorilor aparţinând

39

Page 36: Baze de Date

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 :

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.

3.2.2. Relaţie

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

caracterizat printr-un nume şi care conţine doar tupluri cu semnificaţie. Considerând, de exemplu că

pentru produsul cartezian definit mai sus se cunosc doar două persoane, definim relaţia R prin

tuplurile care descriu aceste persoane:

R : {<”Maria”, “F”, 20>, <”Vasile”, “M”, 22>}

Într-o relaţie, tuplurile trebuie să fie distincte ( nu se admit duplicări ale tuplurilor ).

O reprezentare comodă a relaţiei este tabelul bidimensional (tabela de date), în care liniile

reprezintă tuplurile, iar coloanele corespund domeniilor (vezi figura).

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 40

Page 37: Baze de Date

avea semnificaţia unui fişier, tuplul poate fi considerat drept o înregistrare, iar valorile din cadrul

tuplului pot fi interpretate drept valori ale câmpurilor înregistrării.

În cadrul modelului relaţional nu interesează decât relaţiile finite, chiar dacă la construirea

relaţiilor se admit domenii infinite. Numărul tuplurilor dintr-o relaţie reprezintă cardinalul relaţiei, în

timp ce numărul valorilor dintr-un tuplu defineşte gradul relaţiei.

3.2.3. Atribut

Atributul reprezintă coloana unei tabele de date, caracterizată printr-un nume. Numele coloanei

(atributului) exprimă de obicei semnificaţia valorilor din cadrul coloanei respective.

Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a înţelege această problemă vom

considera următorul exemplu. Să presupunem că pentru o persoană dispunem de următoarele date:

nume, sex, vârstă şi numele soţului/soţiei.

O posibilitate de organizare a acestor date este reprezentată de relaţia din figura următoare.

PERS: D3 D1 D2 D3“Maria” “F” 30 “Vasile”

“Vasile” “M” 32 “Maria”

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

D3 x D1 x D2 x D3.

Semnificaţia valorilor din cadrul unui tuplu se stabileşte în acest caz nu numai pe baza domeniului

de care aparţin valorile, ci şi în funcţie de poziţia ocupată în cadrul tuplului.

Dependenţa faţă de ordine a datelor înseamnă o reducere a flexibilităţii organizării datelor. Într-o

organizare eficientă, flexibilă, ordinea liniilor şi a coloanelor din cadrul tabelei de date nu trebuie să

prezinte nici o importanţă.

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.

41

Page 38: Baze de Date

PERS: PERS:

Nume(D3)

Sex(D1)

Vârsta (D2)

Sot(D3) Nume(D3) Sot(D3) Sex(D1)

Vârsta (D2)

“Mari

a”

“F” 30 “Vas

ile”

“Maria

“Vasil

e”

“F” 30

“Vasi

le”

“M

32 “Ma

ria”

“Vasile

“Mari

a”

“M

32

3.2.4. Schema unei relaţii

Prin schema unei relaţii se înţelege numele relaţiei, urmat de lista atributelor, pentru fiecare atribut

precizându-se domeniul asociat. Astfel, pentru o relaţie R, cu atributele A1, A2, ..., An şi domeniile

D1, D2, ..., Dm, schema relaţiei R poate fi reprezentată într-una din formele prezentate în figura de

mai jos.

R (A1:D1, A2:D2, ..., An:Dm)

sau

R:

A1:D1 A2:D2 .

..

An:Dm

Schema unei relaţii se mai numeşte şi intensia relaţiei, ca expresie a proprietăţilor comune şi invariante ale tuplurilor care compun relaţia.

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

42

Page 39: Baze de Date

relaţii virtuale, cunoscute şi sub numele de relaţii derivate sau viziuni. Relaţia virtuală nu este definită explicit ca relaţie de bază, prin ansamblul tuplurilor componente, ci implicit, pe baza altor relaţii, prin intermediul unei expresii relaţionale. Stabilirea efectivă a tuplurilor care compun relaţia virtuală se realizează prin evaluarea expresiei, ori de câte ori utilizatorul invocă această relaţie.

3.3. Operatorii modelului relaţional

Modelul de date relaţional oferă două colecţii de operatori pentru operaţii cu relaţii şi anume:

- algebra relaţională;

- calculul relaţional.

3.3.1. Algebra relaţională şi extensiile sale

Algebra relaţională (AR) se poate defini ca o colecţie de operaţii pe relaţii, fiecare operaţie având

drept operanzi una sau mai multe relaţii şi producând ca rezultat o altă relaţie.

Operaţiile algebrei relaţionale se pot împărţi în:

- operaţii de bază, precum: reuniunea, diferenţa, produsul cartezian etc.

- operaţii derivate, ca: intersecţia, diviziunea etc.

Algebra relaţională standard, definită de Codd, este constituită din 6 operaţii de bază: reuniunea, diferenţa, produsul cartezian, proiecţia, selecţia şi joncţiunea precum şi din două operaţii derivate: intersecţia şi diviziunea.

Ulterior, la operaţiile AR standard au fost adăugate şi alte operaţii, aşa numitele operaţii “adiţionale” sau extensii ale AR standard, precum: complementarea unei relaţii, splitarea (spargerea) unei relaţii, închiderea tranzitivă etc.

În general, operaţiile AR pot fi grupate în:

- operaţii tradiţionale pe mulţimi (reuniunea, intersecţia, diferenţa, produsul cartezian);

- operaţii relaţionale speciale (selecţia, proiecţia, joncţiunea etc.).

Î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:43

Page 40: Baze de Date

OR (R1,R2)

APPEND (R1,R2)

UNION (R1,R2)

În figura următoare este prezentat un exemplu de reuniune a două relaţii ORAŞE şi MUNICIPII,

formând astfel o a treia relaţie, LOCALITĂŢI.

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

ambele cu o aceeaşi schemă, operaţie care constă din construirea unei noi relaţii R3, cu schema

identică cu a operanzilor şi cu extensia formată din acele tupluri ale relaţiei R1 care nu se regăsesc şi

în relaţia R2.

Notaţiile uzuale pentru operaţia de diferenţă a două relaţii sunt:

R1-R2

REMOVE (R1,R2)

MINUS (R1,R2)

Un exemplu de diferenţă a două relaţii este dat în continuare.

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

44

Page 41: Baze de Date

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ă efectuarea unor tăieturi verticale asupra lui R, care pot avea ca efect apariţia unor tupluri duplicate ce se cer a fi eliminate.

45

Page 42: Baze de Date

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:

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

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

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

5. Selecţia reprezintă o operaţie din algebra relaţională definită asupra unei relaţii R, operaţie care

constă din construirea unei relaţii S, a cărei schemă este identică cu cea a relaţiei R şi a cărei extensie

este constituită din acele tupluri din R care satisfac o condiţie menţionată explicit în cadrul operaţiei.

Întrucât cel mai adesea, nu toate tuplurile din R satisfac această condiţie, selecţia înseamnă efectuarea

unor tăieturi orizontale asupra relaţiei R, adică eliminarea de tupluri.

Condiţia precizată în cadrul operaţiei de selecţie este în general de forma:

atribut operator de comparaţie valoare

unde: <operator de comparaţie> poate fi: <, <=, >=, > sau #.

Notaţiile folosite pentru desemnarea operaţiei de selecţie sunt următoarele:

R [condiţie]

46

Page 43: Baze de Date

RESTRICT(R, condiţie).

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

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

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

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

satisfac condiţia de concatenare.

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

R1 R2

condiţie

JOIN (R1, R2, condiţie)

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

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

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

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

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:

DIVISION(R,r).

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

47

Page 44: Baze de Date

Restricţiile de integritate, denumite şi reguli de integritate, definesc cerinţele pe care trebuie să le

satisfacă datele din cadrul bazei de date pentru a putea fi considerate corecte, coerente în raport cu

lumea reală pe care o reflectă.

Restricţiile de integritate reprezintă principalul mod de integrare a semanticii datelor în cadrul

modelului relaţional al datelor, mecanismele de definire şi verificare a acestor restricţii reprezentând

principalele instrumente pentru controlul semantic al datelor. Avantajele încorporării semanticii

datelor în cadrul bazelor de date constau din posibilitatea întreţinerii mai uşoare a aplicaţiilor şi

posibilitatea implementării unor mecanisme fizice mai eficiente.

În teoria sistemelor relaţionale, restricţiile de integritate sunt studiate în principal sub aspectul

puterii lor de modelare şi al posibilităţilor de verificare eficace a respectării lor. Un exemplu

semnificativ îl reprezintă dependenţele între date, şi în primul rând dependenţele funcţionale.

Dependenţele între date, ca restricţii de integritate constituie un suport teoretic solid pentru

problemele de modelare informatică. În acest sens, dependenţele funcţionale au permis definirea

conceptului de “structură relaţională optimă”, stând la baza teoriei optimizării structurii relaţionale a

datelor, respectiv teoria normalizării relaţiilor.

Restricţiile de integritate ale modelului relaţional sunt următoarele:

1. Restricţii de integritate minimale, obligatoriu de definit şi de respectat atunci când se lucrează

cu modelul relaţional. Din această categorie fac parte:

restricţia de unicitate a cheii; restricţia referenţială; restricţia entităţii.

2. Alte restricţii de integritate, din care fac parte:

dependenţele între date; restricţiile de comportament.

Restricţiile de integritate minimale sunt definite în raport cu noţiunea de cheie a unei relaţii. Cheia unei relaţii, R, reprezintă ansamblul minimal de atribute prin care se poate identifica în mod unic orice tuplu din R. Orice relaţie posedă cel puţin o cheie. La limită, cheia este constituită fie dintr-un singur atribut, fie din 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ă

48

Page 45: Baze de Date

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 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 unui alt

atribut/grup de atribute. Fie o relaţie R, în care apar atributele/grupurile de atribute:X, Y şi 49

Page 46: Baze de Date

Z. În cadrul relaţiei R există o dependenţă multivaloare dacă şi numai dacă mulţimea

valorilor lui Y corespunzătoare unei perechi: (valoare X, valoare Z) depinde numai de

valoarea lui X, nu şi de valoarea lui Z;

- dependenţă jocţiune; această restricţie exprimă o dependenţă între date mai generală decât

dependenţa funcţională sau dependenţa multivaloare. Considerând o relaţie R, cu schema

R(X:Dx,Y:Dy,Z:Dz) pentru care nu se manifestă dependenţe funcţionale sau dependenţe

multivaloare, adică relaţia R se poate asimila unei chei compuse. Asupra acestei relaţii se

formulează următoarea restricţie: dacă în relaţia R figurează tuplurile, şi atunci în R

trebuie să figureze şi tuplul .

Restricţiile de comportament se pot defini de către utilizator în funcţie de realitatea descrisă în baza de date şi pot fii:

restricţii de domeniu; care impun ca valorile unui atribut dintr-o relaţie să se încadreze în anumite limite;

restricţii temporale etc.

3.5. Proiectarea bazelor de date relaţionale

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

anterior. Diferenţe apar la activităţile legate de proiectarea schemelor conceptuale, interne şi externe,

de încărcarea, exploatarea şi întreţinerea bazei de date.

3.5.1. Proiectarea schemei conceptuale

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

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

50

Page 47: Baze de Date

care îl prezintă (aşa numitele “forme normale” ale relaţiilor) şi pe de altă parte a făcut posibilă definirea unor tehnici formale pentru înlăturarea anomaliilor de actualizare.

Formele normale ale relaţiilor

Anomaliile care apar în lucrul cu baze de date relaţionale se produc datorită dependenţelor

“nedorite” care se manifestă între datele din cadrul relaţiilor bazei de date. Aceste dependenţe

determină creşterea redundanţei datelor şi reducerea flexibilităţii structurii bazei de date, efect

manifestat prin:

limitarea posibilităţilor de inserare a datelor; apare când anumite date despre o entitate nu pot fi introduse în baza de date datorită lipsei altor date, relative la aceeaşi entitate, şi fără de care, datele noi nu pot fi introduse datorită dependenţelor dintre aceste date;

pierderi de date la ştergere; apar atunci când, în urma unei ştergeri din baza de date sunt şterse şi altele, care nu mai pot fi obţinute (reconstituite) din baza de date;

apariţia unor inconsistenţe la modificarea datelor; adică menţinerea, pentru unele atribute, a unor valori neactualizate alături de valorile actualizate.

Formele normale ale relaţiilor dintr-o bază de date relaţională sunt definite în raport de anomaliile

care pot apare în lucrul cu aceste relaţii, deci în funcţie de dependenţele “nedorite” care se manifestă

în cadrul acestor relaţii.

La proiectarea bazelor de date relaţionale se pot defini cinci forme normale, formând cinci nivele

de normalizare a relaţiilor.

O relaţie R este în forma normală unu, FN1, dacă domeniile pe care sunt definite atributele relaţiei sunt constituite numai din valori atomice (elementare). În plus, un tuplu nu trebuie să conţină atribute sau grupuri de atribute repetitive.O relaţie R este în forma normală doi, FN2, dacă este în FN1 şi oricare dintre atributele noncheie este dependent funcţional complet de cheia primară a relaţiei.O relaţie R este în forma normală trei, FN3, dacă este în FN2 şi atributele noncheie nu sunt dependente tranzitiv de cheia primară a relaţiei.Relaţia R este în forma normală patru, FN4, dacă este în FN3 şi în cadrul ei nu se manifestă mai mult de o dependenţă multivaloare.

51

Page 48: Baze de Date

Spunem că relaţia R este în forma normală cinci, FN5, dacă fiecare dependenţă joncţiune este implicată printr-un candidat cheie al lui R.

Etapele procesului de proiectare a schemei conceptuale

Proiectare schemei conceptuale a unei baze de date relaţionale presupune parcurgerea următoarelor

etape:

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

În determinarea formei normale la care trebuiesc aduse relaţiile din bazele de date relaţionale se vor avea în vedere următoarele:

ponderea operaţiilor de interogare şi a celor de actualizare în lucrul cu bazele de date relaţionale;

exigenţele de performaţă şi flexibilitate impuse de utilizatorii finali la interogarea şi, respectiv la actualizarea bazelor de date relaţionale.

2. Stabilirea relaţiilor care să facă parte din baza de date, în forma normală stabilită anterior. Aceasta presupune definirea relaţiilor şi a restricţiilor de integritate asociate, lucru realizat pe baza modelelor conceptuale ale sistemului, modele obţinute în etapa de analiză a sistemului şi a cerinţelor informaţionale asociate. În cadrul acestei etape se pot aplica mai multe 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ă.

52

Page 49: Baze de Date

3.5.2. Proiectarea schemei externe

Schema externă a unei baze de date relaţionale reprezintă ansamblul relaţiilor (tabelelor de date) la

care are acces un utilizator (un program de aplicaţie). Deşi mai mulţi utilizatori pot lucra cu o aceeaşi

schemă externă, în general, se consideră pentru o bază de date relaţională atâtea scheme externe câţi

utilizatori există la un moment dat, scheme care trebuiesc proiectate şi apoi făcute operaţionale.

Schema externă reprezintă modul de organizare, structurare, a datelor de care are nevoie un anumit

utilizator pentru a-şi satisface toate cerinţele informaţionale. Deoarece, de cele mai multe ori, un

utilizator nu are nevoie de ansamblul datelor memorate în cadrul bazei de date ci numai de o parte a

acestor date, se consideră schema externă drept o partiţie logică a schemei conceptuale a bazei de

date. Din această cauză, schema externă a unei baze de date mai este cunoscută şi sub numele de

subschemă a bazei de date.

Modul de structurare a datelor în cadrul schemei externe poate fi cel din cadrul schemei

conceptuale sau poate să fie diferit. Acest lucru se explică prin faptul că structurarea datelor în cadrul

schemei conceptuale are ca obiectiv optimizarea structurii de ansamblu a bazei de date relaţionale, în

raport de ansamblul cerinţelor informaţionale ale tuturor utilizatorilor, în timp ce structurarea datelor

în cadrul schemei externe urmăreşte facilitarea satisfacerii cerinţelor informaţionale pentru un anumit

utilizator. Deoarece aceste două criterii nu sunt echivalente se obţin rezultate, deci structuri ale

datelor diferite.

La proiectarea unei scheme externe a unei baze de date relaţionale se parcurg următoarele etape:

1. Determinarea zonei (ariei) de interes pentru un anumit utilizator din cadrul sistemului informatic reflectat informaţional cu ajutorul bazei de date;

2. Analiza structurală, dinamică şi funcţională a acestei zone din domeniul activităţii economice reprezentate prin sistemul informatic pentru care se realizează baza de date;

3. Proiectarea schemei externe, pe baza analizei anterioare, în modul de lucru descris la proiectarea schemei conceptuale a bazei de date relaţionale, ţinând cont de faptul că aceeaşi schemă poate apare drept o schemă conceptuală, dacă sistemul de referinţă este întregul domeniu economic analizat, sau drept o schemă externă, dacă sistemul de referinţă este o parte din domeniul economic analizat;

4. Testarea schemei externe şi modificarea acesteia, dacă este cazul;5. Aducerea schemei externe în forma operaţională. Acest lucru se

realizează în mod diferit faţă de schema conceptuală a bazelor de date, 53

Page 50: Baze de Date

pentru care operaţionalizarea presupune descrierea sa cu ajutorul limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei descrieri şi încărcarea acestei descrieri compilate în cadrul bazei de date. Pentru ca o schemă externă să devină operaţională, să poată fi aplicată, utilizatorul căruia îi este destinată trebuie să primească drepturi de acces asupra tabelelor de date care compun schema externă.

3.6. Sisteme de gestiune a bazelor de date relaţionale

Un sistem de gestiune a bazelor de date relaţionale poate fi definit ca reprezentând un SGBD care

utilizează drept concepţie de organizare a datelor modelul relaţional.

Diversitatea modelelor relaţionale “operaţionale” au determinat, în mod natural existenţa unei mari

diversităţi de SGBDR, care se apropie mai mult sau mai puţin de modelul relaţional “teoretic”.

Cerinţele teoretice pe care trebuie să le satisfacă un SGBD relaţional au fost specificate de Codd,

printr-o serie de 13 reguli, numite regulile lui Codd.

Deoarece aceste reguli au fost mult disputate şi deoarece nici unul dintre SGBD-urile relaţionale

(SGBDR) disponibile astăzi nu respectă întrutotul cerinţele exprimate de Codd, în cadrul celor 13

reguli, caracterizarea unui SGBD se realizează folosind o serie de cerinţe minimale pe care trebuie să

le satisfacă un sistem de gestiune a bazelor de date pentru a putea fi considerat relaţional.

Un SGBD este minim relaţional dacă satisface următoarele condiţii:

1. Toate datele din cadrul bazei de date sunt reprezentate prin valori în tabele.

2. Nu există pointeri observabili de către utilizator între tabele, în sensul că operaţiile cu relaţii nu fac apel la pointeri, indecşi, fişiere inverse etc.

3. Sistemul suportă operatorii relaţionali de proiecţie, selecţie şi join natural, fără limitări impuse din considerente interne (cum ar fi de exemplu, necesitatea indexării atributelor). Unitatea de informaţie cu care se lucrează în cadrul acestor operaţii trebuie să fie relaţia.

Un SGBD este complet relaţional dacă este minimal relaţional şi satisface în plus următoarele condiţii:

4. Sistemul suportă toate operaţiile de bază ale algebrei relaţionale, fără limitări impuse din considerente interne.

5. Sistemul suportă două dintre restricţiile de integritate de bază ale modelului relaţional şi anume unicitatea cheii unei relaţii şi restricţia referenţială.

54

Page 51: Baze de Date

Un SGBD este pseudorelaţional dacă satisface numai condiţiile 1 şi 3.Dintre instrumentele şi mecanismele de lucru de care dispune un SGBD relaţional se pot menţiona:

un limbaj relaţional pentru descrierea datelor la nivel fizic, logic şi conceptual;

un limbaj relaţional pentru manipularea datelor (interogare şi actualizare);

mecanisme pentru controlul integrităţii semantice a datelor; mecanisme pentru asigurarea coerenţei datelor în condiţiile accesului

concurent la date şi apariţiei unor avarii; mecanisme pentru optimizarea cererilor de date; utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de

rapoarte, utilitare pentru generarea de aplicaţii, pentru generarea de statistici despre starea şi activitatea bazei de date.

Dintre SGBD-urile relaţionale mai cunoscute putem menţiona: INGRES, ORACLE, DB2,

FOCUS, SQL\DS ş.a. care lucrează sub sistemele de operare VMS şi UNIX. Pentru calculatoarele

compatibile IBM-PC avem dBase IV, FoxPro, Paradox ş.a.

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

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

2. Enumeraţi câteva avantaje ale modelului relaţional.

3. Care sunt noţiunile care definesc structura relaţională a datelor ?

4. Definiţi conceptul de schemă a unei relaţii ?

5. Care sunt operaţiile algebrei relaţionale standard ?

6. Definiţi operaţia algebrei relaţionale de proiecţie.

7. Definiţi operaţia algebrei relaţionale de selecţie.

8. Definiţi operaţia algebrei relaţionale de diviziune.

9. Definiţi operaţia algebrei relaţionale de join.

10. Enumeraţi restricţiile de integritate ale modelului relaţional.

11. Explicaţi restricţia de unicitate a cheii.

12. Explicaţi restricţia de unicitate referenţială.

13. Enumeraţi şi explicaţi dependenţele între date.

14. Explicaţi noţiunea de « schemă conceptuală optimă ».

15. Care sunt etapele procesului de proiectare a schemei conceptuale a unei baze de date

relaţionale ?55

Page 52: Baze de Date

16. Care sunt cerinţele impuse unui SGBD pentru a putea fi considerat minim relaţional ?

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

4.1. Modelul de date ierarhic

Modelul de date ierarhic a fost primul model folosit pentru organizarea datelor în baze de date

datorită simplităţii conceptului de ierarhie şi a aplicabilităţii sale în modelarea realităţii

înconjurătoare.

Modelul ierarhic are ca structură de bază structura arborescentă (ierarhia). Proprietăţile acestei

structuri de date determină caracteristicile şi restricţiile modelului ierarhic. În modelul ierarhic

fiecărui nod al arborelui îi corespunde un tip de înregistrare, format din unul sau mai multe câmpuri,

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

diagrame de structură.

56

Page 53: Baze de Date

Fig. 4.1. Diagramă de structură ierarhică

Din figura de mai sus se observă că un nod părinte poate avea subordonate mai multe noduri copil,

în timp ce un nod copil poate avea un singur părinte, ceea ce înseamnă că relaţia părinte-copil între

tipurile de înregistrări va fi 1 la M (“unu la mulţi”) şi cea copil-părinte va fi de tipul 1 la 1 (“unu la

unu”).

Unui tip de înregistrare din diagrama de structură a modelului ierarhic îi corespunde în baza de

date un anumit număr de realizări. Relaţiile între realizările unui cuplu părinte-copil sunt indicate de

arcele care leagă cele două componente ale diagramei. Astfel, arcul ce leagă Tip_înregistrare_1 de

Tip_înregistrare_2 indică faptul că unei realizări a tipului părinte (Tip_înregistrare_1) i se pot

asocia <n> realizări ale tipului copil (Tip_înregistrare_2) şi că o realizare a tipului copil este

asociată cu o singură realizare a tipului părinte. Între Tip_înregistrare_3 şi Tip_înregistrare_4,

relaţia de 1 la 1 este reciprocă. Acestea sunt singurele tipuri de relaţii permise între realizările

tipurilor de înregistrări ale modelului ierarhic.

O bază de date ierarhică poate fi definită ca fiind o mulţime ordonată de realizări ale unui singur

tip arbore.

Un tip arbore constă dintr-un singur tip de înregistrare “rădăcină”, la care se adaugă o mulţime

ordonată alcătuită din unul sau mai multe tipuri de subarbori dependenţi. Un tip subarbore constă

dintr-un tip de înregistrare rădăcină şi o mulţime ordonată alcătuită din unul sau mai multe tipuri de

subarbori dependenţi ş.a.m.d. Deci, un tip arbore constă dintr-o ierarhie a tipurilor de înregistrări.

O realizare a arborelui constă dintr-o singură realizare a tipului înregistrare rădăcină împreună cu

o mulţime ordonată alcătuită din una sau mai multe realizări ale fiecărui tip subarbore imediat

dependent de tipul rădăcină. Se observă că pentru orice realizare a unui tip înregistarare părinte,

există n realizări ale tipurilor înregistrare copil (). Toate realizările unui tip copil care au aceeaşi

realizare părinte se numesc gemeni.

Fie un (sub)arbore T cu rădăcina R şi subarborii S1, S2, ..., Sn în această ordine. Fie t o realizare a

lui T, cu rădăcina r (o realizare a lui R) şi subarborii s1, s2, ..., sn, realizări ale S1, S2, ..., Sn. Se

defineşte recursiv secvenţa ierarhică (ordonarea) pentru t, ca fiind secvenţa obţinută alăturând

înregistrării r, toate înregistrările lui s1, s2, ..., sn, luate în ierarhia lor.

Fiecare arbore individual din baza de date poate fi privit ca un subarbore al unei înregistrări

rădăcină iniţiale. Deci baza de date poate fi considerată ca un singur arbore. Noţiunea de secvenţă

ierarhică defineşte o ordonare totală pe mulţimea tuturor înregistrărilor din baza de date.

4.2. Operatori ai modelului ierarhic

57

Page 54: Baze de Date

Un limbaj de manipulare a datelor ierarhice constă dintr-un set de operatori de prelucrare a datelor

reprezentate arborescent. Exemple de operatori: operatori pentru localizarea unui anumit arbore în

baza de date; operatori pentru trecerea de la un arbore la altul în baza de date; operatori de trecere de

la o înregistrare la alta într-un arbore, cu posibilităţi de parcurgere în sus sau în jos pe diferite căi ale

ierarhiei; operatori pentru inserarea unei noi înregistrări la o poziţie specifică într-un astfel de arbore;

operatori de ştergere a unei înregistrări specificate etc.

Aceşti operatori sunt la nivel de înregistrare existând şi o clasă de operatori pe mulţimi de

înregistrări.

4.3. Restricţii de integritate ale modelului ierarhic

Caracteristic modelului ierarhic este faptul că nici o realizare a unui nod copil nu poate să existe

fără a avea asociată o realizare a nodului părinte. Aceasta înseamnă că dacă un nod părinte este şters,

automat sistemul va şterge întregul subarbore ce are ca părinte ale nod precum şi că o realizare a

nodului copil nu poate fi inserată dacă o realizare a nodului părinte nu există deja.

Ţinând cont de cele de mai sus, precum şi de relaţiile permise între realizările tipurilor de

înregistrări, pot fi enunţate următoarele restricţii de integritate ale modelului ierarhic:

realizare copil este întotdeauna asociată unei singure realizări părinte; dacă un tip de înregistrare nu are realizări, atunci nici tipurile

descendente de înregistrări nu au realizări.De exemplu, să considerăm o bază de date cu informaţii despre comenzile lansate de clienţii unei

firme (fig. 4.2.).

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

58

Page 55: Baze de Date

Nodul rădăcină este CLIENŢI, înregistrarea copil este COMENZI, iar relaţia părinte-copil este de

tipul 1:M (“unu la mulţi”), adică un client poate lansa mai multe comenzi firmei considerate. O

comandă poate să includă mai multe produse iar acelaşi produs poate fi solicitat în mai multe

comenzi ale aceluiaşi client sau ale unor clienţi diferiţi. Deci, între tipurile de înregistrare COMENZI

şi PRODUSE relaţia este de tip N:M (“mulţi la mulţi”). Deoarece modelul ierarhic nu permite

reprezentarea relaţiei de acest tip, s-a optat pentru transformarea acesteia în două relaţii, prin

introducerea tipului de înregistrare LEGĂTURĂ, atfel: o relaţie de tip 1:N între COMENZI şi

LEGĂTURĂ şi o alta de tip 1 la 1 între LEGĂTURĂ şi PRODUSE (se respectă astfel restricţia 1,

conform căreia o realizare copil poate fi asociată unei singure realizări părinte).

Fig. 4.3. Relaţii între date

Se observă că într-o realizare un nod copil poate apare de 0, 1 sau n ori, în timp ce în diagrama de

structură, tipul de înregistrare corespunzător apare o singură dată.

Totodată, dacă în COMENZI nu există realizări care să se refere la un produs T, nu vor exista

informaţii despre acest produs în PRODUSE. Deci informaţiile despre produse vor putea fi stocate în

baza de date a firmei, numai dacă există comenzi pentru acele produse.

4.4. Implementarea modelului ierarhic şi SGBD-uri ierarhice

Modelul ierarhic presupune ca orice căutare a unei realizări copil să fie efectuată în secvenţă

ierarhică, începând cu realizarea rădăcină. În exemplul considerat, având în vedere restricţia 1, datele

59

Page 56: Baze de Date

pentru produsul X vor fi repetate pentru fiecare comandă care include acest produs. Datorită acestei

redundanţe, actualizarea bazei de date este dificilă. Astfel, pentru modificarea unro date despre

produsul X trebuiesc regăsite toate înregistrările care îl conţin, adică pentru fiecare client trebuie

verificate toate comenzile asociate pentru a le identifica pe care conţin produsul X.

În acest context, maniera de implementare a relaţiilor dintre tipurile de înregistrări va condiţiona

performanţele procesului de manipulare a datelor. Se cunosc două modalităţi de implementare a

acestor relaţii:

1. Reprezentarea prin pointeri. Acest mod de implementare poate fi realizat în moduri diferite.

Unul dintre acestea presupune că fiecare realizare a unui tip de înregistrare părinte trebuie să conţină

un pointer (o adresă) spre prima realizare a tipului copil. La rândul ei, fiecare realizare copil va

conţine un pointer spre următoarea realizare copil asociată aceluiaşi părinte. Fiecare înregistrare copil

poate conţine, de asemenea, un pointer spre înregistrarea părinte.

Un alt mod de implementare presupune că o realizare părinte să aibă un vector de pointeri spre

realizările copii. De asemenea, există situaţia în care este utilă o cheie primară pentru a accesa

realizările unui anumit tip de înregistrare. Pentru aceasta folosim pointeri spre realizările înregistrării

respective, în ordinea valorii câmpului ales drept cheie primară.

2. Reprezentarea secvenţială pe suport a informaţiilor. În acest caz fiecare realizare a arborelui

reprezintă o înregistrare logică a fişierului. Componentele ierarhiei sunt aranjate pe suportul de

memorie corespunzător parcurgerii structurii arborescente în preordine: realizarea CLIENT A apare

prime, urmată de COMANDA A1.1, LEG A1.1. şi PRODUS_X etc. Se observă că fiecare nouă

realizare rădăcină, semnalează începutul unei noi realizări a arborelui.

În concluzie, se poate afirma că implementarea modelului ierarhic este difcilă, prezentând

dezavantajele redundanţei informaţionale din structura ierarhică a datelor şi faptul că sistemele

ierarhice nu permit utilizatorului să manipuleze un subarbore ca o entitate independentă.

Există mai multe sisteme de gestiune a bazelor de date ierarhice, cel mai răspândit fiind IMS/VS

(Information Management System/Virtual Storage) şi este implementată pe calculatoarele IBM, sub

sistemul de operare MVS. SGBD-urile ierarhice sunt realizate pentru calculatoare de mare capacitate

neexistând un asemenea SGBD comercial pentru calculatoare compatibile IBM-PC.

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

Modelul reţea foloseşte structura de date reţea ca structură de bază. Reţeaua este un graf orientat

alcătuit din noduri conectate prin arce. Nodurile corespund tipurilor de înregistrare, iar arcele

60

Page 57: Baze de Date

pointerilor (adreselor de legătură). Modelul reţea foloseşte înregistrările pentru a reprezenta entităţile

şi pointerii între înregistrări pentru a reprezenta relaţiile dintre entităţi.

Structura de date reţea seamănă cu structura de date arborescentă, cu dfierenţa că un nod

dependent (copil) poate avea mai mult decât un singur părinte.

O bază de date reţea constă dintr-un număr oarecare de tipuri de înregistrări. O înregistrare este

constituită dintr-un număr oarecare de câmpuri (elementare sau agregate). Un câmp este cea mai mică

unitate de date care are nume. Fiecare câmp are un tip de dată asociat. Câmpul corespunde unui

atribut, iar înregistrarea unei entităţi.

Fig. 4.4. Structură de date reţea

Caracteristic modelului de date reţea este conceptul de set, folosit pentru a exprima relaţiile dintre

entităţi. Un tip set constă dintr-un singur tip de nod proprietar şi unul sau mai multe tipuri de noduri

dependente, legate de acesta, numite tipuri membre.

O realizare a setului este o colecţie de înregistrări având o realizare proprietar şi un număr oarecare

de realizări membre asociate.

Modelul reţea impune restricţia conform căreia o înregistrare nu poate fi membră a două realizări

ale aceluiaşi tip set. Totuşi, o înregistrare poate să aparţină mai multor tipuri set.

În modelul reţea, toate seturile sunt implementate prin pointeri. Uzual, se crează o listă înlănţuită

unde realizarea proprietar este capul listei. Proprietarul are legătură cu primul membru, care se leagă

de al doilea şi aşa mai departe până la ultimul membru. Ultimul membru face legătură cu proprietarul,

formând un lanţ. O înregistrare membru a unui set poate avea trei pointeri:

- spre înregistrarea urmăroare (next);

- spre înregistrarea anterioară (prior);

- spre proprietar (owner).

Modelul reţea prezintă o serie de dezavantaje cum ar fi:

modelul reţea este complicat;

structura reţea tinde să fragmenteze informaţiile;

61

Page 58: Baze de Date

cea mai mare parte a optimizării sistemului se face mai mult manual decât aplicând

programe de optimizare;

conceptul de indicator de poziţie este o sursă de complexitate şi de erori.

Cu toate acestea, în practică, SGBD-urile reţea continuă să fie folosite datorită performanţelor

bune obţinute în prelucrarea explicită la nivel de înregistrări. SGBD-urile reţea folosesc limbaje de

descriere a datelor (LDD) pentru a defini baza de date şi limbaje de manipulare a datelor (LMD)

pentru a satisface cererile de date.

5. BAZE DE DATE ORIENTATE PE OBIECTE

Dezvoltarea tehnologiei sistemelor de calcul în ultimii ani a condus la pătrunderea acestora în tot

mai multe domenii de activitate, având de rezolvat probleme din cele mai diverse şi mai complexe.

Pentru aceasta, structurile clasice de date bazate pe text şi valori numerice fie se dovedesc

insuficiente, fie complexitatea lor depăşeşte posibilităţile de prelucrare oferite de tehnologiile clasice.

Aplicaţiile specifice anumitor domenii cum ar fi: proiectarea asistată de calculator, sisteme

informatice geografice, sisteme bazate pe cunoştinţe etc., presupun stocarea unor cantităţi mari de

informaţii cu o structură complexă. De exemplu, aplicaţiile de proiectare asistată de calculator

necesită stocarea şi manevrarea unor desene formate din grupuri de elemente complexe, alături de

acestea fiind necesară stocarea şi a altor informaţii privind materialele folosite, maşini şi utilaje

disponibile, rezultate ale verificărilor efectuate asupra proiectului etc.

Un alt domeniu al informaticii care necesită structuri de date complexe este multimedia. Acest

domeniu, spre care există o orientare tot mai puternică, presupune integrarea imaginilor reale sau

sintetizate cu sunet şi muzică, integrare ce nu mai permite folosirea datelor numerice sau de tip şir de

caractere.

O modalitate de rezolvare a acestor probleme este dată şi de tehnologia aplicaţiilor orientate pe

obiecte.

Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai

simple, fiecare având propriile atribute şi propriul comportament. Domeniile care se pretează în mod

deosebit la o tratare orientată pe obiecte sunt:

proiectare (CAD), fabricare (CAM) şi inginerie (CAE) asistate de calculator;

simulare şi modelare;

62

Page 59: Baze de Date

sisteme informaţionale spaţiale (GIS);

administrarea documentelor şi automatizarea muncii de birou;

multimedia;

ingineria cunoaşterii: baze de cunoştinţe, sisteme expert;

controlul proceselor în timp real, pe bază de evenimente.

Obiectivele principale ale sistemelor de gestiune orientate pe obiecte sunt:

Puterea de modelare superioară a datelor.

Posibilităţi de deducţie superioară (ierarhie de clase, moştenire);

Ameliorarea interfeţei cu utilizatorul;

Luarea în considerare a aspectelor dinamice, integrarea descrierii structurale şi

comportamentale a obiectelor.

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

Un model de date orientat pe obiecte are la bază noţiunea de entitate conceptuală şi defineşte un

obiect ca o colecţie de proprietăţi care descriu entitatea. Principalele concepte care stau la baza unui

model orientat pe obiecte sunt: obiectul, încapsularea, persistenţa, clasa, tipul, moştenirea,

polimorfismul, identitatea şi domeniul.

Obiectul

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

de ceea ce o înconjoară.

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.

63

Page 60: Baze de Date

Structura unui obiect şi operaţiile (metodele) permise pentru acel obiect sunt definite împreună.

O metodă reprezintă o procedură ce manipulează obiectul sau indică starea sa şi este totdeauna

asociată unei clase.

Metodele şi atributele nu sunt vizibile din “exteriorul” obiectului. Un obiect comunică cu

“exteriorul” prin intermediul mesajelor . Mesajele reprezintă cereri adresate obiectului pentru a

returna o valoare sau pentru a-şi schimba starea.

Obiectele pot fi simple sau compuse din alte obiecte. Un obiect compus poate avea ca atribute alte

obiecte, formând astfel o structură ierarhică.

Încapsularea

Structura obiectului şi modul de acţiune al metodelor sale nu pot fi accesate şi actualizate direct de

către un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Această caracteristică

ascunsă a stării obiectului este cunoscută sub numele de încapsulare. Un obiect este astfel divizat în

două părţi: o parte de interfaţă reprezentată de mesaje şi o parte ascunsă, de implementare,

reprezentată de starea internă şi de metodele obiectului.

Încapsularea ascunde utilizatorului complexitatea unui obiect, oferindu-i în schimb o imagine

funcţională simplificată a acestuia, imagine care îi permite să modeleze şi să rezolve cu mai multă

uşurinţă problemele complexe.

Persistenţa

Aceasta este o proprietate a datelor sau a obiectelor care implică existenţa mai îndelungată a

acestora faţă de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigură

păstrarea unui proces pentru a fi refolosit ulterior în alt proces.

Codul aferent metodelor, fiind parte integrantă din obiect, este stocat, ca şi starea obiectului, în

baza de date. Aceasta înseamnă că, odată ce a fost descrisă, o metodă devine permanentă,

decongestionând astfel aplicaţia şi asigurându-i independenţa faţă de date. O modificare adusă unei

metode devine imediat operantă şi persistă până la o nouă modificare.

Tipuri şi clase

64

Page 61: Baze de Date

Obiectele care au acelaşi fel de atribute şi acelaşi comportament pot fi categorisite ca făcând parte

din acelaşi tip sau din aceeaşi clasă.

Într-un sistem orientat pe obiecte, tipul sintetizează elementele comune ale unui set de obiecte cu aceleaşi caracteristici. Corespunde noţiunii de tip abstract de date şi are două componente:

interfaţa;

implementarea.

Noţiunea de clasă, deşi are aceeaşi specificaţie cu cea de tip, este diferită de acesta, fiind mai mult asociată cu faza de execuţie şi presupune două aspecte:

generarea de obiecte;

stocarea setului de obiecte care reprezintă instanţele clasei.

O clasă are o descriere ce constă dintr-un set de structuri de date comune, cunoscute ca variabile de instanţă, un protocol comun ce constă dintr-un set de mesaje, la care instanţele clasei vor răspunde şi un set de metode pentru implementarea de operaţii comune.

Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei serveşte ca şablon după care

vor fi create noile obiecte. O clasă este deci un tip abstract de date care defineşte atât structura

obiectelor din clasa respectivă, cât şi mulţimea metodelor existente pentru aceste obiecte. Ca urmare,

obiectele din aceeaşi clasă au aceleaşi atribute şi aceleaşi metode şi răspund la aceleaşi mesaje.

Clasele sunt organizate ierarhic fiecare clasă nou creată trebuind să fie obţinută din altă clasă deja existentă. Dacă nu există nici o clasă potrivită pentru definirea unei noi clase, aceasta va fi identificată ca o subclasă a clasei generale sistem (metaclasă). Orice subclasă moşteneşte structurile şi metodele superclasei din care face parte. O clasă poate crea noi instanţe ale obiectelor.

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

65

Page 62: Baze de Date

Polimorfismul se referă la faptul că, la primirea unui mesaj, stabilirea metodei care se aplică se

face în mod dinamic, în funcţie de clasa obiectului în cauză. Astfel, instanţe ale unor clase diferite pot

fi adresate uniform (primesc aceleaşi mesaje), dar manifestă comportamente diferite. Acest fapt

asigură manipularea simplă şi coerentă a seturilor eterogene de obiecte.

Un alt tip de comportament polimorfic este asociat cu moştenirea. Răspunsul unui obiect la un

mesaj poate fi determinat de metodele moştenite de la superclasă. Moştenirea multiplă permite

definirea unor forme complexe de comportament polimorfic care pot antrena uneori combinarea

metodelor de la două sau mai multe superclase.

Identitatea

Identitatea este un mijloc de a distinge un obiect de altul. Prin identitate se asigură şi persistenţa

datelor.

Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independentă de

valorile atributelor sale. Spre deosebire de modelul relaţional, care utilizează unicitatea cheii primare

pentru a identifica “obiectul”, tehnologia orientată pe obiecte permite modificarea valorilor oricărui

atribut fără a-i afecta identitatea. Mai mult chiar, obiectele au “conştiinţa de sine”, adică se pot referi

pe ele însele prin intermediul pointerului SELF.

Fiecare instanţă sau realizare a obiectului are un identificator de obiect intern, repartizat lui şi cunoscut ca ID obiect sau pointer. Acesta este independent de valorile atributelor sale. Fiind generat de sistem, identificatorul este unic şi nu este accesibil utilizatorului.

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

În cazul modelului de date orientat pe obiecte, restricţiile de integritate cunt o consecinţă a

structurii modelului şi a operaţiilor. Următoarele reguli sunt important de reţinut:

toate obiectele trebuie să respecte protocolul specificat prin definirile lor de clasă;

obiectele sunt încapsulate. Aceasta presupune accesul la obiect numai prin folosirea

protocolului de mesaje definit pentru clasa obiectului;

identificatorul obiectului trebuie să asigure integritatea referirii la un obiect. Astfel, un

obiect nu există fără să aibă asignat un identificator.

Dacă un obiect este şters sau mutat atunci trebuie să fie şterse sau mutate toate obiectele derivate

din acesta..

5.2. Baze de date orientate pe obiecte66

Page 63: Baze de Date

O bază de date orientată pe obiecte poate fi definită ca fiind rezultatul aplicării tehnologiei

orientate pe obiecte în domeniul stocării şi regăsirii informaţiilor. Ea oferă posibilitatea de a

reprezenta structuri de date foarte complexe cu ajutorul obiectelor.

Definirea clasei este mecanismul de specificare a schemei bazei de date. Schema bazei de date

constă din toate clasele care au fost definite pentru o aplicaţie particulară. Definiţiile de clasă includ

moştenirea, relaţiile de înrudire (superclasa, subclasa) şi relaţiile structurale dintre clase (analog cu

relaţiile din modelul entitate-relaţie-atribut).

O schemă completă de bază de date poate consta din una sau mai multe ierarhii de clasă împreună

cu relaţiile structurale. Descrierile individuale ale schemei se referă la variabile de instanţă ale

claselor individuale.

Schema bazei de date poate fi modificată dinamică, în funcţie de necesităţile utilizatorilor. Pot fi

identificate două tipuri de schimbare a schemei unei baze de date orientate pe obiecte:

1. Schimbări referitoare la modul de definire al unei clase. Acestea includ schimbările atributelor

şi metodelor definite pentru o clasă, cum ar fi schimbarea numelui sau domeniului unui atribut,

adăugarea, ştergerea unui atribut sau metode;

2. Schimbări referitoare la structura ierarhiei de clase care includ adăugarea sau ştergerea unei

clase şi schimbarea relaţiilor superclasa/subclasa dintre o pereche de clase.

Proiectarea bazelor de date orientate pe obiecte

Modul clasic de proiectare se bazează pe tehnica top-down. Se identifică mai întâi componentele

majore, se stabilesc corelaţiile între ele, iar apoi se trece la rafinări succesive, “în cascadă”, a

componentelor.

Proiectarea orientată pe obiecte se bazează mai mult pe tehnica bottom-up. Se identifică mai întâi

componentele funcţionale pe baza cărora se va construi apoi întregul edificiu. Se identifică în

colecţiile existente obiectele care pot fi reutilizate pentru noul proiect. Acestea vor fi preluate ca atare

sau, dacă este cazul, vor fi ajustate. Cele care nu există vor fi create, uneori din temelii, dar de cele

mai multe ori ca subclase ale unor clase existente. Odată creată ierarhia de clase potrivită, se testează

componentele specifice, se pune la punct documentaţia şi se poate începe acţiunea de implementare.

Această metodologie modifică în mod substanţial planificarea lucrărilor şi etapelor. Partea cea mai

minuţioasă a proiectării se mută la începutul proiectului. Dacă există deja biblioteci de obiecte

67

Page 64: Baze de Date

utilizate în alte aplicaţii, realizarea uni prototip se poate face foarte rapid. Pe baza lui se stabilesc

aspectele funcţionale şi de interfaţă ale aplicaţiei, după care se trce la etapa de identificare a

obiectelor, a claselor, a ierarhiei, a modului de comunicare între obiecte. Etapa finală a proiectului

constă în asamblarea acestor elemente.

Sisteme de gestiune a bazelor de date orientate pe obiecte

Sistemele de gestiune a bazelor de date orientate pe obiecte trebuie să păstreze funcţiunile oferite

de SGBD-urile dezvoltate anterior, folosind totodată structuri de date şi reguli orientate spre lucrul cu

obiecte.

Un SGBD orientat pe obiecte trebuie să satisfacă două criterii:

să fie un sistem orientat pe obiecte, deci bazat pe modelul orientat pe obiecte;

să îndeplinească cerinţele unui sistem de gestiune a bazelor de date.

Arhitectura unui SGBD se referă la o descriere abstractă a organizării unui sistem în scopul de a

prezenta componentele funcţinale şi interfeţele dintre ele. Arhitectura unui SGBD-OO cuprinde trei

componente majore:

Gestionarul de obiecte (Object Manager) care asigură interfaţa dintre procese (prelucrările) externe

şi SGBD-OO;

Server-ul de obiecte care este responsabil cu asigurarea serviciilor de bază ale SGBD-urilor, cum

ar fi: gestiunea tranzacţiilor şi gestiunea stocului de obiecte;

Stocul rezident de obiecte sau chiar baza de date obiect.

Procesele externe pot fi generate de către diverşi utilizatori prin accesarea SGBD-OO. Utilizatorii

finali externi şi cei care dezvoltă aplicaţii pot folosi diverse instrumente soft, cum ar fi: editoare de

texte, browseri de obiecte şi clase, accesorii de proiectare automată de baze de date şi interfeţe pentru

sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce

realizează interfaţa cu gestionarul de obiecte.

În prezent, SGBD-OO comerciale sunt accesate în primul rând prin limbajele de programare

orientate obiect, cum ar fi: Smalltalk, Common Lisp şi C++. Interfaţa dintre limbajele de programare

orientate pe obiecte şi SGBD-OO o reprezintă limbajul pentru baza de date. Un SGBD trebuie să

asigure un limbaj pentru baze de date pentru a permite definirea şi manipularea schemei bazei de date

şi a datelor. Exemple de SGBD-OO sunt: GemStone, ObjectStore, Ontos, Raima Object Manager,

Versant etc. Toate aceste SGBD-uri rulează pe microcalculatoare, staţii SUN, Apollo şi Digital şi pe

PC-uri.

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

68

Page 65: Baze de Date

1. Care sunt caracteristicile unui obiect ?

2. Explicaţi conceptul de moştenire.

3. Explicaţi conceptul de încapsulare.

4. Explicaţi conceptul de polimorfism.

5. Precizaţi restricţiile de integritate ale modelului de date orientat obiect.

6. Care sunt modalităţile de schimbare a schemei unei baze de date orientate obiect ?

7. Caracterizaţi proiectarea bazelor de date orientate obiect.

8. Prin ce se identifică un SGBD ca fiind orientat obiect ?

6. BAZE DE DATE DISTRIBUITE

69

Page 66: Baze de Date

O bază de date distribuită poate fi definită ca o colecţie de date integrate din punct de vedere logic dar distribuite din punct de vedere fizic pe staţiile unei reţele de calculatoare. Fiecare staţie a reţelei are autonomie de prelucrare care îi permite să realizeze aplicaţii locale. De asemenea, fiecare staţie participă la execuţia aplicaţiilor globale care necesită accesarea datelor din mai multe staţii.

Reţelele de calculatoare pot fi locale (LAN - Local Area Network) sau la nivel de judeţ, ţară,

continent etc. (WAN - World Area Network).

Realizarea şi exploatarea bazelor de date distribuite implică rezolvarea unor probleme cum ar fi:

- Controlul centralizat. Spre deosebire de bazele de date locale care erau controlate de un administrator unic, bazele de date distribuite presupun existenţa unui administrator global, care are responsabilitatea centrală a întregii baze de date distribuită şi a unor administratori locali, cărora le revin responsabilităţile legate de bazele de date locale. Administratorii locali pot avea un grad înalt de autonomie care poate merge până la realizarea coordonării între staţii.

- Independenţa datelor. În cazul bazelor de date distribuite asigurarea independenţei datelor faţă de programele de aplicaţii are aceeaşi importanţă ca şi în cazul bazelor de date locale, dar apare un nou aspect legat de transparenţa distribuţiei. Prin transparenţa distribuţiei programele pot fi scrise făcând abstracţie de distribuirea fizică a datelor. Mutarea datelor dintr-o staţie în alta trebuie să afecteze numai viteza de execuţie, nu şi corectitudinea programului.

- 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

70

Page 67: Baze de Date

modul de realizare a tranzacţiilor. O tranzacţie este o unitate atomică de execuţie, o secvenţă de operaţii care fie sunt realizate în întregime fie nu sunt realizate. În cadrul bazelor de date distribuite problema atomicităţii tranzacţiilor capătă un aspect particular legat de modul în care trebuie să se comporte sistemul atunci când una din staţii nu este operaţională: să abandoneze întreaga tranzacţie sau să încerce să execute corect tranzacţia chiar dacă ambele staţii nu sunt simultan operaţionale.

- Siguranţa şi securitatea datelor. În bazele de date tradiţionale, administratorul bazei de date care are controlul centralizat permite numai un aces autorizat la date. În bazele de date distribuite, administratorii se confruntă cu aceleaşi probleme ca administratorii bazelor de date tradiţionale. Sunt de menţionat două aspecte particulare:

în bazele de date distribuite, cu un grad ridicat de autonomie a staţiilor, bazele de

date locale sunt mai protejate deoarece administratorii locali îşi realizează propria

protecţie fără să depindă de un administrator centralizat;

problemele securităţii sunt intrinseci sistemelor distribuite deoarece comunicaţia în

reţea poate reprezenta un punct slab în realizare protecţiei.

Faţă de bazele de date centralizate, bazele de date distribuite au următoarele avantaje:

Creşterea adaptabilităţii sistemului. În orice moment baza de date poate fi extinsă prin

adăugarea de noi structuri de baze de date, cu un impact minim asupra structurii bazei de

date distribuite şi fără a afecta aplicaţiile existente. În cazul sistemelor centralizate,

dimensiunile iniţiale ale sistemului trebuie să prevadă viitoarele expansiuni, lucru greu de

realizat şi costisitor de implementat.

Sporirea performanţelor sistemului deoarece partajarea şi replicarea datelor ca şi

existenţa mai multor procesoare au ca rezultat creşterea gradului de paralelism în

executarea aplicaţiilor.

Creşterea siguranţei sistemului. Sistemul distribuit este proiectat astfel încât căderea unei

staţii nu afectează întregul sistem.

Disponibilitatea sporită a datelor asigurată de replicarea lor. Chiar dacă o staţie cade,

datele sunt încă disponibile prin copiile memorate pe alte staţii.

6.1. Sistemul de gestiune a bazelor de date distribuite

Un sistem de baze de date distribuite este un sistem în cadrul căruia mai multe baze de date locale

sunt legate printr-un sistem de comunicaţie astfel încât datele din orice staţie pot fi accesate de

utilizatori de la alte staţii.71

Page 68: Baze de Date

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ă.

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).

72

Page 69: Baze de Date

3. Asigurarea controlului concurenţei şi restaurarea datelor la nivelul întregului sistem. Fiecare SGBD răspunde de actualizarea şi restaurarea datelor din propria bază de date. În caz de incident, SGBD local poate restaura datele la starea anterioară producerii incidentului dar numai SGBDD poate păstra şi aplica modificările care au intervenit după producerea incidentului. Controlul concurenţei la nivelul sistemelor este necesar pentru a asigura sincronizarea proceselor.

4. Realizarea administrării bazei de date distribuite şi controlul acesteia. SGBDD dispune de instrumente pentru monitorizarea bazei de date distribuite, colectarea informaţiilor despre modul de utilizare a acesteia şi, pe baza acestora, realizează viziunea globală asupra ei.

O caracteristică importantă a SGBDD este omogenitatea sau eterogenitatea. Un SGBDD este

omogen atunci când toate SGBD-urile locale sunt de acelaşi fel. Un SGBDD eterogen implică cel

puţin două SGBD-uri locale diferite.

Astăzi există SGBDD omogene cum sunt: SDD-1, R*, DDM ş.a. şi SGBDD eterogene cum ar fi:

MULTIBASE, DDTS ş.a. De un interes crescând se bucură sistemele eterogene de baze de date

distribuite.

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

1. Ce este o bază de date distribuită ?

2. Enumeraţi şi explicaţi principalele probleme ridicate de realizarea şi exploatarea bazelor de

date distribuite.

3. Care sunt avantajele bazelor de date distribuite ?

4. Care sunt componentele unui SGBD distribuit (SGBDD) ?

5. Care sunt funcţiile specifice pe care trebiue să le îndeplinească un SGBDD ?

6. Explicaţi funcţia SGBDD de asigurare a interfeţei cu utilizatorul.

7. Explicaţi funcţia SGBDD de localizare a datelor.

8. Explicaţi funcţia SGBDD de asigurare a controlului accesului concurent la date.

73

Page 70: Baze de Date

7. PROTECŢIA BAZELOR DE DATE

Protecţia bazelor de date constă dintr-un set de măsuri umane şi facilităţi oferite de SGBD prin care se urmăreşte asigurarea integrităţii datelor, definită ca fiind corectitudinea datelor introduse şi manipulate, şi a securităţii datelor, ce vizează interzicerea accesului la date pentru persoanele ce nu au competenţe în folosirea lor. Aceasta capătă o importanţă deosebită în contextul extinderii folosirii configuraţiilor cu număr mare de utilizatori şi cu un volum mare de date de prelucrat.

În ceea ce priveşte sfera de acţiune a metodelor utilizate pentru protecţia datelor, pot fi puse în

evidenţă două tendinţe: protecţia împotriva unor defecte sau erori accidentale şi protecţia completă

care realizează în plus faţă de prima şi protecţia contra unor acţiuni voite. Teoretic, toate sistemele ar

trebui să asigure protecţia completă a datelor. În practică însă, costul protecţiei, care creşte pe măsură

ce sunt reduse posibilităţile de apariţie a unor erori şi de violare a confidenţialităţii datelor, este cel

74

Page 71: Baze de Date

care dictează complexitatea metodelor de protecţie care vor fi utilizate. Aspectele protecţiei bazelor

de date ce vor fi prezentate mai jos se bazează pe presupunerea că protecţia informaţiei la nivelul

sistemului de operare este asigurată.

7.1. Integritatea datelor

Corespunzător situaţiilor care pot genera apariţia unor date incorecte în baza de date, se disting trei

aspecte ale asigurării integrităţii datelor:

1. Asigurarea integrităţii semantice a datelor - presupune prevenirea introducerii unor date incorecte şi a efectuării unor prelucrări greşite. Dacă acest lucru nu va fi împiedicat sau semnalat imediat, datele vor fi utilizate în alte prelucrări, declanşându-se astfel un proces necontrolat de alterare a bazei de date. Cu cât sesizarea unei erori are loc după o perioadă mai mare, cu atât efectele ei vor fi mai greu de controlat.

2. Controlul accesului concurent la date - presupune prevenirea obţinerii unor rezultate incorecte din execuţia concurentă (simultană) a unor prelucrări în regim multiutilizator. O altă problemă care poate apare la prelucrarea concurentă este dată de interblocare. Aceasta înseamnă că două tranzacţii blochează anumite resurse, apoi solicită fiecare resursele blocate de cealaltă.

3. Salvarea şi restaurarea bazei de date. Au ca scop readucerea datelor la o formă consistentă în urma unor evenimente care au alterat corectitudinea lor precum:

funcţionarea anormală sau o cădere a SGBD sau a sistemului de operare;

defecţiune fizică a suportului fizic pe care este memorată baza de date.

În primul caz, prin întreruperea tranzacţiilor active în momentul respectiv, baza de date va rămâne

într-o stare de inconsistenţă. În cel de-al doilea caz, suportul pe care rezidă baza de date va fi

inutilizabil, deci toate datele se vor pierde.

Pentru restaurarea bazei de date este necesară existenţa unor informaţii despre derularea

tranzacţiilor până în momentul întreruperii lucrului şi aplicarea, după caz a uneia din următoarele

tehnici de restaurare de bază:

- derularea înapoi a tranzacţiilor (ROLLBACK) - care presupune anularea modificărilor efectuate de acestea asupra bazei de date;

- derularea înainte a tranzacţiilor completate dar nereflectate în baza de date

(ROLLFORWARD) - care presupune efectuarea acelor transformări prin care baza de date restaurată să conţină rezultatele acestora.

75

Page 72: Baze de Date

Se observă deci că tranzacţia poate fi considerată unitatea de restaurare, în sensul că baza de date

restaurată trebuie, fie să reflecte rezultatele finale ale tranzacţiilor, fie să nu fie afectată de acestea.

Procesul de restaurare utilizează o serie de infromaţii obţinute prin aplicarea unei anumite strategii

de salvare.

Datele salvate pot fi diferite combinaţii între:

- copii ale bazei de date şi copii ale jurnalelor acesteia;

- jurnale ale tranzacţiilor;

- jurnale ale imaginii înregistrărilor din baza de date.

Copiile bazei de date pot fi realizate automat de către sistem la anumite intervale de timp, sau la comanda administratorului bazei de date, ori de câte ori este nevoie, de preferat pe suporturi magnetice diferite de cele pe care este stocată baza de date. În cazul unei deteriorări a suportului magnetic care păstrează baza de date, acesta este singura posibilitate de recuperare a bazei de date.

Jurnalul tranzacţiilor este un fişier special, întreţinut de SGBD, în care sunt memorate informaţii despre tranzacţiile efectuate asupra bazei de date, cum sunt:

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.

76

Page 73: Baze de Date

7.2. Securitatea bazei de date

Asigurarea securităţii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se

realizează cu ajutorul unui set de măsuri de protecţie umane, software şi hardware.

O primă astfel de măsură o poate constitui izolarea sistemului de calcul în încăperi în care accesul

persoanelor să fie permis pe bază de legitimaţii sau a altor forme de identificare.

Un alt nivel de protecţie îl poate constitui stabilirea de parole pe baza cărora să fie permis accesul

la resursele sistemului de calcul.

În timpul lucrului efectiv cu baza de date se va verifica dacă utilizatorul are dreptul de a executa

un tip de operaţie asupra anumitor date. SGBD poate ţine şi un jurnal pentru urmărirea accesului la

baza de date, pe baza căruia pot fi depistate încercările de acces neautorizat la baza de date.

Pentru cererile de intrare/ieşire transmise sistemului de operare de către SGBD sunt posibile

verificări suplimentare referitoare la utilizarea corectă a fişierelor sau a funcţiilor sistemului de

operare.

Hardware-ul poate să ofere o protecţie suplimentară, ca de exemplu transferarea datelor numai în

zona de memorie controlată de SGBD. De asemenea, datele pot fi memorate pe suportul extern într-o

formă criptată.

Î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.

77

Page 74: Baze de Date

2. Definirea şi utilizarea viziunilor. Viziunile (schemele externe) sunt partiţii logice ale bazei de

date. Ele sunt definite pentru diferiţi utilizatori în raport cu necesităţile acestora de a avea acces la

date, putând fi utilizate pentru a restricţiona accesul la date.

Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza căreia

este definită. Securitatea datelor este asigurată prin definirea tuturor drepturilor necesare unui

utilizator pentru o viziune şi revocarea drepturilor pentru obiectele iniţiale.

Această modalitate este suficientă în cazul în care asupra datelor viziunii este permisă doar

operaţia de citire. Pentru operaţia de modificare trebuiesc avute în vedere efectele laterale pe care

aceasta le poate produce asupra obiectelor iniţiale. Utilizatorului nu trebuie să i se permită să

efectueze asupra viziunii acele operaţii care pot afecta obiectele iniţiale. În caz contrar, pot să apară

erori sau inconsistenţe în baza de date.

3. Realizarea de proceduri speciale. Unele SGBD oferă facilitatea definirii unor proceduri ce vor fi păstrate la nivelul sistemului într-o formă precompilată.

În cadrul acestor proceduri vor fi specificate explicit operaţiile ce trebuie efectuate asupra datelor.

Utilizatorului i se va acorda dreptul de execuţie a acestor proceduri şi i se va interzice accesul direct

la obiectele bazei de date gestionate de procedură.

4. Criptarea datelor este operaţia de codifcare a datelor în timpul stocării sau al transportului, astfel încât descifrarea lor să poată fi făcută numai de posesorii de cod.

La nivelul SGBD această facilitate poate îmbrăca două forme:

existenţa unor rutine speciale care realizează criptarea datelor la cerere sau automat;

existenţa unor instrumente de criptare care permit utilizatorului să-şi realizeze propriile

rutine de criptare.

Procesul efectiv de criptare presupune folosirea unui sistem de cifrare, ale cărui componente sunt:

1. Algoritmul de criptare - realizează transformarea datelor din forma iniţială în forma criptată (cifrată).

2. Cheia de criptare - valoare ce constituie o intrare a algoritmului de criptare, aleasă dintr-o mulţime de chei posibile.

3. Algoritmul de decriptare - realizează transformarea datelor din forma criptată în forma iniţială.

4. Cheia de decriptare - valoare ce constituie o intrare în algoritmul de decriptare, dependentă de cheia de criptare.

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

78

Page 75: Baze de Date

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

2. Cum se poate realiza restaurarea bazei de date în cazul căderilor accidentale ale SGBD sau

SO ?

3. Cum se asigura refacerea bazei de date în cazul defectării suportului de memorie pe care este

stocata aceasta ?

4. Ce conţine jurnalul tranzacţiilor ?

5. Ce conţine jurnalul imaginilor ?

6. Ce presupune activitatea de asigurare a securităţii bazei de date ?

7. Care sunt principalele mecanisme de asigurare a securităţii datelor ?

79