Sunteți pe pagina 1din 75

1. ELEMENTE DE TEORIA BAZELOR DE DATE 1.1.

Organizarea datelor
Activitatea uman include o mulime de activiti desfurate pentru a satisface diverse necesiti, fie ele de natur material sau spiritual. Pentru desfurarea acestor activiti s-au dezvoltat ntreprinderi i organizaii speciale care, n vederea ndeplinirii scopului propus, necesit manevrarea unui volum ridicat de informaii. Au aprut i s-au dezvoltat sisteme informaionale care ocup astzi un loc important n funcionarea complexului mecanism reprezentat de societatea modern. Sisteme informaionale reprezint un ansamblu de tehnici i metode de organizare i manevrare a informaiilor specifice unui anumit domeniu de activitate (ex. circuitul informaiilor ntr-o ntreprindere, evidena populaiei, evidena crilor ntr-o bibliotec etc.), de la generarea acestora i pn la tergerea sau stocarea lor. Apariia calculatorului electronic a permis automatizarea acestor activiti conducnd la apariia sistemelor informatice. Sistemele informatice sunt sisteme de organizare, manevrare i exploatare a informaiilor (respectiv a datelor), specifice unui anumit domeniu de activitate, cu ajutorul calculatorului. Pentru a rezolva problemele legate de manevrarea informaiilor, reprezentate prin intermediul datelor, apare ca o necesitate existena unor modele i mecanisme de organizare a datelor deoarece, de modul n care sunt organizate datele depinde eficiena 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 noiunile de informaie i date. Datele sunt reprezentri 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.). Informaia reprezint sensul pe care oamenii l acord datelor (astfel c aceeai dat poate reprezenta diverse informaii, funcie de cei care o folosesc). Organizarea datelor presupune efectuarea urmtoarele activiti: definirea, structurarea, ordonarea i gruparea datelor; stabilirea legturilor ( relaiilor ) ntre date, ntre elementele unei colecii de date i ntre colecii de date; forme. Obiectivele urmrite la organizarea datelor sunt: realizarea unui acces rapid la date stocate pe diferite suporturi de memorie; 5 stocarea datelor pe un suport informaional, prelucrabil ntr-un sistem de calcul. Organizarea datelor se realizeaz pentru a permite regsirea lor automat dup anumite criterii i

spaiul de memorie intern i extern ocupat s fie ct mai mic (economie de memorie); datele s apar o singur dat n sistem (unicitatea datelor); modul de organizare a datelor s reflecte, pe ct posibil, toate legturile dintre obiectele, fenomenele, procesele pe care acestea le reprezint; schimbarea structurii datelor i a relaiilor dintre ele s se fac fr 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 proprietile 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 proprietile sale nseamn c ea se poate reprezenta prin mai multe perechi (ATRIBUT, VALOARE). De exemplu, o persoan X poate fi reprezentat prin mulimea de perechi: (NUME, IONESCU), (VRSTA, 25), (SEX, MASCULIN), (PROFESIE, INGINER). Se observ ns c mulimea atributelor NUME, VRSTA, 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 entiti numit entitate grup. Atributele mai sunt cunoscute i sub numele de cmpuri sau caracteristici. Un atribut este caracterizat de mulimea 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 situaii de atribute compuse (formate prin nlnuirea 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. Relaii ntre date


Datele folosite pentru a descrie diverse procese, fenomene sau obiecte se gsesc n legtur una cu alta. ntre datele care aparin unor tipuri de entiti pot exista dou categorii de legturi: o categorie de legturi definit de nsi apartenena datelor la o anumit entitate; o a doua categorie constituit de legturile dintre entitile de acelai tip sau de tipuri diferite.

Exemplu: Fie A mulimea datelor despre salariaii unei societi comerciale. ntre datele acestei mulimi se pot stabili relaii de tipul: - x are aceeai profesie cu y; - x este eful lui y; 6

- x este mai n vrst dect y; - x are salariul mai mare sau egal cu al persoanei y etc. Relaia binar Dac lum exemplul anterior putem spune c relaia are aceeai profesie cu asociaz fiecrui salariat din mulimea A pe toi cei care au aceeai profesie, cu condiia s fac parte tot din A. Astfel, se pune n eviden o mulime de perechi ordonate (x,y) cu proprietatea c elementelor x li se asociaz elementele y prin relaia are aceeai profesie cu. Aceasta se poate reprezenta astfel:
R = ( x, y ) A A / x, y A si " x

are aceeasi profesie cu

y"

Definiie. Fie A o colecie oarecare de date, nevid. Se numete relaie binar pe A o submulime R a produsului cartezian A x A care ndeplinete o proprietate (o legtur). Numim elemente asociate prin relaia R acele elemente x, y pentru care x, y R . Dac x, y R spunem c x este asociat lui y prin relaia R sau c x este n relaia R cu y, fapt care se mai simbolizeaz prin x R y. Proprietile relaiei binare dintre date sunt: 1. Reflexivitate. Spunem c o relaie R, definit pe o mulime de date A, este reflexiv dac pentru x R , avem x R x. Exemplu: x = x, x R . 2. Simetrie. O relaie R definit pe mulimea de date A spunem c este simetric dac pentru

( ) x, y A, xRy implica

yRx .

Exemplu: Fie A mulimea judeelor rii. Dac x este vecin cu y rezult c y este vecin cu x. 3. Asimetrie. Spunem c o relaie R definit pe o mulime de date A este antisimetric dac pentru

( ) x, y A cu proprietatea c x R y i y R x, avem x=y.


Exemplu: x y i y x implic x = y . 4. Tranzitivitate. Fie A o mulime de date. Spunem c o relaie R pe mulimea A este tranzitiv dac pentru ( ) x, y, z A cu proprietatea c x R y i y R z, atunci x R z. Exemplu: Dac produsul x intr n componena lui y i y intr n componena lui z, atunci x intr n componena lui z. Definiie. O relaie binar R, definit pe mulimea de date A se numete relaie de echivalen dac este reflexiv, simetric i tranzitiv. 7

Definiie. Fie A o colecie de date. Dac ( ) x, y A , exist relaia x R y sau y R x, spunem c relaia dintre elementele coleciei este de ordine total. Definiie. O relaie binar R, definit pe o mulime de date A, care este reflexiv, asimetric i tranzitiv se numete relaie de ordine. Definiie. Relaia binar R, definit pe o mulime de date A, care este reflexiv i tranzitiv se numete relaie 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 informaional automatizat i de tehnologiile de prelucrare a datelor folosite. Structura de date este definit ca o colecie de date ntre care s-au stabilit o serie de relaii care conduc la un anumit mecanism de selecie i identificare a componentelor. Mulimea de date asociat structurii poate fi alctuit din datele unui tip sau mai multor tipuri de entiti. Componentele unei structuri de date pot fi individualizate i identificate prin nume (identificator) sau prin poziia 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 secvenial. Accesul secvenial presupune parcurgerea tuturor componentelor structurii, aflate naintea componentei cutate, n timp ce accesul direct permite localizarea unei componente fr 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. Operaiile 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 iniial pe suportul de memorie); consultarea datelor (accesul la componentele structurii n vederea prelucrrii valorilor); actualizarea datelor (schimbarea strii structurii prin adugarea, tergerea unor 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.

componente, modificarea valorii unor elemente, modificarea relaiilor dintre elemente);

Structurile de date care au aceeai organizare i sunt supuse acelorai operaii formeaz un tip de structur de date. Un tip de structur de date este o mulime ordonat de date ntre care s-au stabilit anumite relaii i pentru realizarea operaiilor se folosete 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 acelai tip; structuri eterogene, n care componentele sunt de tipuri diferite.

Dac o structur se poate descompune n structuri de acelai tip atunci avem o structur recursiv. Dup posibilitatea de modificare a structurii, avem: structuri statice, care pe tot parcursul existenei lor au acelai numr de componente n structuri dinamice, care permit modificarea numrului de componente sau a poziiei aceeai ordine; acestora n structur, prin aplicarea operatorilor specifici strucutrii. Aceste structuri pot avea, teoretic, un numr nelimitat de componente i de aceea se mai numesc structuri cu cardinalitate infinit. Asemntor, 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 folosii structura fizic, ce se refer la modul de implementare, de reprezentare efectiv pe un pentru tratarea datelor; suport de memorie; Principalele tipuri de structuri logice de date sunt: structura punctual; structura liniar; structura arborescent; structura reea; structura relaional.

Structura punctual este reprezentat de o entitate grup izolat, care nu are legturi (relaii) cu alte entiti. Structura liniar (lista) este o structur care definete o relaie de ordine total ntre elementele unei colecii de date. Dup cum am vzut mai nainte, o relaie de ordine total este o relaie care exist ntre 9

oricare dou elemente ale unei colecii de date. Structura liniar presupune c fiecare element al structurii conine, pe lng informaiile care trebuiesc manevrate, informaiile necesare pentru a realiza o legtur (relaie) cu alt element al aceleiai structuri.

Fig. 1.1. Structuri de date liniare Acest tip de structur are urmtoarele caracteristici: are un singur element iniial i un singur element terminal; orice element care nu este iniial i nici terminal are un singur succesor imediat; primul element nu are predecesori; ultimul element nu are succesori; dac exist o relaie ntre ultimul i primul element atunci structura este inelar sau circular; relaiile stabilite ntre date sunt de tipul 1 la 1.

O structur este arborescent sau ierarhic (descendent) dac ntre elementele sale exist o relaie de ordine. Aceasta nseamn c fiecare element (cu o singur excepie) provine din alt element aflat pe un nivel ierarhic superior.

10

Fig. 1.2. Structur de date arborescent Structura de date arborescent are urmtoarele caracterisitci: elementele structurii se numesc noduri; exist un element unic, numit rdcina arborelui, care nu are un predecesor; orice nod diferit de rdcin are un predecesor imediat unic; orice nod netermical are un numr finit de succesori imediai; relaiile stabilita ntre noduri sunt de tipul 1 la m.

Se numete drum de lungime n-1 de la nodul ai1 la nodul ain succesiunea de noduri (ai1, ai2, ..., ain) n care pentru ( ) ai ,k , k n, ai ,k +1 este un succesor imediat al lui aik. Drumul de lungime maxim constituie nlimea arborelui. Un arbore n care fiecare nod are strict numai doi succesori se numete arbore binar. Structura de tip reea este o structur n care ntre elementele componente exist o relaie de preordine. n acest caz elementele sunt legate unele de altele prin legturi multiple. Caracteristicile acestui tip de structur de date sunt: o reea este un graf n care, ntre dou noduri, exist legturi bidirecionale; un nod are mai muli predecesori i el nsui poate fi predecesor pentru propriul su predecesor, caz n care apar cicluri n reea. Un ciclu este un drum n care nodul iniial este acelai cu nodul final. ntre elementele reelei se stabilesc legturi de tipul m la n. O reea n care exist doar legturi univoce ntre elemente se numete reea simpl. n caz contrar reeaua spunem c este o reea complex. ntr-o reea simpl nu exist cicluri. Exemple de reele simpl i complex sunt date n figura urmtoare.

11

Fig. 1.3. Exemple de reele de date Structura relaional a datelor consider c acestea sunt organizate la nivel logic sub form de tabele (relaii, tablouri) de date elementare, ntre care nu sunt legturi explicite. Fiecare linie dintr-un asemenea tabel se numete nregistrare i fiecare element al unei nregistrri ce corespunde unei anumte coloane se numete cmp. Legturile ntre date sunt introduse indirect prin intermediul coloanelor comune la mai multe tabele de date (vezi figura).
NUMEPRENUMEGRUPANR.

M MATRICOLPopescuIon41751245IonescuAmalia54121452Vasiles P I c cuSergiu53211385

FACULTATESPECIALIZARENR. MATRICOLP M PopescuIon1245I IonescuAmalia1452VasilescuSergiu1 385 3

Fig. 1.4. Structura relaional a datelor

1.4. Modele de date


12

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 urmtoarele elemente: structura modelului; operatorii care acioneaz asupra structurilor de date folosite; restriciile care se impun pentru meninerea corectitudinii datelor, restricii numite i reguli de integritate. Precizarea structurii modelului presupune descrierea tuturor obiectelor (entitilor) i a caracteristicilor asociate acestora. Acest lucru se realizeaz folosind urmtoarele elemente generice: cmpul; este cel mai mic element al structurii care poate fi accesat pentru prelucrare; grupul simplu sau compus; este un set format din mai multe cmpuri i/sau grupuri; nregistrarea, care este un ansamblu de grupuri i cmpuri, constituind totodat i elementul generic al structurii. Stabilirea relaiilor ntre obiecte se face prin stabilirea relaiilor care exist ntre nregistrrile structurilor folosite la definirea modelului de date respectiv. Structura unui model de date fr valori reprezint un obiect generic. O colecie de date cu valori bine precizate i care respect un model definit reprezint o realizare sau o instan a tipului de obiect precizat. Legturile dintre obiecte (entiti) poart denumirea de asociere. Legturile dintre dou entiti pot fi de trei tipuri: legturi unu la unu . Aceasta nseamn c fiecare obiect are o legtur cu un alt obiect i numai cu unul. De exemplu, relaia dintre locurile existente ntr-un cmin studenesc i studeni. Un loc poate fi ocupat de un singur student, iar un student are dreptul la un singur loc n cmin. legturi unu la muli. n acest caz un obiect poate avea legturi (relaii) cu mai multe obiecte. De exemplu, un student poate face parte dintr-o singur grup dar o grup poate avea mai muli studeni. legturi de tipul muli la muli. Acest tip de legtur presupune c fiecare obiect poate avea multiple legturi (relaii) cu alte obiecte. Spre exemplu, un produs este cumprat de mai muli clieni i un client poate achiziiona mai multe produse. Operatorii care acioneaz asupra structurilor de date constituie cel de-al doilea element al unui model de date. Aceti operatori pot fi de citire, memorare, modificare, jonciune etc. Regulile de integritate sunt restricii menite s asigure meninerea corectitudinii datelor. Ca exemple de astfel de restricii putem meniona:

13

s nu se permit tergerea valorilor atributelor unui client dac acesta nu a achitat integral factura pentru cumprarea unui produs anume; s nu se permit memorarea valorilor asociate unui produs dac nu se cunoate valoarea unui anumit atribut caracteristic, numit atribut cheie etc.

Modelele de date se mpart, n funcie de modul n care se definesc elementele amintite mai sus, n: modele ierarhice sau arborescente, modele reea, modele relaionale, modele orientate obiect etc. Modelul ierarhic Folosete tipuri de nregistrri care grupeaz toate atributele unei entiti. Pentru a realiza asocierile dintre tipuri de nregistrri acest model folosete o structur de date arborescent (o ierarhie).

Fig. 1.5. Ierarhie de date O ierarhie are un tip de nregistrare definit ca rdcin i mai multe tipuri de nregistrri subordonate, legate sub form de arbore. Fiecare nod din arbore care nu este rdcin sau nod final are un singur nod superior i unul sau mai multe noduri inferioare. Legtura de la un nod superior la unul inferior este de tipul unu la muli, iar legtura de la un nod inferior la unul superior este de tipul unu la unu. Modelul reea n acest model, datele sunt reprezentate asemntor cu modelul ierarhic, cu deosebirea c fiecare inferior poate avea mai muli superiori. Toate structurile de date, inclusiv legturile de tipul m la n sunt definite natural, fr a recurge la artificii. n cadrul acestui model ntlnim dou tipuri de structuri: -tipul de nregistrare ( care asigur atributele unei entiti); 14

-tipul de set (care asigur legturile ntre tipurile de nregistrri). Modelul relaional Modelul relaional are la baz teoria matematic a relaiilor. El folosete o singur structur de date: relaia (tabelul) care este o submulime a produsului cartezian al unor domenii (un domeniu este reprezentat de o mulime de valori ale entitilor). Modelul relaional poate fi privit ca o mulime de tabele obinute prin metoda normalizrii. Normalizarea pleac de la o mulime de atribute (cmpuri de date) i o mulime de dependene funcionale dintre atribute i conduce la o schem conceptual a modelului relaional ntr-o form normalizat n care se vor elimina anomaliile de actualizri. La cele trei modele de date prezentate mai sus se adaug modelul orientat obiect, modelul distribuit i modelul funcional. Ordinea n care au fost prezentate modelele de date este cea istoric, n ultimii ani utilizndu-se practic numai modelul relaional sau cel distribuit, datorit avantajelor fa de celelalte modele.

1.5. Baze de date


Conceptul de baz de date a aprut n 1969 cu ocazia prezentrii primului raport CODASYL n cadrul unei conferine pe probleme de limbaje de gestiune a datelor. Evoluia metodelor i tehnicilor de organizare a datelor a fost determinat de necesitatea de a avea un acces ct mai rapid i uor la un volum din ce n ce mai mare de informaii precum i de perfecionarea echipamentelor de culegere, memorare, transmitere i prelucrare a datelor. Ideea principal a organizrii datelor n baze de date se sprijin pe existena unui fiier de descriere global a datelor prin care se realizeaz independena programelor fa de date i a datelor fa de programe. Accesul oricrui utilizator la baza de date se realiza prin intermediul fiierului de descriere global a datelor. Fiierul de date coninea coleciile de date i legturile dintre ele. n esen, conceptul de baz de date poate fi definit ca fiind una sau mai multe colecii de date (Ki), aflate n interdependen, mpreun cu descrierea datelor i a relaiilor dintre ele, (B={K1, K2, ...}) O baz de date astfel definit trebuie s ndeplineasc urmtoarele condiii: s asigure o independen sporit a datelor fa de programe i invers;

15

structura bazei de date trebuie astfel conceput nct s asigure informaiile necesare i suficiente pentru a satisface cerinele informaionale i de decizie ale utilizatorului; s asigure o redundan minim i controlat a datelor; s permit accesul rapid la informaiile stocate n baz.

Arhitectura general a bazelor de date a fost standardizat internaional i cuprinde urmtoarele elemente componente: baza de date propriu-zis n care se memoreaz colecia 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 reglementrile administrative, destinate bunei funcionri a ntregului sistem; un dicionar al bazei de date (metabaza de date)), ce conine informaii despre date, structura acestora, elemente de descriere a semanticii, statistici, documentaie etc. echipamentele de calcul (hardware) utilizate (comune sau specializate); personalul implicat (categorii de utilizatori: finali sau de specialitate, analiti-programatori, gestionari, operatori). Bazele de date sunt extrem de variate n funcie de criteriile de apreciere considerate. n continuare sunt prezentate cteva criterii de clasificare: implicai: nivelul logic. Este dat de viziunea programatorului de aplicaii, care realizeaz programele de aplicaii pentru manipularea datelor i structura logic (subschema) corespunzroare descrierii datelor aplicaiei; nivelul conceptual (global). Este dat de viziunea administratorului bazei de date, care realizeaz structura conceptual (schema) corespunztoare 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 corespunzroare descrierii datelor pe suportul fizic. dup orientare: generalizate, specializate; dup modelul de date folosit: ierarhice, n reea, relaionale, 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 funcie de clasa utilizatorilor

1.6. Sisteme de gestiune a bazelor de date


16

O baz de date poate fi privit ca o colecie de date stocate pe supori de memorie extern, adresabile de ctre mai muli utilizatori i care satisface cerinele 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 urmtoarelor activiti: definirea structurii bazei de date; ncrcarea bazei de date; accesul la date (interogare, actualizare); ntreinerea bazei de date (colectarea i refolosirea spaiilor 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, reprezentnd mecanismul prin intermediul cruia acesta are acces la date. Pentru a-i putea ndeplini funciunile prevzute, unui sistem de gestiune al bazei de date modern i revin o serie de obiective de ndeplinit, cum sunt: 1. Asigurarea independenei datelor. Aceasta presupune c modificarea strategiei de memorare a datelor sau a strategiei de acces la date nu trebuie s afecteze aplicaia care prelucreaz aceste date. Independena datelor fa de aplicaie este necesar deoarece: diferite aplicaii au nevoie de viziuni diferite ale acelorai date; administratorul bazei de date trebuie s aib libertatea de a schimba structura de memorare sau strategia de acces, ca rspuns la cerine (schimbri de standarde, prioritile aplicaiilor, schimbarea unitilor fizice de memorare etc.), fr a modifica aplicaiile existente; baza de date existent, precum i programele de exploatare a ei reprezint o investiie important la care nu trebuie s se renune prea uor. Independena datelor trebuie privit din dou puncte de vedere: independena fizic i independena logic a datelor. Independena fizic a datelor implic modificarea tehnicilor fizice de memorare a datelor fr a necesita rescrierea programelor de aplicaie. Independena logic a datelor se refer la posibilitatea adugrii de noi articole de date sau extinderea structurii conceptuale (globale), fr ca aceasta s impun rescrierea programelor existente. 2. Asigurarea unei redundane minime i controlate a datelor din baza de date. Redundana se refer la numrul de apariii n baza de date a unei date. }n general, stocarea datelor n baze de date ar trebui s se fac astfel nct fiecare dat s apar o singur dat. Totui, exist cazuri n care, pentru a reduce timpul de cutare al unei date i implicit timpul de rspuns la solicitrile utilizatorilor, se accept 17

o anumit redundan a datelor. Aceast redundan trebuie controlat automat, prin program, pentru a se asigura coerena datelor din baz. 3. Asigurarea unor faciliti sporite de utilizare a datelor. Aceasta presupune: folosirea datelor de ctre mai muli utilizatori n diferite aplicaii; accesul ct mai simplu al utilizatorilor la date, fr ca acetia s fie nevoii s cunoasc structura ntregii baze de date, acest lucru rmnnd n sarcina administratorului bazei de date; existena unor limbaje performante de regsire a datelor, care permit exprimarea sub forma unei conversaii, a unor criterii de selecie a datelor i indicarea unor reguli ct mai generale pentru editarea informaiilor solicitate; utilizarea unui limbaj ct mai apropiat de limbajul natural, cu posibilitatea exploatrii bazei de date n regim conversaional, lucru care ar oferi posibilitatea exploatrii bazei de date ctre utilizatori neinformaticieni. 4. Sporirea gradului de securitate a datelor mpotriva accesului neautorizat la ele. n condiiile bazelor de date, administratorul bazei de date poate prevedea ca acesul la baza de date s se fac numai prin canalele corespunztoare, i poate, totodat, defini verificri de autorizare, realizate oricnd se ncearc accesul neautorizat la anumite date. 5. Asigurarea integritii datelor mpotriva unor tergeri intenionate sau neintenionate, 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 partajabilitii datelor. Partajabilitatea datelor trebuie neleas nu numai sub aspectul asigurrii accesului mai multor utilizatori la aceleai date, cii acela al posibilitii dezvoltrii unor aplicaii fr a se modifica structura bazei de date. i de

1.7. Funciile unui sistem de gestiune a bazelor de date


Sistemele de gestiune a bazelor de date au o multitudine de sarcini de ndeplinit. Grupnd aceste sarcini se obin activitile i apoi funciile sistemului de gestiune al bazei de date. innd seama de complexitatea sistemului de gestiune, de facilitile oferite, de limbajele utilizate i tipul bazei de date ce urmeaz a fi gestionat gruparea activitilor pe funcii poate avea un caracter relativ. n continuare sunt prezentate cteva funcii mai importante ale sistemelor de gestiune a bazelor de date, funcii cu caracter de generalitate, valabile pentru toate tipurile de sisteme de gestiune a bazelor de date. 18

1. Funcia 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 funcii se descriu multitudinea atributelor (cmpurilor) din cadrul structurii bazei de date, legturile dintre entitile bazei de date sau dintre atributele aceleiai entiti, se definesc eventualele criterii de validare a datelor, metodele de acces la date, aspectele referitoare la asigurarea integritii i confidenialitii datelor etc. 2. Funcia de manipulare a datelor este cea mai complex funcie i realizeaz urmtoarele activiti: - crearea bazei de date; - ncrcarea bazei de date; - adugarea de noi nregistrri (tupluri); - tergerea unor nregistrri; - modificarea valorilor corespunztoare unor cmpuri; - cutarea, sortarea i editarea parial sau total a unei nregistrri virtuale etc. 3. Funcia de utilizare asigur mulimea interfeelor necesare pentru comunicarea tuturor utilizatorilor cu baza de date. n cadrul realizrii acestei funcii apar mai multe categorii de utilizatori: utilizatori liberi sau conversaionali. Acetia reprezint categoriea beneficiarilor de informaii (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, realiznd proceduri complexe de exploatare a bazei de date; administratorul bazei de date, care este un utilizator special avnd un rol hotrtor n ceea ce privete funcionarea optim a ntregului ansamblu. 4. Funcia de administrare a bazei de date. Aceasta apare ca o funcie complex i este de competena administratorului bazei de date. 1.8. ntrebri de verificare a cunotinelor 2. Care este diferena ntre date i informaii ? 3. Care sunt obiectivele activitii de organizare a datelor ? 4. Ce activiti presupune organizarea datelor ? 5. Definii conceptele de entitate, atribut, valoare ? 6. Ce se nelege prin structur de date ? 7. De cte feluri pot fi structurile de date ? 8. Ce fel de operaii se pot efectua asupra unei structuri de date ? 9. Caracterizai structura de date arborescent ? 19

10. Caracterizai structura de date relaional ? 11. Care sunt componentele unui model de date ? 12. De cte tipuri pot fi legturile ntre entiti ? 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 funciile 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 cerinelor informaionale solicitate de acest sistem; proiectarea structurii bazei de date (schema conceptual, extern i intern); ncrcarea datelor n baza de date; exploatarea i ntreinerea bazei de date.

Coninutul acestor etape, respectiv activitile implicate i modul lor de desfurare depind, n general, de tipul bazei de date precum i de domeniul de activitate pentru care se construiete baza de 20

date. Exist ns o serie de aspecte cu caracter general care nu sunt influenate 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 urmnd a fi tratate atunci cnd vor fi tratate diferite tipuri de baze de date. Realizarea unei baze de date presupune i folosirea unor metode i tehnici de analiz (tehnica normalizrii relaiilor, 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 cerinelor sale informaionale


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 urmtoarele etape: analiza componentelor sistemului i a legturilor (asocierilor) dintre acestea, activitate cunoscut i sub numele de analiz static sau structural, n urma cruia se obine modelul structural (static) al sistemului; analiza strilor sistemului i a tranziiilor posibile ntre aceste stri, n raport de anumite evenimente. Aceasta este aa numita analiz temporal (comportamental), prin care se obine modelul dinamic (sau temporal) al sistemului; analiza cerinelor informaionale, respectiv a transformrilor de date (a tranzaciilor) din cadrul sistemului prin care sunt satisfcute cerinele informaionale asociate sistemului. n urma acestei activiti se obine modelul funcional al sistemului informatic analizat; integrarea modelelor sistemului informatic (structural, dinamic i funcional) n scopul corelrii i completrii lor. 2.2.1. Analiza structural a sistemului informatic. Tehnica diagramelor entitate-asociere Analiza structural a sistemului informatic are ca obiectiv evidenierea componentelor (obiectelor) din cadrul sistemului, pentru care urmeaz s se colecteze i s se memoreze date n cadrul bazei de date, precum i evidenierea legturilor dintre aceste componente.

21

Exist astzi 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 urmtorilor pai: - identificarea componentelor (entitilor) din cadrul sistemului informatic analizat; - identificarea asocierilor dintre entiti i calificarea acestora; - identificarea atributelor aferente entitilor i asocierilor dintre entiti; - stabilirea atributelor de identificare a entitilor. Identificarea componentelor sistemului informatic Componentele sistemului informatic sunt entiti (obiecte) care au anumite proprieti i care fac schimb de informaii cu alte entiti ale sistemului. Ele sunt reprezentate n cadrul diagramei entitateasociere prin blocuri dreptunghiulare. Considernd activitatea dintr-o instituie de nvmnt superior se pot identifica urmtoarele entiti: - cadre didactice - studeni - personal didactic auxiliar - personal administrativ - serviciul administrativ - serviciul personal - serviciul contabilitate - serviciul social (CADRE_DIDACTICE); (STUDENI); (PERS.DID.AUX.); (PERS.ADMIN.); (SERV.ADMIN.); (SERV.PERS.); (SERV.CONTAB.); (SERV.SOCIAL).

Fiecare entitate poate prezenta n cadrul sistemului mai multe instane (realizri). n urma acestei etape se elaboreaz o prim form a diagramei entitate-asociere, form prezentat n figura urmtoare.

Fig. 2.1. Reprezentarea entitilor n diagrama entitate-asociere

22

Identificarea asocierilor dintre entiti i calificarea acestora Componentele unui sistem nu sunt dect arareori izolate, ntre acestea stabilindu-se legturi (asocieri). Spre exemplu, ntre entitile STUDENI i SERV.SOCIAL exist o asociere, n sensul c serviciul social pune la dispoziia studenilor locuri de cazare n cmin. Legturile dintre entiti sunt reprezentate prin arce neorientate, care fac legtura ntre nodurile ce reprezint entitile participante la asociere. Semnificaia legturii se exprim printr-un nume acordat legturii i se reprezint cu ajutorul unui nod etichet n form de romb, plasat ca nod intermediar ntre entiti. Tipul (forma) legturii se exprim cu ajutorul cardinalitii. Cardinalitatea unei legturi reprezint numrul minim i numrul maxim de realizri (instane) de entitate care pot fi asociate cu o realizare a partenerului de asociere. Cardinalitatea se exprim prin perechi de numere, cte o pereche pentru fiecare entitate din cadrul legturii.

Fig. 2.2. Reprezentarea unei legturi (asocieri) ntre dou entiti cu menionarea semnificaiei i a cardinalitii n figura de mai sus este prezentat modul de reprezentare al unei legturi cu menionarea semnificaiei legturii i a cardinalitii acesteia. Cardinalitatea legturii de mai sus se poate interpreta astfel: Serviciul social este obligat s asigure, n limita locurilor disponibile n cmine, locuri de cazare pentru toi studenii care solicit acest lucru chiar dac este vorba doar de un singur student; Pot solicita locuri de cazare n cmine un numr de studeni pn la numrul maxim de studeni care locuiesc n alte localiti, fiind posibil i situaia n care nici un student nu solicit cazare n cmin. Legturile (asocierile) ntre entiti pot fi de mai multe tipuri i anume: 1. Dup cardinalitatea asocierii putem avea dou situaii, funcie de gradul asocierii, respectiv obligativitatea participrii entitilor la asociere. Dup gradul asocierii (valorile maxime ale cardinaliti) avem: 23

asocieri de tipul unu la unu. Aceasta nseamn c cel puin o realizare a fiecrei entiti trebuie s participe la asociere. asocieri de tipul unu la muli. n acest caz o realizare a unei entiti are legturi cu mai multe realizri ale celeilalte entiti care particip la asociere. asocieri de tipul muli la muli, caz n care mai multe realizri ale unei entiti participante la legtur se asociez cu mai multe realizri ale celeilalte entiti.

Dup obligativitatea participrii entitilor la asociere (minimele cardinalitii) avem: asocieri pariale; la care entitile nu sunt obligate s participe (deci pot avea valoarea minim a cardinalitii zero); asocieri totale sau complete; cnd cel puin o realizare a fiecrei entiti trebuie s participe la sociere. 2. Dup numrul de entiti distincte care particip la asociere avem: asocieri binare; care se realizeaz ntre dou entiti distincte; asocieri recursive; asocieri ale entitilor cu ele nsele; asocieri complexe; asocieri realizate ntre mai mult de dou entiti distincte.

3. Dup semnificaia lor asocierile se pot clasifica ntr-o multitudine de categorii datorit semnificaiilor extrem de variate n cadrul unui anumit sistem informatic. n cadrul analizei structurale este necesar s fie identificate i analizate asocierile dintre entitile aflate pe nivele de abstractizare diferite, mai precis asocierile de tipul este un i este coninut n. Asocierile de tipul este un Entitile 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 entitilor. n acest sens exist entiti generice (clase), obinute printr-un proces de generalizare a entitilor cu anumite caracteristici comune, numite subclase. De exemplu, membrii unei universiti reprezint o entitate clas, care genereaz entitile STUDENI i ANGAJAI, ultima genernd, la rndul ei, entitile CADRE DIDACTICE, PERS.DID.AUXILIAR i PERS.ADMINISTRATIV. Asocierea de tip este un se prezint ntotdeauna ca o asociere parial de tip unu la unu. Asocierile de tipul este coninut n Asocierile de tipul este coninut n exprim un proces de agregare, de grupare a mai multor entiti ntr-o entitate de nivel superior. Spre deosebire de tipul este un, asocierea este coninut n este 24

calificat, dup cardinalitate drept asociere de tip unu la muli sau muli la muli, total sau parial. Identificarea atributelor aferente entitilor i asocierilor dintre entiti Atributele exprim caracteristici, proprieti ale componentelor sistemului informatic analizat sau ale asocierilor (legturilor) 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 funcie 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 puin dou alte atribute. Valoarea sa este reprezentat de valorile atributelor componente. Ex.:

2. Atribut calculat (dedus). Acesta reprezint un atribut a crui 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 aceeai 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 entitii creia i aparine. 25

Atributele de identificare au un rol aparte n organizarea i manipularea informaiilor din baza de date. Stabilirea atributelor de identificare pentru entitile din cadrul sistemului informatic analizat necesit examinarea mai nti a capacitii fiecrui atribut de a se constitui drept atribut de identificare (cheie). Un atribut poate fi atribut de identificare dac ndeplinete o serie de cerine i anume: ofer o identificare unic a realizrilor (instanelor) de entitate; posed o semnificaie clar; este uor de utilizat; este scurt.

Pentru o aceeai entitate pot exista mai multe atribute care pot servi drept atribute de identificare, adic pot exista mai multe chei candidate. Selectarea unuia dintre candidaii cheie drept atribut de identificare a entitii (cheie) se realizeaz astfel: 1. Se determin atributele care potenial pot constitui atribute de identificare a entitii, deci care respect cerinele menionate anterior i care poart numele de candidai 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 entitii. 3. Dac exist mai muli candidai cheie, se selecteaz unul, cu ajutorul unor euristici, precum: - se prefer atributele ale cror valori sunt mai puin volatile; - se prefer atributele ale cror 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 obine modelul dinamic al sistemului analizat. Construirea modelului dinamic presupune urmtoarele etape: identificarea strilor n care se pot afla componentele sistemului; identificarea evenimentelor care determin trecerea unei componente dintr-o stare n alta; stabilirea succesiunii (fluxului) de evenimente i construirea unei diagrame care s reflecte tranziiile de stare pentru componentele sistemului (diagram de flux a evenimentelor). 26

La realizare diagramei de flux a evenimentelor este necesar s se in cont de restriciile dinamice ale sistemului care servesc la identificarea tranziiilor admisibile ntre dou stri.

Fig. 2.3. Strile unei resurse de producie (utilaj, secie etc.) i tranziiile ntre aceste stri n figura de mai sus sunt prezentate strile posibile ale unei resurse de producie generice. Particularizarea acestui model pentru un depozit de materii prime este prezentat n figura urmtoare.

Fig. 2.4. Modelul dinamic al unui depozit de materii prime privit ca resurs de producie 2.2.3. Analiza cerinelor informaionale (analiza funcional a sistemului)

Analiza cerinelor informaionale are drept scop determinarea transformrilor de date care se produc n cadrul sistemului informatic analizat, n scopul satisfacerii cerinelor informaionale aferente acestuia. Transformrile de date (tranzaciile) se vor reprezenta sub forme unei diagrame de flux a prelucrrilor (modelul funcional), n care nodurile reflect procesele de prelucrare informaional, iar arcele reflect fluxurile informaionale. 27

n cadrul analizei funcionale accentul se deplaseaz de la realitatea analizat ctre cerinele informaionale ale utilizatorilor, cerine a cror satisfacere constituie obiectivul realizrii bazei de date. Construirea modelului funcional presupune parcurgerea urmtoarelor etape: identificarea datelor de intrare i a datelor de ieire din sistem; construirea diagramelor de flux, prin care sunt reflectate legturile procedurale dintre intrri i ieiri; identificarea restriciilor; precizarea criteriilor de optimizare. n figura urmtoare sunt prezentate dou modele funcionale pariale, primul se refer la cutarea preului unui articol dintr-un nomenclator de articole, iar al doilea la tranzaciile (transformrile de date) care se fac pentru a opera o modificare ntr-un cont bancar al unui client. Fig. 2.5. Modele funcionale pariale

2.2.4. Integrarea modelelor sistemului informatic analizat Analiza sistemului informatic se finalizeaz prin integrarea modelelor structural, dinamic i a celui funcional. Modelul structural i cel dinamic sunt obinute prin investigarea sistemului real a proprietilor intrinseci, statice i dinamice ale componentelor acestui sistem, proprieti care sunt independente de aplicaiile care opereaz asupra lor. Modelul funcional este rezultatul analizei cerinelor informaionale ale utilizatorilor, mai precis a tranzaciilor (aplicaiilor) prin care pot fi satisfcute aceste cerine.

28

Perspectiva diferit din care este realizat analiza explic de ce rezultatele obinute pot s difere fiind necesar o coordonare, deci o integrare a lor. n cadrul etapei de integrare a modelelor sistemului se stabilete n ce msur modelul structural i cel dinamic satisfac necesitile diferitelor aplicaii, verificndu-se completitudinea (existena elementelor informaionale solicitate) i consistena lor (n ce msur componentele modelelor sunt necesare i suficiente n raport cu procesele de prelucrare). Se verific dac relaiile dintre componentele sistemului sunt stabilite n mod corespunztor, pentru a face posibil regsirea informaiilor din mai multe entiti. Se determin, de asemenea, dac legturile dintre entiti asigur coerena informaiilor, posibilitatea efecturii de actualizri concomitente asupra datelor redundante. Se urmrete ca toate elementele informaionale participante la diferitele tranzacii s fie asignate, ca atribute ale diferitelor entiti. Pe baza acestei analize integrate se efectueaz adugrile i/sau corelrile necesare ntre modelele sistemului. n final se ajunge ca modelul structural i cel dinamic s nu mai fie complet independente de aplicaii, iar modelul funcional s nu mai fie orientat exclusiv pe aplicaii.

2.3. Proiectarea structurii bazei de date


Modelele obinute n urma analizei sistemului informaional sunt modele ale datelor despre sistem. O caracteristic esenial a acestor modele (denumite i modele conceptuale sau semantice) este faptul c sunt independente de instrumentul, respectiv SGBD-ul prin intermediul cruia devin operaionale. 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 influena negativ activitatea de analiz i modelare, prin restricii impuse de acesta, care pot ncuraja sau descuraja anumite reprezentri; fixnd ca punct de plecare facilitile unui SGBD, utilizatorul neinformatician care nu stpnete acest SGBD nu i poate exprima cerinele n deplin cunotin de cauz. Trecerea la proiectarea structurii bazei de date impune luarea n considerare a SGBD-ului cu ajutorul cruia va fi implementat i exploatat baza de date. Acesta deoarece baza de date reprezint un model al datelor exprimat cu ajutorul conceptelor specifice unui anumit SGBD, ceea ce face ca proiectarea structurii bazei de date s reprezinte transpunerea modelelor conceptuale n termenii unui model al datelor suportat de un anumit tip de SGBD (model ierarhic, reea, relaional, orientat obiect etc.). 29

Etapa de proiectare a structurii bazei de date const n urmtoarele activiti: 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 activiti sunt puternic influenate 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 cnd 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 urmtoarelor activiti: 1. Stabilirea cerinelor utilizatorilor, sub aspectul: tipurilor de aplicaii dorite; timpului de rspuns; confidenialitii datelor; securitii datelor; uurinei de utilizare i altele. 2. Stabilirea cerinelor de ordin tehnic privind realizarea bazei de date, cum sunt: portabilitatea SGBD-ului, adic posibilitatea folosirii SGBD-ului pe diferite sisteme de calcul; portabilitatea coleciilor de date i a programelor. Aceasta nseamn c datele pregtite cu ajutorul unui calculator s poat fi transferate direct pe alt tip de calculator, mpreun cu programele aferente, fr alte operaii auxiliare; facilitile de ncrcare, exploatare i ntreinere a bazei de date care trebuiesc asigurate (modalitile de descriere a datelor, tehnicile de organizare i regsire a datelor etc.) i altele. 3. Stabilirea cerinelor de ordin economic, privind: 30

ncadrarea n bugetul alocat pentru realizarea bazei de date; timpul necesar pentru pregtire utilizatorilor i trecerea la exploatarea curent a bazei de date. 4. Ierarhizarea cerinelor de la punctele anterioare, n funcie de importana (prioritatea) acordat fiecrei cerine n parte. 5. Analiza comparativ a SGBD-urilor disponibile i/sau posibil de achiziionat, n funcie de caracteristicile pe care le prezint aceste SGBD-uri. 6. Stabilirea corespondenei ntre cerinele formulate la punctele 1-3 i caracteristicile diferitelor SGBD-uri analizate, pentru a determina msura n care diferitele SGBD-uri analizate permit satisfacerea cerinelor 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 urmtoarele activiti: stabilirea coleciilor de date i definirea detaliat a coninutului acestora; determinarea legturilor dintre coleciile de date i a modului de reprezentare a acestora n cadrul schemei conceptuale; testarea schemei obinute i revizuirea acesteia, dac este cazul; descrierea schemei conceptuale n limbajul de descriere a datelor de care dispune SGBD-ul i ncrcarea acestei descrieri n baza de date. La realizarea acestor activiti sunt utilizate, n principal, modelul structural i cel dinamic al sistemului analizat. Stabilirea coleciilor de date i a coninutului acestora La stabilirea coleciilor de date (a componentelor schemei conceptuale) se pleac de la entitile identificate n etapa de analiz a sistemului. Fiecrei entiti i corespunde, de obicei, o colecie de date n cadrul schemei conceptuale. n aceste colecii vor figura atributele specifice entitilor plus eventual o serie de atribute pentru exprimarea legturilor cu celelalte componente ale sistemului real, atribute cunoscute sub numele de chei externe. Deoarece nu ntotdeauna exist o coresponden strict ntre entitile din modele semantice i coleciile de date din schema conceptual a bazei de date i din considerente de ameliorare a lucrului pe

31

aceste colecii de date se poate decide <spargerea> unei entiti n dou sau mai multe colecii de date. Acest lucru duce la o cretere a flexibilitii de operare cu coleciile de date respective. Spargerea unei entiti n dou sau mai multe colecii de date se realizeaz innd seama de cerinele informaionale ale sistemului i de durata de existen a datelor n cadrul sistemului. Astfel, datele care sunt solicitate mai des de ctre utilizatori, cele care se modific la intervale reduse de timp sau cele care, dei nu se modific prea des, sunt solicitate frecvent de ctre programe pentru a genera alte date (prin calcul sau n alt mod), pot constitui colecii separate de date pentru a reduce timpul necesar regsirii informaiilor cutate. De exemplu, s considerm entitatea UTILAJE aparinnd unui model al unei uniti de producie. Un utilaj este caracterizat de urmtoarele: denumire, tip, numr de inventar, valoare de achiziionare, data achiziiei, durata normat de funcionare, totalul orelor de funcionare, datele reparaiilor curente planificate etc. Dar nu toate aceste informaii prezint importan pentru utilizatori la un moment dat. Acetia pot fi interesai, de exemplu, de caracteristicile generale ale utilajului sau de caracteristicile legate de funcionarea sau ntreinerea utilajului. Din acest motiv, n cadrul schemei conceptuale a bazei de date pot apare dou sau mai multe colecii de date referitoare la utilajele de producie i anume: un nomenclator de utilaje, o colecie de date referitoare la funcionarea utilajelor, o colecie privind reparaiile efectuate sau planificate. Un alt motiv pentru care apare necesar descompunerea unei colecii de date n dou sau mai multe colecii deriv din legturile care apar ntre atributele unei entiti. Aceste legturi conduc la dependene ntre date datorit crora, la momentul exploatrii bazei de date pot apare o serie de disfuncionaliti, aa numitele anomalii de actualizare. Se impune deci reducerea la minimum a dependenelor (condiionrilor) dintre atributele unei colecii de date, lucru realizat, de obicei prin descompunerea coleciei n dou sau mai multe colecii de date cu un numr mai mic de atribute. Cu toate acestea, mbuntirea performanelor n manipularea entitilor nu presupune obligatoriu mrirea numrului coleciilor de date folosite n cadrul schemei conceptuale. Aceasta deoarece nu se poate admite o cretere nelimitat a numrului de colecii de date, lucru care determin creterea dificultilor de localizare i accesare a datelor. Legturile ntre un numr mare de colecii de date impune i creterea redundanei datelor n cadrul bazei de date i deci o utilizare ineficient a suportului de memorare. Rezultatele obinute prin prelucrri costisitoare efectuate asupra datelor din baza de date pot fi memorate folosind colecii de date special introduse, astfel nct aceste rezultate s nu fie recalculate ori de cte ori sunt solicitate de utilizatori. Este vorba, bineneles de informaii solicitate frecvent de ctre utilizatori. Prin memorarea acestor rezultate crete redundana datelor, dar se evit efectuarea repetat a unor calcule complicate. Pentru scurtarea cilor de acces la date se mai admite un tip de redundan, i anume cea care apare datorit includerii unor atribute, simultan n mai multe colecii ale bazei de date.

32

n continuare este prezentat un exemplu referitor la drepturile profesorilor care lucreaz ntr-un liceu. Se pot forma dou colecii de date, una cu informaiile privind: numele angajatului; salariul de baz; vechimea; numrul de ore suplimentare; numrul de ore de dirigenie etc. informaii care au un grad ridicat de stabilitate, i alta cu informaii privind: numele angajatului; salariul de baz; sporul de vechime; numrul de zile lucrate; numrul zilelor de concediu medical i de odihn; numrul de ore suplinite; suma pentru orele suplinite; restane de plat; suma dedus pentru pensie suplimentar i omaj; impozitul pe salariu; chirii; alte reineri; avans; restul de plat la lichidare; informaii care trebuiesc adugate n baza de date lunar, fie din exterior, fie prin calculul acestora prin program. Determinarea legturilor dintre coleciile de date i a modului de reprezentare a acestora Aceasta se realizeaz, n principiu, pe baza legturilor dintre entitile identificate n cadrul etapei de analiz a sistemului i a cerinelor informaionale. Este necesar s se determine, de asemenea i legturile dintre coleciile care nu au un corespondent direct n entitile care compun sistemul, dar care la rndul lor se afl n asociere, unele cu altele. Modul de reprezentare a legturilor dintre coleciile de date depinde de modelul datelor suportatde SGBD. Astfel, modelul ierarhic i cel reea utilizeaz pointeri (adrese de legtur) pentru nlnuirea datelor n cadrul diferitelor colecii. 33

Modelul relaional reprezint legturile dintre coleciile de date (relaii) cu ajutorul cheilor externe sau cu ajutorul unor coleci de date distincte. Aceast reprezentare uniform a datelor i a asocierilor ntre date prin intermediul relaiilor constituie o caracteristic a modelului relaional, care confer acestuia o mare simplitate i flexibilitate.

Testarea schemei conceptuale Testarea schemei conceptuale presupune verificarea completitudinii i consistenei schemei conceptuale, adic determinarea gradului n care schema conine elementele informaionale necesare satisfacerii cerinelor informaionale ale diferiilor utilizatori i msura n care legturile stabilite ntre aceste elemente informaionale reflect raporturile naturale dintre componentele sistemului real. De asemenea, prin testarea schemei conceptuale trebuie s se verifice dac redundana 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 cerinelor informaionale. Descrierea schemei conceptuale n limbajul de descriere a datelor i ncrcarea sa 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 aplicaie opereaz asupra schemei conceptuale prin intermediul schemei externe, avnd acces doar la acele elemente care sunt incluse n schema extern. 34 n baza de

Folosirea vederilor reprezint mecanismul prin care sunt satisfcute cererile de informaii ale utilizatorilor (deoarece un utilizator nu este interesat de toate informaiile stocate n baza de date) asigurnd totodat i protecia datelor contra accesului neautorizat la date (folosind vederile se limiteaz accesul fiecrui 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 folosete diferite structuri de date: liniar, arborescent, reea, relaional n timp ce memorarea datelor pe suport fizic se poate face numai sub forma unei structuri linare. Din aceast cauz, la proiectarea schemei interne 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 puin de sistemul de operare gazd, ceea ce le ofer o portabilitate sporit, comparativ cu SGBD-urile din prima categorie. a bazei de date se pune problema modului n care s fie liniarizat schema

2.4. ncrcarea datelor n baza de date


Aceasta este etapa n care se realizeaz popularea masiv cu date a bazei de date. Dei coninutul acestei etape este relativ simplu, fr dificultatea i creativitatea reclamate de activitile de analiz i proiectare, ncrcarea datelor n baza de date reprezint totui o activitate dificil de realizat datorit volumului mare de date care se transfer n baza de date de la diferite surse de date.

35

Fig. 2.6. Fazele ncrcrii 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, chitane etc.); colecii 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 ncrcrii bazei de date, s se constituie colecii temporare de date (fiiere). n situaia n care datele se preiau din documente primare este necesar utilizarea unor colecii temporare pentru a se deplasa activitatea de validare a datelor ct mai devreme n procesul de ncrcare a datelor n baza de date. Programele de ncrcare a bazei de date, scrise n limbajul de manipulare a datelor de care dispune SGBD-ul trebuie s conin ct mai puine validri deoarece aceste validri ncetinesc mult execuia programelor i determin apariia unor puncte albe n baza de date, de exemplu, legturi neconstituite datorit inexistenei datelor corespunztoare. Pe de alt parte, n situaia n care datele se preiau din colecii gestionate prin alte instrumente informatice, este necesar utilizarea coleciilor temporare pentru a se putea adapta ct mai bine structura acestor colecii la modul de organizare a datelor n baza de date. Programele de ncrcare vor fi n acest caz mai simple i mai robuste, asigurnd un transfer mai rapid al datelor n baza de date.

2.5. Exploatarea i ntreinerea bazei de date


Exploatarea bazelor de date de ctre diferii utilizatori finali are ca scop satisfacerea cerinelor informaionale ale acestora. SGBD-urile sprijin utilizatorii finali n exploatrea bazelor de date oferind o serie de mecanisme i instrumente pentru descrierea cerinelor de date, cum ar fi limbaje de manipulare a datelor etc. ntreinerea 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 activiti necesare meninerii funcionalitii bazei de date. ntreinerea bazei de date este realizat n principal de ctre administratorul acesteia.

2.6. ntrebri pentru verificarea cunotinelor


36

1. Care sunt etapele proiectrii unei baze de date ? 2. Care este obiectivul analizei statice a sistemului informaional existent ? 3. Explicai tehnica diagramelor entitate-asociere. 4. Definii cardinalitatea unei legturi. 5. Cum se clasific atributele unei antiti ? 6. Prin ce se caracterizeaz atributul cheie ? 7. Care este obiectivul analizei dinamice ? 8. Care este obiectivul analizei funcionale ? 9. Care sunt etapele proiectrii structurii bazei de date ? 10. Care sunt activitile desfurate pentru alegerea unui SGBD ? 11. Ce activiti 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 ncrcarea bazei de date ? 14. Care este scopul activitii de ntreinere a bazei de date ?

37

3. BAZE DE DATE RELAIONALE


Ideea bazelor de date relaionale a fost lansat pentru prima dat de ctre 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 crora este necesar s existe i informaii de legtur, pentru a se asigura legturile ntre tabele. Bazele modelului de date relaional au fost puse de ctre Codd E.F., n 1970 care are meritul de a fi articulat i dezvoltat ideile cu privire la utilizarea teoriei apartenenei la ansambluri sub forma unui model coerent de structurare a datelor - modelul relaional.

3.1. Modelul relaional al datelor


Componentele modelului relaional sunt: 1. Structura relaional a datelor. Aceasta nseamn c, n bazele de date relaionale, datele sunt organizate sub forma unor tablouri bidimensionale (tabele) de date, numite relaii. Asocierile dintre relaii se reprezint explicit prin atribute de legtur. Aceste atribute figureaz ntr-una din relaiile implicate n asociere (de regul, n cazul legturilor de tip unu la muli) sau sunt plasate ntr-o relaie distinct, construit special pentru exprimarea legturilor ntre relaii (n cazul legturilor de tip muli la muli). O baz de date relaional (BDR) reprezint un ansamblu de relaii, prin care se reprezint att datele ct i legturile dintre date. 2. Operatorii modelului relaional. Acetia definesc operaiile care se pot executa asupra relaiilor, n scopul realizrii funciilor de prelucrare asupra bazei de date, respectiv consultarea, inserarea, modificarea i tergerea datelor. 3. Restriciile de integritate ale modelului relaional. Permit definirea strilor coerente ale bazei de date. n comparaie cu modelele ierarhice i n reea, modelul relaional prezint o serie de avantaje, precum: Asigurarea unui grad sporit de independen a programelor de aplicaie fa de modul de reprezentare intern a datelor i metodele de acces la date. n precizarea prelucrrilor asupra datelor, programele de aplicaie nu fac apel la pointeri, fiiere inverse sau alte elemente ale schemei interne a bazei de date. n ceea ce privete independena logic, aceasta nu este complet rezolvat nici cu ajutorul 38

modelului relaional. O deficien a modelului relaional este aceea c nu permite modelarea comportamentului dinamic al datelor, ceea ce face ca o mare parte din semantica aplicaiilor s fie codificat n programe i nu n schema conceptual a bazei de date. Furnizarea unor metode i tehnici eficiente de control a coerenei redundanei datelor, cu o bun fundamentare teoretic. Modificrile pe care le sufer n timp datele ridic probleme serioase la ntreinerea bazei de date, n ceea ce privete controlul actualizrilor, reflectarea modificrilor din structura mediului economic real n structura datelor etc. Modelul relaional, prin tehnica normalizrii relaiilor permite definirea unei structuri conceptuale optime a datelor, prin care se minimizeaz riscurile de eroare la actualizare, reducndu-se redundana datelor. Oferirea unor faciliti multiple de definire i manipulare a datelor. n primul rnd, modelul relaional ofer posibilitatea utilizrii unor limbaje procedurale, bazate pe algebra relaional, precum i a unor limbaje neprocedurale avnd la baz calculul relaional. Limbajele neprocedurale (declarative) contribuie la mbuntirea semnificativ a comunicrii dintre sistem i utilizatorii neinformaticieni. n al doilea rnd, manipularea datelor se realizeaz la nivel de ansamblu (relaie), fiind posibil utilizarea paralelismului n prelucrarea datelor. Ameliorarea integritii i confidenialitii datelor. Modelul relaional realizeaz acest lucru prin mecanisme flexibile i eficace de specificare i utilizare a restriciilor de integritate i a relaiilor virtuale.

3.2. Structura relaional a datelor


Pentru a defini structura relaional a datelor trebuie s definim noiunile de: domeniu, relaie, atribut i schem a unei relaii. 3.2.1. Domeniu Domeniul reprezint un ansamblu de valori, caracterizat printr-un nume. Un domeniu se poate defini explicit, prin enumerarea tuturor valorilor aparinnd acestuia sau implicit, prin precizarea proprietilor pe care le au valorile domeniului respectiv. 39

Spre exemplu s consider urmtoarele domenii D1, D2, D3, definite astfel: D1 : {F,M} D2 : { x | x N , x [ 0,100] } 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 aparinnd domeniului Di. De exemplu, tuplurile <Maria, F, 45>, <Vasile, M, 24> aparin produsului cartezian: D3xD1xD2.

3.2.2. Relaie Relaia reprezint un subansamblu al produsului cartezian al mai multor domenii, subansamblu caracterizat printr-un nume i care conine doar tupluri cu semnificaie. Considernd, de exemplu c pentru produsul cartezian definit mai sus se cunosc doar dou persoane, definim relaia R prin tuplurile care descriu aceste persoane: R : {<Maria, F, 20>, <Vasile, M, 22>} ntr-o relaie, tuplurile trebuie s fie distincte ( nu se admit duplicri ale tuplurilor ). O reprezentare comod a relaiei este tabelul bidimensional (tabela de date), n care liniile reprezint tuplurile, iar coloanele corespund domeniilor (vezi figura). R: D3 Maria Vasile D1 F M D2 20 22

n prezentarea conceptului de relaie se poate recurge la analogii cu alte concepte, extrem de bine cunoscute n domeniul prelucrrii automate a datelor, precum este conceptul de fiier. Relaia poate avea semnificaia unui fiier, tuplul poate fi considerat drept o nregistrare, iar valorile din cadrul tuplului pot fi interpretate drept valori ale cmpurilor nregistrrii. 40

n cadrul modelului relaional nu intereseaz dect relaiile finite, chiar dac la construirea relaiilor se admit domenii infinite. Numrul tuplurilor dintr-o relaie reprezint cardinalul relaiei, n timp ce numrul valorilor dintr-un tuplu definete gradul relaiei.

3.2.3. Atribut Atributul reprezint coloana unei tabele de date, caracterizat printr-un nume. Numele coloanei (atributului) exprim de obicei semnificaia valorilor din cadrul coloanei respective. Atributele se folosesc pentru a conferi flexibilitate datelor. Pentru a nelege aceast problem vom considera urmtorul exemplu. S presupunem c pentru o persoan dispunem de urmtoarele date: nume, sex, vrst i numele soului/soiei. O posibilitate de organizare a acestor date este reprezentat de relaia din figura urmtoare. PERS: D3 Maria Vasile D1 F M D2 30 32 D3 Vasile Maria

Relaia PERS reprezint un subansamblu al produsului cartezian: D3 x D1 x D2 x D3. Semnificaia valorilor din cadrul unui tuplu se stabilete n acest caz nu numai pe baza domeniului de care aparin valorile, ci i n funcie de poziia ocupat n cadrul tuplului. Dependena fa de ordine a datelor nseamn o reducere a flexibilitii organizrii 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 diferenia coloanele care conin valori ale aceluiai domeniu i a elimina astfel dependena de poziie n cadrul tabelei se asociaz fiecrei coloane un nume distinct, lucru care a dus la apariia noiunii de atribut. Prin folosirea atributelor, relaia PERS poate fi prezentat ntr-unul din modurile menionate mai jos.

PERS: Nume (D3)

Sex (D1)

Vrsta (D2)

Sot(D3)

PERS: Nume(D3) 41

Sot(D3)

Sex (D1)

Vrsta (D2)

Mari a Vasi le

F M

30 32

Vas ile Ma ria

Maria Vasile

Vasil e Mari a

F M

30 32

3.2.4. Schema unei relaii Prin schema unei relaii se nelege numele relaiei, urmat de lista atributelor, pentru fiecare atribut precizndu-se domeniul asociat. Astfel, pentru o relaie R, cu atributele A1, A2, ..., An i domeniile D1, D2, ..., Dm, schema relaiei 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 relaii se mai numete i intensia relaiei, ca expresie a proprietilor comune i invariante ale tuplurilor care compun relaia. Spre deosebire de intensie, extensia unei relaii reprezint ansamblul tuplurilor care compun la un moment dat relaia, ansamblu care este variabil n timp. De obicei, extensia unei relaii este stocat fizic n spaiul asociat bazei de date, caz n care relaia poart numele de relaie de baz. Exist ns i situaii n care extensia nu este memorat n baza de date. Este cazul aa-numitelor relaii virtuale, cunoscute i sub numele de relaii derivate sau viziuni. Relaia virtual nu este definit explicit ca relaie de baz, prin ansamblul tuplurilor componente, ci implicit, pe baza altor relaii, prin intermediul unei expresii relaionale. Stabilirea efectiv a tuplurilor care compun relaia virtual se realizeaz prin evaluarea expresiei, ori de cte ori utilizatorul invoc aceast relaie. 42

3.3. Operatorii modelului relaional


Modelul de date relaional ofer dou colecii de operatori pentru operaii cu relaii i anume: - algebra relaional; - calculul relaional. 3.3.1. Algebra relaional i extensiile sale Algebra relaional (AR) se poate defini ca o colecie de operaii pe relaii, fiecare operaie avnd drept operanzi una sau mai multe relaii i producnd ca rezultat o alt relaie. Operaiile algebrei relaionale se pot mpri n: operaii de baz, precum: reuniunea, diferena, produsul cartezian etc. operaii derivate, ca: intersecia, diviziunea etc.

Algebra relaional standard, definit de Codd, este constituit din 6 operaii de baz: reuniunea, diferena, produsul cartezian, proiecia, selecia i jonciunea precum i din dou operaii derivate: intersecia i diviziunea. Ulterior, la operaiile AR standard au fost adugate i alte operaii, aa numitele operaii adiionale sau extensii ale AR standard, precum: complementarea unei relaii, splitarea (spargerea) unei relaii, nchiderea tranzitiv etc. n general, operaiile AR pot fi grupate n: operaii tradiionale pe mulimi (reuniunea, intersecia, diferena, produsul cartezian); operaii relaionale speciale (selecia, proiecia, jonciunea etc.).

n continuare sunt prezentate principalele operaii ale algebrei relaionale, precum i modul lor de utilizare. 1. Reuniunea. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2, ambele cu aceeai schem, operaie care const din construirea unei noi relaii R3, cu o schem identic cu R1 i R2 i avnd drept extensie tuplurile din R1 i R2, luate mpreun o singur dat. Reuniunea se noteaz uzual cu: OR (R1,R2) APPEND (R1,R2) UNION (R1,R2) n figura urmtoare este prezentat un exemplu de reuniune a dou relaii ORAE i MUNICIPII, formnd astfel o a treia relaie, LOCALITI.

43

2. Diferena. Reprezint o operaie a algebrei relauionale construit pe dou relaii: R1 i R2, ambele cu o aceeai schem, operaie care const din construirea unei noi relaii R3, cu schema identic cu a operanzilor i cu extensia format din acele tupluri ale relaiei R1 care nu se regsesc i n relaia R2. Notaiile uzuale pentru operaia de diferen a dou relaii sunt: R1-R2 REMOVE (R1,R2) MINUS (R1,R2) Un exemplu de diferen a dou relaii este dat n continuare.

3. Produs cartezian. Reprezint o operaie a algebrei relaionale definit pe dou relaii: R1 i R2, operaie care const din construirea unei noi relaii R3, a crei schem se obine prin concatenarea schemelor relaiilor R1 i R2 i a crei extensie cuprinde toate combinaiile tuplurilor din R1 cu cele din R3. Notaiile uzuale pentru desemnarea operaiei sunt: R1 x R2 PRODUCT (R1,R2) TIMES (R1,R2) n continuare este prezentat un exemplu de produs cartezian a dou relaii.

44

4. Proiecia. Reprezint o operaie din algebra relaional definit asupra unei relaii R, operaie care const din construirea unei noi relaii P, n care se regsesc numai acele atribute din R specificate explicit n cadrul operaiei. Suprimarea unor atribute din R nseamn efectuarea unor tieturi verticale asupra lui R, care pot avea ca efect apariia unor tupluri duplicate ce se cer a fi eliminate. Prin proiecie se trece de la o relaie de grad n la o relaie de grad p, mai mic dect cel iniial, adic de la un spaiu cu n dimensiuni la un spaiu cu mai puine dimensiuni, ceea ce explic i numele de proiecie atribuit operaiei. Notaiile uzuale pentru operaia de proiecie: Ai , A j ,..., Am ( R ) R [ Ai, Aj, ..., Am ] PROJECT(R, Aj, Aj, ..., Am)

45

n figura de mai sus este prezentat proiecia relaiei ORAE pe atributul JUDE. 5. Selecia reprezint o operaie din algebra relaional definit asupra unei relaii R, operaie care const din construirea unei relaii S, a crei schem este identic cu cea a relaiei R i a crei extensie este constituit din acele tupluri din R care satisfac o condiie menionat explicit n cadrul operaiei. ntruct cel mai adesea, nu toate tuplurile din R satisfac aceast condiie, selecia nseamn efectuarea unor tieturi orizontale asupra relaiei R, adic eliminarea de tupluri. Condiia precizat n cadrul operaiei de selecie este n general de forma: atributoperator de comparaie valoare

unde: <operator de comparaie> poate fi: <, <=, >=, > sau #. Notaiile folosite pentru desemnarea operaiei de selecie sunt urmtoarele:

conditie (R )
R [condiie] RESTRICT(R, condiie). 6. Jonciunea (Joinul) reprezint o operaie din algebra relaional definit pe dou relaii: R1 i R2, operaie care const din construirea unei noi relaii R3, prin concatenarea unor tupluri din R1 cu tupluri din R2. Se concateneaz acele tupluri din R1 i R2 care satisfac o anumit condiie, specificat explicit n cadrul operaiei. Extensia relaiei R3 va conine deci combinaiile acelor tupluri care satisfac condiia de concatenare.

46

Notaiile uzuale pentru desemnarea operaiei de jonciune sunt: R1 condiie JOIN (R1, R2, condiie) 7. Intersecia reprezint o operaie din AR definit pe dou relaii: R1 i R2, ambele cu aceeai schem, operaie care const din construirea unei noi relaii R3, cu schema identic cu a relaiilor R1 i R2 i cu extensia format din tuplurile comune lui R1 i R2. Notaiile uzuale pentru operaia de intersecie sunt: R1 R 2 INTERSECT (R1, R2) AND (R1, R2). 8. Diviziunea reprezint o operaie din AR definit asupra unei relaii R din care se obine, cu ajutorul altei relaii P, relaia Q a crei extensie este format din atributele din R care rmn dup eliminarea atributelor relaiei P. Notaiile folosite pentru operaia de diviziune sunt: Rr DIVISION(R,r). R2

3.4. Restriciile de integritate ale modelului relaional


Restriciile de integritate, denumite i reguli de integritate, definesc cerinele 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. Restriciile de integritate reprezint principalul mod de integrare a semanticii datelor n cadrul modelului relaional al datelor, mecanismele de definire i verificare a acestor restricii reprezentnd principalele instrumente pentru controlul semantic al datelor. Avantajele ncorporrii semanticii datelor n cadrul bazelor de date constau din posibilitatea ntreinerii mai uoare a aplicaiilor i posibilitatea implementrii unor mecanisme fizice mai eficiente. 47

n teoria sistemelor relaionale, restriciile de integritate sunt studiate n principal sub aspectul puterii lor de modelare i al posibilitilor de verificare eficace a respectrii lor. Un exemplu semnificativ l reprezint dependenele ntre date, i n primul rnd dependenele funcionale. Dependenele ntre date, ca restricii de integritate constituie un suport teoretic solid pentru problemele de modelare informatic. n acest sens, dependenele funcionale au permis definirea conceptului de structur relaional optim, stnd la baza teoriei optimizrii structurii relaionale a datelor, respectiv teoria normalizrii relaiilor. Restriciile de integritate ale modelului relaional sunt urmtoarele: 1. Restricii de integritate minimale, obligatoriu de definit i de respectat atunci cnd se lucreaz cu modelul relaional. Din aceast categorie fac parte: restricia de unicitate a cheii; restricia referenial; restricia entitii. 2. Alte restricii de integritate, din care fac parte: dependenele ntre date; restriciile de comportament. Restriciile de integritate minimale sunt definite n raport cu noiunea de cheie a unei relaii. Cheia unei relaii, R, reprezint ansamblul minimal de atribute prin care se poate identifica n mod unic orice tuplu din R. Orice relaie posed cel puin o cheie. La limit, cheia este constituit fie dintr-un singur atribut, fie din totalitatea atributelor din schema relaiei respective. Cnd cheia este constituit dintr-un singur atribut poart numele de cheie simpl, iar atunci cnd este format din mai multe atribute este denumit cheie compus. ntr-o relaie pot exista mai multe combinaii de atribute cu proprietatea de identificare unic a tuplurilor. Se spune n acest caz c relaia posed mai muli candidai cheie (sau mai multe chei candidate). n aceast situaie, administratorul bazei de date va alege dintre cheile candidate una care s serveasc n mod efectiv la identificarea tuplurilor i care va primi numele de cheie primar. Restul cheilor candidate vor purta numele de chei alternate. Cheia unei relaii trebuie s fie minimal, adic nici o parte a sa nu trebuie s fie la rndul ei cheie. Un grup de atribute din cadrul unei relaii care conine o cheie a relaiei poart numele de supercheie. Modelarea asocierilor dintre entiti impune recurgerea la conceptul de cheie extern. O cheie extern reprezint un atribut/grup de atribute dintr-o relaie R1 ale crui/cror valori sunt definite pe acelai/aceleai domeniu/domenii ca i cheia 48

primar a unei relaii, R2 i care are rolul de a modela asocierea ntre entitile reprezentate prin relaiile R1 i R2. n acest context, R1 este denumit relaie care refer, n timp ce R2 poart numele de relaie referit. Restricia de unicitate a cheii reprezint restricia de integritate care impune ca ntr-o relaie, R care are cheia K, oricare ar fi tuplurile t1 i t2 s fie satisfcut inegalitatea: t1 (K) # t2 (K). Aceast inegalitate semnific faptul c ntr-o relaie nu pot exista dou tupluri cu aceeai valoare pentru atributele cheie. Restricia referenial (integritatea referirii) reprezint restricia de integritate care impune ca ntr-o relaie R1 care refer o relaie R2, valorile cheii externe s figureze printre valorile cheii primare din relaia R2 sau s fie valori nedefinite (null). R1 i R2 nu trebuie s fie neaprat distincte. Semnificaia restriciei de integritate a referirii este urmtoarea : o asociere nu poate exista dect ntre entiti deja definite. Atunci cnd, ntr-o anumit situaie, asocierea nu este aplicabil, unul din parteneri va fi desemnat prin valoarea null, cu semnificaia de partener inexistent. Restricia entitii (integritatea entitii) reprezint restricia de integritate care impune ca ntr-o relaie atributele cheii primare s fie nenule. Unicitatea cheii impune ca la ncrcarea unui tuplu, valoarea cheii s fie cunoscut, pentru a se putea verifica faptul c aceast valoare nu exist deja ncrcat (tuplul nu figureaz deja n baza de date). Cu valori <null>, cheia i pierde rolul de identificator de tuplu. Restricia de integritate a entitii nu se aplic cheilor externe dintr-o relaie, dac acestea nu aparin cheii primare. Restriciile referitoare la dependena datelor semnific modul n care datele depind unele de altele. Aceast dependen ntre date poate fi de mai multe tipuri i anume: dependen funcional; reprezint dependena ntre date prin care se poate identifica un atribut/grup de atribute prin intermediul altui atribut/grup de atribute. Fiind dat o relaie R, un atribut Y din R este dependent funcional 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 relaie R, n care apar atributele/grupurile de atribute:X, Y i Z. n cadrul relaiei R exist o dependen multivaloare dac i numai dac mulimea valorilor lui Y corespunztoare unei perechi: (valoare X, valoare Z) depinde numai de valoarea lui X, nu i de valoarea lui Z; dependen jociune; aceast restricie exprim o dependen ntre date mai general dect dependena funcional sau dependena multivaloare. Considernd o relaie R, cu schema R(X:Dx,Y:Dy,Z:Dz) pentru care nu se manifest dependene funcionale sau dependene multivaloare, adic relaia R se poate asimila unei chei compuse. Asupra acestei relaii se 49

formuleaz urmtoarea restricie: dac n relaia R figureaz tuplurile, i atunci n R trebuie s figureze i tuplul . Restriciile de comportament se pot defini de ctre utilizator n funcie de realitatea descris n baza de date i pot fii: restricii de domeniu; care impun ca valorile unui atribut dintr-o relaie s se ncadreze n anumite limite; restricii temporale etc.

3.5. Proiectarea bazelor de date relaionale


Proiectarea bazelor de date relaionale se realizeaz conform cu cele prezentate n capitolul anterior. Diferene apar la activitile legate de proiectarea schemelor conceptuale, interne i externe, de ncrcarea, exploatarea i ntreinerea bazei de date. 3.5.1. Proiectarea schemei conceptuale La proiectarea bazelor de date relaionale se folosete frecvent termenul de schem conceptual optim, prin care se nelege acea schem conceptual care nltur posibilitile apariiei de anomali n lucrul cu baza de date, asigurnd totodat faciliti i performane sporite la ncrcarea, exploatarea i ntreinerea bazei de date. Anomaliile care apar la lucrul cu baze de date se manifest ndeosebi la ntreinerea bazei de date, fiind cunoscute i sub numele de anomalii de actualizare a datelor. Ele se manifest nu numai n cazul bazelor de date relaionale, ci i la celelalte tipuri de baze de date. n cadrul teoriei relaionale a bazelor de date, anomaliile de actualizare sunt puse n legtur cu dependenele care se manifest ntre date. Abordarea anomaliilor de actualizare a permis, pe de o parte caracterizarea riguroas a relaiilor dup gradul de perfeciune pe care l prezint (aa numitele forme normale ale relaiilor) i pe de alt parte a fcut posibil definirea unor tehnici formale pentru nlturarea anomaliilor de actualizare. Formele normale ale relaiilor

50

Anomaliile care apar n lucrul cu baze de date relaionale se produc datorit dependenelor nedorite care se manifest ntre datele din cadrul relaiilor bazei de date. Aceste dependene determin creterea redundanei datelor i reducerea flexibilitii structurii bazei de date, efect manifestat prin: limitarea posibilitilor de inserare a datelor; apare cnd anumite date despre o entitate nu pot fi introduse n baza de date datorit lipsei altor date, relative la aceeai entitate, i fr de care, datele noi nu pot fi introduse datorit dependenelor dintre aceste date; pierderi de date la tergere; apar atunci cnd, n urma unei tergeri din baza de date sunt terse i altele, care nu mai pot fi obinute (reconstituite) din baza de date; apariia unor inconsistene la modificarea datelor; adic meninerea, pentru unele atribute, a unor valori neactualizate alturi de valorile actualizate. Formele normale ale relaiilor dintr-o baz de date relaional sunt definite n raport de anomaliile care pot apare n lucrul cu aceste relaii, deci n funcie de dependenele nedorite care se manifest n cadrul acestor relaii. La proiectarea bazelor de date relaionale se pot defini cinci forme normale, formnd cinci nivele de normalizare a relaiilor. O relaie R este n forma normal unu, FN1, dac domeniile pe care sunt definite atributele relaiei sunt constituite numai din valori atomice (elementare). n plus, un tuplu nu trebuie s conin atribute sau grupuri de atribute repetitive. O relaie R este n forma normal doi, FN2, dac este n FN1 i oricare dintre atributele noncheie este dependent funcional complet de cheia primar a relaiei. O relaie R este n forma normal trei, FN3, dac este n FN2 i atributele noncheie nu sunt dependente tranzitiv de cheia primar a relaiei. Relaia R este n forma normal patru, FN4, dac este n FN3 i n cadrul ei nu se manifest mai mult de o dependen multivaloare. Spunem c relaia R este n forma normal cinci, FN5, dac fiecare dependen jonciune este implicat printr-un candidat cheie al lui R. Etapele procesului de proiectare a schemei conceptuale Proiectare schemei conceptuale a unei baze de date relaionale presupune parcurgerea urmtoarelor etape: 51

1. Determinarea formei normale n care trebuie s se afle relaiile din baza de date (a nivelului de perfeciune impus schemei conceptuale). Relaiile aflate n forme normale superioare determin apariia unui numr redus de anomali n lucrul cu baza de date, comparativ cu relaiile nenormalizate sau aflate n primele forme normale, dar conduc todat la creterea timpului de acces la date. Aceasta deoarece relaiile aflate n forme normale superioare conin, de regul, un numr mai mic de atribute, lucru care impune creterea numrului de relaii din baza de date, deci interogarea simultan a mai multor relaii pentru a gsi anumite informaii.

n determinarea formei normale la care trebuiesc aduse relaiile din bazele de date relaionale se vor avea n vedere urmtoarele: ponderea operaiilor de interogare i a celor de actualizare n lucrul cu bazele de date relaionale; exigenele de performa i flexibilitate impuse de utilizatorii finali la interogarea i, respectiv la actualizarea bazelor de date relaionale. 2. Stabilirea relaiilor care s fac parte din baza de date, n forma normal stabilit anterior. Aceasta presupune definirea relaiilor i a restriciilor de integritate asociate, lucru realizat pe baza modelelor conceptuale ale sistemului, modele obinute n etapa de analiz a sistemului i a cerinelor informaionale asociate. n cadrul acestei etape se pot aplica mai multe tehnici de proiectare (tehnica normalizrii, tehnica diagramelor de dependen riguroas etc.). 3. Testarea schemei conceptuale obinute i revizuirea acesteia, dac este cazul; 4. Descrierea schemei conceptuale n limbajul de descriere a datelor utilizat de SGBD-ul relaional folosit i ncrcarea acestei descrieri n baza de date relaional. 3.5.2. Proiectarea schemei externe Schema extern a unei baze de date relaionale reprezint ansamblul relaiilor (tabelelor de date) la care are acces un utilizator (un program de aplicaie). Dei mai muli utilizatori pot lucra cu o aceeai schem extern, n general, se consider pentru o baz de date relaional attea scheme externe ci utilizatori exist la un moment dat, scheme care trebuiesc proiectate i apoi fcute operaionale. 52

Schema extern reprezint modul de organizare, structurare, a datelor de care are nevoie un anumit utilizator pentru a-i satisface toate cerinele informaionale. 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 partiie 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 relaionale, n raport de ansamblul cerinelor informaionale ale tuturor utilizatorilor, n timp ce structurarea datelor n cadrul schemei externe urmrete facilitarea satisfacerii cerinelor informaionale pentru un anumit utilizator. Deoarece aceste dou criterii nu sunt echivalente se obin rezultate, deci structuri ale datelor diferite. La proiectarea unei scheme externe a unei baze de date relaionale se parcurg urmtoarele etape: 1. Determinarea zonei (ariei) de interes pentru un anumit utilizator din cadrul sistemului informatic reflectat informaional cu ajutorul bazei de date; 2. Analiza structural, dinamic i funcional a acestei zone din domeniul activitii 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 relaionale, innd cont de faptul c aceeai 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 operaional. Acest lucru se realizeaz n mod diferit fa de schema conceptual a bazelor de date, pentru care operaionalizarea presupune descrierea sa cu ajutorul limbajului de descriere a datelor utilizat de SGBDR, compilarea acestei descrieri i ncrcarea acestei descrieri compilate n cadrul bazei de date. Pentru ca o schem extern s devin operaional, s poat fi aplicat, utilizatorul cruia 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 relaionale


53

Un sistem de gestiune a bazelor de date relaionale poate fi definit ca reprezentnd un SGBD care utilizeaz drept concepie de organizare a datelor modelul relaional. Diversitatea modelelor relaionale operaionale au determinat, n mod natural existena unei mari diversiti de SGBDR, care se apropie mai mult sau mai puin de modelul relaional teoretic. Cerinele teoretice pe care trebuie s le satisfac un SGBD relaional au fost specificate de Codd, printro serie de 13 reguli, numite regulile lui Codd. Deoarece aceste reguli au fost mult disputate i deoarece nici unul dintre SGBD-urile relaionale (SGBDR) disponibile astzi nu respect ntrutotul cerinele exprimate de Codd, n cadrul celor 13 reguli, caracterizarea unui SGBD se realizeaz folosind o serie de cerine minimale pe care trebuie s le satisfac un sistem de gestiune a bazelor de date pentru a putea fi considerat relaional. Un SGBD este minim relaional dac satisface urmtoarele condiii: 1. Toate datele din cadrul bazei de date sunt reprezentate prin valori n tabele. 2. Nu exist pointeri observabili de ctre utilizator ntre tabele, n sensul c operaiile cu relaii nu fac apel la pointeri, indeci, fiiere inverse etc. 3. Sistemul suport operatorii relaionali de proiecie, selecie i join natural, fr limitri impuse din considerente interne (cum ar fi de exemplu, necesitatea indexrii atributelor). Unitatea de informaie cu care se lucreaz n cadrul acestor operaii trebuie s fie relaia. Un SGBD este complet relaional dac este minimal relaional i satisface n plus urmtoarele condiii: 4. Sistemul suport toate operaiile de baz ale algebrei relaionale, fr limitri impuse din considerente interne. 5. Sistemul suport dou dintre restriciile de integritate de baz ale modelului relaional i anume unicitatea cheii unei relaii i restricia referenial. Un SGBD este pseudorelaional dac satisface numai condiiile 1 i 3. Dintre instrumentele i mecanismele de lucru de care dispune un SGBD relaional se pot meniona: un limbaj relaional pentru descrierea datelor la nivel fizic, logic i conceptual; un limbaj relaional pentru manipularea datelor (interogare i actualizare); mecanisme pentru controlul integritii semantice a datelor; mecanisme pentru asigurarea coerenei datelor n condiiile accesului concurent la date i apariiei unor avarii; 54

mecanisme pentru optimizarea cererilor de date; utilitare pentru prezentarea rezultatelor, de tipul generatoarelor de rapoarte, utilitare pentru generarea de aplicaii, pentru generarea de statistici despre starea i activitatea bazei de date. Dintre SGBD-urile relaionale mai cunoscute putem meniona: 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. ntrebri pentru verificarea cunotinelor


1. Care este structura modelului relaional al datelor ? 2. Enumerai cteva avantaje ale modelului relaional. 3. Care sunt noiunile care definesc structura relaional a datelor ? 4. Definii conceptul de schem a unei relaii ? 5. Care sunt operaiile algebrei relaionale standard ? 6. Definii operaia algebrei relaionale de proiecie. 7. Definii operaia algebrei relaionale de selecie. 8. Definii operaia algebrei relaionale de diviziune. 9. Definii operaia algebrei relaionale de join. 10. Enumerai restriciile de integritate ale modelului relaional. 11. Explicai restricia de unicitate a cheii. 12. Explicai restricia de unicitate referenial. 13. Enumerai i explicai dependenele ntre date. 14. Explicai noiunea de schem conceptual optim . 15. Care sunt etapele procesului de proiectare a schemei conceptuale a unei baze de date relaionale ? 16. Care sunt cerinele impuse unui SGBD pentru a putea fi considerat minim relaional ?

55

4. BAZE DE DATE CU STRUCTURI IERARHICE I REEA 4.1. Modelul de date ierarhic


Modelul de date ierarhic a fost primul model folosit pentru organizarea datelor n baze de date datorit simplitii conceptului de ierarhie i a aplicabilitii sale n modelarea realitii nconjurtoare. Modelul ierarhic are ca structur de baz structura arborescent (ierarhia). Proprietile acestei structuri de date determin caracteristicile i restriciile modelului ierarhic. n modelul ierarhic fiecrui nod al arborelui i corespunde un tip de nregistrare, format din unul sau mai multe cmpuri, reprezentnd atribute ce descriu entiti. Descrierea unei structuri ierarhice se poate face utiliznd diagrame de structur.

Fig. 4.1. Diagram de structur ierarhic Din figura de mai sus se observ c un nod printe poate avea subordonate mai multe noduri copil, n timp ce un nod copil poate avea un singur printe, ceea ce nseamn c relaia printe-copil ntre tipurile de nregistrri va fi 1 la M (unu la muli) i cea copil-printe 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 numr de realizri. Relaiile ntre realizrile unui cuplu printe-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 realizri a tipului printe (Tip_nregistrare_1) i se pot asocia 56

<n> realizri ale tipului copil (Tip_nregistrare_2) i c o realizare a tipului copil este asociat cu o singur realizare a tipului printe. ntre Tip_nregistrare_3 i Tip_nregistrare_4, relaia de 1 la 1 este reciproc. Acestea sunt singurele tipuri de relaii permise ntre realizrile tipurilor de nregistrri ale modelului ierarhic. O baz de date ierarhic poate fi definit ca fiind o mulime ordonat de realizri ale unui singur tip arbore. Un tip arbore const dintr-un singur tip de nregistrare rdcin, la care se adaug o mulime ordonat alctuit din unul sau mai multe tipuri de subarbori dependeni. Un tip subarbore const dintrun tip de nregistrare rdcin i o mulime ordonat alctuit din unul sau mai multe tipuri de subarbori dependeni .a.m.d. Deci, un tip arbore const dintr-o ierarhie a tipurilor de nregistrri. O realizare a arborelui const dintr-o singur realizare a tipului nregistrare rdcin mpreun cu o mulime ordonat alctuit din una sau mai multe realizri ale fiecrui tip subarbore imediat dependent de tipul rdcin. Se observ c pentru orice realizare a unui tip nregistarare printe, exist n realizri ale tipurilor nregistrare copil (). Toate realizrile unui tip copil care au aceeai realizare printe se numesc gemeni. Fie un (sub)arbore T cu rdcina R i subarborii S1, S2, ..., Sn n aceast ordine. Fie t o realizare a lui T, cu rdcina r (o realizare a lui R) i subarborii s1, s2, ..., sn, realizri ale S1, S2, ..., Sn. Se definete recursiv secvena ierarhic (ordonarea) pentru t, ca fiind secvena obinut alturnd nregistrrii r, toate nregistrrile lui s1, s2, ..., sn, luate n ierarhia lor. Fiecare arbore individual din baza de date poate fi privit ca un subarbore al unei nregistrri rdcin iniiale. Deci baza de date poate fi considerat ca un singur arbore. Noiunea de secven ierarhic definete o ordonare total pe mulimea tuturor nregistrrilor din baza de date.

4.2. Operatori ai modelului ierarhic


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 posibiliti de parcurgere n sus sau n jos pe diferite ci ale ierarhiei; operatori pentru inserarea unei noi nregistrri la o poziie specific ntr-un astfel de arbore; operatori de tergere a unei nregistrri specificate etc. Aceti operatori sunt la nivel de nregistrare existnd i o clas de operatori pe mulimi de nregistrri.

4.3. Restricii de integritate ale modelului ierarhic


57

Caracteristic modelului ierarhic este faptul c nici o realizare a unui nod copil nu poate s existe fr a avea asociat o realizare a nodului printe. Aceasta nseamn c dac un nod printe este ters, automat sistemul va terge ntregul subarbore ce are ca printe ale nod precum i c o realizare a nodului copil nu poate fi inserat dac o realizare a nodului printe nu exist deja. innd cont de cele de mai sus, precum i de relaiile permise ntre realizrile tipurilor de nregistrri, pot fi enunate urmtoarele restricii de integritate ale modelului ierarhic: realizare copil este ntotdeauna asociat unei singure realizri printe; dac un tip de nregistrare nu are realizri, atunci nici tipurile descendente de nregistrri nu au realizri. De exemplu, s considerm o baz de date cu informaii despre comenzile lansate de clienii unei firme (fig. 4.2.).

Fig. 4.2. Schema conceptual a unei baze de date ierarhice Nodul rdcin este CLIENI, nregistrarea copil este COMENZI, iar relaia printe-copil este de tipul 1:M (unu la muli), adic un client poate lansa mai multe comenzi firmei considerate. O comand poate s includ mai multe produse iar acelai produs poate fi solicitat n mai multe comenzi ale aceluiai client sau ale unor clieni diferii. Deci, ntre tipurile de nregistrare COMENZI i PRODUSE relaia este de tip N:M (muli la muli). Deoarece modelul ierarhic nu permite reprezentarea relaiei de acest tip, s-a optat pentru transformarea acesteia n dou relaii, prin introducerea tipului de nregistrare LEGTUR, atfel: o relaie de tip 1:N ntre COMENZI i LEGTUR i o alta de tip 1 la 1 ntre LEGTUR i PRODUSE (se respect astfel restricia 1, conform creia o realizare copil poate fi asociat unei singure realizri printe). 58

Fig. 4.3. Relaii 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 corespunztor apare o singur dat. Totodat, dac n COMENZI nu exist realizri care s se refere la un produs T, nu vor exista informaii despre acest produs n PRODUSE. Deci informaiile 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 cutare a unei realizri copil s fie efectuat n secven ierarhic, ncepnd cu realizarea rdcin. n exemplul considerat, avnd n vedere restricia 1, datele pentru produsul X vor fi repetate pentru fiecare comand care include acest produs. Datorit acestei redundane, actualizarea bazei de date este dificil. Astfel, pentru modificarea unro date despre produsul X trebuiesc regsite toate nregistrrile care l conin, adic pentru fiecare client trebuie verificate toate comenzile asociate pentru a le identifica pe care conin produsul X. n acest context, maniera de implementare a relaiilor dintre tipurile de nregistrri va condiiona performanele procesului de manipulare a datelor. Se cunosc dou modaliti de implementare a acestor relaii: 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 printe trebuie s conin un pointer (o adres) spre prima realizare a tipului copil. La rndul ei, fiecare realizare copil va conine un 59

pointer spre urmtoarea realizare copil asociat aceluiai printe. Fiecare nregistrare copil poate conine, de asemenea, un pointer spre nregistrarea printe. Un alt mod de implementare presupune c o realizare printe s aib un vector de pointeri spre realizrile copii. De asemenea, exist situaia n care este util o cheie primar pentru a accesa realizrile unui anumit tip de nregistrare. Pentru aceasta folosim pointeri spre realizrile nregistrrii respective, n ordinea valorii cmpului ales drept cheie primar. 2. Reprezentarea secvenial pe suport a informaiilor. n acest caz fiecare realizare a arborelui reprezint o nregistrare logic a fiierului. Componentele ierarhiei sunt aranjate pe suportul de memorie corespunztor 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 rdcin, semnaleaz nceputul unei noi realizri a arborelui. n concluzie, se poate afirma c implementarea modelului ierarhic este difcil, prezentnd dezavantajele redundanei informaionale 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 rspndit 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 neexistnd un asemenea SGBD comercial pentru calculatoare compatibile IBM-PC.

4.5. Modelul reea i baze de date reea


Modelul reea folosete structura de date reea ca structur de baz. Reeaua este un graf orientat alctuit din noduri conectate prin arce. Nodurile corespund tipurilor de nregistrare, iar arcele pointerilor (adreselor de legtur). Modelul reea folosete nregistrrile pentru a reprezenta entitile i pointerii ntre nregistrri pentru a reprezenta relaiile dintre entiti. Structura de date reea seamn cu structura de date arborescent, cu dfierena c un nod dependent (copil) poate avea mai mult dect un singur printe. O baz de date reea const dintr-un numr oarecare de tipuri de nregistrri. O nregistrare este constituit dintr-un numr oarecare de cmpuri (elementare sau agregate). Un cmp este cea mai mic unitate de date care are nume. Fiecare cmp are un tip de dat asociat. Cmpul corespunde unui atribut, iar nregistrarea unei entiti.

60

Fig. 4.4. Structur de date reea Caracteristic modelului de date reea este conceptul de set, folosit pentru a exprima relaiile dintre entiti. 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 colecie de nregistrri avnd o realizare proprietar i un numr oarecare de realizri membre asociate. Modelul reea impune restricia conform creia o nregistrare nu poate fi membr a dou realizri ale aceluiai tip set. Totui, o nregistrare poate s aparin mai multor tipuri set. n modelul reea, toate seturile sunt implementate prin pointeri. Uzual, se creaz o list nlnuit unde realizarea proprietar este capul listei. Proprietarul are legtur cu primul membru, care se leag de al doilea i aa mai departe pn la ultimul membru. Ultimul membru face legtur cu proprietarul, formnd un lan. O nregistrare membru a unui set poate avea trei pointeri: - spre nregistrarea urmroare (next); - spre nregistrarea anterioar (prior); - spre proprietar (owner). Modelul reea prezint o serie de dezavantaje cum ar fi: modelul reea este complicat; structura reea tinde s fragmenteze informaiile; cea mai mare parte a optimizrii sistemului se face mai mult manual dect aplicnd programe de optimizare; conceptul de indicator de poziie este o surs de complexitate i de erori. Cu toate acestea, n practic, SGBD-urile reea continu s fie folosite datorit performanelor bune obinute n prelucrarea explicit la nivel de nregistrri. SGBD-urile reea 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.

61

5. BAZE DE DATE ORIENTATE PE OBIECTE


Dezvoltarea tehnologiei sistemelor de calcul n ultimii ani a condus la ptrunderea acestora n tot mai multe domenii de activitate, avnd 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 depete posibilitile de prelucrare oferite de tehnologiile clasice. Aplicaiile specifice anumitor domenii cum ar fi: proiectarea asistat de calculator, sisteme informatice geografice, sisteme bazate pe cunotine etc., presupun stocarea unor cantiti mari de informaii cu o structur complex. De exemplu, aplicaiile de proiectare asistat de calculator necesit stocarea i manevrarea unor desene formate din grupuri de elemente complexe, alturi de acestea fiind necesar stocarea i a altor informaii privind materialele folosite, maini i utilaje disponibile, rezultate ale verificrilor 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 aplicaiilor orientate pe obiecte. Bazele de date orientate pe obiecte permit crearea de obiecte complexe din componente mai simple, fiecare avnd propriile atribute i propriul comportament. Domeniile care se preteaz n mod deosebit la o tratare orientat pe obiecte sunt: proiectare (CAD), fabricare (CAM) i inginerie (CAE) asistate de calculator; simulare i modelare; sisteme informaionale spaiale (GIS); administrarea documentelor i automatizarea muncii de birou; multimedia; ingineria cunoaterii: baze de cunotine, 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. Posibiliti de deducie superioar (ierarhie de clase, motenire); Ameliorarea interfeei cu utilizatorul;

62

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 noiunea de entitate conceptual i definete un obiect ca o colecie de proprieti care descriu entitatea. Principalele concepte care stau la baza unui model orientat pe obiecte sunt: obiectul, ncapsularea, persistena, clasa, tipul, motenirea, polimorfismul, identitatea i domeniul. Obiectul Conceptual, un obiect reprezint o unitate identificabil i cu coninut propriu, care se deosebete de ceea ce o nconjoar. Obiectele sunt abstractizri ale entitilor lumii reale i se caracterizeaz prin stare i comportament. Starea unui obiect este exprimat prin valorile atributelor sale. Colecia 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 operaii care acioneaz asupra atributelor sale. Considernd, de exemplu obiectul AVION acesta poate avea ca atribute: viteza, anvergura, greutatea, culoarea, nlimea de zbor etc. Un obiect nglobeaz urmtoarele elemente: structura de date; specificarea operaiilor; implementarea operaiilor. Structura unui obiect i operaiile (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, formnd astfel o structur ierarhic.

63

ncapsularea Structura obiectului i modul de aciune al metodelor sale nu pot fi accesate i actualizate direct de ctre un agent extern, dar pot fi modificate indirect prin intermediul mesajelor. Aceast caracteristic ascuns a strii obiectului este cunoscut sub numele de ncapsulare. Un obiect este astfel divizat n dou pri: 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 funcional simplificat a acestuia, imagine care i permite s modeleze i s rezolve cu mai mult uurin problemele complexe.

Persistena Aceasta este o proprietate a datelor sau a obiectelor care implic existena mai ndelungat a acestora fa de procesul care le-a creat. Este proprietatea prin care starea bazei de date asigur pstrarea 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, decongestionnd astfel aplicaia i asigurndu-i independena fa de date. O modificare adus unei metode devine imediat operant i persist pn la o nou modificare. Tipuri i clase Obiectele care au acelai fel de atribute i acelai comportament pot fi categorisite ca fcnd parte din acelai tip sau din aceeai clas. ntr-un sistem orientat pe obiecte, tipul sintetizeaz elementele comune ale unui set de obiecte cu aceleai caracteristici. Corespunde noiunii de tip abstract de date i are dou componente: interfaa; implementarea. Noiunea de clas, dei are aceeai specificaie cu cea de tip, este diferit de acesta, fiind mai mult asociat cu faza de execuie i presupune dou aspecte: generarea de obiecte; 64

stocarea setului de obiecte care reprezint instanele 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 instanele clasei vor rspunde i un set de metode pentru implementarea de operaii comune. Clasele sunt referite uneori ca tip de date abstracte. Descrierea clasei servete ca ablon dup care vor fi create noile obiecte. O clas este deci un tip abstract de date care definete att structura obiectelor din clasa respectiv, ct i mulimea metodelor existente pentru aceste obiecte. Ca urmare, obiectele din aceeai clas au aceleai atribute i aceleai metode i rspund la aceleai mesaje. Clasele sunt organizate ierarhic fiecare clas nou creat trebuind s fie obinut 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 motenete structurile i metodele superclasei din care face parte. O clas poate crea noi instane ale obiectelor. Motenire ntr-o baz de date orientate pe obiecte, clasele sunt aranjate ntr-o ierarhie n care fiecare clas motenete toate atributele i metodele superclasei din care face parte. Motenirea este un concept puternic, care conduce la posibilitatea de reutilizare a codului. Prin motenire, o clas preia toate atributele i metodele clasei din care deriv adugnd la ele atributele i metodele proprii. Este de asemenea posibil ca o clas s aib mai mult dect o superclas. Acest lucru este cunoscut ca motenire multipl. Polimorfism Polimorfismul se refer la faptul c, la primirea unui mesaj, stabilirea metodei care se aplic se face n mod dinamic, n funcie de clasa obiectului n cauz. Astfel, instane ale unor clase diferite pot fi adresate uniform (primesc aceleai 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 motenirea. Rspunsul unui obiect la un mesaj poate fi determinat de metodele motenite de la superclas. Motenirea multipl permite definirea unor forme complexe de comportament polimorfic care pot antrena uneori combinarea metodelor de la dou sau mai multe superclase. Identitatea 65

Identitatea este un mijloc de a distinge un obiect de altul. Prin identitate se asigur i persistena datelor. Oricare din obiectele unei baze de date orientate pe obiecte are identitate care este independent de valorile atributelor sale. Spre deosebire de modelul relaional, care utilizeaz unicitatea cheii primare pentru a identifica obiectul, tehnologia orientat pe obiecte permite modificarea valorilor oricrui atribut fr a-i afecta identitatea. Mai mult chiar, obiectele au contiina 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. Restricii de integritate ale modelului de date orientat pe obiecte n cazul modelului de date orientat pe obiecte, restriciile de integritate cunt o consecin a structurii modelului i a operaiilor. Urmtoarele reguli sunt important de reinut: 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 fr 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 obiecte


O baz de date orientat pe obiecte poate fi definit ca fiind rezultatul aplicrii tehnologiei orientate pe obiecte n domeniul stocrii i regsirii informaiilor. 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 aplicaie particular. Definiiile de clas includ motenirea, relaiile de nrudire (superclasa, subclasa) i relaiile structurale dintre clase (analog cu relaiile din modelul entitate-relaie-atribut).

66

O schem complet de baz de date poate consta din una sau mai multe ierarhii de clas mpreun cu relaiile structurale. Descrierile individuale ale schemei se refer la variabile de instan ale claselor individuale. Schema bazei de date poate fi modificat dinamic, n funcie de necesitile utilizatorilor. Pot fi identificate dou tipuri de schimbare a schemei unei baze de date orientate pe obiecte: 1. Schimbri referitoare la modul de definire al unei clase. Acestea includ schimbrile atributelor i metodelor definite pentru o clas, cum ar fi schimbarea numelui sau domeniului unui atribut, adugarea, tergerea unui atribut sau metode; 2. Schimbri referitoare la structura ierarhiei de clase care includ adugarea sau tergerea unei clase i schimbarea relaiilor 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 nti componentele majore, se stabilesc corelaiile ntre ele, iar apoi se trece la rafinri succesive, n cascad, a componentelor. Proiectarea orientat pe obiecte se bazeaz mai mult pe tehnica bottom-up. Se identific mai nti componentele funcionale pe baza crora se va construi apoi ntregul edificiu. Se identific n coleciile 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 documentaia i se poate ncepe aciunea de implementare. Aceast metodologie modific n mod substanial planificarea lucrrilor i etapelor. Partea cea mai minuioas a proiectrii se mut la nceputul proiectului. Dac exist deja biblioteci de obiecte utilizate n alte aplicaii, realizarea uni prototip se poate face foarte rapid. Pe baza lui se stabilesc aspectele funcionale i de interfa ale aplicaiei, 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

67

Sistemele de gestiune a bazelor de date orientate pe obiecte trebuie s pstreze funciunile 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 cerinele unui sistem de gestiune a bazelor de date. Arhitectura unui SGBD se refer la o descriere abstract a organizrii unui sistem n scopul de a prezenta componentele funcinale i interfeele dintre ele. Arhitectura unui SGBD-OO cuprinde trei componente majore: Gestionarul de obiecte (Object Manager) care asigur interfaa dintre procese (prelucrrile) externe i SGBD-OO; Server-ul de obiecte care este responsabil cu asigurarea serviciilor de baz ale SGBD-urilor, cum ar fi: gestiunea tranzaciilor i gestiunea stocului de obiecte; Stocul rezident de obiecte sau chiar baza de date obiect. Procesele externe pot fi generate de ctre diveri utilizatori prin accesarea SGBD-OO. Utilizatorii finali externi i cei care dezvolt aplicaii 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 interfee pentru sisteme de proiectare CAD/CAM. Aceste sisteme pot servi ca instrumente (kits) front_end ce realizeaz interfaa cu gestionarul de obiecte. n prezent, SGBD-OO comerciale sunt accesate n primul rnd prin limbajele de programare orientate obiect, cum ar fi: Smalltalk, Common Lisp i C++. Interfaa 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, staii SUN, Apollo i Digital i pe PC-uri.

5.3. ntrebri pentru verificarea cunotinelor


1. Care sunt caracteristicile unui obiect ? 2. Explicai conceptul de motenire. 3. Explicai conceptul de ncapsulare. 4. Explicai conceptul de polimorfism. 5. Precizai restriciile de integritate ale modelului de date orientat obiect. 6. Care sunt modalitile de schimbare a schemei unei baze de date orientate obiect ? 7. Caracterizai proiectarea bazelor de date orientate obiect. 8. Prin ce se identific un SGBD ca fiind orientat obiect ? 68

6. BAZE DE DATE DISTRIBUITE


O baz de date distribuit poate fi definit ca o colecie de date integrate din punct de vedere logic dar distribuite din punct de vedere fizic pe staiile unei reele de calculatoare. Fiecare staie a reelei are autonomie de prelucrare care i permite s realizeze aplicaii locale. De asemenea, fiecare staie particip la execuia aplicaiilor globale care necesit accesarea datelor din mai multe staii. Reelele 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: 69

Controlul centralizat. Spre deosebire de bazele de date locale care erau controlate de un administrator unic, bazele de date distribuite presupun existena unui administrator global, care are responsabilitatea central a ntregii baze de date distribuit i a unor administratori locali, crora le revin responsabilitile legate de bazele de date locale. Administratorii locali pot avea un grad nalt de autonomie care poate merge pn la realizarea coordonrii ntre staii. Independena datelor. n cazul bazelor de date distribuite asigurarea independenei datelor fa de programele de aplicaii are aceeai importan ca i n cazul bazelor de date locale, dar apare un nou aspect legat de transparena distribuiei. Prin transparena distribuiei programele pot fi scrise fcnd abstracie de distribuirea fizic a datelor. Mutarea datelor dintro staie n alta trebuie s afecteze numai viteza de execuie, nu i corectitudinea programului. Asigurarea unei redundane minime i controlate. n cadrul bazelor de date distribuite exist mai multe motive pentru a considera redundana datelor o caracteristic acceptabil, i anume: localizarea este mai rapid atunci cnd datele sunt replicate la toate staiile unde sunt cerute de aplicaii; disponibilitatea, sigurana sistemului crete atunci cnd datele sunt replicate. n cazul cderii unei staii, aplicaiile pot fi dirijate la staiile unde datele sunt replicate.

Redundana datelor reduce efortul de regsire a datelor dar crete efortul de actualizare. Evaluarea unui grad optim al redundanei trebuie s in seama de raportul ntre accesele de regsire i accesele de actualizare a datelor. Integritatea, restaurarea datelor i controlul concurenei. n cazul bazelor de date distribuite soluiile privind integritatea, restaurarea datelor i controlul concurenei (cererea simultan a acelorai date) sunt legate de modul de realizare a tranzaciilor. O tranzacie este o unitate atomic de execuie, o secven de operaii care fie sunt realizate n ntregime fie nu sunt realizate. n cadrul bazelor de date distribuite problema atomicitii tranzaciilor capt un aspect particular legat de modul n care trebuie s se comporte sistemul atunci cnd una din staii nu este operaional: s abandoneze ntreaga tranzacie sau s ncerce s execute corect tranzacia chiar dac ambele staii nu sunt simultan operaionale.

70

Sigurana i securitatea datelor. n bazele de date tradiionale, administratorul bazei de date care are controlul centralizat permite numai un aces autorizat la date. n bazele de date distribuite, administratorii se confrunt cu aceleai probleme ca administratorii bazelor de date tradiionale. Sunt de menionat dou aspecte particulare: n bazele de date distribuite, cu un grad ridicat de autonomie a staiilor, bazele de date locale sunt mai protejate deoarece administratorii locali i realizeaz propria protecie fr s depind de un administrator centralizat; problemele securitii sunt intrinseci sistemelor distribuite deoarece comunicaia n reea poate reprezenta un punct slab n realizare proteciei.

Fa de bazele de date centralizate, bazele de date distribuite au urmtoarele avantaje: Creterea adaptabilitii sistemului. n orice moment baza de date poate fi extins prin adugarea de noi structuri de baze de date, cu un impact minim asupra structurii bazei de date distribuite i fr a afecta aplicaiile existente. n cazul sistemelor centralizate, dimensiunile iniiale ale sistemului trebuie s prevad viitoarele expansiuni, lucru greu de realizat i costisitor de implementat. Sporirea performanelor sistemului deoarece partajarea i replicarea datelor ca i existena mai multor procesoare au ca rezultat creterea gradului de paralelism n executarea aplicaiilor. Creterea siguranei sistemului. Sistemul distribuit este proiectat astfel nct cderea unei staii nu afecteaz ntregul sistem. Disponibilitatea sporit a datelor asigurat de replicarea lor. Chiar dac o staie cade, datele sunt nc disponibile prin copiile memorate pe alte staii.

6.1. Sistemul de gestiune a bazelor de date distribuite


Un sistem de baze de date distribuite este un sistem n cadrul cruia mai multe baze de date locale sunt legate printr-un sistem de comunicaie astfel nct datele din orice staie pot fi accesate de utilizatori de la alte staii. Un sistem de baze de date distribuite conine urmtoarele componente software: componenta de comunicaie; sistemul de gestiune al bazei de date locale (SGBDL); dicionarul de date global (DDG); sistemul de gestiune al bazei de date distribuite (SGBDD).

71

Componenta de comunicaie este cea care realizeaz legturile n cadrul reelei. El cuprinde descrierea complet a nodurilor i a legturilor din cadrul reelei. Sistemul de gestiune al bazei de date locale este un sistem standard de gestiune a bazelor de date. De obicei conine propriul su dicionar pentru datele locale. Dicionarul de date global cuprinde informaii despre baza de date distribuit: localizarea, structura, disponibilitatea i modul de utilizare a datelor. SGBDD cuprinde un sistem complex de programe care asigur interfaa ntre baza de date distribuit i utilizatorii acesteia. Funciile pe care le ndeplinete un SGBDD sunt urmtoarele: 1. Asigurarea interfeei cu utilizatorul. Unul din obiectivele majore ale unei baze de date distribuite este asigurarea transparenei localizrii datelor. Utilizatorul nu trebuie s cunoasc nodul la care sunt localizate datele i s interacioneze cu baza de date distribuit n acelai mod ca i cu o baz de date local. 2. Localizarea datelor. Dup primirea unei cereri de date, SGBDD consult dicionarul de date global pentru a localiza nodul n care sunt memorate datele. Cererile de date pot fi mprite n cereri locale, la distan i compuse. Dac cererea poate fi satisfcut 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 dect 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 informaii din mai multe noduri. Pentru a prelucra o cerere compus este necesar mai nti descompunerea acesteia n cereri locale i cereri la distan. n urma prelucrrii, rezultatele sunt transferate SGBDD care le transfer la rndul lui utilizatorului. Pentru a superviza execuia 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 acelai timp nod i coordonator (pentru crerile lansate din acest nod) i cooperant (pentru cererile lansate din celelalte noduri care solicit acces la acest nod). 3. Asigurarea controlului concurenei i restaurarea datelor la nivelul ntregului sistem. Fiecare SGBD rspunde 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 pstra i aplica modificrile care au intervenit dup producerea 72

incidentului. Controlul concurenei la nivelul sistemelor este necesar pentru a asigura sincronizarea proceselor. 4. Realizarea administrrii bazei de date distribuite i controlul acesteia. SGBDD dispune de instrumente pentru monitorizarea bazei de date distribuite, colectarea informaiilor 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 cnd toate SGBD-urile locale sunt de acelai fel. Un SGBDD eterogen implic cel puin dou SGBD-uri locale diferite. Astzi exist SGBDD omogene cum sunt: SDD-1, R*, DDM .a. i SGBDD eterogene cum ar fi: MULTIBASE, DDTS .a. De un interes crescnd se bucur sistemele eterogene de baze de date distribuite.

6.2. ntrebri pentru verificarea cunotinelor


1. Ce este o baz de date distribuit ? 2. Enumerai i explicai 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 funciile specifice pe care trebiue s le ndeplineasc un SGBDD ? 6. Explicai funcia SGBDD de asigurare a interfeei cu utilizatorul. 7. Explicai funcia SGBDD de localizare a datelor. 8. Explicai funcia SGBDD de asigurare a controlului accesului concurent la date.

73

7. PROTECIA BAZELOR DE DATE


Protecia bazelor de date const dintr-un set de msuri umane i faciliti oferite de SGBD prin care se urmrete asigurarea integritii datelor, definit ca fiind corectitudinea datelor introduse i manipulate, i a securitii datelor, ce vizeaz interzicerea accesului la date pentru persoanele ce nu au competene n folosirea lor. Aceasta capt o importan deosebit n contextul extinderii folosirii configuraiilor cu numr mare de utilizatori i cu un volum mare de date de prelucrat. n ceea ce privete sfera de aciune a metodelor utilizate pentru protecia datelor, pot fi puse n eviden dou tendine: protecia mpotriva unor defecte sau erori accidentale i protecia complet care realizeaz n plus fa de prima i protecia contra unor aciuni voite. Teoretic, toate sistemele ar trebui s asigure protecia complet a datelor. n practic ns, costul proteciei, care crete pe msur ce sunt reduse posibilitile de apariie a unor erori i de violare a confidenialitii datelor, este cel care dicteaz complexitatea metodelor de protecie care vor fi utilizate. Aspectele proteciei bazelor de date ce vor fi prezentate mai jos se bazeaz pe presupunerea c protecia informaiei la nivelul sistemului de operare este asigurat.

7.1. Integritatea datelor


74

Corespunztor situaiilor care pot genera apariia unor date incorecte n baza de date, se disting trei aspecte ale asigurrii integritii datelor: 1. Asigurarea integritii semantice a datelor - presupune prevenirea introducerii unor date incorecte i a efecturii unor prelucrri greite. Dac acest lucru nu va fi mpiedicat sau semnalat imediat, datele vor fi utilizate n alte prelucrri, declanndu-se astfel un proces necontrolat de alterare a bazei de date. Cu ct sesizarea unei erori are loc dup o perioad mai mare, cu att efectele ei vor fi mai greu de controlat. 2. Controlul accesului concurent la date - presupune prevenirea obinerii unor rezultate incorecte din execuia concurent (simultan) a unor prelucrri n regim multiutilizator. O alt problem care poate apare la prelucrarea concurent este dat de interblocare. Aceasta nseamn c dou tranzacii 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: funcionarea anormal sau o cdere a SGBD sau a sistemului de operare; defeciune fizic a suportului fizic pe care este memorat baza de date. n primul caz, prin ntreruperea tranzaciilor active n momentul respectiv, baza de date va rmne 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 existena unor informaii despre derularea tranzaciilor pn n momentul ntreruperii lucrului i aplicarea, dup caz a uneia din urmtoarele tehnici de restaurare de baz: derularea derularea napoi nainte a tranzaciilor a tranzaciilor (ROLLBACK) completate care presupune n baza anularea de date modificrilor efectuate de acestea asupra bazei de date; dar nereflectate (ROLLFORWARD) - care presupune efectuarea acelor transformri prin care baza de date restaurat s conin rezultatele acestora. Se observ deci c tranzacia poate fi considerat unitatea de restaurare, n sensul c baza de date restaurat trebuie, fie s reflecte rezultatele finale ale tranzaciilor, fie s nu fie afectat de acestea. Procesul de restaurare utilizeaz o serie de infromaii obinute prin aplicarea unei anumite strategii de salvare. 75

Datele salvate pot fi diferite combinaii ntre: - copii ale bazei de date i copii ale jurnalelor acesteia; - jurnale ale tranzaciilor; - jurnale ale imaginii nregistrrilor din baza de date. Copiile bazei de date pot fi realizate automat de ctre sistem la anumite intervale de timp, sau la comanda administratorului bazei de date, ori de cte ori este nevoie, de preferat pe suporturi magnetice diferite de cele pe care este stocat baza de date. n cazul unei deteriorri a suportului magnetic care pstreaz baza de date, acesta este singura posibilitate de recuperare a bazei de date. Jurnalul tranzaciilor este un fiier special, ntreinut de SGBD, n care sunt memorate informaii despre tranzaciile efectuate asupra bazei de date, cum sunt: identificatorul sau codul tranzaciei; momentul nceperii execuiei tranzaciei; numrul terminalului sau identificatorul utilizatorului care a iniiat tranzacia; datele introduse; nregistrrile modificate i tipul modificrii. Pe baza lui va putea fi stabilit ulterior succesiunea corect i natura prelucrrilor efectuate n intervalul de timp pentru care trebuie s se sigure restaurarea bazei de date. Jurnalul imaginilor se deosebete de jurnalul tranzaciilor prin aceea c el nu conine descrierea operaiilor efectuate asupra bazei de date ci efectul acestora. Poate mbrca una din urmroarele forme: jurnalul cu imaginea nregistrrilor dup modificare (after image) - va conine copia fiecrei nregistrri ce este modificat, n forma rezultat dup modificare; jurnalul cu imaginea nregistrrilor naintea unei modificri (before image) - va conine copia fiecrei nregistrri ce este modificat, n forma iniial, anterioar efecturii modificrii; jurnalul care conine att imaginea nregistrrilor inainte ct i dup modificare. Restaurarea bazei de date se poate face automat sau manual.

7.2. Securitatea bazei de date


Asigurarea securitii bazei de date presupune interzicerea accesului neautorizat la date. Aceasta se realizeaz cu ajutorul unui set de msuri de protecie umane, software i hardware. 76

O prim astfel de msur o poate constitui izolarea sistemului de calcul n ncperi n care accesul persoanelor s fie permis pe baz de legitimaii sau a altor forme de identificare. Un alt nivel de protecie l poate constitui stabilirea de parole pe baza crora 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 operaie asupra anumitor date. SGBD poate ine i un jurnal pentru urmrirea accesului la baza de date, pe baza cruia pot fi depistate ncercrile de acces neautorizat la baza de date. Pentru cererile de intrare/ieire transmise sistemului de operare de ctre SGBD sunt posibile verificri suplimentare referitoare la utilizarea corect a fiierelor sau a funciilor sistemului de operare. Hardware-ul poate s ofere o protecie 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 urmtoarele mecanisme de asigurare a securitii datelor din baza de date: 1. Autorizarea i controlul accesului la date presupune identificarea utilizatorilor, restricionarea accesului acestora la date precum i restricionarea operaiilor 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 dect un prim obstacol pentru cei care ncearc s violeze securitatea bazei de date. Astfel, pentru fiecare utilizator identificat prin parol, SGBD menine o list a privilegiilor acestuia. De asemenea, utilizatorii pot fi asociai unor grupuri de utilizatori, la drepturile fiecruie dugndu-se drepturile stabilite pentru grupul respectiv. Privilegiile unui utilizator depind astfel de clasa de utilizatori creia i aparine. 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 obinuii, care nu au n proprietate obecte i nu au alte privilegii dect cele motenite ca membrii ai unui grup sau menionate explicit de administratorul bazei de date. 2. Definirea i utilizarea viziunilor. Viziunile (schemele externe) sunt partiii logice ale bazei de date. Ele sunt definite pentru diferii utilizatori n raport cu necesitile acestora de a avea acces la date, putnd fi utilizate pentru a restriciona accesul la date. Privilegiile pentru o viziune sunt specificate independent de cele pentru obiectele pe baza creia este definit. Securitatea datelor este asigurat prin definirea tuturor drepturilor necesare unui utilizator pentru o viziune i revocarea drepturilor pentru obiectele iniiale. 77

Aceast modalitate este suficient n cazul n care asupra datelor viziunii este permis doar operaia de citire. Pentru operaia de modificare trebuiesc avute n vedere efectele laterale pe care aceasta le poate produce asupra obiectelor iniiale. Utilizatorului nu trebuie s i se permit s efectueze asupra viziunii acele operaii care pot afecta obiectele iniiale. n caz contrar, pot s apar erori sau inconsistene n baza de date. 3. Realizarea de proceduri speciale. Unele SGBD ofer facilitatea definirii unor proceduri ce vor fi pstrate la nivelul sistemului ntr-o form precompilat. n cadrul acestor proceduri vor fi specificate explicit operaiile ce trebuie efectuate asupra datelor. Utilizatorului i se va acorda dreptul de execuie a acestor proceduri i i se va interzice accesul direct la obiectele bazei de date gestionate de procedur. 4. Criptarea datelor este operaia de codifcare a datelor n timpul stocrii sau al transportului, astfel nct descifrarea lor s poat fi fcut numai de posesorii de cod. La nivelul SGBD aceast facilitate poate mbrca dou forme: existena unor rutine speciale care realizeaz criptarea datelor la cerere sau automat; existena 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 crui componente sunt: 1. Algoritmul de criptare - realizeaz transformarea datelor din forma iniial n forma criptat (cifrat). 2. Cheia de criptare - valoare ce constituie o intrare a algoritmului de criptare, aleas dintr-o mulime de chei posibile. 3. Algoritmul de decriptare - realizeaz transformarea datelor din forma criptat n forma iniial. 4. Cheia de decriptare - valoare ce constituie o intrare n algoritmul de decriptare, dependent de cheia de criptare.

7.3. ntrebri pentru verificarea cunotinelor


1. Care sunt aspectele asigurririiintegritii datelor ? 2. Cum se poate realiza restaurarea bazei de date n cazul cderilor accidentale ale SGBD sau SO ? 3. Cum se asigura refacerea bazei de date n cazul defectrii suportului de memorie pe care este stocata aceasta ? 4. Ce conine jurnalul tranzaciilor ? 5. Ce conine jurnalul imaginilor ? 78

6. Ce presupune activitatea de asigurare a securitii bazei de date ? 7. Care sunt principalele mecanisme de asigurare a securitii datelor ?

79