Sunteți pe pagina 1din 7

1.3.

Sistemul de gestiune al bazelor de date (SGBD)

O bază de date este un ansamblu organizat şi structurat de date. Acest ansamblu trebuie să permită o
reprezentare fidelă a datelor cu minim de constrângeri. SGBD-ul este un instrument care permite o astfel
de organizare şi manipulare a datelor. Este un ansamblu de programe care permite descrierea, memorarea,
manipularea şi restaurarea datelor pentru a asigura securitatea acestora. Se numeşte aplicaţie bază de date
sau sistem de bază de date un ansamblu de programe construite în jurul unei baze de date şi integrând un
SGBD pentru gestiunea informaţiilor.

1.3.1. Funcţiile unui SGBD

În primul rând trebuie menţionate funcţiile esenţiale, adică cele pentru care SGBD-ul este conceput.
Ele sunt în număr de patru: descrierea datelor, introducerea, extragerea/interogarea şi actualizarea.
Descrierea datelor este acea parte care permite, înainte de introducerea datelor, de a defini numele
acestor date, structura şi conţinutul lor cu ajutorul limbajului de definire a datelor LDD (în engleză, Data
Description Language DDL).
De exemplu, baza de date a unei biblioteci comportă un ansamblu de date referitoare la cărţi. Înainte
de a putea înregistra aceste date, trebuie definit cu precizie ansamblul informaţiilor care se doreşte a fi
administrat cu privire la aceste cărţi: numărul (cota), titlul, numărul de exemplare, etc. Trebuie, de
asemenea, estimată mărimea sau cel puţin să fie definită mărimea maximă admisă: 30 caractere pentru
titlu, 5 pentru număr, etc.
Odată definite structurile, funcţia de introducere permite tuturor utilizatorilor inserarea de date în
bază. Această funcţie de introducere trebuie, în plus, să asigure toate controalele posibile al acestor date.
În cazul bibliotecii, SGBD-ul trebuie să verifice dacă numărul cărţii este în forma cerută, dacă mărimea
titlului nu depăşeşte numărul maxim de caractere prevăzut, dacă numărul de exemplare este un număr
întreg pozitiv, etc.
Extragerea datelor desemnează toate operaţiile regulate sau punctuale, de căutare şi de ieşire pe
ecran, pe suport de hârtie sau pe un alt suport, în întregime sau doar în parte a informaţiilor din baza de
date. Se va putea, de exemplu, să se extragă toate cărţile care sunt scrise de un anumit autor sau toate
cărţile apărute în colecţia „Baze de date”.
În fine, funcţia de actualizare trebuie să asigure modificare sistematică a informaţiilor pe măsură ce
acestea evoluează. La fiecare cumpărare a unei cărţi, trebuie modificat numărul de exemplare al titlului
corespunzător din baza de date.
Actualizarea şi regăsirea datelor din baza de date se face cu ajutorul limbajului de manipulare a
datelor LMD (în engleză Data Manipulation Language DML)
Pentru că datele sunt partajate de către mai multe aplicaţii, dezvoltarea funcţiilor descrise anterior,
antrenează şi alte necesităţi.
Punerea în comun a unui ansamblu de date are ca şi consecinţă necesitatea de a prevedea controlul
accesului la date. Există două aspecte legate de protecţia datelor. Primul priveşte confidenţialitatea:
informaţia nu poate fi cunoscută de toţi. Pentru fiecare tip de informaţie trebuie stabilită lista persoanelor
sau a grupurilor autorizate a le consulta. Al doilea aspect se referă la integritate: informaţia nu poate fi
modificată de toţi. În acest caz, se convine la definirea unui cerc de persoane, în general foarte mic,
abilitate să actualizeze informaţia. SGBD-ul trebuie să permită personalizarea accesului la baza de date.
Trebuie deci să se poată identifica utilizatorii şi controla această identificare, ceea ce se cheamă
„autentificarea” accesului. După caz, protecţia se poate face la mai multe nivele: accesul la întreaga bază,
la o parte din ea sau la un singur element al bazei.
Protecţia datelor este unul din aspectele unei funcţii destul de importante care este securitatea bazei
de date. La această funcţie se adaugă şi funcţiile de rezistenţă în cazul unor pene, pe care trebuie sa le
furnizeze SGBD-ul. Un program nu poate împiedica în totalitate apariţia incidentelor sau a problemelor
majore. Totuşi, el trebuie să fie în măsură să furnizeze mecanisme care să faciliteze recuperarea datelor în
cazul în care apar probleme grave. Bazele de date sunt utilizate pentru a evita redundanţa informaţiilor
stocate. Uneori, pentru a minimiza consecinţele legate de eventualele probleme ce pot apărea, este necesar
efectuarea de salvări ale bazei de date. Aceste salvări nu sunt nimic altceva decât date redundante, dar, în
acest caz duplicarea informaţiilor este controlată de SGBD.
SGBD-ul este dedicat manipulării datelor. Pentru aceasta trebuie să asigure un „acces optimal” la
date. Dincolo de organizarea fizică a datelor, SGBD-ul trebuie să faciliteze căutarea acestora.
În aceeaşi ordine de idei, SGBD-ul trebuie să faciliteze accesul la date pentru toate programele, dar şi
pentru toate categoriile de utilizatori. Pentru aceasta, el trebuie să furnizeze instrumentele care să permită
interfaţarea – comunicarea – SGBD-ului cu alte programe. Trebuie oferit un acces direct la date sub o
formă compatibilă cu categoriile de utilizatori, de exemplu o interfaţă grafică pentru nespecialişti, un
limbaj de acces puternic pentru informaticieni.
O altă funcţie importantă este controlul concurenţei. Într-adevăr, o bază de date trebuie să permită
accesul simultan al mai multor utilizatori, fără nici un fel de incident. Să luăm exemplu unui sistem de
rezervare a locurilor pentru cursele aeriene, fondat pe o bază de date. Aceasta trebuie să permită alocarea
fiecărui loc unei singure persoane şi numai uneia. O agenţie conectată la baza de date respectivă, întreabă
dacă a mai rămas un loc liber pentru zborul 747. I se răspunde că a mai rămas unul singur. O altă agenţie
pune imediat aceeaşi întrebare, înainte ca prima agenţie să fi confirmat interesul său pentru locul rămas.
Locul este încă disponibil. Prima agenţie l-a rezervat. A doua, de asemenea, a întrebat. Se produce în
acest caz o problemă zisă de acces concurent pe care SGBD-ul trebuie să o prevină.

1.3.2. Principiile independenţei

Realizarea unei baze de date are drept consecinţă punerea în comun şi partajarea unui ansamblu de
informaţii. Această punere în comun trebuie să respecte două principii de independenţă: respectiv
independenţa fizică şi independenţa logică.
Independenţa fizică desemnează principiul conform căruia un program care accesează datele din
bază, trebuie să manipuleze aceste date într-un mod abstract, independent de organizarea lor fizică.
Independenţa logică caracterizează accesul simultan al diferiţilor utilizatori sau programe la aceeaşi
bază de date. Fiecare program trebuie să poată lucra doar asupra părţii de date care doreşte. Pentru aceasta
la realizarea programului se vor folosi doar datele utile acestuia. Trebuie să se poată utiliza pentru
calificarea acestor date, termeni care sunt proprii programului, eventual diferiţi de cuvintele care vor fi
utilizate în alte programe sau de alţi utilizatori pentru a desemna aceleaşi date. Mecanisme precum sub-
schema în cazul bazelor de date reţea sau vederile în cazul bazelor de date relaţionale permit această
independenţă logică.

1.3.3. Clasificarea SGBD-urilor

În literatura de specialitate există o multitudine de puncte de vedere cu privire la clasificarea SGBD-


urilor: modelul de organizare folosit (ierarhice, reţea, relaţionale, obiect), distribuirea resurselor (integrate
şi distribuite teritorial), tehnica de prelucrare (pe loturi, interactive, mixte), destinaţia (publice şi private).
După sistemul de calcul pe care se implementează SGBD-urile pot fi:
• pentru mainframe-uri: RM, RDMS, System R, SEQUEL;
• pentru minicalculatoare: PLANES, INGRESS, ARGUS;
• pentru microcalculatoare: dBase, FoxPro, PARADOX, ACCESS, xBase.
În prezent, tendinţa este aceea de generalizare şi standardizare a tuturor SGBD-urilor, pentru ca
acestea să poate rula pe cât mai multe medii de operare (WINDOWS, LINUX, OS/2, MAC, DOS).
În funcţie de organizarea şi structurarea datelor pe care le gestionează SGBD-urile pot fi:
• cu structuri ierarhice: IMS, SYS2000, COBRA;
• cu structuri reţea: IDS, DMS, SOCRATE;
• cu structuri relaţionale: RDMS, RM, SYSTEM R, FoxPro;
• cu structuri obiectuale: Postgres, OpenODB, Ontos;
• cu structuri obiectual-relaţionale: Oracle, Visual FoxPro.
În funcţie de limbajul pe care îl utilizează există două clase de SGBD:
• cu limbaj gazdă: asigură crearea, actualizarea şi interogarea bazei de date folosind limbaje de
nivel înalt proprii sistemului de calcul pe care se implementează baza de date. Au avantajul
exploatării facilităţilor limbajului de nivel înalt şi prezintă dezavantajul formulării cererilor de
prelucrare;
• cu limbaj autonom: folosesc limbaje specifice care sunt independente de limbajul gazdă, fapt ce
conferă un grad sporit de portabilitate. Avantajul lor constă în simplitatea formulării cererilor.
Din punct de vedere al modului de localizare a bazelor de date SGBD-urile sunt:
• centralizate, care presupun ca datele să fie concentrate într-un singur lor, ca sursă unică de
informare şi/sau raportare;
• distribuite, care presupun ca datele să fie repartizate geografic în mai multe puncte în funcţie de
locul lor de producere, cu posibilitatea accesării datelor din orice punct definit. În prezent datorită
dezvoltării puternice a prelucrărilor în reţea de calculare tot mai multe din SGBD-uri au o
componentă de gestiune distribuită a datelor.

Arhitectura funcţională a unui SGBD


Un SGBD este format din diferite module fiecare având în sarcină una sau mai multe din funcţiile
descrise anterior.

SGBDSGBD
Interfaţa utilizatorInterfaţa de administrare
SGBD
Gestiunea acceselor
SGBD
Gestiunea tranzacţiilor
SGFSGBD
Gestiunea fişierelorMecanisme specifice
SGBD
Gestiunea discurilor

Discuri

Figura nr. 1. Arhitectura funcţională a unui SGBD


Ansamblul acestor module constituie puntea de legătură între baza de date stocată pe unul sau mai
multe discuri magnetice şi ansamblul utilizatorilor. La cel mai înalt nivel SGBD–ul conţine un ansamblu
de instrumente administrând comunicarea directă cu utilizatorii. În funcţie de SGBD, oferta în termeni de
interfeţe este mai mult sau mai puţin bogată. Editorii de SGBD-uri tind să propună diferite limbaje de
acces la baza de date, adaptate gradului de competenţă sau nevoilor categoriilor de utilizatori desemnaţi
să lucreze cu datele sau interfeţe interactive dispun de instrumentele necesare punerii în legătură a
programelor de acces la date – scrise în limbaje de programare clasice – cu baza de date.
Instrumentele respective permit munca cu datele conţinute în baza de date. SGBD-ul oferă, în plus, o
interfaţă care permite de a acţiona asupra structurii bazelor de date şi/sau asupra aspectelor tehnice, cum
ar fi optimizarea bazelor, configurarea lor. Această interfaţă este numită „interfaţa de administrare”. Ea
este rezervată, în general, informaticienilor sau utilizatorilor foarte avizaţi. Este instrumentul de muncă
privilegiat al administratorului bazei de date.
Indiferent care ar fi interfaţa de comunicare aleasă pentru a accede la baza de date, trebuie să existe
un drept de acces la aceasta din urmă. Drepturile sunt atribuite de administrator şi se concretizează într-o
identificare (nume utilizator) şi o autentificare (parolă). Modulul de gestiune a acceselor are în sarcină
aceste controale. El asigură în acelaşi timp şi controlul integrităţii.
Altfel spus, el protejează datele verificând dacă toate actualizările respectă un ansamblu de reguli
numite constrângeri de integritate. Se împiedică modificările care violează aceste constrângeri şi
avertizează utilizatorul de problemele întâlnite. În fine modulul de gestiune a acceselor asigură
optimizarea acestora. Astfel, în majoritatea SGBD-urilor, accesul la date este formulat în limbaje evoluate
precum SQL (Structured Query Language).
Modulul de gestiune a tranzacţiilor este indispensabil pentru a asigura, în acelaşi timp, buna execuţie
a acceselor simultane şi pentru a realiza acţiunile care vor permite, în caz de pană, recuperarea datelor în
cea mai bună stare posibilă. Răspunsul editorilor de SGBD-uri la aceste două nevoi a fost cvasi unanim:
punerea la punct a unui mecanism numit „tranzacţie” care permite definirea ansamblului de executat
„totul sau nimic” asupra bazei de date. Astfel, se asigură că utilizatorii pot lucra simultan fără conflicte:
cererea disponibilităţii unui loc în avion şi rezervarea sa trebuie să facă pare din aceeaşi tranzacţie. Prin
acelaşi mijloc, în caz de pană, nu se reia decât tranzacţiile corect executate, adică tranzacţiile terminate şi
valide.
Toate modulele descrie până acum sunt parte componentă a SGBD. Totuşi, SGBD-ul nu este în
relaţie directă cu baza de date. După cum am văzut baza de date este constituită dintr-un ansamblu de
fişiere, îmbogăţite cu structuri zise de acces. Aceste fişiere sunt, în general, administrate de sistemul de
gestiune al fişierelor (SGF) care face parte din sistemul de operare al calculatorului: Unix, Windows.
Ultimul strat reprezentat în figură nu este intern SGBD. El reprezintă sistemul de gestiune al
intrărilor-ieşirilor sistemului de operare. El permite convertirea comenzilor scrise în straturile superiore în
ordinea citire, scriere, deplasare şi poziţionare a capetelor pe discuri. Realizează, de asemenea, operaţiile
necesare pentru căutarea şi actualizarea datelor. De fapt, baze de date este stocată pe disc. Totuşi, toate
informaţiile asupra datelor sunt efectuate în memoria centrală. Gestiunea discurilor asigură deci toate
transferurile între memoria centrală şi spaţiul de stocare de pe disc.
1.3.4. Arhitectura operaţională a unei aplicaţii baze de date

La început, SGBD-urile erau concepute pentru sisteme centralizate. Utilizatorii conectaţi la aceste
sisteme partajau aceleaşi date implantate pe acelaşi disc şi încărcate în acelaşi spaţiu de memorie centrală.
Apariţia micro-informaticii în anii 1980 a dus la realizarea de SGBD la nivel micro. Totuşi,
utilizatorii şi-au exprimat rapid dorinţa de a putea interacţiona cu baza de date centralizată prin
intermediul microcalculatorului. Acestea nu aveau însă puterea şi securitatea marilor sisteme.
La începutul anilor 1990 apare conceptul de arhitectură client/server. Se consideră că o aplicaţie
informatică comportă în general trei tipuri de tratamente: gestiunea datelor (căutare, actualizare), logica
aplicativă care înseamnă calcule, reflecţii şi în cele din urmă prezentarea rezultatelor. Se vorbeşte de
client/server de îndată ce aceste tratamente sunt repartizate între cel puţin două calculatoare. Este evident
faptul că gestiunea datelor este mai bine asigurată de marile sisteme. În schimb, prezentarea rezultatelor
este mai mulţumitoarea via un microcalculator.
Cea mai clasică arhitectură client/server poate fi descrisă după cum urmează (figura nr. 2.):
- client este microcalculatorul care emite cererile de acces la baza de date situată pe un server;
- cererea este executată pe server care remite clientului liniile rezultat;
- acest rezultat este afişat pe postul client, de exemplu prin intermediului unui tabel.

Server

Client 1 Client 2 Client n

Cererea client către server


Răspunsul serverului către client
Figura nr. 2. Arhitectura client server

Acest tip de funcţionare este eficace în măsura în care fiecare dintre cei doi efectuează sarcina pentru
care este cel mai adaptat: prezentarea rezultatelor este efectuată de către client, gestiunea datelor
(coerenţa, integritatea) este asigurată de server.
Logica aplicativă poate fi executată fie de client, fie de server. Totuşi, în primul caz, inconvenientul
este că ansamblul de date uneori voluminos tranzitează reţeaua. Dacă numărul utilizatorilor este foarte
mare, reţeaua poate fi foarte încărcată.
În cazul în care logica aplicativă este efectuată de server, acesta poate fi foarte solicitat de un mare
număr de utilizatori simultan. În ciuda acestor inconveniente, arhitecturi de acest tip sunt încă foarte
utilizate în întreprinderi. În aceste configuraţii, conexiunea între programe este realizată de programe de
comunicare numite „middlewares”.
Pentru a rezolva inconvenientul citat mai sus, de acum înainte se realizează arhitecturi pe 3 niveluri
(figura 3.). Cele 3 componente care sunt gestiunea datelor, logica aplicativă şi prezentarea rezultatelor
sunt repartizate între trei calculatoare: serverul de date, serverul de aplicaţie şi postul client:

Server
Server de aplicaţie

Client 1 Client 2 Client n

Figura nr. 3. Arhitectura pe 3 niveluri

Schema şi conţinutul unei baze de date. Exemplu


În abordarea bazelor de date relaţionale, există două aspecte complementare: conţinutul şi
schema.
Conţinutul unei relaţii este reprezentat de totalitatea tuplurilor ce alcătuiesc relaţia respectivă la
un moment dat. Pe parcursul exploatării bazei de date, conţinutul ei poate creşte în mod exponenţial, în
funcţie de volumul şi complexitatea operaţiunilor consemnate.
O schemă relaţională poate fi definită ca un ansamblu de relaţii asociate din punct de vedere
semantic prin domeniul lor de definiţie şi prin restricţii de integritate, fiind independentă de timp, ea
reprezentând componenta permanentă a relaţiilor.
Schema bazei de date cuprinde:
• structura titulaturilor alcătuită din numele relaţiilor şi al atributelor (fiecare atribut fiind asociat
domeniului său);
• restricţiile de integritate, în care se includ:
- restricţiile cheilor primare: fiecare cheie primară este supusă restricţiilor de unicitate,
compoziţie minimală şi valori nenule;
- restricţiile referenţiale, determinate de existenţa cheilor străine;
- alte restricţii: cele definite de utilizator (de comportament), dependenţele dintre atribute.
Pe parcursul acestei cărţi vom utiliza o bază de date (numită de noi UNIVERSITATE) care ne va
ajuta în exemplificările pe care le vom face. Această bază de date conţine următoarele tabele:

STUDENT (nr_matricol, nume, facultate, sectia, data_nasterii, cod_localitate)


BURSA (nr_matricol, data_incasarii, tip_bursa, suma_incasata)
STUDCAMIN (nr_matricol, nume_camin, camera, strada)
LOCALITATE (cod_localitate, nume_localitate, cod_judet, judet, regiune)
STUDCARTE (nr_matricol, cota_carte, data_imprumut)
CARTE (cota_carte, titlu, editura, domeniu, an_aparitie, nr_exemplare,
pret_unitar)
AUTORCARTE (cod_autor, cota_carte)
AUTOR (cod_autor, nume_autor, nationalitate, an_nastere)
De cele mai multe ori este suficientă doar cunoaşterea schemei simplificate. O schemă simplificată a
unei baze de date este formată doar din numele tabelelor şi enumerarea atributelor acestora, acele atribute
care joacă rolul de cheie primară fiind subliniate.
Putând fi reprezentată grafic, schema unei baze de date prezintă avantajul unei mai mari sugestivităţi.
În reprezentarea grafică a unei baze de date relaţionale trebuie avute în vedere câteva reguli:
 o tabelă se reprezintă pe două linii, pe prima linie fiind scris numele ei, iar pe cea de-a doua
numele atributelor ce o alcătuiesc;
 ordinea prezentării atributelor componente nu are importanţă. Totuşi, în scopul înţelegerii cu
uşurinţă a schemei, coloanele care desemnează cheia primară se dispun succesiv (în cazul în
care cheia primară este formată din mai multe atribute). În general, cheia primară este
amplasată în marginea din stânga a tabelei;
 numele coloanelor ce alcătuiesc cheia primară se subliniază cu o linie continuă, iar cele care
formează identificatorii secundari cu o linie punctată;
 o restricţie referenţială este reprezentată printr-o săgeată care pleacă de la numele coloanei de
referinţă şi are vârful în atributele tabelei la care se face referinţa (tabela părinte).
Reprezentarea grafică a schemei simplificate a bazei de date UNIVERSITATE este cea din realizată
în Anexa 1.

S-ar putea să vă placă și