Cursuri Baze Date Dan Galatchi ISC

download Cursuri Baze Date Dan Galatchi ISC

of 39

Transcript of Cursuri Baze Date Dan Galatchi ISC

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    1/116

    1. Introducere în BD. Tratarea datelor. Sisteme de gestionare a bazelor

    de date. Sisteme bazate pe fisiere

    1.1 Introducere

    Sistemele de baze de date sunt o componenta esentiala a vietii de zi cu zi în societateamoderna. În cursul unei zile, majoritatea persoanelor desfasoara activitati care implica interactiuneacu o baza de date: depunerea sau extragerea unor sume de bani din banca, rezervarea biletelor de trensau avion, cautarea unei referinte într-o biblioteca computerizata, cumpararea unor produse etc.

    Bazele de date pot avea dimensiuni (numar de înregistrari) extrem de variate, de la câtevazeci de înregistrari (de exemplu, baza de date pentru o agenda cu numere de telefon) sau pot ajungela zeci de milioane de înregistrari (de exemplu, baza de date de plata pentru plata taxelor si aimpozitelor).Utilizatorii unei baze de date au posibilitatea sa efectueze mai multe categorii de operatii asupra

    datelor memorate:• Introducerea de noi date (insert );• Stergerea unora din datele existente (delete);• Actualizarea datelor memorate (update);• Interogarea bazei de date (query) pentru a regasi anumite informatii, selectate dupa un

    criteriu ales.

    În sensul cel mai larg, o baza de date (database) este o colectie de date corelate din punct devedere logic, care reflecta un anumit aspect al lumii reale si este destinata unui anumit grup deutilizatori. În acest sens, bazele de date pot fi create si mentinute manual (de exemplu, fisele deevidenta a cartilor dintr-o biblioteca, asa cum erau folosite cu ani în urma) sau computerizat, asa cum

    este majoritatea bazelor de date folosite în momentul de fata. O definitie într-un sens mai restrâns aunei baze de date este urmatoarea:O baza de date (database) este o colectie de date creata si mentinuta computerizat, care

     permite operatii de introducere, stergere, actualizare si interogare a datelor.Simple colectii de fise (documente pe hârtie) sau fisiere de date, care contin înregistrari de date, darnu permit operatii de interogare, nu sunt considerate baze de date. De exempu, datele memorate înfisiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate deun editor de text (ca Microsoft Word) nu sunt considerate baze de date.

    Modelul relational de BD

    Exista trei modele uzuale de implementare de BD: ierarhic, retea sau relational. Fiecare se bazeaza pe conceptul de date stocate ca set sau multime de înregistrari. Imaginati-va un set de fise,de exemplu. Modelele ierarhic si retea se bazeaza pe parcurgerea legaturilor dintre date pentru alucra cu baza de date; de regula sunt utilizate pentru sisteme-cadru generale, vaste si nu fac obiectulcursului nostru.

    Sistemele de gestionare a bazelor de date relationale (SGBDR) au cunoscut o largaraspândire, datorita modelului simplu, relational de date pe care-l utilizeaza:

    ?  Datele se prezinta sub forma unei colectii (unui set) de relatii?  Fiecare relatie are forma unui tabel (cea mai importanta componenta a unei BD)?  Rândurile (înregistrarile) tabelului reprezinta entitati?  Coloanele (câmpurile) tabelului sunt atribute/proprietati ale acestor entitati

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    2/116

    ?  Fiecare tabel are un set de atribute, care împreuna reprezinta o “cheie” care defineste fiecareentitate în mod unic.De exemplu, o societate poate avea în baza sa de date un tabel cu angajatii sai, cu un

    rând/înregistrare pentru fiecare angajat. Ce atribute ar fi de interes? Depinde, desigur, de scopul pentru care a fost creat tabelul, si atributele sunt stabilite la momentul configurarii bazei de date. Ca

    exemplu aplicatia poate fi un stat de plata, deci va fi nevoie, în afara de nume, cod angajat si deinformatii referitoare la adresa si salariu.

    1.2 Tratarea datelor prin sisteme bazate pe fisiere

    Superioritatea administrarii datelor dintr-o organizatie cu ajutorul unui sistem de gestionarede baze de date (SGBD) rezulta dintr-o scurta comparatie între sistemele traditionale de date, bazate

     pe fisiere si sistemele de gestionare a bazelor de date (SGBD).

    Sistemul bazat pe fisiere  este o colectie de programe de aplicatie care efectueaza servicii

     pentru utilizatorii finali, cum ar fi producerea de rapoarte. Fiecare program defineste si gestioneaza propriile date.

    Exemplu:  o firma care furnizeaza componente pentru diferite proiecte/clienti.Compartimentul magazie (al firmei) va tine fisiere cu:

    -  componentele în stoc, pe fisa fiecarei componente aparând denumirea, seria, costul, nr. bucatietc.

    Compartimentul contabilitate (al firmei) va tine fisiere cu:-  componentele în stoc, documentele de achizitie, intrare, denumirea, seria, costul, nr. bucati

    etc.-  iesirile de componente, cu caracteristicile si cantitatile de componente, documentatie

    însotitoare de iesire (inclusiv numele proiectelor/clientilor catre care se furnizeaza)Compartimentul vânzari (al firmei) va tine fisiere cu:

    -  numele proiectelor catre care se livreaza, inclusiv nume clienti, numar contract, tipuri decomponente livrate

    -  cerintele clientilor, cu detalierea componentelor necesare, inclusiv descrierea componentelor,gradul de urgenta si prioritate etc.

    Rezulta urmatoarele limitari ale sistemelor bazate pe fisiere:

    -  Separarea si izolarea datelor . Atunci când datele sunt izolate în fisiere separate, cele care ar

    trebui sa fie disponibile sunt mai greu de accesat. De exemplu daca vrem sa aflam carecomponente pâna la o anumita limita de pret si în ce cantitate se afla în stoc pentru un anumit proiect, va trebui sa extragem date din fisierul cu proiecte si apoi din cel cu stocuri (fisiereexistând la compartimente diferite), va trebui sa cream un fisier temporar care sa cuprindatoate aceste date. Extragerea corecta de date este dificila, necesitând sincronizarea prelucrarii(în compartimente diferite) a doua sau mai multe fisiere.

    -   Dublarea datelor.  Din cauza modului de abordare descentralizat, specific fiecaruicompartiment, tratarea datelor pe baza de fisiere a dus la dublarea necontrolata a datelor.Observam în exemplul nostru, ca mai multe compartimente au introdus aceleasi date înfisierele lor. Dublarea datelor este de nedorit din urmatoarele cauze:

    o  Risipa: introducerea datelor de mai multe ori costa timp si bani, ocupa spatiusuplimentar de stocare, deci alte costuri;

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    3/116

    o  Alterarea integritatii datelor, prin dublare, deci datele nu mai concorda. De exemplu,daca intrarea unor componente cu pret nou nu este comunicata de catrecompartimentul contabilitate celor de la magazie, aceleasi componente vor aparea înfisierele diferitelor compartimente cu pret diferit.

    -   Dependenta de date. Daca este necesara modificarea structurii unui fisier (de ex. marimeaunui câmp), atunci trebuie identificate toate programele care lucreaza cu acest fisier, pentru aopera modificarile respective în fiecare dintre ele. Aceasta caracteristica a sistemelor bazate

     pe fisiere se numeste dependenta program-date.

    -   Incompatibilitatea fisierelor. Este posibil ca fiecare compartiment sa-si genereze fisiere în altlimbaj de programare; structura fisierelor va fi dependenta de limbajul în care este scris

     programul. De exemplu, daca compartimentul vânzari vrea sa afle detaliile legate de stoculexistent pentru o anume componenta, va încerca sa acceseze fisierul corespunzator alcompartimentului magazie, plecând de la câmpul “denumire componente” existent în fisiereleambelor compartimente; daca fisierele sunt generate cu limbaje diferite, va trebui sa intervina

    un programator care sa scrie un program de transformare a fisierelor într-un format comun.

    -   Interogarea fixa sau proliferarea programelor de aplicatie. Tratarea datelor prin sisteme defisiere a reprezentat un progres semnificativ fata de sistemele manuale. Au crescut cererile deinterogari noi sau modificate, care necesitau de fiecare data interventia programatorului, caretrebuia sa scrie interogarile. Astfel au aparut doua situatii. Pentru a limita volumul de lucru al

     programatorilor, s-a ajuns la fixarea numarului de interogari disponibile. Pentru a satisfacenumarul crescând de cereri de interogari, a proliferat numarul de aplicatii; au rezultat

     programe ineficiente, scrise în graba, cu documentatie limitata si dificil de întretinut. Accesulla fisiere este limitat la un singur utilizator o data, deci nu exista partajarea accesului pentrumai multi utilizatori din acelasi compartiment.

    Limitarile tratarii datelor bazata pe fisiere au doua cauze:(1) definitia datelor este încorporata în programele de aplicatie, în loc de a fi stocata independent;(2) nu exista control asupra accesului si manipularii datelor dincolo de cel impus de programele

    de aplicatie.

    Ca urmare a aparut o noua tratare a datelor, prin baze de date (BD), gestionate de sisteme degestionare a bazelor de date (SGBD).

    1.3 Tratarea datelor prin baze de date (BD)

    Baza de date este o colectie partajata de date între care exista relatii logice (si o descriere aacestor date), proiectata pentru a satisface necesitatile informationale ale unei organizatii.

    Baza de date nu mai este detinuta de un singur compartiment al unei organizatii, ci este oresursa comuna, partajata. Datele sunt integrate, cu o dublare minima. BD contine dateleoperationale ale organizatiei si descrierea acestora.

    O baza de date este deci o colectie autodescrisa de înregistrari integrate. Aceastacaracteristica BD este cunoscuta si ca independenta program - date.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    4/116

    O BD relationala contine entitatile, atributele si relatiile logice dintre acestea, reprezentate printr-o diagrama entitate – relatie (ER). Vom reveni în detaliu asupra modelului ER de BD.

    1.4 Sistemul de gestionare a bazei de date (SGBD)

    SGBD este un sistem de programe care permite utilizatorului definirea, crearea si întretinerea bazei de date si accesul controlat la aceasta.

    SGBD consta în elemente de software care interactioneaza cu programele de aplicatie aleutilizatorului pe de o parte si cu baza de date pe cealalta.

    Un SGBD ofera o serie de facilitati:-   permite definirea BD printr-un limbaj de definire a datelor (DDL)-   permite inserarea, reactualizarea, stergerea si extragerea de date printr-un limbaj de

    manipulare a datelor (DML). BD fiind un depozit unic si central de date si descrieri de date,

    DML poate oferi o interogare generala a acestor date, numita limbaj de interogare . Un astfelde limbaj de interogare este SQL, care elimina utilizarea unui set fix de interogaridisponibile, ca în cazul tratarii datelor prin sisteme de fisiere.

    -  Ofera accesul controlat la BD. Astfel SGBD poate furniza:o  Un sistem de securitate, pentru a împiedica accesul utilizatorilor neautorizatio  Un sistem de integritate, care mentine concordanta datelor stocate;o  Un sistem de control al utilizarii simultane, care permite accesul partajat la BD;o  Un sistem de control al refacerii, care restaureaza BD într-o stare precedenta

    concordanta, ca urmare a unei defectiuni hard sau soft;o  Un catalog accesibil utilizatorilor, care contine descrieri ale datelor din BD

    -  Ofera generarea de vederi/views numite si moduri de vizualizare a BD prin mecanismul devizualizare . Astfel se vor afisa numai acele date din BD care sunt utile utilizatorului,eliminându-se încarcarea rezultatului unei interogari cu date existente în BD, dar care nuintereseaza utilizatorul. Modurile de vizualizare ofera si alte avantaje:

    o  Un anumit nivel de securitate; se exclud date care nu trebuie vazute de anumitiutilizatori;

    o  O personalizare a aspectului BD. De exemplu redenumirea câmpurilor dupa preferintele utilizatorului;

    o  O imagine coerenta, neschimbata a structurii BD, chiar daca BD însasi estemodificata; prin modul de vizualizare se va afisa în continuare structura prestabilita aBD.

    1.5 Componentele mediului SGBD

    Un sistem de baze de date ( Database System) este un sistem computerizat de mentinere aevidentei unei anumite activitati, folosind baze de date. Componentele unui sistem de baze de date

     sunt: hardware, software, utilizatori, date persistente.Hardware . Sistemele de baze de date sunt instalate, de regula, pe calculatoare de uz general,

    de la calculatoare PC standard, pâna la statii multiprocesor puternice. Bineînteles, performantelegenerale de operare ale calculatorului (numarul si viteza procesoarelor, dimensiunea si viteza deoperare a memoriei principale etc.) influenteaza în mod corespunzator performantele sistemului de

     baze de date. Dar, ceea ce intereseaza în mod deosebit în utilizarea unui calculator pentru un sistem

    de baze de date, este volumul (capacitatea) memoriei secundare, utilizata pentru memorarea colectieide date persistente ale bazei de date.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    5/116

    Dat fiind ca într-un sistem de baze de date este necesar accesul rapid la oricare dinînregistrarile de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri).Benzile magnetice (care ofera acces secvential la înregistrarile de date) sunt utilizate numai pentruduplicarea (back-up) si salvarea/restaurarea datelor.

    Software . Între baza de date (colectia de date memorate fizic în fisiere pe hard-discuri) si

    utilizatorii sistemului exista un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD) -( Database Management System -DBMS)

    Fig. 1.1. Componente ale unui sistem de baze de date.

    Sistemul de gestiune a bazei de date - SGBD - ( Database Management System - DBMS )receptioneaza cererile utilizatorilor de acces la baza de date ( pentru operatii de introducere,

     stergere, modificare sau interogare) , le interpreteaza, executa operatiile corespunzatoare sireturneaza rezultatul catre utilizatori.

    Sistemul SGBD ofera utilizatorilor o viziune (vedere - view) a bazei de date la un nivel înaltsi îi elibereaza de necesitatea de a cunoaste organizarea particulara a sistemului (driverele de disc,structura înregistrarilor de date, etc.).

    1.6 Arhitectura interna a sistemelor de baza de date

    Arhitectura interna a unui sistem de baze de date propusa prin standardul ANSI/X3/SPARC(1975) contine trei niveluri functionale: nivelul extern, nivelul conceptual si nivelul intern (fig. 1.2).

     Nivelul extern este o colectie de scheme externe, care sunt vederi ale diferitelor grupuri de utilizatori,existând câte o vedere individuala a datelor pentru fiecare grup ; nivelul conceptual contine schemaconceptuala (logica) a bazei de date, iar nivelul intern contine schema interna (fizica) a bazei de date.

    O schema externa (vedere utilizator ) (external schema, user’s view) contine o subschemaconceptuala a bazei de date, mai precis descrierea datelor care sunt folosite de acel grup deutilizatori.

    Schema conceptuala a bazei de date (conceptual schema) corespunde unei reprezentariunice (pentru toti utilizatorii) si abstracte a datelor, descriind ce date sunt stocate în baza de date si

    care sunt asocierile dintre acestea.Schema in terna (f izica) a bazei de date(internal schema) specifica modul de reprezentare adatelor pe suportul fizic.

    Un sistem de baze de date suporta o schema interna, o schema conceptuala si mai multescheme externe; toate aceste scheme sunt descrieri diferite ale aceleiasi colectii de date, care existadoar în nivelul intern.

    Baza de date

    DateUtilizator

    finalProgramaplicatie

    SGBD

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    6/116

    corespondente (mappings): între schemele externe si schema conceptuala si între schema conceptualasi schema interna.

    Unele sisteme SGBD nu separa complet cele trei niveluri functionale ale bazelor de date,existând posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe în cadrulschemei conceptuale.

    1.7 Avantajele oferite de sistemele de baze de date

    Fata de vechile metode de înregistrare a datelor privind diferite activitati pe fise (documentescrise) sau chiar în fisiere pe disc, sistemele de baze de date ofera avantaje considerabile, ceea ceexplica extinsa utilizare a acestora. Câteva dintre avantajele oferite sunt prezentate în continuare.

    • Compactitate ridicata: volumul ocupat de sistemele de baze de date este mult mai redus decâtvolumul ocupat de documente scrise sau de fisiere necorelate.

    • Viteza mare de regasire si actualizare a informatiilor.

    •  Redundanta scazuta a datelor memorate, care se obtine prin  partajarea datelor între mai multiutilizatori si aplicatii. În stocarea pe fise sau în fisiere a datelor, fiecare aplicatie continea propriileseturi de date. În sistemele de baze de date, mai multe aplicatii pot folosi date comune, memorate osingura data. De exemplu, o aplicatie de personal si o aplicatie de rezultate la examene dintr-ouniversitate care exploateaza o singura baza de date, pot folosi aceleasi informatii referitoare lastructurarea facultatilor si a sectiilor.

    •  Posibilitatea de introducere a standardelor  privind modul de stocare a datelor, ceea ce permiteinterschimbul informatiilor între diferite organizatii.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    7/116

    •  Mentinerea integritatii datelor  prin politica de securitate (drepturi de acces diferentiate în functiede rolul utilizatorilor), prin gestionarea tranzactiilor si prin refacerea datelor în caz de functionaredefectuoasa a diferitelor componente hardware sau software.

    •  Independenta datelor fata de suportul hardware utilizat. Sistemele de gestiune a bazelor de date

    ofera o vedere (view) externa a datelor, care nu se modifica atunci când se schimba suportul dememorare fizic, ceea ce asigura imunitatea structurii bazei de date si a aplicatiilor la modificari alesistemului hardware utilizat.

    1.8 Clasificarea sistemelor de baze de date

    Se pot lua în consideratie mai multe criterii de clasificare ale sistemelor de baze de date.Clasif icare dupa modelu l de date . Majoritatea sistemelor de baze de date actuale sunt

    realizate în modelul de date relational sau în modelul de date obiect. Dezvoltarea continua a acestormodele a condus catre o noua categorie de baze de date, numite obiect-relationale, care combinacaracteristicile modelului relational cu cele ale modelului obiect. De asemenea, mai sunt înca în

    functiune baze de date în modele mai vechi (modelul ierarhic sau modelul retea). Modelele de dateutilizate de sistemele SGBD vor fi prezentate în sectiunea urmatoare.

    Clasi fi care dupa numaru l de util izatori . Majoritatea sistemelor de baze de date sunt sistememultiutilizator , adica permit accesul concurent (în acelasi timp) a mai multor utilizatori la aceeasi

     baza de date. Un numar redus de sisteme de baze de date sunt de tip monoutilizator , adica suportaaccesul doar al unui singur utilizator (la un moment dat).

    Clasif icare dupa numarul de stati i pe care este stocata baza de date . Exista doua categoriide sisteme de baze de date: centralizate si distribuite.

    Un sistem de baze de date centralizat (Centralized Database System) este un sistem de bazede date în care datele si sistemul de gestiune sunt stocate pe o singura statie (calculator).

    Un sistem centralizat poate suporta unul sau mai multi utilizatori, dar, în orice situatie, datelesi sistemul de gestiune rezida în întregime pe o singura statie.

    Un sistem de baze de date distribuit ( Distributed Database System)  poate avea atât datele,cât si sistemul de gestiune, distribuite în mai multe statii interconectate printr-o retea decomunicatie.

    Sistemele de baze de date pot fi reprezentate din punct de vedere al functionarii lor printr-oarhitectura de tip client-server.

    Într-un sistem centralizat (fig. 1.3) exista un singur  server , care este chiar sistemul SGBD,care raspunde cererilor unui singur client (în sistemele mono-utilizator, fig. 1.3, a) sau mai multorclienti (în sistemele multi-utilizator, fig. 1.3, b), care acceseaza baza de date respectiva. Clientii sunt

     programe de aplicatii oferite de furnizorul sistemului de gestiune sau dezvoltate de programatori.

    Aplicatiile client pot fi executate pe statii diferite, conectate printr-o retea de comunicatie custatia pe care ruleaza serverul. Aceasta arhitectura permite o prelucrare distribuita a datelor si, maimult, o configurare a sistemului adaptata cerintelor de calcul particulare. Astfel, serverul bazei dedate poate fi un sistem puternic, echipat corespunzator (cu volum mare de memorie secundara), întimp ce fiecare client este o statie personala, cu putere de calcul adecvata aplicatiei executate.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    8/116

    Sistemele de baze de date distribuite pot fi reprezentate într-un mod asemanator din perspectiva structurarii client-server (fig. 1.4).

    O baza de date distribuita este o colectie de date care apartin din punct de vedere logicaceluiasi sistem, dar care pot sa fie, din punct de vedere fizic, memorate în mai multe statii de calcul(locatii - sites) conectate printr-o retea de comunicatie. Sistemul software care gestioneaza o astfel de

     baza de date se numeste Sistem de Gestiune a Bazei de Date Distribuite - SGBDD - ( Distributed Database Management System - DDBMS ). Aplicatiile client ruleaza pe alte statii din retea si solicitaservicii de la sistemul de gestiune distribuit.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    9/116

    Exista numeroase avantaje ale sistemelor de baze de date distribuite (cresterea capacitatii destocare si prelucrare a datelor, cresterea disponibilitatii si a partajarii datelor, etc.), dar si o crestereconsiderabila a complexitatii acestora.

    Cea mai importanta cerinta pe care trebuie sa o îndeplineasca sistemele de gestiune a bazelorde date distribuite este de a asigura administrarea transparenta a datelor. Transparenta se refera la

    capacitatea unui sistem distribuit de a ascunde detaliile de implementare, astfel încât utilizatorii sa poata accesa datele pe baza unui model de nivel înalt, fara a fi necesara cunoasterea exacta a moduluide amplasare, replicare sau comunicare a datelor.

    Sistemele de gestiune a bazelor de date distribuite comerciale nu ofera în momentul de fataun nivel suficient de transparenta a localizarii datelor, dar dezvoltarea continua a acestora va putea saasigure în viitor aceasta cerinta.

    1.9 Modelarea datelor

    Un model este o abstractizare a unui sistem, care capteaza cele mai importante trasaturicaracteristice ale sistemului (concepte), relevante din punct de vedere al scopului pentru care se

    defineste modelul respectiv. Tehnica de identificare a trasaturilor caracteristice esentiale ale unuisistem se numeste abstractizare.

    Un model de date stabileste regulile de organizare si interpretare a unei colectii de date. În proiectarea bazelor de date se folosesc, de regula, mai multe modele de date, care se pot clasifica îndoua categorii: modele conceptuale de nivel înalt si modele specializate.

    Un model conceptual de nivel înalt al datelor contine o descriere concisa a colectiilor de datecare modeleaza activitatea dorita (numita schema conceptuala de nivel înalt ), fara sa detalieze modulde reprezentare sau de prelucrare a datelor.

     Modelele specializate de date (cum sunt: modelul ierarhic, modelul retea, modelul relational,etc.) impun anumite structuri speciale de reprezentare a multimilor de entitati si a asocierilor dintreacestea, structuri pe baza carora sunt dezvoltate sistemele de gestiune a bazelor de date. Într-un astfelde model de date, o baza de date este reprezentata printr-o schema conceptuala (logica) specifica.Trecerea de la modelul conceptual de nivel înalt la un model de date specific reprezinta etapa de

     proiectare logica a bazei de date care asigura corespondenta dintre schema conceptuala de nivel înalta bazei de date si schema conceptuala specifica modelului de date respectiv.

    1.9.1 Modele conceptuale de nivel înalt

    Cel mai utilizat model conceptual de nivel înalt este modelul Entitate-Asociere (E-A) carereprezinta schema conceptuala de nivel înalt a bazei de date prin multimi de entitati si asocieri dintreacestea. Dezvoltarea acestui model, astfel încât sa permita extinderea tipurilor de entitati, este

    cunosuta sub numele de model Entitate-Asociere Extins (E-AE). Proiectarea modelului E-A sau almodelului E-AE este, de regula, una din primele etape în proiectarea bazelor de date, etapa numita proiectarea schemei conceptuale.

    1.9.1.1 Modelul Entitate-Asociere

     Modelul Entitate-Asociere (Entity-Relationship Model), introdus în 1976 de P.S. Chen, esteun model conceptual de nivel înalt al unei baze de date, care defineste multimile de entitati siasocierile dintre ele, dar nu impune nici un mod specific de structurare si prelucrare ( gestiune) adatelor.

    Elementele esentiale ale modelului Entitate-Asociere folosit în proiectarea bazelor de date

    sunt entitatile (entities) si asocierile dintre acestea (relationships).

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    10/116

    O enti tate (entity) este „orice poate fi identificat în mod distinctiv"; o entitate se refera la unaspect al realitatii obiective care poate fi deosebit de restul universului si poate reprezenta un obiect

     fizic, o activitate, un concept, etc. Orice entitate este descrisa prin atributele sale.Un atribut (attribute) este o proprietate care descrie un anumit aspect al unei entitati.Atributele prin care este descrisa o entitate se aleg pe baza criteriului relevantei relativ la

    domeniul de interes pentru care se defineste modelul respectiv, astfel încât sa asigure diferentiereaacelei entitati fata de restul universului.Toate entitatile similare, care pot fi descrise prin aceleasi atribute, apartin unui acelasi tip de

    entitate (entity type), iar colectia tuturor entitatilor de acelasi tip dintr-o baza de date constituie omultime de entitati (entities set ). În general, în modelul E-A se foloseste aceeasi denumire atât pentruun tip de entitate cât si pentru multimea entitatilor de acel tip.

    De exemplu, tipul de entitate „angajat” (al unei institutii) reprezinta orice persoana angajata ainstitutiei, care are o anumita functie si primeste un anumit salariu. Acest tip de entitate poate fidescris prin mai multe atribute, dintre care o parte sunt atribute de identificare a persoanei(Nume,Prenume,DataNasterii,Adresa), iar altele sunt atribute legate de activitatea acesteia îninstitutia respectiva (Functie,Salariu).

    Prin analogie cu modelul obiect, se poate spune ca un tip de entitate corespunde unei clase, oentitate este o instanta a unui tip de entitate si corespunde unui obiect, iar multimea entitatilor de untip dat corespunde multimii obiectelor (instantelor) unei clase.

    În proiectarea bazelor de date se considera doua categorii de entitati: entitati normale(puternice, obisnuite - regular entities) si entitati slabe (dependente - weak entities).

    Entitatile normale au o existenta proprie în cadrul modelului, în timp ce entitatile slabe nu potexista decât daca exista o entitate normala (puternica) cu care sunt asociate. De exemplu, o entitate„dependent” poate sa reprezinte o persoana care depinde de un angajat al unei institutii (adica se aflaîn întretinerea acestuia). O entitate „angajat” este o entitate puternica, deoarece ea exista în modnormal în modelul activitatii institutiei, în timp ce o entitate “dependent” este o entitate slaba: nu seva înregistra o astfel de persoana decât daca parintele (sustinatorul) acesteia este angajat în aceainstitutie.

    În proiectarea bazelor de date se definesc asocieri între multimile de entitati componente, pentru a reprezenta anumite aspecte ale realitatii pe care baza de date o modeleaza.

    O asociere (relationship) este o corespondenta între entitati din doua sau mai multe multimide entitati. 

    Gradul unei asocieri este dat de numarul de multimi de entitati asociate. Asocierile pot fi binare (de gradul 2, între 2 multimi de entitati) sau multiple (între k multimi de entitati, k > 2).

     Asocierile binare sunt, la rândul lor, de trei categorii, dupa numarul elementelor din fiecaredintre cele doua multimi puse în corespondenta de asocierea respectiva (fig. 1.5). Fiind date douamultimi de entitati, E 1 si E 2, se definesc urmatoarele categorii de asocieri binare:

    •  Asocierea “unul-la-unul” (one-to-one) este asocierea prin care unui element(entitate) din multimea  E 1 îi corespunde un singur element din multimea  E 2, si reciproc; senoteaza cu 1:1.

    •  Asocierea „unul-la-multe” (one-to-many) este asocierea prin care unui element dinmultimea E 1 îi corespund unul sau mai multe elemente din multimea  E 2, dar unui element din

     E 2 îi corespunde un singur element în multimea E 1; se noteaza cu 1: N .•  Asocierea „multe-la-multe” (many-to-many) este asocierea prin care unui element

    din multimea  E 1 îi corespund unul sau mai multe elemente din multimea  E 2 si reciproc; senoteaza cu M : N .Cardinalitatea (multiplicitatea) unei asocieri fata de o multime de entitati (cardinality,

    multiplicity) este numarul maxim de elemente din acea multime care pot fi asociate cu un element

    din alta multime a asocierii.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    11/116

    Fig. 1.5. Categorii de asocieri între doua multimi de entitati: a - asociere 1:1; b - asociere 1: N ; c-

    asociere M : N .De exemplu, asocierea 1: N dintre multimile  E 1 si E2  prezinta multiplicitatea 1 fata de

    multimea E 1 si multiplicitatea N (se întelege o valoare oarecare N > 1) fata de multimea E 2. Raportuldintre valorile cardinalitatilor unei asocieri binare fata de cele doua multimi de entitati se numesteraport de cardinalitate (cardinality ratio). Se poate observa ca cele trei categorii de asocieri descrisemai sus difera între ele prin raportul de cardinalitate.

     Asocierile multiple (k -are, k > 2) prezinta câte un raport de cardinalitate pentru fiecare pereche de multimi de entitati pe care le asociaza.

    O asociere între doua sau mai multe multimi de entitati este, în acelasi timp, o asociere întretipurile de entitati corespunzatoare.

    Diagrama Entitate-Asociere ( Entity-Relationship Diagram) reprezinta modelul Entitate- Asociere prin multimile de entitati si asocierile dintre acestea.

    Exista numeroase variante de notatii pentru redarea diagramei  E - A. Una dintre cele maifolosite notatii reprezinta un tip de entitate (precum si multimea de entitati de acel tip) printr-undreptunghi, iar atributele tipului de entitate prin elipse conectate printr-o linie continua la acesta (fig.1.6). Pentru entitatile puternice se utilizeaza un dreptunghi încadrat cu o linie simpla, iar pentruentitatile slabe se utilizeaza un dreptunghi încadrat cu linie dubla.

    Fig. 1.6. Notatiile diagramei Entitate-Asociere ( E - A).

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    12/116

    O asociere (tip de asociere) dintre doua sau mai multe tipuri de entitati se reprezinta printr-unromb conectat prin link-uri (linii continue, formate din unul sau mai multe segmente) la tipurile deentitati asociate. O asociere poate sa aiba sau nu un nume; daca are un nume, acesta poate fi înscris înrombul respectiv sau în vecinatatea acestuia. Categoria asocierii se noteaza prin înscriereamultiplicitatii pe fiecare link care conduce la un tip de entitate. Este posibil ca o asociere sa prezinte

    ea însasi atribute, si aceste atribute se reprezinta prin elipse conectate la asocierea respectiva.

    Exemplu. În continuare se exemplifica dezvoltarea modelului conceptual de nivel înalt alunei baze de date a unei institutii si diagrama  E - A corespunzatoare, definind câteva tipuri de entitatisi asocierile între acestea. Diagrama  E - A a acestui mic model de baza de date este prezentata înfigura. 1.7.

    Fig. 1.7. Exemplu de diagrama E - A.

    Tipul de entitate „sectie” reprezinta o unitate de organizare a institutiei si este un tip deentitate puternica (de sine statatoare). Acest tip se caracterizeaza prin mai multe atribute, deexemplu, un numar al sectiei, numele sectiei si bugetul alocat. Multimea de entitati care grupeazatoate entitatile de acest tip se poate denumi SECTIE sau SECTII (oricare varianta poate fi folosita) sieste caracterizata prin aceleasi atribute care caracterizeaza tipul entitatii:

    SECTIE(Numar,Nume,Buget)Tipul de entitate „angajat” reprezinta o persoana angajata în institutie si este de asemenea un

    tip de entitate puternica. Acest tip de entitate, ca si multimea de entitati care grupeaza toate entitatilede acest tip, se poate defini astfel

     ANGAJAT(Nume,Prenume,DataNasterii,Adresa,Functie,Salariu)Tipul de entitate „proiect” reprezinta o activitate a institutiei, si este de asemenea un tip de

    entitate puternica, care poate fi caracterizat prin numele proiectului, data începerii, termen derealizare, bugetul proiectului:

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    13/116

    PROIECT(Nume,DataInceperii,Termen,Buget)Tipul de entitate „dependent” reprezinta o persoana care depinde de un angajat al institutiei

    (adica se afla în întretinerea acestuia). Acest tip de entitate este un tip de entitate slaba: nu se vaînregistra o astfel de persoana decât daca întretinatorul acesteia este angajat în acea institutie. Acesttip se poate defini astfel:

    DEPENDENT(Nume,Prenume,DataNasterii,GradRudenie)Asocierea SECTIE-ANGAJAT este o asociere 1: N , daca se considera ca o sectie cuprinde

    mai multi angajati, iar un angajat apartine unei singure sectii.Asocierea ANGAJAT-PROIECT este o asociere  M : N , daca se considera ca la fiecare proiect

    lucreaza mai multi angajati, si fiecare angajat poate lucra la mai multe proiecte.Asocierea ANGAJAT-DEPENDENT este o asociere de tipul 1: N , deoarece un angajat poate

    întretine mai multe persoane (fii, parinti etc.), iar o persoana dependenta este în întretinerea unuisingur sustinator.

    Raportul de cardinalitate al unei asocieri este stabilit de proiectant astfel încât sa reflecte câtmai corect modul de organizare a activitatii modelate. De exemplu, asocierea ANGAJATI-PROIECTE are raportul de cardinalitate  M : N daca în institutia respectiva se admite ca un angajat sa

    lucreze la mai multe proiecte; daca s-ar impune ca un angajat sa lucreze la un singur proiect, atunciasocierea respectiva ar avea raportul de cardinalitate N :1. În ambele situatii se admite ca la un proiectlucreaza mai multi angajati.

    Sunt de remarcat câteva caracteristici generale ale modelului E - A:a) Modul de stabilire a tipurilor de entitati si a asocierilor dintre acestea nu este unic,

    deoarece granita dintre entitati si asocieri nu este, în general, una bine precizata. Aceeasifunctionalitate se poate obtine printr-o varietate de diagrame E-A, depinzând de felul în care

     proiectantul dezvolta modelul conceptual. O asociere poate fi considerata si ca un tip de entitate. Deexemplu, pentru baza de date a unei facultati (scoli) se definesc tipurile (multimile) de entitati:

    STUDENTI(Nume,Prenume,Adresa,...)DISCIPLINE(Denumire,Credite,...)

    Între aceste multimi de entitati se poate defini asocierea STUDENTI-DISCIPLINE, curaportul de cardinalitate  M : N . Aceasta asociere reprezinta (în general) studierea unor discipline decatre studenti, cu atribute ca: Nota (examenului la disciplina respectiva), DataExamen, etc. Dar, la felde bine, este posibil sa se defineasca tipul de entitate NOTE, aflat în asociere N:1 cu fiecare dintipurile de entitati STUDENTI si DISCIPLINE (fig. 1.8).

    Fig. 1.8. Diferite moduri de definire a tipurilor de entitati si a asocierilor:a- asociere M : N între multimile de entitati STUDENTI si DISCIPLINE;

    b - multimea de entitati EXAMENE este asociata cu raportul de cardinalitate N :1cu fiecare din multimile de entitati STUDENTI si DISCIPLINE.

     b) În modelul  E - A, tipul de entitate (si multimea de entitati corespunzatoare) semnifica unsubstantiv, în timp ce o asociere semnifica un verb. Bineînteles, nu este obligatoriu ca numele datunei asocieri sa fie un verb (si, de cele mai multe ori, nici nu este), dar o asociere reprezinta ointeractiune între tipurile de entitati (si multimile de entitati corespunzatoare), care poate fi exprimata

     printr-un verb. De exemplu, în diagrama  E - A din figura 1.7, asocierea SECTIE-ANGAJAT poate fi

    exprimata prin verbul cuprinde, asocierea ANGAJATI-DEPENDENTI poate fi exprimata prinverbul întretine, asocierea ANGAJATI-PROIECTE poate fi exprimata prin verbul lucreaza etc.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    14/116

    c) Modelul  E - A nu precizeaza modul cum sunt realizate asocierile între multimile de entitati.Acest aspect depinde de modelul de date specializat utilizat pentru definirea bazei de date. Deexemplu, în modelele ierarhic si retea, asocierile sunt realizate explicit, prin pointeri de la o entitatela entitatile asociate, în timp ce în modelul relational asocierea se realizeaza prin egalitatea valorilorunor atribute comune ale entitatilor (chei).

    1.9.1.2 Modelul Entitate-Asociere Extins

     Modelul Entitate-Asociere Extins ( Enhanced Entity-Relationship Model ) permite definirea de subtipuri ale unui tip de entitati, care mostenesc atribute de la tipul de entitate pe care il extind ( sicare, în acest context, se numeste supertip)  si au în plus atribute specifice semnificatiei lor. Prindefinirea tipurilor si a subtipurilor de entitati se pot crea ierarhii de tipuri de entitati pe mai multeniveluri.

    Modelul  E - A  prezentat în capitolul precedent este suficient pentru modelarea aplicatiilor de baze de date „traditionale”, adica bazele de date utilizate pentru activitati financiare si industriale, încare se folosesc tipuri de date simple. Odata cu dezvoltarea sistemelor de baze de date, domeniile în

    care acestea se folosesc au devenit tot mai numeroase, ca, de exemplu: telecomunicatiile, proiectareatehnologica, sistemele de informatii geografice, seviciul Web, etc. Tipurile de entitati definite înastfel de baze de date sunt mult mai complexe si pentru reprezentarea lor cât mai intuitiva si maicompacta au fost propuse mai multe concepte noi, care au fost introduse în modelul E - A extins.Modelul E - A extins se reprezinta printr-o diagrama  E - A extinsa. Ierarhiile de tipuri se pot crea prin

     specializare sau generalizare.Specializarea ( specialization) este un proces de abstractizare a datelor prin care, pornind de

    la un tip de entitate dat, se definesc unul sau mai multe subtipuri, diferentiate între ele în functie derolul specific pe care îl au în modelul de date.

    De exemplu, pornind de la tipul de entitate ANGAJAT se definesc prin specializaresubtipurile SECRETARA, TEHNICIAN, INGINER, pentru a diferentia functiile pe care angajatii le

     pot avea în întreprinderea respectiva (fig. 1.9). Litera “d” din marcajul de specializare a tipurilorindica o constrângere de disjunctie impusa specializarii, care va fi descrisa mai jos.Subtipurile de entitati mostenesc atribute ale tipului initial si fiecare dintre ele are atributesuplimentare, specifice rolului lor. De exemplu, atributele (Nume, Prenume, DataNasterii, Adresa,Salariu) ale tipului de entitate ANGAJAT sunt mostenite de fiecare din subtipurile acestuia. AtributulFunctie nu este mostenit, deoarece specializarea subtipurilor s-a efectuat dupa acest atribut. Caatribute specifice, subtipul SECRETARA are atributul VitezaRedactare, care este o masura acalificarii, subtipul TEHNICIAN are atributul Calificare, care reprezinta gradul de calificare, iarsubtipul INGINER are atributul Specialitate, care este o precizare a domeniului in care lucreaza(mecanic, electric, etc.).

    Generalizarea ( generalization) este procesul de abstractizare invers specializarii, prin care se creaza un supertip de entitate pornind de la mai multe tipuri de entitati.Pentru definirea unei generalizari, se identifica atributele comune ale mai multor tipuri de

    entitati si aceste atribute vor caracteriza supertipul de entitate, iar atributele care difera de acestearamân specifice fiecarui tip.

    De exemplu, daca au fost definite tipurile de entitati: AUTOMOBIL (NrInregistrare, Marca,VitezaMaxima, Pret, NumarPasageri) si CAMION(NrInregistrare, Marca, VitezaMaxima, Pret,Tonaj), se poate defini un supertip al acestor tipuri: VEHICUL (NrInregistrare, Marca,VitezaMaxima, Pret). Acest tip va cuprinde toate atributele comune, iar tipurile initiale,AUTOMOBIL si CAMION, devin subtipuri ale tipului VEHICUL, fiecare continând atributelespecifice (NumarPasageri pentru tipul AUTOMOBIL si Tonaj pentru tipul CAMION).

    Rezultatul obtinut prin generalizare este, ca si în cazul specializarii, o ierarhie de tipuri deentitati; ceea ce difera este modul în care se definesc nivelurile ierarhiei.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    15/116

    Fig.1.9. Diagrama E-A extinsa cu ierarhie de tipuri de entitati.

    Mosteni rea atributelor . Proprietatea principala a ierarhiilor de tipuri de entitati create prinspecializare sau generalizare este mostenirea atributelor : atributele tipurilor de entitati de nivelridicat (supertipuri) sunt mostenite de tipurile de entitati de nivel scazut (subtipuri).

    Mostenirea dintre un subtip de entitati si supertipul acestuia se reprezinta în diagrama E-Aextinsa printr-o legatura (link ) între subtip si supertipul de entitate corespunzator pe care este plasatun semicerc orientat catre subtip (asa cum se poate vedea în figura 1.9).

    Este evidenta asemanarea dintre ierarhiile de tipuri de entitati din modelul E-A extins siierarhiile de clase din modelul obiect-orientat, dar modelul  E - A extins este un model de date multmai general (de nivel inalt), care poate fi transpus în diferite modele de date specializate, inclusivmodelul obiect-orientat. Aceste transpuneri se fac în functie de suportul oferit de modelul specializatrespectiv pentru reprezentarea entitatilor, asocierilor, mostenirilor, etc.

    1.9.2 Modele specializate de date1.9.2.1 Modelul de date ierarhic

     În modelul ierarhic ( Hierarchical Model ) o baza de date se reprezinta printr-o structuraierarhica de înregistrari de date (records) conectate prin legaturi (links).

    Modelul de date ierarhic a fost primul model folosit pentru dezvoltarea bazelor de date. Ceamai cunoscuta realizare de SGBD ierarhic este sistemul IMS ( Information Management System)dezvoltat de firma IBM în cadrul programului de cercetari Apollo, în perioada anilor 1960.

    O înregistrare de date în modelul ierarhic este o instanta a unui tip de înregistrare (recordtype) si consta dintr-o colectie de câmpuri ( fields), fiecare câmp continând valoarea unui atribut. Untip de înregistrare corespunde unui tip de entitate, iar o înregistrare corespunde unei entitati dinmodelul E-A.

    Un tip de legatura în modelul ierarhic este un tip de asociere cu raportul de cardinalitate 1:N(de tip parinte-fiu) între doua tipuri de înregistrari. Tipul de înregistrare din partea cu multiplicitatea1 a asocierii este numit tip de înregistrare  parinte, iar tipul din partea cu multiplicitatea N a asocieriieste numit tip de înregistrare fiu.

    Schema conceptuala a unei baze de date în modelul ierarhic se reprezinta printr-un numaroarecare de scheme ierarhice (fig. 1.12). O schema ierarhica este un arbore directionat, reprezentat pe

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    16/116

    mai multe niveluri, în care nodurile sunt tipurile de înregistrari, iar arcele sunt tipurile de legaturi.Fiecare nod (cu exceptia nodului radacina) are o singura legatura catre un nod de pe un nivel superior(nodul parinte) si fiecare nod (cu exceptia nodurilor frunza) are una sau mai multe legaturi catrenoduri de pe nivelul imediat inferior (noduri fii).

    Se poate stabili o corespondenta între o schema conceptuala ierarhica si o diagrama E-A:

    tipurile de înregistrari corespund tipurilor de entitati, iar tipurile de legaturi corespund tipurilor deasocieri. (fig. 1.12, a si b).În modelul ierarhic nu sunt admise decât legaturi de tipul parinte-fiu, care corespund

    asocierilor 1:1 si asocierilor 1:N din modelul E-A. Asocierile M:N din modelul E-A nu se potreprezenta în mod direct în modelul ierarhic, ci numai prin multiplicarea înregistrarilor de tip fiu,atunci când sunt referite de mai multe înregistrari de tip parinte. Acest lucru conduce la o mareredundanta a datelor.

    Corespunzator schemei ierarhice a unei baze de date se pot reprezenta mai multi arbori deinstantiere a datelor, care sunt, de asemenea, arbori directionati (fig. 1.12, c). Fiecare arbore deinstantiere contine ierarhii pe mai multe niveluri de înregistrari între care exista legaturi de tipul

     parinte-fiu.

    Fig. 1.12. Baza de date ierarhica: a - diagrama E - A;b - schema conceptuala a bazei de date ierarhice; c - arbori de instantiere a datelor.

    Corespunzator schemei ierarhice a unei baze de date se pot reprezenta mai multi arbori deinstantiere a datelor, care sunt, de asemenea, arbori directionati (fig. 1.12, c). Fiecare arbore deinstantiere contine ierarhii pe mai multe niveluri de înregistrari între care exista legaturi de tipul

     parinte-fiu.Avantajele modelul ierarhic sunt simplitatea si eficienta de calcul, dar în momentul de fata,

     pentru realizarea bazelor de date sunt preferate modele de date mai puternice (modelul relational,modelul obiect-orientat).

    1.9.2.2 Modelul de date retea

     Modelul retea ( Network Model )  foloseste o structura de graf pentru definirea schemeiconceptuale a bazei de date; nodurile grafului sunt tipuri de entitati (înregistrari - records), iar

    muchiile grafului reprezinta în mod explicit asocierile (legaturile-links) dintre tipurile de entitati.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    17/116

    Aparut dupa modelul ierarhic, modelul retea de reprezentare a bazelor de date a foststandardizat în 1971, de o comisie DBTG ( Database Task Group). Modelul retea a avut mai multeimplementari ca sisteme de gestiune comerciale: IDS II (Honeywell), UNISYS (Burroughs), IDMS(Computer Associates).

    Deosebirea fata de modelul ierarhic consta în aceea ca în modelul retea asocierile M:N se

    reprezinta fara duplicarea înregistrarilor, fiecare înregistrare putând fi referita de mai multeînregistrari, ceea ce elimina redundanta.La fel ca si la modelul ierarhic, dezavantajul principal al modelului retea este acela ca fiecare

    interogare trebuie sa fie prevazuta înca din faza de proiectare, prin memorarea explicita a legaturilorîntre tipurile de entitati. În plus, complexitatea reprezentarii datelor în modelul retea este deosebit deridicata, iar programatorii trebuie sa o cunoasca pentru a putea realiza aplicatiile necesare.

    În momentul de fata modelul de date retea este foarte rar utilizat pentru baze de date de uzgeneral (care implica operatii de interogare), dar exista unele domenii în care structurarea ca graf adatelor permite o parcurgere eficienta a acestora. De exemplu, majoritatea bazelor de date graficefolosite în modelarea scenelor tridimensionale din realitatea virtuala sunt baze de date retea [Ion96a].

    1.9.2.3 Modelul de date relational

     Modelul relational ( Relational Model )  se bazeaza pe notiunea de relatie (relation) dinmatematica, care corespunde unei multimi de entitati de acelasi tip.

    Modelul de date relational a fost propus de cercetatorul E.F. Codd de la compania IBM, carea publicat în anul 1970 lucrarea "Un model Relational de Date pentru Banci Mari de Date Partajate"[Codd70]. Alte lucrari ale lui Codd, ca si ale altor cercetatori (C.J. Date, P. Chen, R. Boyce, J.D.Ullman, R. Fagin, W.W. Armstrong, M. Stonebraker, etc.) au perfectionat modelul de date relationalsi au permis dezvoltarea fara precedent a sistemelor de gestiune a bazelor de date, datorita simplitatiisi a fundamentarii matematice a modelului.

    Primul Sistem de Gestiune a Bazelor de Date Relationale (SGBDR) a fost prototipul System R, dezvoltat la compania IBM în anii 1970, dupa care numeroase companii au realizat sisteme degestiune relationale (Oracle, Microsoft, Ingres, Sybase, etc.) iar aplicatiile de baze de date relationaleau capatat o amploare deosebita.

    Pe lânga avantajul unui model de date precis si simplu, sistemele de baze de date relationalemai beneficiaza si de un limbaj de programare unanim recunoscut si acceptat, limbajul SQL(Structured Query Language), pentru care au fost emise mai multe standarde de catre ISO( International Standardization Office). Majoritatea SGBD-urilor relationale actuale implementeazaversiunea SQL92 (sau SQL2).

    1.9.2.4 Modelul de date obiect-orientat

     Modelul obiect (Object Model ) este un concept unificator în stiinta calculatoarelor, fiindaplicabil în programare, în proiectarea hardware-ului, a interfetelor, a bazelor de date, etc.Sistemele de baze de date obiect- orientate se bazeaza pe limbaje de programare obiect-orientate cucapacitati de persistenta, în care datele sunt independente de timpul de viata al programelor care lecreeaza, prin memorare pe suport magnetic (disc).

    Oricât de folositor este modelul de date relational pentru realizarea bazelor de date, existaunele domenii (în special acele domenii în care se manevreaza tipuri de date complexe), în caremodelul relational s-a dovedit a fi insuficient de expresiv si cu performante de executie reduse.Domenii ca: proiectarea asistata de calculator, sisteme de informatii geografice, medicina (si altele)au impulsionat cercetari pentru gasirea unor modele mai performante, dintre care modelul obiect-

    orientat si modelul obiect-relational au cunoscut si cunosc în continuare o dezvoltare semnificativa.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    18/116

    Caracteristicile importante ale modelului obiect (abstractizarea, mostenirea, încapsularea,modularitatea) sunt intens dezbatute si analizate mai ales din perspectiva proiectarii si programariiobiect-orientate.

    Din perspectiva realizarii bazelor de date, o alta proprietate a modelul obiect, persistenta, esteaceea care asigura memorarea transparenta pe suport magnetic a obiectelor care alcatuiesc o baza de

    date obiect-orientata.Pentru dezvoltarea unui sistem de gestiune a bazelor de date obiect- orientate (SGBDOO) se poate aborda una din urmatoarele strategii:

    • Extinderea unui limbaj de programare obiect-orientat cu capacitati de administrare aobiectelor persistente. Sistemul GemStone este un astfel de SGBDOO, dezvoltat prinextinderea limbajelor C++ si Java.

    • Extinderea unui limbaj de programare relational cu capacitati de orientare spre obiecte. Unastfel de limbaj este limbajul ODL (Object Query Language) (sau Object SQL), specificat

     prin standardul propus de consortiul Object Database Management Group, din care fac

     parte principalii producatori de sisteme de baze de date obiect-orientate. Exista mai multeastfel de sisteme, cum sunt: Ontos, Versant, O

    2.

    • Dezvoltarea unui limbaj obiect-orientat pentru baze de date complet nou, care sa asigurecrearea si interogarea obiectelor persistente. Exista si astfel de produse, ca de exemplusistemul SIM (Semantic Information Manager ).

    Dintre avantajele cele mai importante ale sistemelor de baze de date dezvoltate în modelulobiect se evidentiaza capacitatea acestora de a defini si manevra tipuri de date complexe (clase), carese pot extinde prin mecanismul de mostenire, ceea ce contribuie la cresterea performantelor în

    aplicatiile de baze de date avansate.Exista, bineînteles, si dezavantaje ale sistemelor de baze de date obiect-orientate, care le facsa aiba o utilizare limitata, mult mai redusa decât cea a sistemelor de baze de date relationale (sub5% din piata sistemelor de baze de date). Principalul dezavantaj îl constitue complexitatea dedezvoltare a bazei de date si a aplicatiilor, datorita faptului ca proiectantii si programatorii trebuie sa

     prevada în structura obiectelor toate asocierile (legaturile) necesare tuturor interogarilor. Cu câtinterogarile sunt mai complexe, cu atât sunt necesare mai multe asocieri între obiecte si deci secomplica structura acestora. La acest dezavantaj se adauga si altele, cum ar fi lipsa unui standard delimbaj de interogare care sa fie unanim (sau cât mai larg) acceptat.

    1.9.2.5 Modelul de date obiect-relational

     Modelul obiect-relational (Object-Relational Model ) reprezinta extinderea modeluluirelational cu caracteristici ale modelului obiect, extindere necesara pentru realizarea bazelor dedate care definesc si prelucreaza tipuri de date complexe.

    În esenta, modelul obiect-relational pastreaza structurarea datelor în relatii (reprezentate catabele), dar adauga posibilitatea definirii unor noi tipuri de date, pentru domeniile de valori aleatributelor. Tipurile de date definite de utilizator pot fi extinse prin mecanismul de mostenire si

     pentru fiecare tip sau subtip se pot defini metode pe care le pot executa obiectele de acel tip.În general, dezvoltarea sistemelor de gestiune a bazelor de date obiect-relationale (SGBDOR) serealizeaza prin extinderea sistemelor relationale, de cele mai multe ori în mod gradat, adaugându-sede la o versiune la alta cât mai multe caracteristici posibile ale modelului obiect si pastrând în

    continuare toate caracteristicile modelului relational.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    19/116

    O astfel de abordare asigura rularea în continuare a aplicatiilor relationale existente în noileversiuni de sisteme SGBDOR, ceea ce permite producatorilor sa-si pastreze clientii si domeniile deutilizare. Mai multi dintre principalii producatori de sisteme de gestiune (Oracle, Informix si IBM)au extins în acest mod sistemele lor relationale pentru a deveni sisteme obiect-relationale. Este otendinta fireasca, dat fiind ca prin aceasta se pastreaza toata experienta si rezultatele obtinute cu

    sistemele relationale si se pot dezvolta si aplicatii complexe, obiect-relationale.Standardele limbajelor de programare pentru sistemele de gestiune obiect-relationale sunt extensiiale standardului SQL (ca de exemplu, versiunea din anul 1999, denumita SQL3).

    1.10 Avantajele si dezavantajele SGBD

    Avantaje

    -  Controlul redundantei datelor ; nu se elimina în întregime redundanta, ci se controleazavolumul inerent al acesteia în BD.

    -  Coerenta datelor ; datorita eliminarii redundantei, orice reactualizare a unui articol (stocat o

    singura data) se face o singura data, eliminându-se incoerenta. Daca articolul este stocat demai multe ori, SGBD garanteaza coerenta tuturor exemplarelor din articolul respectiv.

    -   Mai multe informatii obtinute de la aceeasi cantitate de date; ca urmare a integrarii dateloroperationale, doua sau mai multe fisiere pot fi integrate, extragându-se mai multe informatii.

    -   Partajarea datelor ; fisierele sunt detinute de compartimentele organizatiei care le utilizeaza,dar fiind parte din BD, ele sunt la dispozitia tuturor utilizatorilor interesati.

    -   Integritatea crescuta a datelor ; se refera la validitatea si coerenta datelor stocate. Integritateaeste exprimata prin constrângeri, care reprezinta reguli de coerenta pe care BD nu are voie sale încalce.

    -  Securitatea crescuta; se refera la protectia BD fata de utilizatorii neautorizati. Fara sisteme desecuritate, integrarea ar face datele foarte vulnerabile. Securitatea se realizeaza prin nume deutilizatori plus parole. Se poate limita tipul de operatie efectuata.

    -   Aplicarea standardelor ; prin integrare se pot aplica standarde organizationale, nationale sauinternationale, ca de ex. formatul datelor, conventii referitoare la denumire, pt. a facilitaschimburi între sisteme.

    -   Economia de scala; în loc de bugete pentru fiecare compartiment pentru crearea unui sistem propriu de BD bazat pe fisiere, exista un buget unic combinat, care permite alocareafondurilor economisite pentru îmbunatatirea sistemului.

    -   Echilibrul între cerintele aflate în conflict ; cerintele posibil în conflict ale diferitelorcompartimente referitoare la utilizarea BD sunt gestionate la nivel de DBA, care va luadeciziile ce se impun si va acorda prioritate aplicatiilor majore.

    -   Îmbunatatirea accesibilitatii datelor si capacitatii de raspuns; limbajele de interogare sigeneratoare de rapoarte asociate SGBD ofera utilizatorilor posibilitatea unor interogari ad-hoc, fara a apela la programator.

    -   Productivitatea crescuta; SGBD furnizeaza standardele necesare aplicatiei, economisindtimpul programatorului.

    -  Capacitatea de întretinere îmbunatatita, prin independenta de date; într-un SGBD descrieriledatelor sunt separate de aplicatii, aplicatiile fiind imune la modificarea descrierii datelor; estecaracteristica de independenta program-date, care usureaza întretinerea aplicatiilor din BD.

    -  Concurenta/simultaneitatea îmbunatatita; se garanteaza alterarea datelor în situatia cândacelasi fisier este utilizat simultan de mai multi utilizatori.

    -   Îmbunatatirea serviciilor de salvare de siguranta si refacere. Se minimizeaza pierderile

    aparute ca urmare a unor defectiuni. Nu este necesara realizarea zilnica de copii de siguranta.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    20/116

    Dezavantaje-  Complexitatea; pt. ca un SGBD sa fie functional, acesta va evolua într-un sistem soft extrem

    de complex. Functionalitatea trebuie cunoscuta de catre toti cei implicati în BD, de la DA lautilizatorul final, pentru a o putea exploata. Daca SGBD este gresit înteles, BD proiectata

     poate fi gresita, cu toate consecintele acestei situatii. 

    -   Dimensiunea;  Fiind un element soft foarte complicat, SGBD ocupa mult spatiu pe disc sinecesita multa memorie pentru a functiona eficient.  -  Costul SGBD; variaza în functie de mediu si functionalitate. De la 150 USD pt. un PC cu un

    utilizator, la 750.000 USD pt. un sistem mainframe cu sute de utilizatori. Se adauga cheltuieli periodice anuale de întretinere. 

    -  Costurile aditionale pentru elemente hardware; pentru a sigura performantele SGBD poate finevoie de achizitionarea unui calculator mai mare, chiar dedicat rularii SGBD, cu disc simemorie mai mari.  

    -  Costul conversiei;  la implementarea unui nou sistem SGBD si/sau a unei noi configuratiihard, conversia poate costa semnificativ mai mult decât noile elemente hard. Se includecostul instruirii personalului, angajarea de personal specializat. Apare termenul de  sistem

    mostenit , adica un sistem mai vechi, inferior, de care organizatia se cramponeaza din motivede costuri de conversie.  

    -   Performanta;  SGBD (spre deosebire de cel bazat pe fisiere) este general, creat pentru a permite diverse aplicatii; astfel unele pot functiona mai putin rapid decât în cazul sistemului bazat pe fisiere, creat pentru o anume aplicatie. 

    -   Impactul crescut al unei defectiuni.  Centralizarea (partajarea) resurselor crestevulnerabilitatea SGBD. Esecul oricarei componente poate duce la sistarea tuturor operatiilor.  

    1.11 Complexitatea datelor si a interogarilor

    M. Stonebraker a oferit o reprezentare în patru cadrane a universului bazelor de date (fig.1.13) deosebit de simpla si de interesanta, bazata numai pe complexitatea datelor si a interogarilor.Propusa în anul 1996, aceasta clasificare nu include modelele prerelationale (modelul ierarhic simodelul retea), considerate depasite în aceasta faza de dezvoltare a bazelor de date.

    Pe abscisa diagramei este reprezentata capacitatea de definire a tipurilor de date complexe, iar pe ordonata este reprezentata capacitatea de interogare a bazelor de date.

    În cadranul din stânga jos sunt acele aplicatii care prelucreaza tipuri de date simple si nunecesita interogarea datelor. Astfel de tipuri de aplicatii (cum sunt procesoarele de texte – Word,Framemaker) folosesc direct sistemul de fisiere al sistemului de operare pentru memorarea datelor

     persistente.

    Fig. 1.13. Clasificarea sistemelor de gestiune a bazelor de date.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    21/116

    În cadranul din stânga sus sunt sistemele de gestiune a bazelor de date relationale (SGBDR),care prelucreaza tipuri simple de date, dar permit interogari complexe.

    În cadranul din dreapta jos sunt sistemele de gestiune a bazelor de date obiect-orientate(SGBDOO), care prelucreaza tipuri de date complexe, dar în care rezolvarea interogarilor este destulde dificila, dat fiind ca pentru fiecare interogare trebuie sa fie prevazute legaturile necesare în

    structura obiectelor.În cadranul din dreapta sus sunt reprezentate sistemele obiect-relationale (SGBDOR), care permit prelucrarea datelor complexe si rezolvarea interogarilor complexe. Modelul obiect-relationaleste, evident, cel mai complet, deoarece admite atât tipuri de date definite de utilizator cât siinterogari complexe. În aceeasi lucrare, Stonebraker denumeste sistemele de gestiune a bazelor dedate obiect-relationale ca fiind sisteme de baze de date universale.

    În momentul de fata este evidenta tendinta producatorilor de sisteme de gestiune a bazelor dedate de a trece la sisteme obiect-relationale si, în general, aceasta trecere se realizeaza prin adaugareatreptata a caracteristicilor modelului obiect în sistemele de gestiune relationale. Oferta de sisteme degestiune a bazelor de date este deosebit de generoasa, pe o scara extinsa de performante si costuri, dela sisteme care se pot folosi gratuit (fara licenta sau cu licenta publica), pâna la sisteme cu înalte

     performante, a caror utilizare necesita plata licentelor respective. Chiar si pentru astfel de sistemeexista versiuni de test (trial versions) care pot fi obtinute gratuit prin Internet (de la adrese care suntindicate în Bibliografie), astfel încât pot fi folosite pentru a întelege si a executa exemplele propuseîn aceasta lucrare.

    Sistemul Oracle este un sistem de gestiune a bazelor de date multi-utilizator puternic, cuimplementari pe toate platformele (Windows, Unix, Linux), care ofera atât performante de executieridicate, cât si un grad înalt de protectie si securitate a datelor. În toate versiunile, Oracle oferaimplementarea completa a caracteristicilor modelului relational (conform standardului SQL2), iarultimele versiuni (Oracle8i, Oracle9i si Oracle 10g) sunt sisteme de gestiune obiect-relationaledistribuite, implementând extensiile obiect-orientate prevazute în standardul SQL3 si oferind

     posibilitatea de dezvoltare a bazelor de date distribuite. Sistemele de gestiune Oracle, ca si diferiteinstrumente de dezvoltare a aplicatiilor de baze de date (Oracle Application Server, JDeveloper,Oracle Forms etc.), se pot obtine de la adresa http://www.oracle.com si termenii licentei permitutilizarea acestor sisteme în scopuri necomerciale pe o perioada nelimitata; pentru utilizarea înscopuri comerciale trebuie sa fie platite licentele corespunzatoare

    SQL Server este sistemul de gestiune a bazelor de date relationale dezvoltat de firmaMicrosoft pentru sistemele de operare Windows. Au existat mai multe versiuni, versiunea actuala(2007) fiind SQL Server 2005. În toate versiunile sistemul SQL Server suporta complet standardulSQL2, cu implementarea performanta a trasaturilor avansate de stocare si prelucrare a datelor(integritate referentiala, subinterogari, triggere, gestiunea tranzactiilor, etc). De la adresahttp://www.microsoft.com/sql se poate obtine gratuit o versiune de test a sistemului SQL Server sau

    se poate cumpara o versiune completa. În plus, pachetul de dezvoltare .NET SDK (.NET Software Development Kit ), care se poate obtine gratuit de la adresa http://msdn.microsoft.com/downloadscontine o versiune mai simpla de server de baze de date numit Microsoft SQL Server 2000 DesktopEngine ( MSDE 2000 ) care poate fi folosita pentru dezvoltarea si executia exemplelor prezentate înlucrare.

    Microsoft Access este unul din cele mai cunoscute sisteme de gestiune a bazelor de daterelationale pe platforme de calculatoare personale. MS Access dispune de un sistem de control al

     bazei de date (database engine) si o interfata grafica pentru interactiunea cu utilizatorul. Aplicatiilede baze de date în MS Access se pot dezvolta cu multa usurinta datorita generatoarelor de aplicatii(Wizards) care permit proiectarea vizuala a bazelor de date si a formularelor ( forms) pentruinterfetele grafice. MS Access este folosit în special pentru aplicatii personale sau pentru mici afaceri

    si licenta acestuia se poate cumpara odata cu licenta produsului Microsoft Office.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    22/116

    MySQL este un sistem de gestiune a bazelor de date relationale cu implementari pentrusistemele de operare Windows, Linux, Unix. La adresa http://www.mysql.com se gaseste ultimaversiune si documentatia sistemului de gestiune a bazelor de date MySQL care se poate utilizagratuit (este open source). Acest sistem este compatibil cu standardul SQL2, dar unele prevederi alestandardului sunt implementate partial. Versiunea actuala 2007 este versiunea 5.0 care ofera vederi,

     proceduri stocate, triggere (caracteristici care lipseau in versiunile precedente).

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    23/116

    2. Proiectarea bazelor de date

    2.1 PROIECTAREA BD – SCHIMBAREA DE PARADIGMĂ 

    Structura unei BD (entităţile, atributele, relaţiile) este determinată  în timpul proiectăriiBD. Abordarea proiectării unei BD este diferită de cea a sistemelor pe bază de fişiere, unde totulera dictat de nevoile aplicative ale departamentelor individuale. În cazul BD trebuie deconsiderat întâi datele apoi aplicaţiile. Această  schimbare a modului de tratare se numeşteschimbare de paradigmă.

    Cauza principală  a eşecurilor sistemelor informaţionale este lipsa aplicării uneimetodologii de proiectare a BD în mod structurat. Astfel rezultă BD ineficiente pentru cerinţeleaplicaţiilor, documentaţia este limitată, întreţinerea dificilă.

    2.1.1 Poziţiile persoanelor din mediul BD

    În acest paragraf se examinează a 5-a componentă a mediului SGBD, anume persoanele.Se pot identifica patru tipuri distincte de persoane implicate în mediul SGBD:

    -  administratorii de date şi de BD;-   proiectanţii de BD;-   programatorii de aplicaţii;-  utilizatorii finali.

    Administratorii de date şi de BDBD şi SGBD sunt resurse comune care trebuie gestionate ca orice resursă.

    Sarcinile administratorului de date (DA = data administrator):-  responsabil cu gestionarea resurselor de date: planificarea, elaborarea şi

    întreţinerea strategiilor şi procedurilor bazei de date-  responsabil cu proiectarea conceptuală/logică a BD-  consultarea şi îndrumarea managerilor superiori cu privire la direcţia de

    dezvoltare a BD, a.î BD să sprijine obiectivele generale ale organizaţiei.Administratorul de baze de date (DBA  – data base administrator) este responsabil cu

    realizarea fizică a BD, având următoarele sarcini:-   proiectarea şi implementarea BD,-  securitatea şi controlul integrităţii BD,

    -  întreţinerea sistemului operaţional,-  asigurarea de performanţe satisf ăcătoare pentru aplicaţii şi utilizatori;Rolul DBA este mai tehnic şi necesită cunoaşterea în detaliu a SGBD şi a mediului acestuia.

    Proiectanţii de BDExistă proiectanţi de BD logice şi proiectanţi de BD fizice.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    24/116

     Proiectan ţ ii de BD logice: “ce anume?”-  se ocupă cu identificarea datelor (entităţi şi atribute) şi relaţiilor dintre acestea, şi

    de constrângerile asupra celor care vor fi stocate în BD;-  trebuie să  cunoască  foarte bine datele organizaţiei şi a regulilor de operare ale

    organizaţiei;

    -  trebuie să implice toţi posibilii utilizatori ai BD în modelul creat.

    Etape de proiectare a BD logice:a)   proiectarea conceptuală  a BD, independent de detaliile de implementare (de ex. SGBD

    utilizat, programele de aplicaţie, limbajele de programare etc.) b)   proiectarea logică a BD, care se bazează pe un anumit model, de ex. relaţional, ierarhic,

    în reţea, orientat pe obiecte.

     Proiectan ţ ii de BD fizice (“Cum anume?”) preia modelul logic şi stabileşte realizarea fizică:-  transpunerea modelului logic de date într-un set de tabele şi constrângeri privind

    integritatea;-  selectarea de structuri de stocare şi metode de acces specifice, a.î. să  se obţină 

     performanţe bune ale datelor in activităţile legate de BD;-  măsuri referitoare la securitatea datelor.

    Proiectarea fizică a unei BD trebuie să ţină cont de SGBDul avut în vedere; proiectantul trebuiesă  cunoască  funcţionalitatea acestui SGBD şi avantajele şi dezavantajele fiecărei variante deimplementare a BD. Strategia de stocare aleasă trebuie să ţină cont de modul de utilizare.

    Programatorii de aplicaţiiOdată  realizată  BD trebuie implementate programele de aplicaţie ce confer ă 

    funcţionalitatea cerută  de utilizatorii finali. Aceasta este sarcina programatorilor de aplicaţii.

    Fiecare program conţine instrucţiuni care îi cere SGBD să efectueze o operaţie oarecare în BD(extragere, inserare, reactualizare, ştergere de date). Programele pot fi scrise într-un limbaj degeneraţia a treia sau a patra.

    Utilizatorii finaliSunt clienţii pentru care a fost proiectată, implementată şi este întreţinută BD, pentru a le

    satisface necesităţile informaţionale.Utilizatorii simpli nu sunt conştienţi de SGBD. Accesează  BD prin programe de aplicaţiespeciale, simplificatoare. Ei folosesc comenzi simple, opţiuni din meniu. Utilizatorul simplu nu

    ştie nimic despre BD sau SGBD (de ex. vânzătorul care citeşte codul de bare pentru a afla preţulunui produs. Există totuşi un program care citeşte codul de bare, caută preţul articolului respectivîn BD, modifică câmpul cu stocul de articole, afişează preţul la casă).Utilizatorii sofisticaţi sunt familiarizaţi cu structura BD şi facilităţile SGBD. Pot utiliza un limbajde interogare de nivel înalt (SQL). Pot scrie programe de aplica ţie pentru uz personal.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    25/116

    2.2. O METODOLOGIE CLASICĂ DE DEZVOLTARE A APLICAŢIILOR

    Până  acum am punctat importanţa datelor în sistemul informaţional al organizaţiilor,nivelurile la care se poate aborda structura şi conţinutul unei baze de date, precum şi locul

    "stratului" date în aplicaţiile informatice actuale. În acest capitol vom încerca să  încadr ămactivitatea (activităţile) de proiectare a bazei de date în demersul mai larg al dezvoltării deaplicaţii.

    De la bun început trebuie precizat că subiectul paragrafului de faţă constituie obiect destudiu pentru cel puţin două domenii ale informaţiei aplicate în organizaţii, sau, mai bine spus,ale sistemelor informaţionale în organizaţii. Mai întâi, este vorba de ceea ce în literatura anglo-saxona se numeşte software engineering, în franceză  genie logiciel, iar la noi dezvoltare deaplicaț ii software. Este un domeniu conturat încă din anii '60 şi aflat de atunci, cel puţin după spusele marilor specialişti, într-o permanentă criză, ce nu dă semne de epuizare.

    Al doilea domeniu este mai larg şi ţinteşte mult mai mult decât realizarea de aplicaţii,deşi aceasta reprezintă totuşi un obiectiv central. Este vorba de analiza şi proiectarea sistemelorinformaţionale. Analiza şi proiectarea se ocupă, printre altele, şi cu investigarea tuturor proceselor, operaţiunilor şi tranzacţiilor dintr-o firmă  sau instituţie, cerinţelor utilizatorilor şi perspectivelor organizaţionale, astfel încât toate aceste aspecte să fie luate în calcul în realizareaunui sistem informaţional coerent, aliniat misiunii, obiectivelor şi politicilor firmei. Cu altecuvinte, analiza şi proiectarea pornesc mai din amonte, de la utilizatori, procese, tranzac ţiieconomice, încercând să formalizeze/modeleze realitatea sub forma unei largi game de diagrame,scheme, specificaţii pe care le vor înainta realizatorilor modulelor de interfaţă, prelucr ări şi date.

    Una dintre cele mai cunoscute scheme de realizare (dezvoltare) a aplicaţiilor de lucru cu

     baze de date sau, altfel spus, schema de principiu a ciclului de viaţă al aplicaţiilor cu BD este cearezentată în figura 2.1.

    Amploarea activităţilor din ciclul de viaţă a unei BD depinde de anvergura aplicaţiei.Când sistemul dezvoltat vizează un numar redus de utilizatori şi se refer ă la un ansamblu

    de funcţii nu din cale-afar ă de complex, multe etape sunt sărite sau parcurse sumar.

    Planificarea bazei de date

    Planificarea BD presupune eşalonarea paşi1or ciclului de viată  pentru atingerea unuimaximum de eficacitate. Ca şi în cazul planificării software-ului, planificarea BD presupuneidentificarea şi evaluarea activităţilor ce trebuie derulate (întreprinse), resurselor necesarederulării activităţilor, fondului de timp, specialiştilor şi banilor disponibili. Planificarea BDtrebuie integrată  în strategia de ansamblu a firmei, unul dintre obiectivele esenţiale fiindcatalizarea activităţilor, politicilor şi strategiei unităţii.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    26/116

    Fig. 2.1 Ciclul de viaţă a aplicaţiilor ce utilizează baze de date

    Definirea sistemului

    Definirea sistemului presupune specificarea domeniului şi graniţelor aplicaţiei celucrează cu baza de date, utilizatorilor, aplicabilităţii sale, precum şi a celorlalte componente alesistemului informaţional la care se va conecta noul subsistem.

    Planificarea BD 

    Definirea  sistemului 

    Colectarea şi analiza cerințelor 

    Proiectarea BD

    Proiectarea conceptuală

    Proiectarea logică

    Proiectarea fizică

    Selectarea 

    SGBD Proiectarea 

    aplicației 

    Prototipizare  Implementare 

     Încărcarea şi 

    conversia datelor

    Testare 

     Întreținere operațională

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    27/116

    Colectarea şi analiza cerinţelor

    Aceasta etapă implică  adunarea şi analiza cerinţelor aplicaţiilor din partea utilizatorilor.Cerinţa reprezintă o opţiune, un element ce trebuie inclus, tratat în noul sistem. Proiectarea BDse bazează pe informaţii despre organizaţii, informaţii ce trebuie preluate şi gestionate de bază.

    Acestea pot fi culese în diferite moduri :

    • intervievarea personalului din întreprindere, cu precădere a celor mai apropiaţi, prinspecificul activităţii lor, de profilul aplicaţiei, avându-se în vedere acordarea unei atenţiimărite exper ţilor din compartimentele funcţionale considerate;• observarea modului de derulare a operaţiilor în cadrul firmei ;• examinarea documentelor, în principal a celor purtătoare de informaţii (primare,rapoarte) ;• folosirea chestionarelor pentru preluarea informaţiilor de la un mare număr de

    utilizatori;• utilizarea experienţei acumulate la proiectarea unor sisteme similare.

    Informaţia culeasă  trebuie să  includă: principalele domenii (zone) şi grupuri deutilizatori; documentaţia utilizată sau generată de şi despre aceste domenii/grupuri de utilizatori;detaliile tranzacţiilor reclamate de fiecare domeniu/grup; o listă de cerinţe, pe priorităţi a fiecăruidomeniu/grup.

    Rezultatul acestei activităţi îl reprezintă  specificaţiile cerinţelor organizaţionale, prezentate, de obicei, sub forma unui set de documente în care sunt descrise, din diferiteunghiuri, operaţiile întreprinderii. De obicei, cerinţele specificate se prezintă într-o formă puţin

    structurată  şi necesită  transformarea utilizând tehnici consacrate, cum ar fi cele de tip SAD -Structured Analisys and Design (analiză şi proiectare structurată), DFD - Data Flow Diagrams(diagrame ale fluxurilor de date), diagrame HIPO - Hierarchical Input Process Output (ierarhice -intr ări-prelucr ări-ieşiri) etc.

    Proiectarea bazei de date

    Aceasta include proiectarea logică  şi fizică  a BD. În urma acestei etape va fi elaboratmodelul BD care va constitui suportul obiectivelor şi operaţiunilor organizaţiei. Principaleleobiective ale proiectării BD sunt:

    • reprezentarea datelor şi a relaţiilor dintre date, formulare pe diferitele zone ale aplicaţieişi ale grupurilor de utilizatori ;• furnizarea unui model al datelor care să  permită  orice tranzacţie autorizată  asupraacestora ;

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    28/116

    • construirea unui proiect care va atinge cerinţele de performanţă ale sistemului, cum arfi: securitatea, timpul de r ăspuns etc.

    Deseori însă, realizarea unui obiectiv se face în detrimentul altuia. Spre exemplu, un nivelridicat de securitate atrage după sine scăderea vitezei de r ăspuns.

    Există  două  abordări majore ale proiectării BD. Abordarea bottom-up porneşte de lanivelul elementar, cel al atributelor, care sunt grupate în clase de entitati şi asociaţii. Normalizarea este un exemplu tipic de demers bottom-up, care dă  rezultate bune atunci cândnumărul atributelor nu este prea mare.

    Când numărul de atribute este ridicat, mai nimerită  este abordarea top-down, caredezvoltă mai întâi un model sintetic, simplificat al datelor. Cele câteva entităţi sunt descompuseulterior în mai multe etape, până la identificarea atributelor şi entităţilor elementare. Modelareafolosind diagrame E-R are la bază abordarea top-down.

    Există  şi alte abordări ale proiectării BD; spre exemplu, inside-out (de la interior către

    exterior) seamănă  cu bottom-up, dar difer ă  prin faptul că  mai întâi se stabileşte un set deconcepte majore şi apoi analiza se lărgeşte prin includerea în model şi a altor concepte care seafla în relatie cu cele majore. Strategia mixtă  utilizează  deopotrivă, pentru diferitele păr ţi alemodelului, şi bottom-up, şi top-down, combinând rezultatele.

    După  cea mai mare parte a autorilor, proiectarea bazelor de date este de două  tipuri,logică şi fizică, în timp ce după alţii există trei tipuri: conceptuală, logică, fizică.

    Selectarea sistemului de gestiune a bazei de date

    Considerată  un pas opţional, selectarea SGBD presupune alegerea celui mai adecvatSGBD pentru realizarea şi exploatarea aplicaţiei. Nu toate SGBD-urile satisfac cerinţeleaplicaţiei, iar, pe de altă  parte, cele mai performante sunt şi cele mai scumpe. Cerinţele defuncţionalitate trebuie coroborate cu resursele disponibile, în vederea identificării celui maiadecvat SGBD comercial pentru realizarea şi exploatarea aplicaţiei.

    Proiectarea aplicaţiei

    Proiectarea aplicaţiei se refer ă  la conceperea secvenţelor de cod (instrucţiuni în limbajede programare) ce vor lucra cu baza. Din figura 2.1 se observă că proiectarea BD şi proiectareaaplicaţiei sunt activităţi distincte, paralele ale ciclului de viaţă al aplicaţiilor cu BD. În cea maimare parte a cazurilor, proiectarea aplicaţiei nu poate fi finalizată înainte de proiectarea bazei. Pede altă parte, informaţiile proiectării vor fi transmise proiectării BD.

    În această etapă trebuie verificat dacă toate funcţiile specificate în cerinţele utilizatoruluise regăsesc în proiectul aplicaţiei. Proiectarea aplicaţiei include şi activitatea de proiectare a

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    29/116

    tranzacţiilor. De asemenea, tot acum se elaborează  şi modelul interfeţei cu utilizatorul aaplicaţiei.

    Prototipizarea

    Deşi opţională, prototipizarea se poate dovedi deosebit de utilă  prin construirea unuimodel de lucru iniţial simplificat, model ce permite dezvoltatorilor şi utilizatorilor să testeze şi să amelioreze incremental noua aplicaţie. Un mare avantaj al prototipizarii este gradul mult maimare de acceptare a noului sistem la final, acesta fiind dezvoltat împreună cu utilizatorii ce potsă-şi exprime pe parcurs doleanţele. Etapele prototipizarii sunt descrise în figura 2.2.

    Fig. 2.2 Schema de principiu a prototipizării

    Implementarea

    Implementarea presupune crearea definiţiilor BD la nivelurile conceptual, extern, intern, precum şi punerea în lucru a programelor (aplicaţiei), fiind realizată  utilizând limbajul dedefinire a datelor (DDL) pus la dispozitie de SGBD-ul selectat. Implementarea aplica ţiei serealizează într-un mediu de programare utilizand un limbaj de tip 3GL sau 4GL.

    Conversia şi încărcarea datelor

    Acest pas este necesar atunci când sistemul (aplicaţia) dezvoltat înlocuieşte un altul.Datele trebuie transferate din vechea aplicaţie în cea nouă, operaţie ce implică  de multe orischimbarea structurii fişierelor, a formatului, logic şi fizic, al datelor, în concordanţă cu cerinţele

    Dezvoltarea 

    modelului de lucru 

    Construirea 

    prototipului 

    Testarea şi utilizarea 

    prototipului 

    Revizuirea 

    prototipului 

    Abandonarea 

    aplicației 

    Implementarea 

    aplicației 

    Re‐dezvoltarea 

    aplicației 

    Dezvoltarea unui nou 

    prototip 

    Decizie 

    Repetare de 

    câte ori este 

    necesar 

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    30/116

    noii aplicaţii, dar şi ale noului SGBD. Uneori sunt necesare (şi posibile) şi conversii ale unor programe din vechiul în noul sistem. Majoritatea SGBD-urilor actuale au module de import-export din/în alte SGBD-uri. Conversia aplicaţiilor este, în general, mult mai complexă  atuncicând se schimbă limbajul/mediul de programare.

    Testarea

    Testarea este operaţiunea sistematică de verificare a funcţionalităţii sistemului, a graduluide adecvare la cerinţele utilizatorilor. Prin testare, aplicaţia este lansată în execuţie, urmărindu-sedepistarea eventualelor erori şi ameliorarea unor parametri precum viteza, securitatea etc.Urmând o metodologie riguroasă, măsur ătorile din cadrul testării dau posibilitatea evaluăriicalităţii şi fiabilităţii software-ului.

    Este de preferat ca utilizatorii aplicaţiei să fie pe deplin implicaţi în procesul testării, iaraplicaţia testată să fie instalată pe un alt sistem decât cel pe care a fost concepută; în orice caz,

    trebuie avut în vedere şi un mecanism de recuperare a datelor corupte în caz de avarie.Există mai multe strategii de testare a corectitudinii şi funcţionalităţii unei ap1icaţii delucru cu BD ce pot fi aplicate individual sau combinate în cadrul aceluiaşi sistem:

    • top-down;• bottom-up;• fire de execuţie ;• test de stres.

    Testarea top-down începe de la nivelul superior al funcţiilor majore ale aplicaţiei. Este

    utilă  în verificarea arhitecturii sistemului, reproiectările majore fiind semnalate din primelemomente ale testării.

    Testarea bottom-up începe cu modulele elementare şi continuă pe verticală cu modulelecompozite până la nivelul general al aplicaţiei.

    Testarea firelor de execuţie este foarte importantă în sistemele de prelucrare în timp real,în care sunt rulate simultan o serie de procese ce cooperează. Acest tip de testare este mult maicomplex, fiind legat de detaliile tehnice ale sistemului de operare. Fiecarui proces i se alocă unfir de execuţie (thread) care este urmărit de la declanşarea sa, acordându-se o mare importanţă  punctelor de întâlnire cu celelalte fire executate pe sistem.

    Testul de stres presupune suprasolicitarea bazei şi aplicaţiilor. Astfel, BD se încarcă automat cu un număr extrem de mare de înregistr ări, iar la aplicaţie se conectează cât mai mulţiutilizatori. Astfel se depistează până la ce limite rezistă aplicaţia.

  • 8/19/2019 Cursuri Baze Date Dan Galatchi ISC

    31/116

    Întreţinerea operaţională 

    Această  activitate se derulează  pe toată  durata de utilizare a aplicaţiei. În afar ă  demonitorizarea BD, a programelor, de "cur ăţarea" periodica şi repararea eventualelor erorihard/soft, tot în această  activitate sunt încorporate operaţiunile de actualizare a datelor şi

     programelor (ca urmare a unor noi oportunităţi tehnologice), modificarea unor parametri(procente TVA, impozite etc.). Monitorizarea performanţei sistemului se realizează  prinraportarea la un nivel prestabilit de acceptare. Dacă este cazul, o situare a performanţei generalesub acest punct critic poate antrena reorganizarea BD. Altminteri, chiar şi în cazul funcţionării în parametri normali, BD trebuie optimizată, având în vedere şi facilităţile oferite de SGBD.

    Întreţinerea şi actualizarea aplicaţiei sunt necesare în mai mare sau mai mică  măsur ă.Spre exemplu, într-un mediu economic şi legislativ dinamic, cum este cel din ţara noastr ă,deseori este necesar ă  modificarea unor păr ţi importante ale aplicaţiei. Uneori, modificarea presupune reluarea unora sau tuturor paşilor din ciclul de viaţă al aplicaţiei de lucru cu BD.

    2.2 PRIVIRE DE ANSAMBLU ASUPRA PROIECTĂRII BAZELOR DE DATE

    Deși au fost publicate destule căr ț i dedicate proiectării bazelor de date, subiectul continuă să  fie departe de epuizare. Chiar dacă unii autori s-au str ăduit să  aducă  rigurozitate, uneori cu preț ul unei anume rigidităț i, proiectarea bazelor de date r ămâne preponderent o artă și mai puț ino științ ă. Problema proiectarii unei baze de date ț ine de elaborarea unei structuri logice și a alteiafizice în vederea întâmpinării nevoilor informaț ionale ale utilizatorilor într-o organizaț ie, pentruun set definit de aplicaţii.

    Există  mai multe curente de idei în ceea ce privește proiectarea bazelor de date. Unul

    dintre acestea împarte procesul de proiectare în două  direcț ii: modelarea logică  a datelor și proiectarea bazelor de date relaț ionale, definind modelarea logică a datelor ca procedur ă pentrureprezentarea cerinț elor informaț ionale într-un format corect, consistent și stabil, iar proiectareaBD relaț ionale drept procedur ă  de transformare a modelului logic al datelor într-o schemă relaț ională stabilă. Aici apare o inadvertenț ă, considerându-se că o schemă relaț ională alcătuită din tabele și restricț iile la care sunt supuse datele din tabele nu ar corespunde nivelului logic al bazei de date, ci nivelului fizic. În această abordare, metodologia de modelare logica a datelor(MLD) se deruleaza în 12 paşi:

    1. identificarea entităț ilor majore ;

    2. determinarea relaț iilor dintre entităț i;3. determinarea cheilor primare şi alternative;4. determinarea cheilor str �