|
SISTEME DE BAZE DE DATE
1 Generalitati
Sistemele de baze de date sunt o componenta esentiala a vietii de zi cu zi in societatea moderna. In cursul unei zile, majoritatea persoanelor desfasoara activitati care implica interactiunea cu o baza de date: depunerea sau extragerea unor sume de bani din banca, rezervarea biletelor de tren sau avion, cautarea unei referinte intr-o biblioteca computerizata, cumpararea unor produse etc.
Bazele de date pot avea dimensiuni (numar de inregistrari) extrem de variate, de la cateva zeci de inregistrari (de exemplu, baza de date pentru o agenda cu numere de telefon) sau pot ajunge la zeci de milioane de inregistrari (de exemplu, baza de date de plata pentru plata taxelor si a impozitelor).
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.
In sensul cel mai larg, o baza de date (database) este o colectie de date corelate din punct de vedere logic, care reflecta un anumit aspect al lumii reale si este destinata unui anumit grup de utilizatori. In acest sens, bazele de date pot fi create si mentinute manual (de exemplu, fisele de evidenta a cartilor dintr-o biblioteca, asa cum erau folosite cu ani in urma) sau computerizat, asa cum este majoritatea bazelor de date folosite in momentul de fata. O definitie intr-un sens mai restrans a unei 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 hartie) sau fisiere de date, care contin inregistrari de date, dar nu permit operatii de interogare, nu sunt considerate baze de date. De exempu, datele memorate in fisiere pe disc de un instrument de calcul tabelar (ca Microsoft Excel) sau documentele memorate de un editor de text (ca Microsoft Word) nu sunt considerate baze de date.
2 Componentele unui sistem de baze de date
Un sistem de baze de date (Database System) este un sistem computerizat de mentinere a evidentei 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, pana la statii multiprocesor puternice. Bineinteles, performantele generale de operare ale calculatorului (numarul si viteza procesoarelor, dimensiunea si viteza de operare a memoriei principale etc.) influenteaza in mod corespunzator performantele sistemului de baze de date. Dar, ceea ce intereseaza in mod deosebit in utilizarea unui calculator pentru un sistem de baze de date, este volumul (capacitatea) memoriei secundare, utilizata pentru memorarea colectiei de date persistente ale bazei de date.
Dat fiind ca intr-un sistem de baze de date este necesar accesul rapid la oricare din inregistrarile de date, pentru memorarea acestora se folosesc discurile magnetice (hard-discuri). Benzile magnetice (care ofera acces secvential la inregistrarile de date) sunt utilizate numai pentru duplicarea (back-up) si salvarea/restaurarea datelor.
Software Intre baza de date (colectia de date memorate fizic in 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).
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 si returneaza rezultatul catre utilizatori.
Sistemul SGBD ofera utilizatorilor o viziune (vedere - view) a bazei de date la un nivel inalt si ii elibereaza de necesitatea de a cunoaste organizarea particulara a sistemului (driverele de disc, structura inregistrarilor de date, etc.).
Mai mult, sistemul de gestiune asigura protectia datelor fata de accese neautorizate sau defecte de functionare, asigurand integritatea bazei de date.
Pe langa SGBD, care este cea mai importanta componenta software a unui sistem de baze de date, mai exista si alte componente: sistemul de operare, care asigura controlul executiei programelor, biblioteci si instrumente software (toolset-uri) pentru proiectarea, dezvoltarea sau exploatarea sistemelor de baze de date si a aplicatiilor de baze de date.
O aplicatie de baze de date (Database Application) este un program care ofera o anumita utilizare a unei baze de date.
De exemplu, programul care permite mentinerea si urmarirea activitatii angajatilor unei intreprinderi (incadrare, calificare, salarizare, etc.) folosind informatiile despre angajati memorate intr-o baza de date reprezinta o aplicatie de baze de date.
Utilizatorii unui sistem de baze de date se pot imparti in cateva categorii: programatorii de aplicatii, utilizatorii finali si administratorul bazei de date.
Programatorii de aplicatii sunt cei care scriu (dezvolta) aplicatiile de baze de date, folosind limbaje de programare de nivel inalt (Cobol, PL/1, Fortran, C, C++, Java, Basic) si biblioteci care permit incorporarea operatiilor de acces la baza de date. Aplicatiile rezultate pot fi aplicatii cu executie independenta (batch-processing) sau pot fi aplicatii interactive (on-line) folosite de utilizatorii finali ai sistemului pentru a accesa (intr-un mod mai eficient si mai sigur) baza de date
Utilizatorii finali sunt acei utilizatori care acceseaza baza de date prin intermediul unui program de aplicatie care le confera drepturi limitate de acces la date pentru anumite operatii de prelucrare. Utilizatorii finali sunt persoane cu pregatire tehnica minimala, care efectueaza un volum mare de operatii asupra bazei de date, dar nu trebuie sa cunoasca mai mult decat posibilitatile oferite de programul pe care il utilizeaza. De exemplu, utilizatorii finali ai unui sistem de rezervare a bietelor de avion sunt agentii de vanzari, care folosesc programul adecvat (scris de programatorii de aplicatii), fara a fi necesar sa cunoasca intreaga structura a bazei de date.
Administratorul bazei de date (Database Administrator) este o persoana (sau un grup de persoane) cu inalta calificare tehnica care are ca sarcina mentinerea functionalitatii bazei de date prin stabilirea drepturilor de acces ale diferitelor categorii de utilizatori, prin efectuarea operatiilor periodice de salvare a datelor (backup), prin monitorizarea performantelor sistemului si refacerea datelor atunci cand este necesar.
Datele memorate intr-o baza de date sunt date persistente, adica date care raman memorate pe suport magnetic, independent de executia programelor de aplicatii. Datele persistente ale unei baze de date se introduc, se sterg sau se actualizeaza folosind date de intrare (provenite de la tastatura, din citirea unor fisiere de date sau din receptionarea unor mesaje). Datele de intrare sunt, in general, date nepersistente; ele sunt generate de utilizatori si sunt memorate (devenind date persistente) numai dupa ce au fost validate (acceptate) de catre SGBD. Datele de iesire ale unui sistem de baze de date sunt, de asemenea, date nepersistente; ele provin din operatii de interogare a bazei de date si sunt puse la dispozitia utilizatorului (sub forma de afisari, rapoarte tiparite, etc).
Aceste tipuri de utilizatori asigura exploatarea unei baze de date dupa ce aceasta a fost proiectata si realizata. Activitatea de proiectare a unei baze de date implica si alte categorii de personal cu inalta calificare tehnica (proiectanti, programatori) sau administrativa (administrator de date). Proiectantii bazelor de date au responsabilitatea de a analiza realitatea reprezentata (modelata) de baza de date respectiva, de a identifica datele ce necesita sa fie memorate, pentru a asigura mentinerea evidentei activitatii dorite. Aspecte privind proiectarea bazelor de date vor fi studiate in capitolele urmatoare.
Orice SGBD suporta doua categorii de limbaje conceptuale: limbaje de descriere a datelor si limbaje de manipulare a datelor.
Limbajele de descriere a datelor - LDD - (Data Description Languages - DDL) permit definirea conceptuala a datelor, fara referire la modul de memorare fizica a acestora.
Limbajele de manipulare a datelor - LMD - (Data Manipulation Languages - DML) permit specificarea operatiilor de introducere, actualizare, stergere si interogare a datelor.
3 Arhitectura interna a sistemelor de baze 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, existand cate o vedere individuala a datelor pentru fiecare grup; nivelul conceptual contine schema conceptuala (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 subschema conceptuala a bazei de date, mai precis descrierea datelor care sunt folosite de acel grup de utilizatori.
Schema conceptuala a bazei de date (conceptual schema) corespunde unei reprezentari unice (pentru toti utilizatorii) si abstracte a datelor, descriind ce date sunt stocate in baza de date si care sunt asocierile dintre acestea.
Schema interna (fizica) a bazei de date (internal schema) specifica modul de reprezentare a datelor pe suportul fizic.
Un sistem de baze de date suporta o schema interna, o schema conceptuala si mai multe scheme externe; toate aceste scheme sunt descrieri diferite ale aceleiasi colectii de date, care exista doar in nivelul intern.
Toate aceste reprezentari ale datelor sunt gestionate de catre SGBD care asigura, de asemenea, si cele doua corespondente (mappings): intre schemele externe si schema conceptuala si intre schema conceptuala si schema interna.
Unele sisteme SGBD nu separa complet cele trei niveluri functionale ale bazelor de date, existand posibilitatea de a specifica detalii ale schemei interne sau ale schemelor externe in cadrul schemei conceptuale.
4 Avantajele oferite de sistemele de baze de date
Fata de vechile metode de inregistrare a datelor privind diferite activitati pe fise (documente scrise) sau chiar in fisiere pe disc, sistemele de baze de date ofera avantaje considerabile, ceea ce explica extinsa utilizare a acestora. Cateva dintre avantajele oferite sunt prezentate in continuare.
Compactitate ridicata: volumul ocupat de sistemele de baze de date este mult mai redus decat volumul 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 intre mai multi utilizatori si aplicatii. In stocarea pe fise sau in fisiere a datelor, fiecare aplicatie continea propriile seturi de date. In sistemele de baze de date, mai multe aplicatii pot folosi date comune, memorate o singura data. De exemplu, o aplicatie de personal si o aplicatie de rezultate la examene dintr-o universitate care exploateaza o singura baza de date, pot folosi aceleasi informatii referitoare la structurarea facultatilor si a sectiilor.
Posibilitatea de introducere a standardelor privind modul de stocare a datelor, ceea ce permite interschimbul informatiilor intre diferite organizatii.
Mentinerea integritatii datelor prin politica de securitate (drepturi de acces diferentiate in functie de rolul utilizatorilor), prin gestionarea tranzactiilor si prin refacerea datelor in caz de functionare defectuoasa 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 cand se schimba suportul de memorare fizic, ceea ce asigura imunitatea structurii bazei de date si a aplicatiilor la modificari ale sistemului hardware utilizat.
5 Clasificarea sistemelor de baze de date
Se pot lua in consideratie mai multe criterii de clasificare ale sistemelor de baze de date.
Clasificare dupa modelul de date Majoritatea sistemelor de baze de date actuale sunt realizate in modelul de date relational sau in modelul de date obiect. Dezvoltarea continua a acestor modele a condus catre o noua categorie de baze de date, numite obiect-relationale, care combina caracteristicile modelului relational cu cele ale modelului obiect. De asemenea, mai sunt inca in functiune baze de date in modele mai vechi (modelul ierarhic sau modelul retea). Modelele de date utilizate de sistemele SGBD vor fi prezentate in sectiunea urmatoare.
Clasificare dupa numarul de utilizatori Majoritatea sistemelor de baze de date sunt sisteme multiutilizator, adica permit accesul concurent (in 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 suporta accesul doar al unui singur utilizator (la un moment dat).
Clasificare dupa numarul de statii pe care este stocata baza de date. Exista doua categorii de sisteme de baze de date: centralizate si distribuite.
Un sistem de baze de date centralizat (Centralized Database System) este un sistem de baze de date in care datele si sistemul de gestiune sunt stocate pe o singura statie (calculator).
Un sistem centralizat poate suporta unul sau mai multi utilizatori, dar, in orice situatie, datele si sistemul de gestiune rezida in intregime pe o singura statie.
Un sistem de baze de date distribuit (Distributed Database System) poate avea atat datele, cat si sistemul de gestiune, distribuite in mai multe statii interconectate printr-o retea de comunicatie.
Sistemele de baze de date pot fi reprezentate din punct de vedere al functionarii lor printr-o arhitectura de tip client-server.
Intr-un sistem centralizat (fig. 1.3) exista un singur server, care este chiar sistemul SGBD, care raspunde cererilor unui singur client (in sistemele mono-utilizator, fig. 1.3, a) sau mai multor clienti (in 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 cu statia pe care ruleaza serverul. Aceasta arhitectura permite o prelucrare distribuita a datelor si, mai mult, o configurare a sistemului adaptata cerintelor de calcul particulare. Astfel, serverul bazei de date poate fi un sistem puternic, echipat corespunzator (cu volum mare de memorie secundara), in timp ce fiecare client este o statie personala, cu putere de calcul adecvata aplicatiei executate.
Sistemele de baze de date distribuite pot fi reprezentate intr-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 logic aceluiasi sistem, dar care pot sa fie, din punct de vedere fizic, memorate in 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 solicita servicii de la sistemul de gestiune distribuit.
Exista numeroase avantaje ale sistemelor de baze de date distribuite (cresterea capacitatii de stocare si prelucrare a datelor, cresterea disponibilitatii si a partajarii datelor, etc.), dar si o crestere considerabila a complexitatii acestora.
Cea mai importanta cerinta pe care trebuie sa o indeplineasca sistemele de gestiune a bazelor de 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 incat utilizatorii sa poata accesa datele pe baza unui model de nivel inalt, fara a fi necesara cunoasterea exacta a modului de amplasare, replicare sau comunicare a datelor.
Sistemele de gestiune a bazelor de date distribuite comerciale nu ofera in momentul de fata un nivel suficient de transparenta a localizarii datelor, dar dezvoltarea continua a acestora va putea sa asigure in viitor aceasta cerinta. Aplicatie Client SGBD BD a Server Retea de comunicatieAplicatie Client Aplicatie ClientAplicatie Client SGBDBDServerb Retea de comunicatie Aplicatie Client Aplicatie ClientAplicatie ClientSGBD BD Server SGBD BD Server