Sunteți pe pagina 1din 5

1.

SISTEME DE BAZE DE DATE - INTRODUCERE

Sistemele de baze de date au devenit o componentă esenţială a vieţii de fiecare zi în societatea


modernă. În cursul oricărei zile, fiecare dintre noi desfăşurăm activităţi care implică interacţiunea cu o bază
de date, ca de exemplu, depunerea sau extragerea unor sume de bani din bancă, rezervarea biletelor la tren
sau avion, rezervarea locurilor la hotel, căutarea unei referinţe bibiografice într-o bibliotecă computerizată
(digital library), etc.
În sensul cel mai larg, o bază de date (database) este o colecţie de date corelate din punct de
vedere logic, care reflectă un anumit aspect al lumii reale şi este destinată unui anumit grup de utilizatori. O
bază de date poate fi creată şi menţinută manual (de exemplu, fişele de evidenţă a cărţilor dintr-o bibliotecă,
aşa cum erau folosite cu ani în urmă) sau computerizat, ceea ce reprezintă obiectul cursului de faţă.
Un sistem de baze de date (database system) este un sistem computerizat de menţinere a evidenţei
unei anumite activităţi.
Sistemele de baze de date pot avea dimensiuni (număr de înregistrări) extrem de variate, de la
câteva zeci de înregistrări (de exemplu, o agendă cu numere de telefon) sau poate ajunge la sute de
milioane de înregistrări (de exemplu, într-un sistem de plată a taxelor şi impozitelor).
Utilizatorul unei baze de date are posibilitatea de a efectua mai multe categorii de operaţii asupra
datelor stocate:
• Introducerea de noi date (insert);
• Ştergerea unora din datele existente (delete);
• Modificarea datelor memorate (update);
• Interogarea bazei de date (query), pentru a regăsi anumite informaţii, selectate după un
criteriu ales.

Definiţia unei colecţii de date ca fiind o bază de date se aplică, în sens mai restrâns, acelor colecţii
de date care permit toate operaţiile de mai sus, inclusiv operaţia de interogare. Simple colecţii de fişe
(documente) dau fişiere de date, care conţin înregistrări cu o organizare simplă şi care nu admit operaţii de
interogare (selectarea unor informaţii după un criteriu ales), nu sunt considerate baze de date. De exempu,
un editor de text (ca Microsoft Word) permite memorarea unor informaţii (texte), care pot fi create,
modificate şi consultate, dar nu se pot efectua operaţii de interogare. La fel, un instrument de calcul tabelar
(cum este Microsoft Excel) oferă reprezentarea în diferite forme a unor date (tabele, grafice), dar nu
permite operaţii de interogare.

1.1. Componentele unui Sistem de Baze de Date

Componenele unui sistem de baze de date sunt: hardware, software, utilizatori, date (Figura 1.1).

Utilizator Utilizator
final Baza de date final

Date Date
Program SGBD Program
Aplicaţie Aplicaţie

Date Date

Figura 1.1. Componentele unui Sistem de Baze de Date

1
Hardware. Sistemele de baze de date sunt, de regulă, instalate pe calculatoare de uz general, de la
calculatoare PC standard, până la staţii multiprocesor puternice. Bineînţeles, performanţele generale de
operare ale calculatorului (numărul şi viteza procesoarelor, dimensiunea şi viteza de operare a memoriei
principale) influenţează în mod corespunzător performanţele sistemului de baze de date. Dar, ceea ce
interesează în mod deosebit în utilizarea unui calculator pentru un sistem de baze de date este volumul
(capacitatea) memoriei secundare, utilizată pentru memorarea colecţiei de date persistente ale bazei de date.
Dat fiind că într-un sistem de baze de date este necesar accesul rapid la oricare din înregistrările de date,
pentru memorarea acestora se folosesc discurile magnetice (hard-discuri); benzile magnetice sunt utilizate
numai pentru duplicarea (backup) datelor.

Software. Între baza de date (colecţia de date memorate fizic în fişiere pe hard-discuri) şi
utilizatorii sistemului există un nivel software, numit Sistem de Gestiune a Bazei de Date (SGBD)
(Database Management System - DBMS). Toate cererile utilizatorilor de a accesa baza de date (pentru
introducere, ştergere, modificare sau interogare) sunt gestionate (administrate) de către SGBD, care
eliberează utilizatorii de necesitatea de a cunoaşte organizarea particulară ale sistemului (driverele de disk,
fişieree memorate, structura înregistrărilor de date). Cu alte cuvinte, SGBD permite utilizatorilor să aibă o
viziune (vedere - view) la un nivel înalt a bazei de date, precum şi acces la aceasta prin operaţii de nivel
înalt, independent de detaliile de organizare hardware ale sistemului. Mai mult, SGBD-ul permite protecţia
datelor împotriva acceselor neautorizate, asigurând integritatea bazei de date.
SGBD-ul este cea mai importantă componentă software a unui sistem de baze de date, dar nu este
singura componentă utilizată. Astfel, orice SGBD este dezvoltat şi executat sub controlul sistemului de
operare al calcuatorului respectiv. De asemenea, sunt folosite numeroase alte componente software pentru
proiectarea, dezvoltarea sau exploatarea aplicaţiilor de baze de date.

Utilizatori. Utilizatorii unui sistem de baze de date se pot împărţi în trei categorii: programatorii
de aplicaţii, utilizatorii finali şi administratorul bazei de date.
Programatorii de aplicaţii sunt cei care scriu (dezvoltă) aplicaţiile de baze de date, folosind
limbaje de programare de nivel înalt (Cobol, PL/1, Fortran, C, C++, Java, Basic) cu extensii care permit
încorporarea unor operaţii specifice de acces la baza de date. Aplicaţiile rezultate pot fi aplicaţii cu execuţie
independentă (batch-processing) sau pot fi aplicaţii conversaţionale (on-line) utilizate de utilizatorii finali ai
sistemului pentru a accesa (într-un mod mai eficient şi mai sigur) baza de date.
Utilizatorii finali sunt acei utilizatori care accesează baza de date prin intermediul unui program de
aplicaţie care le conferă numai anumite posibilităţi de execuţie şi drepturi limitate de acces la date.
Utilizatorii finali sunt persoane cu pregătire tehnică minimală, care efectuează un volum mare de operaţii
asupra bazei de date, dar nu trebuie să cunoască mai mult decât posibilităţile oferite de programul pe care îl
utilizează. De exemplu, utilizatorii finali ai unui sistem de rezervare a bietelor de avion sunt agenţi de
vânzări, care folosesc programul adevcat (scris de programatorii de aplicaţii), fără să fie necesar să
cunoască întreaga structură a bazei de date.
Administratorul bazei de date este o persoană cu înaltă calificare tehnică care are ca sarcină
menţinerea funcţionalităţii bazei de date prin stabilirea drepturilor de acces a diferitelor categorii de
utilizatori, prin efectuarea operaţiilor periodice de salvare a datelor (backup), prin monitorizarea
performanţelor sistemului.

Date. Datele memorate într-o bază de date sunt date persisente, adică date care rămân memorate
pe suport magnetic, independent de execuţia programelor de aplicaţii. Datele persistente ale unei baze de
date se introduc, se şterg sau se actualizează folosind date de intrare (provenind de a tastatură, sau
recepţionte prin transfer de mesaje). Datele de intrare sunt date nepersistente; ele sunt generate de
utilizatori şi sunt memorate (devenind date persistente) numai după ce au fost validate (acceptate) de către
SGBD. Datele de ieşire ale unui sistem de baze de date sunt, de asemenea, date nepersistente; ele provin
din operaţii de interogare a bazei de date şi sunt puse a dispoziţia utilizatorului (sub formă de afişări,
rapoarte tipărite, etc).

Toate aceste componente asigură exploatarea unei baze de date după ce aceasta a fost proiectată şi
realizată. Activitatea de proiectare a unei baze de date implică alte categorii de personal cu înaltă calificare
tehnică (analişti, programatori) sau administrativă (administrator de date). Proiectanţii bazelor de date au
responsabilitatea de a analiza realitatea reprezentată (modelată) de baza de date respectivă, de a identifica

2
datele necesare să fie memorate, care să asigure menţinerea evidenţei activităţii dorite. De asemenea, în
cursul proiectării unei baze de date, proiectanţii selectează componentele hardware (sistemul de calcul),
software (sistem de operare, SGBD, instrumente de dezvoltare şi limbaje de programare), stabilesc
structura conceptuală a bazei de date şi menţin interacţiunea cu utilizatorii potenţiali, pentru a asigura
cerinţele de prelucrare ale acestora. Aspecte privind proiectarea bazelor de date vor fi studiate în mai multe
din capitolele următoare.

1.2. Arhitectura internă a Sistemelor de Baze de Date

Arhitectura internă a unui sistem de baze de date propusă prin standardul ANSI/X3/SPARC
(1975) conţine trei nivele funcţionale: nivelul intern, nivelul extern şi nivelul conceptual (Figura 1.2).

Vedere Vedere Vedere


utilizator utilizator utilizator Nivelul extern

Nivelul conceptual

SGBD

Nivelul intern

Figura 1.2. Arhitectura internă a Sistemelor de Baze de Date

Nivelul intern este nivelul de reprezentare a datelor pe suportul fizic.


Nivelul extern reprezintă modul în care datele sunt percepute de utilizatori, existând câte o vedere
(view) individuală a datelor pentru fiecare utilizator.
Nivelul conceptual corespunde unei reprezentări unice şi abstracte a datelor, care asigură legătura
între nivelul extern şi cel intern. Nivelul conceptual este o vedere a întregului conţinut a bazei de date prin
intermediul schemei conceptuale a acesteia.
Toate aceste reprezentări sunt accesate prin intermediul SGBD-ului care asigură, de asemenea,
cele două corespondenţe (mappings): între nivelul extern şi nivelul conceptual şi între nivelul conceptual şi
nivelul intern.

1.3. Limbaje şi interfeţe ale Sistemelor de Baze de Date

Orice SGBD suportă două categorii de limbaje conceptuale: limbaje de descriere a datelor (LDD,
Data Description Language - DDL) şi limbaje de manipulare a datelor (LMD, Data Manipulation
Language - DML). LDD permit definirea conceptuală a datelor, fără referinţă la modul de memorare fizică
a datelor, asigurând în acest fel independenţa datelor în sistemele de baze de date. LMD asigură operaţiile
de introducere şi prelucrare a datelor (actualizare, ştergere, interogare).
În momentul actual, limbajul cel mai frecvent utilizat în sistemele de baze de date relaţionale este
limbajul SQL (Structured Query Language), care include componentele LDD şi LMD. Orice operaţie
asupra unei baze de date relaţionale se adresează SGBD-ului prin instrucţiuni SQL.
Instrucţiunile SQL pot fi trimise de către utilizatori în mod interactiv (de la o consolă) şi sunt
prelucrate direct de o componentă a SGBD sau pot fi înglobate (embeded SQL) în limbaje de programare de
nivel înalt (Cobol, Fortran, C, C++, PL/1, Java, Basic) şi transmise SGBD-ului în cursul execuţiei
programelor respective. Programele de aplicaţii de baze de date mai prezintă, de regulă, interfeţe grafice cu
meniuri şi comenzi prin intermediul cărora utilizatorii finali pot introduce, modifica sau selecta diferite date
sau criterii de selecţie.
De asemenea, multe SGBD-uri conţin o interfaţă specială pentru administratorul bazei de date,
prin care acesta poate crea conturi, utilizatori, drepturi, etc.

3
1.4. Avantajele oferite de Sistemele de Baze de Date

Faţă de metodele mai vechi de înregistrare a datelor privind diferite activităţi pe fişe (documente
scrise) sau chiar în fişiere pe disc, sistemele de baze de date oferă avantaje considerabile, ceea ce explică
extinsa utilizare a acestora. Câteva dintre avantajele oferite sunt prezentate în continuare.
Compactitate ridicată faţă de volumul ocupat de documente scrise sau de fişiere necorelate.
Viteză mare de regăsire şi actualizare a informaţiilor, folosind interogări ale bazei de date.
Reducerea redundanţei datelor memorate, prin partajarea datelor între mai mulţi utilizatori şi
aplicaţii. În stocarea pe fişe sau în fişiere a datelor, fiecare aplicaţie conţinea propriile seturi de date. În
sistemele de baze de date, mai multe aplicaţii pot folosi date comune, memorate o singură dată. De
exemplu, o aplicaţie de personal şi o aplicaţie de rezultate la examene dintr-o universitate care exploatează
o singură bază de date, pot folosi aceleaşi informaţii referitoare a structurarea facultăţilor şi a secţiilor.
Posibilitatea de introducere a standardelor privind modul de stocare a datelor, ceea ce permite
interschimbul informaţiilor între diferite organizaţii.
Menţinerea integrităţii datelor prin politica de securitate (drepturi de acces diferenţiate în funcţie
de rolul utilizatorilor), prin gestionarea tranzacţiior şi prin refacerea datelor în caz de funcţionare
defectuoasă a diferitelor componente hardware sau software.
Independenţa datelor faţă de suportul hardware utilizat. Sistemele de gesiune a bazelor de date
oferă o vedere (view) externă (logică) a datelor, care nu se modifică atunci când se schimbă suportul de
memorare fizic, ceea ce asigură imunitatea structurii bazei de date şi a aplicaţiilor la modificări ale
sistemului hardware utilizat.

1.5. Clasificarea Sistemelor de Baze de Date

Se pot lua în consideraţie mai multe criterii de clasificare ale sistemelor de baze de date.
Clasificare după modelul de date. Majoritatea sistemelor de baze de date actuale se bazează pe
modelul de date relaţional (relaţional data model) sau pe modelul de date obiect (object data model).
Dezvoltarea continuă a acestor modele a condus către o nouă categorie de baze de date, numite obiect-
reaţionale, care combină caracteristicile modelului relaţional cu cele ale modelului obiect. De asemenea,
mai sunt încă în funcţiune baze de date în modele mai vechi (modelul ierarhic sau modelul reţea).
Modelele de date utilizate de SGBD-uri vor fi studiate în capitolul următor.
Clasificare după numărul de utilizatori. Majoritatea sistemelor de baze de date sunt sisteme
multi-utilizator, adică permit accesul concurent (în acelaşi timp) a mai multor utilizatori la aceeaşi bază de
date. Un număr redus de sistemelor de baze de date sunt de tip mono-utilizator, adică suportă accesul doar a
unui singur utilizator (la un moment dat).
Clasificare după numărul de staţii pe care este distribuită baza de date. Există două categorii
de sisteme de baze de date: centralizate şi distribuite.
Un sistem de baze de date este centralizat dacă datele sunt stocate pe o singură staţie (calculator).
Un sistem centralizat poate suporta unul sau mai mulţi utilizatori, dar, în ambele situaţii, datele, ca şi
SGBD-ul, rezidă în întregime pe o singură staţie.
Un sistem de baze de date distribuit poate avea datele, ca şi SGDB-ul, distribuite în mai multe
staţii interconectate într-o reţea de comunicaţie.
Sistemele de baze de date pot fi reprezentate din punct de vedere a utilizării lor printr-o arhitectură
de tip client-server.
Într-un sistem centralizat (Figura 1.3) există un singur server, care este chiar SGBD-ul, care
răspunde cererilor unui singur client (în sistemele mono-utilizator) sau mai multor clienţi (în sistemele
multi-utilizator), accesând baza de date respectivă. Clienţii sunt programe de aplicaţii, oferite de furnizorul
SGBD-ului sau dezvoltate de programatori (utilizatori). Aplicaţiile client pot fi executate pe staţii diferite,
conectate printr-o reţea de comunicaţie cu staţia pe care este executat serverul. Această arhitectură permite
o prelucrare distribuită a datelor şi, mai mult, o configurare a sistemului adaptată cerinţelor de calcul
particulare. Astfel, serverul bazei de date poate fi un sistem puternic, echipat corespunzător (cu volum mare
de memorie secundară), în timp ce fiecare client este o staţie personală, cu putere de calcul adecvată
aplicaţiei executate.

4
Staţie Staţie Staţie
Utilizator Client Client Client
final

Client
Aplicaţie Reţea
de comunicaţie

Server
SGBD
SGBD
Server

BD
BD
(a) (b)

Figura 1.3. Sisteme de baze de date centralizate: (a) mono-utilizator; (b) multi-utilizator

Sistemele de baze de date distribuite pot fi reprezentate într-un mod asemănător din perspectiva
structurării client-server (Figura 1.4).

Staţie Staţie Staţie


Client Client Client

Reţea
de comunicaţie

Server Server
SGBD SGBD

BD BD

Figura 1.5. Sistem de baze de date distribuită

Mai multe servere, conţinând SGBD şi date sunt distribuite pe staţii conectate printr-o reţea de
comunicaţie, în timp ce aplicaţiile client rulează pe alte staţii din reţea şi solicită servicii de la servere.
Numeroase probleme de partiţionare a datelor memorate, de optimizare, de transparenţă a accesului sunt
rezolvate de către SGDB distribuite.