You are on page 1of 65

Baze de date

Prof. Univ. Dr. Doina Fusaru


Conf. Univ. Dr. Zenovic Gherasim

Codul cursului:
Denumirea cursului: Baze de date
Tip curs: obligatoriu
Durata cursului / Nr. credite: un semestru / 5
Perioada de accesare a cursului: prelegeri 1 nov. 2009- iunie 2010
seminar
consultaŃii
Manual recomandat:
1. Gherasim, Z., Programare şi baze de date, Editura FundaŃiei România de Mâine,
Bucureşti, 2005.
2. Fusaru, D.; Gherasim, Z.; Andronie, M.; Bâra, A.; Stroe, P. – AplicaŃii economice în
Visual Basic şi Access, Editura FundaŃiei România de Mâine, Bucureşti, 2003.
Obiectivul principal al cursului: Obiectivele disciplinei Baze de date, se
concretizează în cunoaşterea şi aprofundarea noŃiunilor de bază referitoare la
sistemele informatice, la noŃiunile de structuri de date, de relaŃii între date, la teoria
bazelor de date relaŃionale, distribuite, la protecŃia şi securitatea bazelor de date
distribuite, baze de date în tehnologii avansate, precum şi utilizarea lor în
administraŃia publică. Problematica teoretică şi aplicaŃiile practice sunt sistematizate
în aşa fel încât să asigure însuşirea raŃională şi formarea gândirii informatice a
masterandului.
Modul de stabilire a notei finale: nota este cea care rezultă din evaluarea prin
teste grilă.
ConsultaŃii pentru studenŃi: în fiecare vineri de la ora 12 - 14 pe peioada
cursurilor.
Adresa e-mail responsabil pentru contactul cu studenŃii: dfusaru.mfc@spiruharet.ro
Titularul / titularii cursului / serie: Prof. Univ dr. Fusaru Doina
dfusaru.mfc@spiruharet.ro
Str. Splaiul IndependenŃei nr. 313, 3169785/110
ConsultaŃii: în fiecare vineri de la ora 16-
17 pe peioada cursurilor.
ConŃinutul tematic al cursului:
1. Capitolul I.
1.1. NoŃiuni fundamentale utilizate în organizarea datelor
1.2. RelaŃii între date.
1.3. Structuri de date
Capitolul II.
2. Teoria bazelor de date şi a sistemelor de gestiune a bazelor de date
2.1. Organizarea datelor în baze de date. Sisteme de gestiune a bazelor de date.
Capitolul III.
3.1 GeneraŃii de baze de date şi de sisteme de gestiune a bazelor de date
asociate
Capitolul IV.
4.1 Baze de date relaŃionale.
Capitolul V.
5.1 Baze de date orientate obiect
Capitolul VI.
6. Elemente fundamentale ale serverelor de baze de date.
6.1 Arhitectura Client/Server
Capitolul VII.
7.1. Serverul de baze de date Microsoft SQL Server
Capitolul VIII.
8. BAZE DE DATE DISTRIBUITE
8.1 Despre necesitatea bazelor de date distribuite în aplicaŃiile economice
Capitolul IX.
9.1. Fragmentarea datelor în bazele de date distribuite

Capitolul X.
10.1. ProtecŃia bazelor de date distribuite
Capitolul XI.
11. Baze de date online
11.1 Problematica generală
11.2 Pagini Web statice şi dinamice
Capitolul XII.
12. Visual Basic.NET şi bazele de date distribuite
Capitolul XIII.
13.1. BAZE DE DATE ÎN TEHNOLOGII AVANSATE
13.2 Bazele de date multidimensionale
13.3 Bazele de date multimedia
13.4. Bazele de date relaŃionale orientate obiect
Bibliografie minimală obligatore:
1. Fusaru, D.; Mareş, M.D; Mihai, G. – Visual Basic şi Access, Editura FundaŃiei
România de Mâine, Bucureşti, 2001.
2. Fusaru, D. – Arhitectura bazelor de date. Mediul SQL, Editura FundaŃiei
România de Mâine, Bucureşti, 2002.
3. Fusaru, D.; Gherasim, Z.; Andronie, M.; Bâra, A.; Stroe, P. – AplicaŃii economice
în Visual Basic şi Access, Editura FundaŃiei România de Mâine, Bucureşti, 2003.
4. Gherasim, Z., Programare şi baze de date, Editura FundaŃiei România de Mâine,
Bucureşti, 2005.
Bibliografie facultativă:
1. Lungu, I.; Bodea, C.; Bădescu, C.; IoniŃă, C. – Baze de date: organizare,
proiectare şi implementare, Editura ALL, Bucureşti, 1995.
2. Mihalca, R.; Fabian, C.; UŃă, A.; Simion, F. – Analiză şi proiectare orientată
obiect. Instrumente de tip Case, Editura Societatea Autonomă de Informatică,
Bucureşti, 1998.
3. Militaru, G. – Sisteme informatice pentru management, Editura Bic All,
Bucureşti, 2004.
Prezentarea lecŃiei / capitolul 1:
1.1 NoŃiuni fundamentale utilizate în organizarea datelor
Datele sunt stocate în memoria internă şi memoria externă a oricărui sistem de
calcul. Organizarea datelor se referă la procesul de definire şi structurare a datelor în
colecŃii de date, precum şi la realizarea legăturilor între elementele unei colecŃii şi
între colecŃiile de date. Organizarea datelor se proiectează în scopul regăsirii
automate a acestora după diverse criterii.
Obiectivele organizării datelor sunt, în principal, următoarele:
• timp de acces minim la date;
• apariŃia o singură dată a datelor în sistem;
• spaŃiu de memorie internă şi externă pentru date cât mai mic;
• reflectarea prin organizare a tuturor legăturilor dintre procesele economice
pe care aceste date le reprezintă;
• posibilitatea modificării structurii datelor şi a relaŃiilor dintre date fără a
produce schimbări în programele care le gestionează.
Tehnicile de organizare a datelor în colecŃii de date sunt: fişierul de date şi
baza de date.
Fişierul de date reprezintă o colecŃie de date memorată pe un suport tehnic
într-o succesiune de înregistrări. Accesul la o înregistrare din fişierul de date se obŃine
prin parcurgerea înregistrărilor fişierului în secvenŃa în care au fost stocate (acces
secvenŃial) sau pe baza unei chei de identificare care să permită regăsirea rapidă a
înregistrării (acces direct). Accesul direct se obŃine prin indexarea fişierelor, adică
prin crearea unor tabele de indecşi care pentru fiecare valoare a atributului cheie
primară (atribut care permite identificarea în mod unic a unei înregistrări din fişier) să
conŃină adresa corespunzătoare (în cadrul fişierului) a fiecărei înregistrări.
Această organizare a datelor în fişiere de date prezintă următoarele dezavantaje:
• redundanŃă mare (stocarea aceloraşi date în mai multe fişiere);
• acces dificil la date; exploatarea multiutilizator a datelor necesita operaŃii
suplimentare de sortare, fuziune, ventilare etc.;
• izolarea datelor, adică nu pot fi realizate programe pe calculator care să acceseze
datele într-o manieră globală;
• actualizarea datelor, prin adăugare, modificare, ştergere, generează conflicte atunci
când mai mulŃi utilizatori doresc să modifice simultan aceleaşi date;
• dependenŃa programelor faŃă de date; deoarece datele se descriu în programe,
modificările din structura datelor obligă la efectuarea de corecturi în programele pe
calculator;
• problemele neprevăzute nu obŃin răspunsuri rapide;
• fiecare dată este descrisă independent în toate fişierele în care apare; dacă într-un
fişier se modifică formatul şi valoarea unei date, acea modificare nu se transmite
automat, pentru aceeaşi dată, în toate fişierele de date; ca urmare, pentru aceeaşi dată
se creează posibilitatea apariŃiei de valori diferite în fişiere diferite (inconsistenŃa
datelor);
• nu se menŃine integritatea datelor, atunci când fişierul este realizat cu limbaje
diferite.
Creşterea necesarului de date, informaŃii şi cunoştinŃe pentru agenŃii economici
şi progresele tehnologiilor informaŃiei şi ale comunicaŃiilor (IT&C) au determinat
organizarea datelor în baze de date.
NoŃiunile fundamentale folosite în organizarea datelor sunt entitatea, atributul
şi valoarea. Între acestea există legături de interdependenŃă astfel:
 o entitate are mai multe atribute, iar atributele au o anumită mulŃime de valori;
 entitatea reprezintă un obiect concret sau abstract definit prin proprietăŃile sale;
 orice proprietate a unui obiect este exprimată printr-o pereche (ATRIBUT,
VALOARE).
Exemplul a) - „materialul M are lungimea mare” unde „lungimea” este
atributul, iar „mare” este valoarea. (LUNGIMEA, MARE);
Exemplul b) – un client – persoană fizică al unei societăŃi comerciale poate fi
reprezentat prin mulŃimea de perechi: (NUME, POPESCU); (PRENUME, ION);
(LOCALITATE, BUCUREŞTI); (TELEFON, 0213211231); (BANCA, BCR);
(CONT_BANCAR, RO15RZBR0000070002170022).
1.2. RelaŃii între date.
Între date există relaŃii sau legături diferite. Între datele care aparŃin unor
tipuri de entităŃi se pot realiza două feluri de legături:
• primă legătură se exprimă prin apartenenŃa datelor la entitate;
• a doua legătură se defineşte pentru entităŃile de acelaşi tip sau de tipuri
diferite.
Exemple:
a) Dacă se notează cu SALARIATI mulŃimea salariaŃilor unei societăŃi
comerciale, între datele a1 şi a2 ce aparŃin acestei mulŃimi, se pot defini relaŃii de
tipul:
 a1 are aceeaşi funcŃie de încadrare cu a2;
 a1 are acelaşi salariu cu a2;
 a1 are aceeaşi vârstă cu a2 etc.
b) Se consideră două clase de entităŃi: PRODUSE_BANCARE şi CLIENTI.
Între datele acestor două clase de entităŃi se pot defini relaŃiile:
 un produs bancar poate fi achiziŃionat de unul sau mai mulŃi clienŃi ai
băncii;
 un client al băncii poate achiziŃiona unul sau mai multe produse bancare.

1.3. Structuri de date


Structura de date este o colecŃie de date între care s-au stabilit un ansamblu de
relaŃii pe baza cărora funcŃionează un mecanism de selecŃie şi identificare a
componentelor. Altfel exprimat, o structură de date reprezintă un anumit aranjament
al datelor atunci când sunt stocate în memoria unui calculator. Datele din structurile
de date pot fi manipulate cu ajutorul algoritmilor, în mai multe moduri, sortând datele
sau căutând un anumit element. Structurile de date, în afara situaŃiei de instrumente de
programare, servesc pentru stocarea şi modelarea unor date din universul real.
MulŃimea de date, asociată structurii de date, poate cuprinde datele unui tip sau
ale mai multor tipuri de entităŃi. Componentele structurii se identifică prin nume sau
prin poziŃia pe care o deŃin în structură în raport cu ordinea specificată.
În situaŃia în care pentru localizarea unei componente se parcurg toate celelalte
componente dinaintea ei, structura are acces secvenŃial. În schimb, atunci când o
componentă poate fi selectată fără a Ńine seama de celelalte, structura are acces direct.
Componentele unei structuri de date sunt date elementare sau sunt ele însele
structuri de date.
Asupra unei structuri de date se pot efectua următoarele operaŃii:
• crearea (înseamnă memorarea datelor iniŃiale pe suportul de stocare);
• actualizarea (schimbarea stării structurii prin adăugare, modificare sau
ştergere de elemente, modificarea valorii sau relaŃiilor dintre elemente);
• consultarea (accesarea componentelor structurii de date);
• sortarea (aranjarea elementelor unei structuri de date în conformitate cu criterii
prestabilite);
• ventilarea (divizarea unei structuri de date în două sau mai multe structuri de
date);
• fuzionarea (formarea unei structuri de date noi din două sau mai multe
structuri de date) etc.
Structurile de date care prezintă aceeaşi organizare şi asupra cărora se execută
aceleaşi operaŃii formează un anumit tip de structuri de date. Tipul de structură de
date reprezintă o mulŃime ordonată de date între care s-au stabilit anumite relaŃii şi
pentru care realizarea operaŃiilor se efectuează cu un grup de operatori de bază care au
o anumită semantică.
Dacă se ia în considerare tipul componentelor, structurile de date se clasifică
în:
• omogene (componentele sunt de acelaşi tip);
• eterogene (componentele au tipuri diferite).
Când structura de date se descompune în structuri de date de acelaşi tip, atunci
structura obŃinută este denumită recursivă.
După nivelul de structurare al datelor, se deosebesc:
• structura fizică (structura de date care se referă la modul de implementare pe
suporŃi tehnici informaŃionali);
• structura logică (modul de ordonare a datelor şi modul de folosire a
operatorilor de tratare a datelor).
Dacă se ia în considerare posibilitatea modificării valorilor şi a structurilor, se
identifică:
• structuri statice (pe tot parcursul existenŃei acestora prezintă acelaşi număr de
componente şi în aceeaşi ordine (adică au cardinalitate finită, prin
cardinalitate înŃelegând numărul elementelor mulŃimii);
• structuri dinamice (permit modificarea valorilor şi a structurii de date prin
aplicarea unor operatori; aceste structuri de date au cardinalitate infinită
deoarece prezintă un număr nelimitat de componente).
O structură logică poate fi implementată atât ca structură statică cât şi ca
structură dinamică. Există însă şi structuri logice ce nu pot fi implementate static. În
organizarea datelor trebuie definită atât structura logică, cât şi cea fizică, deorece cele
două nivele se condiŃionează reciproc.
Din punctul de vedere al tipului de structură de date, se deosebesc:
• structura de date punctuală (o entitate de grup izolată);
• structura de date liniară (când există o relaŃie de ordine totală între elementele
colecŃiei de date; primul element nu are predecesori; ultimul element nu are succesori;
între date se stabilesc relaŃii de tipul “unu-la-unu”; când ultimul element coincide cu
primul element, structura liniară devine structură circulară sau inelară);
• structura de date arborescentă (este denumită şi structură de date ierarhică sau
descendentă; acest tip de structură de date se defineşte când există o relaŃie de ordine
între elementele colecŃiei de date; există un element unic care este denumit nodul
rădăcină (root node);orice nod diferit de nodul rădăcină prezintă un predecessor
imediat unic; orice nod care nu este terminal prezintă un număr finit de succesori
imediaŃi; între noduri se stabilesc relaŃii de tipul “unu-la-mulŃi);
• structura de date reŃea (acest tip de structură de date se defineşte când există o
relaŃie de preordine între elementele colecŃiei de date; un nod prezintă mai mulŃi
predecesori; un nod poate fi predecesor pentru propriul său predecesor; între
elementele reŃelei se stabilesc relaŃii de tipul “mulŃi-la-mulŃi);
• structura de date relaŃională (acest tip de structură de date este formată din mai
multe tabele, relaŃii sau tablouri de date elementare).
Datele şi structurile de date pot fi predefinite sau definite de utilizator.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Care sunt noŃiunile fundamentale în organizarea datelor?
2. Ce operaŃii se pot efectua asupra structurilor de date?
3. Cum se clasifică structurile de date?
4. Ce semnifică relaŃiile între date?
Prezentarea lecŃiei / capitolul 2:
2. Teoria bazelor de date şi a sistemelor de gestiune a bazelor de date
Organizarea datelor în baze de date. Sisteme de gestiune a bazelor de date.
Un sistem de calcul din compunerea sistemului informatic are organizate
datele într-o ierarhie care începe cu biŃi şi octeŃi (bytes) şi continuă cu câmpuri,
înregistrări, fişiere, baze de date şi depozite de date.
Sistemul bază de date se defineşte ca fiind ansamblul de colecŃii organizate de
date, împreună cu descrierea datelor şi a relaŃiilor dintre ele, care reprezintă,
complet, corect şi coerent, universul real al organizaŃie economice (compartimentului
specializat al acesteia) prin caracteristicile relevante (reprezentative) ale elementelor
sale, percepute de sistem prin semantica lor (semnificaŃia lor reală) şi prin legăturile
dintre aceste caracteristici (fig. 2.1).
Conceptul de bază de date a fost introdus în anul 1969, cu prilejul prezentării
primului raport CODASYL.
Ulterior şi alte grupuri de lucru specializate (IIBM, ANSI, DBTG) şi-au adus
contribuŃia la standardizarea conceptelor din teoria bazelor de date.
DOMENIUL CONCEPTUAL
PercepŃie DOMENIUL
Re SEMANTIC

**********
BAZA
UNIVERS COLECłII DE
REAL CARACTE- DE DATE DATE
RISTICI

SGBD

Fig. 2.1 Definirea conceptului de bază de date


PercepŃie
Reprez

ColecŃia de date, se defineşte ca fiind mulŃimea de valori (date) pe care le iau


caracteristicile reprezentative ale unui element din universul real al organizaŃiei
economice, dacă la fiecare moment de timp se aplică asupra lor un predicat, o acŃiune
din realitatea organizaŃiei economice, împreună cu domeniile de definiŃie reale ale
acestor caracteristici.
Într-un sistem bază de date, descrierea datelor constă în descrierea structurii
de date a sistemului bază de date şi în descrierea regulilor care asigură coerenŃa
datelor, în raport cu universul real al organizaŃiei economice reprezentat. Se
reaminteşte că tipurile de structuri logice de date sunt: punctuală, liniară,
arborescentă, reŃea, relaŃională, orientată pe obiecte (OO).
Structura de date a unui sistem bază de date este determinată de modelul
abstract de reprezentare a datelor folosit, numit bază de date. În funcŃie de tipul
stabilit pentru legăturile dintre datele din colecŃiile de date (ierarhic, reŃea, relaŃional,
orientat pe obiecte), s-au realizat mai multe modele abstracte de reprezentare a
datelor, dar fiecăruia îi corespunde o singură structură de date a sistemului bază de
date. Din acest motiv s-a generalizat utilizarea conceptului de bază de date, BD sau
DB (DataBase), care este folosit atât pentru denumirea structurii de date a unui sistem
bază de date, cât şi pentru denumirea modelului abstract de reprezentare a datelor
care o determină. Mai mult chiar, conceptul de bază de date denumeşte atât colecŃia
organizată, cît şi structura de date folosită pentru reprezentarea acesteia în sistemul
bază de date.
Sistemul de gestiune a bazei de date, SGBD sau DBMS (Data-Base
Management System) reprezintă un ansamblu complex de programe care asigură
interfaŃa dintre baza de date şi utilizator.
O bază de date trebuie să satisfacă următoarele condiŃii:
• structura bazei de date trebuie să asigure informaŃiile necesare şi suficiente pentru
îndeplinirea cerinŃelor de informare şi decizie;
• să asigure o independenŃă sporită a datelor faŃă de programe şi invers;
• să se realizeze o redundanŃă (cardinalitatea informaŃiilor colecŃiilor de date)
minimă şi controlată a datelor memorate;
• accesul la datele stocate în baza de date să fie rapid şi eficace.
O bază de date poate să fie exploatată, de regulă, în regim de prelucrare pe
loturi (batch) şi în regim conversaŃional. Accesarea bazei de date se realizează prin
aplicaŃii generale, programe de aplicaŃie, limbaje de manipulare autonome
(procedurale şi neprocedurale), interfeŃe specializate cu limbajele de programare
clasice etc., local sau de la distanŃă, prin utilizarea calculatoarelor singulare sau a
reŃelelor de calculatoare. Rezultatele interogărilor utilizatorilor se prezintă sub formă
vizuală, listată, prin memorare pe diverşi suporŃi tehnic de date, local sau la distanŃă.
Sistemul bază de date are rolul de organizare şi stocare a unor volume mari de
date, în vederea gestionării, prelucrării, distribuirii şi utilizării multiple, folosind
sistemele de calcul, programele utilitare şi programele de aplicaŃie.
Pornind de la funcŃia sa, un sistem bază de date este format, ca structură
generală, din: colecŃii de date, baza de date, SGBD, programe de aplicaŃie şi
utilitare, precum şi utilizatori. Dacă conceptul de bază de date denumeşte atât
colecŃiile de date cît şi structura de date folosită pentru reprezentarea acesteia, atunci
structura generală a sistemului bază de date este baza de date, SGBD, programe de
utilizare, utilizatori.
Arhitectura unui sistem bază de date este prezentată în fig.4.2. În conformitate
cu specificaŃiile utilizatorilor finali (end-users), programatorii de aplicaŃie, având la
dispoziŃie utilitare (programe specializate de proiectare) şi prin colaborarea cu
administratorul bazei de date (acesta lucrează nemijlocit cu schema bazei de date),
pun la punct programele de aplicaŃie. Aşa cum s-a precizat deja, interfaŃa dintre baza
de date şi schema BD, utilitare şi programele de aplicaŃie este sistemul de gestiune a
bazei de date, SGBD.
Obiectivele unui SGBD sunt, în principal, următoarele:
• asigurarea independenŃei datelor faŃă de aplicaŃie;
• asigurarea redundanŃei minime şi controlate a datelor;
• asigurarea tuturor facilităŃilor posibile de exploatare a datelor;
• asigurarea securităŃii şi protecŃiei datelor împotriva accesului neautorizat (inclusiv
prin criptarea datelor);
• asigurarea coerenŃei şi integrităŃii datelor împotriva ştergerilor accidentaşle sau
intenŃionate;
• asigurarea partajării datelor (accesul concurent al utilizatorilor la baza de date);
• asigurarea nivelului de performanŃă globală (volum mare de date complexe
gestionate cu un timp de răspuns acceptabil la adresarea cererilor de interogare din
partea utilizatorilor multipli).
FuncŃiile generale ale unui SGBD sunt:
1. descrierea datelor (definirea structurii bazei de date prin intermediul limbajului de
definire a datelor);
2. manipularea datelor (încărcarea, actualizarea, prelucrarea şi regăsirea datelor cu
ajutorul limbajului de manipulare a datelor);
3. utilizarea bazei de date (de către toate categoriile de utilizatori);
4. administrarea bazei de date.
Fiecare grup de lucru pentru standardizarea bazelor de date (CODASYL şi
ANSI, în principal) a propus o arhitectură proprie a unui SGBD.
Comenzile SGBD (DBMS) pot fi grupate în trei categorii de limbaje:
a) limbajul de definire a datelor (DDL, Data Definition Language);
b) limbajul de manipulare a datelor (DML, Data Manipulation Language);
c) limbajul de descriere a stocării datelor (DSDL, Data Storage Description
Language).
Limbajul de definire a datelor asigură, în principal:
• definirea tuturor tipurilor de înregistrări şi de câmpuri de date, precum şi asocierea
corespondenŃei acestora cu nivelul conceptual;
• specificarea ordinii logice a câmpurilor de date;
• definirea câmpurilor ce vor fi folosite drept chei de căutare;
• definirea drepturilor de acces;
• definirea legăturilor între tipurile de înregistrări.
Limbajul de manipulare a datelor permite:
• parcurgerea structurilor şi a legăturilor existente;
• accesul la înregistrări prin adresă sau prin conŃinutul acestora;
• actualizări ale înregistrărilor;
• reordonări ale câmpurilor de date;
• definirea tranzacŃiilor şi a condiŃiilor de eroare.
Limbajul de descriere a stocării datelor oferă posibilităŃi de:
• asociere a fişierelor la programele de aplicaŃie, a dispozitivelor fizice, alocare de
spaŃii de memorie;
• specificarea zonelor de lucru permanente şi tranzitorii;
• definirea şi izolarea datelor confidenŃiale;
• specificarea structurilor de memorare, a mecanismelor de adresare, a modului de
translatare a înregistrării logice în înregistrare fizică;
• crearea indecşilor asociaŃi cheilor de căutare.
OperaŃiile ce se execută asupra unei baze de date sunt:
• creare;
• încărcare (populare);
• consultare: căutare (selecŃie);
• actualizare: modificare, adăugare articole noi, ştergerea unor articole,
ordonare (sortare, indexare), prelucrare etc.
PROGRAM DE
APLICAłIE
UTI
LIZATORI

Baza SGBD SC ADMINISTRATOR

de HEMA
date UT PROGRAMATOR
DE APLICAłIE
ILITARE
Fig.2.2 Arhitectura unui sistem bază de date

DicŃionarul de date (Data Dictionary) este un fişier care memorează definiŃiile


datelor şi caracteristicile lor ca: folosirea, reprezentarea fizică, proprietatea (cine este
responsabil pentru întreŃinerea lor), autorizarea şi securitatea. Prin faptul că reprezintă
un inventar a datelor conŃinute într-o bază de date, dicŃionarul de date este un
important instrument de management organizaŃional. În realizarea acestor dicŃionare
de date se folosesc metadatele. Metadatele reprezintă date despre date (nume,
conŃinut, semnificaŃie, proprietar etc.).
O bază de date este compusă dintr-o mulŃime de atribute (câmpuri, coloane) şi
are asociată o mulŃime de date (linii, rânduri, înregistrări, articole). O înregistrare
(record) reprezintă o asociere a valorilor pentru fiecare câmp (field) al bazei de date.
Cele trei nivele de organizare a datelor într-o bază de date sunt logic, virtual
şi fizic (fig.2.3).

NIVEL LOGIC NIVEL VIRTUAL NIVEL FIZIC

SCHEMA
EXTERNĂ 1

SCHEMA SCHEMA SCHEMA


EXTERNĂ 2 CONCEPTUALĂ FIZICĂ

SCHEMA
EXTERNĂ n

Fig.2.3 Niveluri de organizare a datelor într-o bază de date

Nivelul logic sau extern (nivelul programatorului de aplicaŃie) califică o


structură de date ce are o realitate în planul semnificaŃiei sau utilizării, dar nu şi în
implementarea fizică; califică forma în care fiecare utilizator vede structurarea
datelor, în funcŃie de aplicaŃia pe care o foloseşte sau în funcŃie de resursele de date pe
care administratorul bazei de date i le pune la dispoziŃie. Nivelul virtual sau
conceptual (nivelul administratorului bazei de date) se referă la definirea structurii
datelor din baza de date astfel încât aceasta să îndeplinească cerinŃele tuturor
utilizatorilor, în condiŃii de redundanŃă minimă şi controlată a acesteia. Nivelul fizic
(nivelul inginerului de sistem) priveşte modul de stocare şi de structurare a datelor pe
suportul fizic de memorare a datelor (volum magnetic, cilindru, pistă, sector, bloc,
octet şi bit). Structura virtuală reprezintă schema bazei de date, iar structura logică
este denumită subschema bazei de date (concepŃia CODASYL). Astfel, se poate
concluziona că SGBD (DBMS) asigură legătura dintre nivelul conceptual (virtual) şi
nivelul fizic.
O înregistrare virtuală se poate prezenta sub forma a una sau mai multe
înregistrări fizice şi poate participa la construirea unei sau mai multor înregistrări
logice.
Într-o bază de date ideală datele sunt definite o singură dată şi folosite ori de
câte ori este necesar.
În funcŃie de locul în care sunt memorate colecŃiile de date ce formează baza
de date, se deosebesc:
• baze de date centralizate, CDB (Centralized DataBases), în situaŃia în care
toate colecŃiile care formează baza de date sunt stocate pe un singur calculator;
• baze de date distribuite, DDB (Distributed DataBases), în situaŃia în care
colecŃiile care formează baza de date sunt răspândite în nodurile unei reŃele de
calculatoare şi de comunicaŃii. După orientare, bazele de date pot fi
generalizate şi specializate.
În cadrul DDBMS, accesarea bazelor de date distribuite, DDB se realizează, în
principal, prin intermediul limbajului structurat de interogare, SQL (Structured
Querry Language) şi al arhitecturii Client/Server (acestea sunt prezentate pe larg în
capitolul 7 al lucrării).
Realizarea unei baze de date se obŃine prin parcurgerea unor etape.
ConŃinutul acestor etape este dependent, de regulă, de tipul bazei de date şi de
domeniul în care este ea folosită. Activitatea de analiză a sistemului economic
presupune:
a. analiza componentelor sistemului şi a legăturilor dintre acestea sau analiza
structurală în urma căreia se defineşte modelul structural sau static al
sistemului economic;
b. analiza stărilor sistemului şi a tranzacŃiilor posibile între aceste stări în raport
cu anumite evenimente. În urma acestei analize rezultă modelul dinamic sau
temporal;
c. analiza cerinŃelor informaŃionale, în urma căreia se defineşte modelul
funcŃional al sistemului economic;
d. integrarea modelelor sistemului economic (structural, dinamic şi funcŃional) în
scopul corelării şi completării lor.
Se face menŃiunea că analiza funcŃională a sistemului are ca scop
determinarea transformărilor de date care se produc în cadrul sistemului în scopul
satisfacerii cerinŃelor informaŃionale specifice acestui sistem. Transformările de date
se vor prezenta sub forma unei diagrame de flux a prelucrărilor (modelul funcŃional),
în care nodurile reflectă procesele de prelucrare informaŃională şi arcele fluxurile
informaŃionale ale datelor în baza de date.
La proiectarea unei baze de date, procesul de normalizare ajută proiectantul
bazei de date să creeze o structură a bazei de date care poate economisi spaŃiul de
memorare a datelor şi poate conduce la creşterea eficienŃei prelucrării datelor. Scopul
normalizării este de a minimiza redundanŃa datelor.
Erorile de introducere a datelor pot să compromită precizia şi validitatea
bazei de date. Utilizatorul poate să fie uneori în situaŃia de a nu conştientiza faptul că
el introduce date incorecte. Datele incorecte pot proveni, în primul rând, de la
apăsarea greşită a unor taste. Cele mai multe SGBD-uri pot preveni, dar nu pot
elimina introducerile incorecte de date. InformaŃia furnizată de rutinele de prelucrare
şi de rapoarte este la fel de precisă şi corectă în măsura în care aceste caracteristici
sunt prezente şi la datele stocate în bazele de date.
Formatul de câmp menŃine consistenŃa datelor prin asigurarea unei structuri
de introducere a datelor, aşa cum se arată în figura următoare:
X – cifră,
Format câmp
A - literă
CONT LA BANCĂ

ROXXAAAAXXXXXXXXXXXXXX
XX
Exemplu
RO96RXBR00000004312679
Formatul de câmp pentru CONT LA BANCA

Proiectantul bazei de date poate să preîntâmpine introducerea datelor incorecte


prin:
- specificarea unui anumit format de câmp destinat pentru introducerea
datelor (formatul de câmp este de fapt o imagine a cum trebuie să arate
data atunci când această dată este introdusă în baza de date);
- utilizarea regulilor de validare a câmpurilor (acele specificaŃii prin care se
filtrează datele introduse într-un anumit câmp), a casetelor cu liste sau a
formatelor predefinite.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Cum se defineşte un sistem baze de date?
2. Ce condiŃii trebuie să satisfacă o bază de date?
3. Care sunt obiectivele unui SGBD?
4. CaracterizaŃi nivelele de organizare a datelor într-o bază de date.
5. PrecizaŃi etapele de realizare a unei baze de date.
Prezentarea lecŃiei / capitolul 3:
3.1 GeneraŃii de baze de date şi de sisteme de gestiune a bazelor de date
asociate
În evoluŃia istorică, bazele de date şi sistemele de gestiune a bazelor de date
(SGBD) asociate au cunoscut trei generaŃii:
• sistemele ierarhice şi reŃea;
• sistemele relaŃionale;
• sistemele în tehnologie avansată (orientate obiect, relaŃionale orientate
obiect, deductive, distribuite, multibaze, active, multimedia, online etc.).
Sistemele ierarhice şi reŃea reprezintă datele la nivel de articol, prin legături
ierarhice (arbore) sau de tip graf reŃea. Deoarece datele prezintă o slabă independenŃă
fizică, SGBD (DBMS) este mai complicat şi mai greoi în comparaŃie cu celelalte
sisteme. Drumurile de acces la date sunt specificate prin intermediul limbajului de
manipulare a datelor. Diagrama structurii de date (graf orientat ce reprezintă tipuri de
entităŃi şi legături funcŃionale dintre ele) serveşte pentru descrierea, la nivel logic, a
structurilor de date specifice sistemelor ierarhice şi reŃea.
Sistemele relaŃionale tratează entităŃile ca nişte relaŃii. Modelul relaŃional (ce
aparŃine lui E.F.Codd) reprezintă un model formal de organizare conceptuală a
datelor, ce realizează reprezentarea legăturilor dintre date, având la bază teoria
matematică a relaŃiilor. Un sistem relaŃional este compus formal dintr-o bază de date
relaŃională, o colecŃie de operatori relaŃionali, regulile de integritate care guvernează
utilizarea cheilor în model şi un set de asocieri. Elementele de definire a modelului
relaŃional corespund celor trei componente ale ingineriei software: informaŃie, proces,
integritate. Problematica de detaliu a sistemelor de gestiune a bazelor de date
relaŃionale este tratată în paragraful următor.
Sistemele de gestiune a bazelor de date în tehnologii avansate elimină cea mai
mare parte a acestor dezavantaje. Aşa cum s-a arătat, în programarea orientată pe
obiecte, OOP (Object-Oriented Programming), efortul esenŃial este direcŃionat pentru
definirea obiectelor. Obiectele de acelaşi tip formează o clasă ce cuprinde, alături de
date, şi metodele de acces la aceste date. Datele sunt transparente numai pentru
metodele asociate clasei respective (încapsularea datelor). Prin funcŃiile denumite
constructori şi destructori, se realizează controlul asupra creerii şi ştergerii unui
anumit obiect. Prin moştenire, se obŃin clase derivate ce moştenesc proprietăŃile (date
şi funcŃii) claselor-părinte. Prin reunirea tehnicilor bazelor de date cu acelea ale
limbajelor orientate obiect s-au obŃinut bazele de date orientate obiect şi sistemele de
gestiune aferente acestora, OODBMS (Object-Oriented DBMS). Se realizează astfel o
organizare coerentă a obiectelor partajate între utilizatori concurenŃi. OODBMS
prezintă următoarele avantaje:
• integrarea descrierii structurale şi comportamentale;
• posibilităŃi superioare de deducŃie (ierarhie de clase, moştenire);
• considerarea aspectelor dinamice în cadrul aplicaŃiilor;
• îmbunătăŃirea interfeŃei cu utilizatorii.
Se apreciază, totuşi, că administrarea obiectelor complexe este mai dificilă
decât accesul la relaŃii prin cereri SQL, specific bazelor de date relaŃionale.
Avantajele incontestabile ale tehnologiei orientate obiect au fost combinate cu
acelea ale modelului relaŃional, rezultând bazele de date relaŃionale orientate obiect.
RelaŃiile sunt mulŃimi de înregistrări ce reprezintă fapte. CunoştinŃele se
definesc ca aseŃiuni generale şi abstracte asupra faptelor. Pe baza faptelor cunoscute
tezaurizate în cunoştinŃe, se pot deduce noi fapte printr-un proces de raŃionamente.
Bazele de date deductive ce folosesc programarea logică (specifică inteligenŃei
artificiale) administrează cunoştinŃe relativ la baze de date ce sunt, de regulă, RDB.
Sistemele multibaze de date sunt compuse din mai multe sisteme de baze de
date ce sunt integrate pe baza schemelor globale. Se realizează astfel accesul uniform
şi integrat la fiecare dintre bazele de date componente.
Dacă se consideră scopul esenŃial de analiză a datelor, inclusiv istorice, pentru
toată organizaŃia, o bază de date optimizată în acest scop defineşte o Data Warehouse
(depozit de date), după principiul procesării analitice, OLAP (On-Line Analytical
Processing). Sistemele tranzacŃionale (ce se folosesc pentru prelucrarea datelor
operaŃionale ale organizaŃiei economice) au la bază principiul procesării
tranzacŃionale online, OLTP (On-Line Transactional Processing), de control la un
moment dat al unei singure tranzacŃii. Data Warehouse admite interogări ce nu sunt
predefinite şi oferă răspunsuri ad-hoc pe baza analizelor datelor ce se referă la
întreaga organizaŃie. Data Warehouse se subdivide în baze de date departamentale
(domenii de gestiune ale organizaŃiei) denumite rafturi de date (Data Marts).
Realizarea sistemelor de sprijin al deciziilor, DSS (Decision Support Systems)
implică un proces laborios de descoperire a informaŃiilor utile din cadrul bazelor mari
de date. Procesul este denumit Data Mining (« mineritul datelor ») sau de descoperire
a cunoştinŃelor în baza de date, KDD (Knowledge Discovery in Databases).
O bază de date OLAP poate să fie bază de date relaŃională, dar şi bază de date
multidimensională. Structura unei baze de date multidimensionale conŃine obiecte de
următoarele tipuri: variabile, dimensiuni, niveluri, ierarhii, atribute.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Câte sisteme de gestiune a bazelor de date există?
2. Prin ce se caracterizează sistemele de gestiune relaŃionale?
3. Prin ce se caracterizează sistemele de gestiune a bazelor de date în tehnologie
avansată?
4. Prin ce se caracterizează sistemele multibaze de date?
Prezentarea lecŃiei / capitolul 4:
4.1 Baze de date relaŃionale.
Termenul de bază de date relaŃională (BDR) a fost introdus de E.F.Codd de la
firma IBM în anul 1969. Modelul relaŃional este fundamentat pe reguli, structuri şi
operaŃii. Regulile stabilesc modul de manipulare a datelor, structurile sunt obiecte
definite ce conŃin date şi care sunt accesibile utilizatorului, iar operaŃiile reprezintă
acŃiuni prin care sunt manipulate datele sau obiectele schemei bazei de date. E.F.Codd
a formulat în anul 1985 cele 13 reguli de bază care definesc o bază de date
relaŃională şi care sunt prezentate în tabelul următor:

Nr. ConŃinutul regulii Comentarii


regulii
R0 SGBD gestionează datele la nivel de Conceptul de bază este relaŃia.
relaŃie (exclusiv pe baza
caracteristicilor relaŃionale).
R1 Toate datele din baza de date Catalogul conŃine denumiri de
relaŃională se reprezintă explicit sub tabele, coloane, domenii, restricŃii
forma unor valori într-un tabel de integritate etc.
(regula reprezentării logice a
datelor).
R2 Datele individuale dintr-un tabel sunt Datele sunt accesibile prin numele
accesate prin specificarea numelui tabelului, a liniei şi a coloanei.
tabelului, a valorii cheii primare şi a
coloanei (regula garantării accesului
la date)
R3 Valorile NULL (inexistenŃa datelor) Valoarea NULL semnifică
sunt tipuri de date acceptate (regula „nimic”. A nu se confunda cu zero
referitoare la valorile NULL). (0).
R4 Baza de date relaŃională reprezintă Metadatele sunt date despre date.
descrierea bazei de date în format Regula nu face diferenŃieri între
logic simplificat sub formă de tabele tratarea datelor şi a metadatelor.
(regula metadatelor).
R5 Modelul relaŃional permite SQL este limbajul de bază pentru
implementarea mai multor limbaje realizarea interogărilor asupra
(regula de permisiune a limbajelor bazei de date.
multiple).
R6 Dacă vederea curentă reprezintă un Toate tabelele virtuale ce teoretic
tabel, toate vederile (view-urile) sunt sunt posibil de actualizat, trebuie
actualizabile (regula actualizării să fie în mod practic actualizate.
vederilor).
R7 În operaŃiile de schimbare a Modelul relaŃional abordează
conŃinutului bazelor de date, se relaŃiile de bază şi pe cele derivate
lucrează la un moment dat pe toată ca pe un singur operand destinat
relaŃia (regula referitoare la operaŃiilor de actualizare (update),
actualizări, inserări şi ştergeri în baza inserare (insert) şi ştergere (delete)
de date). efectuate asupra datelor.
R8 Structura logică a bazei de date se Programele de aplicaŃie nu trebuie
prezintă complet separată de structura să fie influenŃate de schimbările
fizică a bazei de date (regula survenite în modul de reprezentare
referitoare la independenŃa fizică a a datelor sau în metodele de acces.
datelor).
R9 Atunci când bazei de date i se aduc Programele de aplicaŃie nu trebuie
modificări neconforme, datele se să fie influenŃate de schimbările
conservă (regula referitoare la efectuate asupra relaŃiilor bazelor
independenŃa logică a datelor). de date.
R10 RestricŃiile de integritate sunt definte RestricŃiile de integritate sunt
în limbajul folosit de sistem (regula create în limbajul SQL şi se
referitoare la restricŃiile de stochează în dicŃionarul bazei de
integritate). date şi nu în aplicaŃiile individuale.
R11 Accesarea datelor pe server de către Este presupusă producerea unui
client se produce în mod continuu proces de copiere a datelor dintr-o
(regula referitoare la distribuirea bază de date localizată la distanŃă.
geografică a datelor).
R12 Regulile şi restricŃiile de integritate nu Nu trebuie folosit un limbaj de
pot fi evitate de nici un limbaj de nivel scăzut orientat pe prelucrarea
acces la date (regula referitoare la pe tupluri.
prelucrarea datelor la nivel de bază).

Trebuie precizat faptul că nici un SGBD actual nu respectă în totalitate cele 13


reguli ale lui Codd.
Aşa cum s-a arătat, o bază de date relaŃională reprezintă o colecŃie de relaŃii
(tabele în accepŃiunea uzuală, memorate fizic în fişiere). Coloanele tabelului se
numesc atribute, iar liniile se numesc tupluri.
Baza de date relaŃională (RDB) este compusă dintr-o mulŃime de domenii şi o
mulŃime de relaŃii peste care se aplică o mulŃime de asocieri. Domeniul este definit ca
mulŃimea obiectelor de acelaşi tip. RelaŃia este o mulŃime rezultată ca urmare a
agregării (corespondenŃei) a două sau mai multe mulŃimi. O relaŃie în accepŃiunea
bazelor de date pe domeniile Di constă dintr-un cap de tabel şi un corp de tabel.
Asocierea se realizează pe bază de atribute (din capul de tabel).
Un astfel de exemplu este tabelul (relaŃia) referitor la MATERIALE:
Cod_material Denumire_material Cantitate Pret_unitar
01212 Tablă 1200 180000
03214 Cornier 400 420000
04301 Cherestea 850 210000

Fiecare linie descrie un anumit material. Coloanele conŃin etichete ce


reprezintă nume ale atributelor (Cod_material, Denumire_material, Cantitate,
Pret_unitar).
Domeniul ce reprezintă codurile materialelor este:
D1: {“01212”,”03214”,”04301”}.
iar domeniul pentru tipurile de materiale (delimitate prin denumire_material)
este:
D2: {“TABLA”,”CORNIER”,”CHERESTEA”}.
Domeniul pentru cantitate este:
D3: {“1200”,”400”,”850”}.
Domeniul preŃurilor unitare, în acest caz, este:
D4: {pret_unitar pret_unitar∈[180000,420000]}.
MulŃimea tuplurilor este definită prin produsul cartezian al domeniilor
D1 X D2 X …X Dn. Exemplu de
tuplu: <”01212”,”TABLA”,”1200”,”180000”>.
RelaŃia L se defineşte prin tupluri corespunzătoare din tabel:
L: {<”01212”,”TABLA”,”1200”,”180000”>,
<”03214”,”CORNIER”,”400”,”420000”>}. Într-o relaŃie, este necesar ca tuplurile să
fie distincte (nu se permit valori duplicate). Ca urmare, se observă că relaŃia este
reprezentată prin tabelul bidimensional în care coloanele sunt domenii iar liniile sunt
tupluri. Numărul tuplurilor unei relaŃii este cardinalul relaŃiei. Numărul valorilor unui
tuplu este gradul relaŃiei. Schema unei relaŃii este formată din numele relaŃiei şi lista
atributelor (pentru fiecare atribut este necesară specificarea domeniului asociat).
Modelul relaŃional este format din două mulŃimi de operatori pe relaŃii:
algebra relaŃională şi calculul relaŃional.
E.F.Codd a definit algebra relaŃională ca o colecŃie de operaŃii pe relaŃii,
astfel încât o anumită operaŃie dispune de operanzi de tipul relaŃie şi are ca rezultat tot
o relaŃie. Tipurile de operaŃii acceptate de algebra relaŃională sunt operaŃii de bază
(reuniunea, diferenŃa, proiecŃia, produsul cartezian ş.a.), operaŃii derivate (intersecŃia
şi diviziunea) şi operaŃii suplimentare (selecŃia, splitarea unei relaŃii, complementarea
unei relaŃii, închiderea tranzitivă, joncŃiunea etc.). Algebra relaŃională permite
derivarea procedurală a relaŃiilor.
Se prezintă ca exemplu reuniunea. Reuniunea (notată cu OR, ∪, APPEND
sau UNION) este o operaŃie definită pe relaŃiile Rel1 şi Rel2 (cu aceeaşi schemă), ce
generează o nouă relaŃie Rel3 (cu schema identică cu a relaŃiilor Rel1 şi Rel2) care
este formată din reuniunea tuplurilor relaŃiilor Rel1 şi Rel2 din figura de mai jos.
Calculul relaŃional conŃine mulŃimea operatorilor din modelul relaŃional şi este
o adaptare a calculului cu predicate (o relaŃie este identificată cu un predicat) pentru
domeniul BDR. Calculul relaŃional asigură definirea neprocedurală, declarativă a
relaŃiilor. RelaŃiile sunt precizate prin proprietăŃile tuplurilor. IniŃial, în BDR,
variabilele definite asupra relaŃiilor aveau valori care reprezentau tupluri de relaŃie
(variabile tuplu), obŃinându-se calculul relaŃional orientat pe tuplu. Când variabilele
operează asupra domeniilor – aşa cum se petrec lucrurile în prezent – ele sunt
variabile domeniu şi determină calculul relaŃional orientat pe domeniu. Regulile de
integritate sunt aserŃiuni pe care datele ce formează baza de date trebuie să le satisfacă
şi sunt în număr de trei: unicitatea cheii (cheia primară trebuie să fie unică şi
minimală), integritatea entităŃii (atributele cheii primare trebuie să fie diferite de null)
şi integritatea referirii (o cheie externă trebuie să fie null în întregime sau să
corespundă unei valori a cheii primare asociate). Constrângerile structurale sunt de
trei tipuri: de cheie, de referinŃă şi de entitate.
Rel1

Rel3
R

Rel2
Diagrama operaŃiei reuniune

Cheia unei relaŃii reprezintă o mulŃime minimală de atribute ale căror valori
identifică în mod unic un tuplu într-o relaŃie. Diferitele chei posibile se numesc chei-
candidat. Cheia candidat aleasă pentru a identifica efectiv tupluri se numeşte cheie
primară.
Conceptele folosite pentru descrierea formală, uzuală şi fizică a elementelor de
bază ale organizării datelor în baze de date relaŃionale sunt prezentate în tabelul 4.2
[44].

Tabelul 4.2
Formal Uzual Fizic
RelaŃie tablou Fişier
Tuplu linie Inregistrare
Atribut coloană Câmp
Domeniu tip de dată tip de dată

Definirea proprietăŃilor structurale ale relaŃiilor se realizează prin tehnica


normalizării. Se afirmă că o relaŃie se găseşte într-o formă normală particulară dacă
îndeplineşte un număr specificat de restricŃii. Normalizarea se obŃine printr-un număr
de paşi succesivi, în cadrul unui proces reversibil, până la realizarea formei dorite.
Forma normală a unei relaŃii este necesară deoarece formele normale nu produc
anomalii în actualizarea datelor unei baze de date relaŃionale. Tipurile de restricŃii
folosite la formele normale ale relaŃiilor sunt restricŃiile asupra valorilor atributelor,
restricŃiile referitoare la dependenŃa atributelor secundare de chei, restricŃiile cu
privire la dependenŃa atributelor principale de toate atributele. Se folosesc următoarele
forme normale:
• 1NF (forma normală 1). O relaŃie se găseşte în 1NF dacă domeniile pe care
sunt definite atributele relaŃiei sunt formate numai din valori elementare. Un
tuplu nu trebuie să conŃină atribute sau grupuri de atribute repetitive (nu se
admit duplicate).
• 2NF (forma normală 2). O relaŃie se află în 2NF dacă este în 1NF şi
oricare dintre atributele non-cheie este dependent funcŃional complet de cheia
primară a relaŃiei.
• 3NF (forma normală 3). O relaŃie se găseşte în 3NF dacă este în 2NF şi
atributele non-cheie nu sunt dependente tranzitiv de cheia primară a relaŃiei.
• BCNF (forma normală Boyce-Codd). O relaŃie este în BCNF dacă
dependenŃele funcŃionale netriviale ce pot apare în cadrul relaŃiei conŃin, în
partea stângă, ca determinant, o cheie-candidat.
• 4NF (forma normală 4). O relaŃie se găseşte în 4NF dacă în cadrul acesteia
nu se manifestă mai mult decât o dependenŃă multivaloare.
• 5NF (forma normală 5). O relaŃie L se găseşte în 5NF dacă fiecare
dependenŃă joncŃiune este implicată printr-o cheie-candidat a lui L.
Bazele de date relaŃionale conŃin structuri de date simple şi intuitive. Ele
prezintă avantaje legate de existenŃa unui ansamblu integrat de utilitare bazat pe un
limbaj evoluat de programare (generatoare de meniuri, generatoare de forme,
generatoare de aplicaŃii, generatoare de etichete), de existenŃa unor limbaje speciale
de definire şi de manipulare a datelor, precum şi de independenŃa completă în
descrierea logică a datelor (în termeni de relaŃii) şi în descrierea fizică a datelor (în
termen de fişiere). Dintre dezavantajele bazelor de date relaŃionale, se menŃionează
imposibilitatea utilizării obiectelor complexe şi dinamice, a administrării datelor
distribuite şi a cunoştinŃelor.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Care sunt generaŃiile de baze de date si de SGBD-uri?
2. Din ce se compune baza de date relaŃională?
3. Cum se defineşte relaŃia?
4. Care sunt formele normale şi prin ce se caracterizează?
Studiu de caz:
StabiliŃi tabelele necesare şi structura îregistrărilor pentru proiectarea unei
baze de date relaŃionale care se referă la activităŃi din domeniul administraŃiei
publice.
Prezentarea lecŃiei / capitolul 5:
5.1 Baze de date orientate obiect
Bazele de date orientate pe obiecte, OODB (Object-Oriented DataBase) şi
SGBD asociate asigură crearea de obiecte complexe formate din componente simple,
fiecare prezentând atribute şi comportament propriu. Aceste sisteme se mai numesc şi
sisteme de obiecte, cu originea în limbajele de programare orientate pe obiecte, OOP.
Prin aceste tipuri de baze de date se ridică nivelul de abstractizare. Se face menŃiunea
că între partea de limbaje de programare şi partea de baze de date există multe
elemente comune; cu toate acestea, aceste părŃi sunt diferite:
• un program pe calculator este gândit să rezolve o anumită problemă;
• o bază de date este realizată pentru a rezolva o multitudine de probleme, inclusiv
cu elemente de pornire nedeterministe.
Pentru un program, obiectele complexe simplifică problema, în timp ce în
situaŃia bazelor de date orientate pe obiecte, de regulă, problemele se complică. Ca
urmare, se cuvine să se judece în mod nuanŃat atunci când se încearcă reliefarea
avantajelor utilizării OOP şi OODB.
Sistemul de gestiune al bazelor de date orientate pe obiect (SGBD-OO sau
OODBMS) are ca principale obiective [18]:
1. Modelarea superioară a datelor, ceea ce semnifică dezvoltarea de noi aplicaŃii;
extinderea posibilităŃilor de generalizare şi agregare a relaŃiilor; evoluŃia către
multimedia şi hipermedia (sunet, imagine, texte).
2. Capacitatea de deducŃie superioară (ierarhie de clase, moştenire);
3. ÎmbunătăŃirea interfeŃei cu utilizatorul:
4. Capacitatea de tratare dinamică, concomitent cu integrarea descrierii structurale şi
comportamentale.
Modelul de dată-obiect asigură reprezentarea unor structuri de date complexe
şi a unor ierarhii model, creind posibilitatea de definire a unor tipuri de date care
combină atât structura de date cât şi definirea procedurii. Un model de date orientat pe
obiecte are la bază noŃiunea de entitate conceptuală şi defineşte un obiect ca o
colecŃie de proprietăŃi care descriu entitatea. O comparaŃie între noŃiunile clasice şi
cele asociate bazelor de date orientate pe obiecte este prezentată, după Date, în tabelul
următor:

Nr.crt NoŃiunea specifică obiectelor NoŃiunea clasică de comparaŃie


1. Obiect nemutabil (care nu se poate muta) Valoare
2. Obiect mutabil (care se poate muta) Variabilă
3. Clasa de obiecte Tip
4. Metoda Operator
5. Mesaj Invocarea de operator

Obiectul reprezintă conceptual o unitate identificabilă cu conŃinut propriu, care


se deosebeşte de ceea ce o înconjoară. Fiecare obiect dispune de un identificator unic,
denumit ID al obiectului, OID (Object ID). Două obiecte cu OID diferiŃi sunt diferite,
chiar dacă sunt identice sub toate aspectele transparente utilizatorului.
Deşi tentaŃia iniŃială este de a considera obiecte doar unităŃile ce se pot muta,
prin obiecte se desemnează atât unităŃile fixe cât şi cele mutabile. Fiecare obiect
posedă un tip care semnifică o clasă de obiecte. InstanŃa unui obiect reprezintă un
obiect individual. Obiectele sunt încapsulate. Structura obiectului şi modul de acŃiune
al metodelor sale nu pot fi accesate şi actualizate direct de un agent extern, dar pot fi
modificate indirect prin intermediul mesajelor. Această caracteristică ascunsă a
obiectului se numeşte încapsulare. Încapsularea presupune independenŃa fizică de
date. Astfel, prin încapsulare, reprezentarea internă a unui obiect poate să fie
modificată fără a fi nevoie ca aplicaŃiile care utilizează obiectul să fie rescrise.
Starea unui obiect este exprimată prin valorile atributelor sale. ColecŃia de
atribute trebuie aleasă astfel încât să descrie entitatea, adică să cuprindă atribute pe
care utilizatorul trebuie să le cunoască. Metoda reprezintă un program care
manipulează obiectul sau indică starea sa. Ea este asociată unei clase, iar specificarea
metodei se numeşte „semnătură”.
Comportamentul unui obiect reprezintă un set de metode sau operaŃii care
acŃionează asupra atributelor sale.
Obiectele se clasifică în:
• obiecte elementare ca: întreg, boolean, şir de caractere;
• obiecte compuse ca: nume, adresă;
• obiecte complexe ca: autoturism, angajat.
Un obiect înglobează următoarele elemente:
a. structura de date;
b. specificarea operaŃiilor;
c. implementarea operaŃiilor.
Structura unui obiect şi operaŃiile (metodele) permise pentru acel obiect sunt
definite împreună.
Metodele şi atributele nu sunt vizibile din „exteriorul” obiectului. Un obiect
răspunde la mesaje care reprezintă cereri adresate obiectului pentru a returna o valoare
sau pentru a-şi schimba starea.
Un obiect este divizat în interfaŃă publică şi în memorie privată. InterfaŃa
publică este compusă din definiŃiile interfeŃelor (corespunzătoare semnăturilor
specificaŃiei). InterfaŃa publică nu face parte din obiectul corespunzător. Această
interfaŃă publică este inclusă în obiectul de definire a clasei, CDO (Class-Defining
Object). CDO este obiectul ce defineşte clasa pentru care obiectul considerat
reprezintă o instanŃă (este similar unui descriptor). Memoria privată este compusă din
variabile de instanŃă (atribute sau membri) ale căror valori reprezintă starea internă a
obiectului. Deoarece sistemele baze de date orientate pe obiecte reale nu sunt „pure”
(cu variabile instanŃă care sunt netransparente utilizatorului), variabilele de instanŃă
apar ca transparente utilizatorului. Se deosebesc variabile de instanŃă publice
(transparente utilizatorului) şi variabile de instanŃă private (cele netransparente
utilizatorului).
PersistenŃa este o proprietate a datelor sau a obiectelor care presupune
existenŃa lor pe o durată mai mare în comparaŃie cu aceea a procesului care le-a
generat. PersistenŃa reprezintă proprietatea prin care starea bazei de date asigură
execuŃia unui proces pentru a fi refolosit ulterior în alt proces. Deoarece face parte
integrantă din obiect, codul aferent metodelor este stocat în baza de date (ca şi starea
obiectului).

Tipuri şi clase
Obiectele care prezintă acelaşi fel de atribute şi acelaşi comportament fac parte
din acelaşi tip sau clasă. În raport cu această caracteristică există două categorii de
sisteme orientate pe obiecte :
a) sisteme care admit ca noŃiune de bază clasa, cum ar fi: VISION, ORION, G-
BASSE;
b) sisteme care admit ca noŃiune de bază tipul, cum sunt: C++, Simula, O2.
Într-un sistem orientat pe obiecte, tipul sintetizează elementele comune ale
unui set de obiecte cu aceleaşi caracteristici. Acest sistem are ca şi componente,
interfaŃa şi implementarea. InterfaŃa este partea vizibilă pentru utilizator şi constă
într-o listă de operaŃii. Implementarea presupune descrierea structurii interne a datelor
obiectului şi realizarea procedurilor de implementare a operaŃiilor interfeŃei.
Un tip este construit recursiv, începând cu tipurile de bază: caracter, întreg,
real, şir de caractere, boolean. Constructorii de tipuri sunt: tuplul, lista, setul şi clasa.
O listă este o colecŃie ordonată de obiecte ale aceleiaşi clase sau de valori ale aceluiaşi
tip. Elementele unei liste sunt accesibile direct prin rangul lor.
OperaŃiile permise asupra listelor sunt: afectarea (=), comparaŃia (= =),
concatenarea (+), accesul direct ([i]), apartenenŃa (in), sublista ([i ; j]), numărarea
(count ( ) ), înlocuirea, ştergerea (list ( ) ), inserarea ([:i]+=), iteraŃia ( { }).
NoŃiunea de clasă, deşi are aceeaşi specificaŃie cu cea de tip, este asociată cu
faza de execuŃie. Ea presupune generarea de obiecte prin operaŃia „new” aplicată unei
clase şi stocarea setului de obiecte care reprezintă instanŃele clasei. Descrierea clasei
serveşte ca şablon pentru crearea obiectele noi.
O clasă este un tip abstract de date care defineşte atât structura obiectelor din
clasa respectivă, cât şi mulŃimea metodelor existente pentru aceste obiecte. Astfel,
obiectele din aceeaşi clasă prezintă aceleaşi atribute şi aceleaşi metode şi răspund la
acelaşi mesaj.

Moştenirea
Într-o bază de date orientată pe obiecte, clasele sunt aranjate într-o ierarhie în
care fiecare clasă moşteneşte toate atributele şi metodele superclasei din care face
parte. Moştenirea conduce la reutilizarea codului. Moştenirea reprezintă mecanismul
de realizare a definirii unei clase în care derivă variabilele de instanŃă şi metodele din
altă definire de clasă. Când o clasă moşteneşte, ea este considerată ca subclasă.
Conceptele de subclasă şi superclasă sunt analoge conceptelor de generalizare şi
specializare.
Obiectele, clasele şi moştenirea formează baza modelului de date orientat pe
obiecte şi presupune următoarele aspecte:
• obiectele sunt entităŃi de bază care înglobează structuri de date şi operaŃii;
• fiecare obiect are asociat un identificator care este unic şi asigurat de sistem;
• clasele descriu tipuri generice de obiecte, toate obiectele sunt membrii unei clase;
• clasele sunt înrudite prin moştenire;
• definirea unei clase este mecanismul de specificare a schemei bazei de date;
• definirea unei clase poate include variabile de instanŃă, având tipuri de date definite
de sistem sau de utilizator;
• schema bazei de date poate fi extinsă dinamic prin definirea de noi clase.

OperaŃiile modelului de date orientat pe obiecte


OperaŃiile se pot grupa în modul următor:
a) obiectele comunică între ele prin mesaje;
b) un mesaj poate fi trimis instanŃelor mai multor clase;
c) metodele pot fi definite, şterse sau modificate;
d) clasele pot fi definite şi actualizate prin operaŃii de creare, ştergere şi modificare;
e) instanŃa unei clase poate fi actualizată prin metode care modifică valorile
variabilelor propriei instanŃe, aceasta modificând starea internă a obiectului.
Într-o serie de implementări, definirile de clasă sunt ele însele obiecte, numite
obiecte de clasă. Obiectele clasă sunt instanŃe ale unei clase generice sau ale unei
metaclase. OperaŃiile de creare, modificare şi ştergere ale definirilor de clasă pot fi şi
implementate ca mesaje. În modelul de date orientat pe obiecte, regulile de integritate
reprezintă o consecinŃă a structurii modelului şi a următoarelor operaŃii:
• toate obiectele trebuie să respecte protocolul specificat de definirile lor de clasă;
• obiectele sunt încapsulate, acest lucru presupunând accesul limitat la obiecte prin
folosirea protocolului de mesaje definit pentru clasa obiectului;
• identificatorul obiectului asigură integritatea referirii la un obiect. Ca atare, un
obiect nu există fără să aibă asignat un identificator. Dacă un obiect este şters sau
mutat, identificatorul său trebuie şi el şters sau mutat.
O schemă completă a unei baze de date orientată pe obiecte poate consta din
una sau mai multe ierarhii de clasă, împreună cu relaŃiile structurale.
Modificarea schemei presupune:
1. Definirea unei taxonomii şi a unui model al schimbărilor. Taxonomia defineşte un
set de schimbări semnificative ale schemei, iar modelul furnizează o bază pentru
specificarea semanticilor schimbărilor schemei;
2. Implementarea schimbărilor schemei. Aceste schimbări pot fi:
a) schimbări referitoare la modul de definire al unei clase. Acestea includ
schimbările atributelor şi metodelor definite pentru o clasă, cum ar fi:
schimbarea numelui sau domeniul unui atribut, adăugarea, ştergerea unui atribut
sau a unei metode;
b) schimbări referitoare la structura ierarhiei de clase care includ adăugarea sau
ştergerea unei clase şi schimbarea relaŃiilor superclasă/subclasă dintre o pereche
de clase.

Proiectarea bazei de date orientată pe obiecte


Pentru proiectarea unei baze de date orientată pe obiecte se foloseşte tehnica
top-down care constă în identificarea componentelor după care se stabilesc corelaŃiile
între ele şi se rafinează succesiv în „cascadă” componentele sale. Se poate utiliza şi
metoda bottom-up prin care mai întâi se identifică componentele funcŃionale pe baza
cărora se vor identifica, în colecŃiile existente, obiectele, care pot fi reutilizate pentru
noul proiect. Componentele care nu există vor fi create ca subclase ale unor clase
existente. O dată creată o ierarhie potrivită, se testează componentele specifice.
Sistemul de gestiune al bazelor de date orientate pe obiecte (SGBD-OO sau
OODBMS) conŃine structuri şi reguli orientate către lucrul cu obiecte, incluzând:
• un sistem de date abstracte pentru construirea de noi tipuri de date;
• un constructor de tip şir;
• un constructor de tip secvenŃă;
• un constructor de tip înregistrare;
• un constructor de tip set;
• funcŃii;
• un constructor de tip reuniune;
• o compunere recursivă a elementelor anterioare.
În proiectarea SGBD-OO se au în vedere următoarele:
Principiul 1. SGBD-OO utilizează funcŃii care conŃin metode şi proceduri ale
bazei de date, cu restricŃia ca acestea să fie cât mai compacte, încapsulate, ermetizate.
Încapsularea funcŃiilor îl ajută pe programatorul de aplicaŃie să asocieze funcŃiile pe
care şi le creează cu colecŃiile utilizate.
Principiul 2. SGBD-OO şi în general SGBD–urile din generaŃia a treia vor
prelua avantajele SGBD–urilor din generaŃia a doua. În plus, se caută o modalitate de
acces la o înregistrare existentă într-o colecŃie oarecare şi aceasta se poate realiza prin
utilizarea unui sistem de pointeri către identificatorii de obiecte.
Principiul 3. SGBD-OO trebuie să poată conecta şi limbaje din generaŃia a
patra.
Un SGBD-OO lucrează cu obiecte complexe, obiecte care se obŃin prin
aplicarea de constructori asupra obiectelor simple.
Identitatea obiectelor. Orice obiect există independent de valorile atributelor
sale, ceea ce conduce la două relaŃii posibile:
- identitatea a două obiecte, adică sunt unul şi acelaşi obiect;
- egalitatea a două obiecte, adică au aceeaşi valoare.
Arhitectura SGBD-OO cuprinde trei componente:
1. Gestionarul de obiecte (Object Manager) furnizează interfaŃa dintre procesele
externe şi SGBD-OO.
2. Server-ul de obiecte (asigură gestiunea tranzacŃiei şi gestiunea stocului de
obiecte);
3. Stocul rezident de obiecte.
Gestionarul de obiecte asigură implementarea completă a modelului de date-
obiecte pentru utilizatorul extern. Acest lucru include posibilitatea de a defini
structurile şi de a executa operaŃiile specificate prin model. El primeşte cereri de
creare de definiri de clase, de modificare a definirilor de clase deja existente, de
manipulare a mesajelor generate de un program de aplicaŃie în execuŃie.
Server-ul de obiecte asigură refacerea, inserŃia, ştergerea şi actualizarea
obiectelor în stocul rezident de obiecte. Un singur server poate manipula tranzacŃii
transmise de la mai mulŃi gestionari de obiecte.
Limbajul de definire a datelor este realizat prin mecanismul de transmitere a
mesajelor. Limbajul pentru cereri ad-hoc se bazează pe transmitere de mesaj pentru
selectarea şi regăsirea obiectelor.
Prelucrarea mesajelor. Gestionarul de obiecte asigură interfaŃa dintre
procesele externe şi SGBD-OO. El primeşte mesaje pentru obiecte individuale,
realizează legături dinamice şi operaŃii de verificare a tipului şi expediază cerinŃa
externă pentru obiecte, către server-ul de obiecte.
Transmiterea de mesaje şi prelucrarea cererii poate fi reprezentată astfel:
- controlul sesiunii (menŃinerea spaŃiului local de lucru al utilizatorului extern pentru
operaŃii efectuate asupra bazei de date);
- legătura dinamică (selectarea unei metode pentru un mesaj trimis unui obiect în
momentul execuŃiei);
- crearea de noi obiecte sau instanŃe de clasă trebuie iniŃiată de gestionarul de
obiecte;
- transmiterea cerinŃelor obiectului şi actualizare acestuia;
- transmiterea cererii. Cererile pot fi translatate în planuri de execuŃie în care selecŃia
şi regăsirea obiectelor sunt realizate prin transmiterea de mesaje. Aceasta presupune
că protocolul de mesaje al clasei obiectului este definit pentru a permite accesul la
variabilele de instanŃă necesare pentru a selecta obiectul. Obiectele, definirile de clasă
şi metodele cerute de gestionarul de obiecte sunt regăsite de server-ul de obiecte din
stocul rezident de obiecte.
Definirea şi modificarea schemei constă din următoarele etape:
1. Asigurarea accesului la definirile de clasă existente. Definirile tuturor
claselor asigurate de SGBD-OO, ca şi a claselor create de utilizatorii umani, pot fi
stocate permanent în SRO, într-o bibliotecă de clasă sau într-un dicŃionar de date.
2. Extensibilitatea schemei bazei de date. Aceasta include prelucrarea
declaraŃiilor limbajului de baza de date, specificând crearea, mutarea sau identificarea
definirilor de clasă. 3. Redefinirea dinamică a clasei (evoluŃiei schemei).
Gestionarul de obiecte trimite cerinŃe pentru regăsirea şi actualizarea
definirilor de clasă, server-ului de obiecte. Gestiunea tranzacŃiilor este asigurată de
server-ul de obiecte. Gestiunea stocului de obiecte se referă la menŃinerea nivelului
fizic de organizare a bazei de date obiect (ODB) şi la asigurarea căilor de acces
necesare realizării accesului eficient la stocul de obiecte.
FuncŃiile de bază ale stocului de date-obiect se caracterizează ca fiind:
1. Suport pentru rezidenŃă, adică obiectele create şi adăugate trebuie reŃinute şi
după ce se încheie sesiunea.
2. Suport pentru obiecte mari. SGBD-OO trebuie să poată suporta stocarea şi
manipularea obiectelor de lungime variabilă şi de orice dimensiune.
3. FacilităŃi de arhivare şi asigurare de rezerve (dubluri).
Caracteristicile care asigură regăsirea şi actualizarea obiectelor stocate pot fi:
a) suport pentru căi de acces care este necesar pentru a asigura regăsirea şi
actualizarea eficientă a datelor stocate în baze de date mari. Aceasta include indexarea
obiectelor pentru a permite regăsirea eficientă a obiectelor individuale, dar şi
indexarea obiectelor prin valorile variabilelor de instanŃă, pentru regăsirea subseturilor
de obiecte pentru satisfacerea cererilor;
b) tipuri de indecşi specializaŃi pentru obiecte;
c) gruparea obiectelor în acelaşi sector de stoc secundar.
d) segmentarea obiectelor stocate.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Cum se definesc bazele de date orientate obiect?
2. Care sunt noŃiunile fundamentale utilizate în modelul de date orientat pe
obiecte?
3. Cum se clasifică obiectele?
4. DefiniŃi tipurile, clasele, moştenirea.
5. Care sunt operaŃiile modelului de date orientat pe obiecte?
6. Cum se face proiectarea bazei de date orientată pe obiecte?
Studiu de caz: StabiliŃi obiectele şi tipurile de evenimente la care acestea
acŃionează, pentru o aplicaŃie de taxe şi impozite în administraŃia publică
utilizând o bază de date orientată pe obiecte.
Prezentarea lecŃiei / capitolul 6:
6. Elemente fundamentale ale serverelor de baze de date.
6.1 Arhitectura Client/Server
Într-o reŃea de calculatoare şi de comunicaŃii dintr-o organizaŃie economică, unul
dintre modelele de bază pe care se fundamentează funcŃionarea reŃelei este constituit
de modelul client/server, susŃinut de arhitecturi adecvate în funcŃie de numărul de
entităŃi componente ale lanŃului de lucru în reŃea a unei aplicaŃii ale cărei elemente –
prezentare, procesare şi date – se găsesc pe acelaşi calculator sau sunt distribuite pe
calculatoare diferite (în varianta standard, datele sunt stocate pe server, procesarea
este divizată între server şi client, iar prezentarea aparŃine clientului). Aceste
arhitecturi client/server pot fi cu două entităŃi (two-tier), cu trei entităŃi (three-tier)
sau cu mai multe entităŃi (n-tier). Toate calculatoarele care se găsesc între server şi
client alcătuiesc ceea ce se denumeşte generic middleware (mediul de mijloc).
Serverul, ca noŃiune de bază, prezintă două accepŃiuni:
• un calculator dedicat pe care este instalat un soft pentru gestionarea accesului într-
o reŃea locală de calculatoare (LAN), inclusiv gestionarea accesului la resursele din
reŃea din partea calculatoarelor – staŃii de lucru (workstations);
• un program (conceput pe un model de proces distinct) sau un calculator care
răspunde cererilor (requests) adresate de entitatea denumită client; clientul, în acest
caz, este un proces care are nevoie de un serviciu pe care trebuie să i-l furnizeze
serverul.
Ca urmare, noŃiunea de server trebuie considerată în reŃea sub cele două aspecte hard-
soft (dualitatea hard-soft). Cea de-a doua accepŃiune prezentată mai sus pentru server,
caracterizează arhitectura client/server ce permite divizarea procesului specific
aplicaŃiei în două componente distincte, denumite client (« front-end ») şi server
(« back-end »). De regulă, componenta client este reprezentată de un calculator mai
puŃin pretenŃios, independent, ce se prezintă utilizatorului cu toate resursele la
dispoziŃie. Spre deosebire de aceasta, componenta server este un sistem de calcul
(microcalculator puternic, minicalculator sau un calculator mare - mainframe) cu
caracteristici tehnologice maximale momentului implementării în mediu distribuit
(gestionare date, partajare resurse între clienŃi, securitate sporită, administrare
avansată în cadrul reŃelei de calculatoare şi de comunicaŃii).
Cu ajutorul arhitecturii client-server se obŃine: conectarea în reŃea a mai multe
calculatoare de diferite tipuri (mainframe şi microcalculatoare), tratarea unitară a
bazelor de date aflate pe diferite calculatoare din reŃea, colaborarea categoriilor de
utilizatori (utilizatori finali, administratori ai bazelor de date, programatori).
Între entitatea client şi cea de server se poartă un dialog permanent sau în anumite
momente, de tipul cerere (request) - răspuns (response). Clientul, prin adresarea
cererii de serviciu către server, interoghează baza de date ce se găseşte stocată pe
server. Serverul gestionează baza de date şi răspunde interogării adresate de client. În
dialogul client-server, pot exista următoarele cazuri: client-server, client pasiv şi
server pasiv. Cazul cu client pasiv se întâlneşte atunci când se realizează conexiuni cu
prelucrare gazdă (host procesing) pe un server de tip mainframe, iar clientul este un
terminal cu rol neimportant în execuŃia operaŃiilor necesare efectuării dialogului.
Cazul cu server pasiv se constată atunci când cele mai multe aplicaŃii se efectuează
de către client, serverul îndeplind doar rolul de server de fişiere (File Server) şi/sau
server de imprimare (Print Server). Cel mai eficient este cazul client-server când
activităŃile sunt divizate în mod echilibrat între client şi server.
Există şi situaŃia în care cele două entităŃi, server şi client, sub aspect software,
pot coexista pe acelaşi calculator. Dacă cele două entităŃi sunt instalate pe acelaşi
calculator, atunci acest calculator are instalat un sistem de operare pentru multi-
procesare, deoarece clientul şi serverul reprezintă procese distincte. În reŃeaua de
calculatoare şi de comunicaŃii, un client poate adresa cereri către mai multe servere.
De asemenea, un server poate răspunde la cererile adresate de mai mulŃi clienŃi.
În evoluŃia sa, arhitectura client-server a cunoscut mai multe generaŃii:
• generaŃia I, care se caracterizează prin faptul că server-ul stochează baza de date
relaŃională, iar clientul stochează şi execută aplicaŃia client. Cererile SQL sunt
formulate de aplicaŃia client către SGBDR de pe server. ExecuŃia acestor cereri de
interogare şi transmiterea răspunsului se efectuează de către entitatea server. Entitatea
client poate executa următoarele apeluri la transport:
- SendRequest, ceea ce înseamnă: clientul anunŃă serverul asupra operaŃiilor ce
urmează a fi executate;
- ReceiveReply, prin care se asigură recepŃionarea răspunsului de la server de către
client.
În acelaşi timp, la entitatea server, apelurile specifice sunt următoarele:
- ReceiveRequest, care semnifică faptul că entitatea server recepŃionează cereri de
interogare de la entitatea client ;
- SendReply, care înseamnă că serverul transmite răspunsul către entitatea client,
răspuns ce corespunde cererii de interogare adresate anterior.
• generaŃia a II-a, caracteristică anilor ’90, orientată pe obiecte. Entitatea server
asigură mai multe clase de servicii clienŃilor: execuŃia aplicaŃiilor; interfeŃe grafice
destinate dialogului cu utilizatorul; accesul la fişierele şi bazele de date administrate
de SGBDR de pe server.
Există mai multe tipuri de client-server, în funcŃie de importanŃa acordată unei sau
alteia dintre componentele « triadei » stocare – prelucrare – prezentare:
1) client - server de prezentare, în care un proces este destinat funcŃiei de asigurare
a dialogului cu utilizatorul, iar celelalte procese considerate realizează gestionarea
datelor şi execuŃia aplicaŃiilor;
2) client - server de date, în care utilizatorul are acces la datele administrate de
server utilizând o aplicaŃie-client, cu ajutorul cererilor de interogare SQL;
3) client - server de proceduri pentru prelucrare, în care aplicaŃia-client poate
realiza controlul execuŃiei procedurilor stocate pe server prin intermediul unei
interfeŃe specializate.
Cel mai răspândit este tipul combinat client-server de date, de prezentare şi de
proceduri pentru prelucrare care prezintă următoarele componente (fig.7.1):
• clienŃii, care se ocupă cu gestionarea codului aplicaŃiei client şi care dispun de
interfaŃe interactive şi prietenoase cu utilizatorii finali;
• serverul, care stochează baza de date, gestionează conectarea şi accesul la baza de
date, gestionează logica aplicaŃiei, asigură securitatea bazei de date;
• reŃeaua, care asigură conectarea şi comunicarea dintre clienŃi şi server (1) şi între
servere (2).
În general, aplicaŃiile client-server pot fi aplicaŃii cu baze de date distribuite, aplicaŃii
de poştă electronică, aplicaŃii groupware (ce permite unui grup de utilizatori dintr-o
reŃea să colaboreze la realizarea unui anumit proiect şi care oferă servicii de
comunicaŃii (e-mail), de planificare şi de administrare a proiectelor, de elaborare în
comun a documentelor de diferite tipuri – text, multimedia) etc.
Avantajele utilizării arhitecturii client-server sunt multiple, drintre acestea
menŃionându-se: administrarea centralizată, de pe server, a bazei de date; micşorarea
dimensiunilor aplicaŃiilor; reducerea traficului în reŃea; securitate sporită a bazelor de
date stocate pe server; manipularea de către utilizatori, conform drepturilor de acces, a
procedurilor stocate.
În aplicaŃiile de baze de date pe Web se utilizează arhitectura cu trei niveluri:
client, aplicaŃie şi date. Nivelul client permite unui utilizator să comunice cu baza de
date prin Web, cu ajutorul unei interfeŃe specializate asigurate de către browser-ul
Web la dispoziŃie.

• Stocare bază de date • Gestionare cod aplicaŃie client


• Conectare şi acces la baza de date • InterfaŃă interactivă cu
• Gestionare logică aplicaŃie utilizatorul final
• Asigurare securitate bază de date

Fig.6.1 Arhitectura client-server de date, de prezentare şi de proceduri pentru


prelucrare

Nivelul aplicaŃie reprezintă nivelul cu aplicaŃii la îndemâna utilizatorului final,


pe serverul Web care, prin intermediul protocolului HTTP, recepŃionează cererile
clienŃilor, le prelucrează şi le transmite către o altă aplicaŃie sau/şi către nivelul de
date. Nivelul date conŃine sistemul de gestiune a bazelor de date (SGBD), care
conŃin, de regulă, date multimedia.

Lista subiectelor pentru pregătirea în vederea evaluării finale:


Întrebări:
1. Cum se defineşte arhitectura client-server?
2. DefiniŃi noŃiunea de client şi cea de server.
3.Care sunt generaŃiile de arhitecturi client-server?
Prezentarea lecŃiei / capitolul 7:
7.1. Serverul de baze de date Microsoft SQL Server
Produsul Microsoft SQL Server face parte din categoria serverelor de baze de
date, care lucrează cu aplicaŃii de tipul client-server şi care presupune acces concurent
la o anumită bază de date. Referirile se efectuează la versiunea Microsoft SQL
Server2000 care a fost precedată de versiunea Microsoft SQL Server 7.0. În
momentul redactării prezentei lucrări, este anunŃată versiunea Microsoft SQL Server
2005.
Stocarea informaŃiilor pe serverul de baze de date Microsoft SQL Server se
face în baze de date, fişiere şi grupuri de fişiere. Microsoft SQL Server dispune de un
sistem de securitate propriu, pe bază de identificatori şi conturi de utilizatori ai
bazelor de date.
SQL Server asigură crearea şi gestionarea rolurilor la nivel de server, la
nivelul unei baze de date şi la nivel de aplicaŃie; de asemenea, asigură permisiuni care
pot fi alocate utilizatorilor şi rolurilor. Rolurile SQL Server asigură gruparea numelor
utilizatorilor bazelor de date (grupuri Windows, utilizatori Windows sau identificatori
SQL Server). Atribuirea unui identificator pentru rol la nivel de server se efectuează
cu ajutorul SQL Enterprise Manager. Rolurile la nivel de aplicaŃie asigură aplicarea
permisiunilor la un nivel mai înalt decât nivelul pe care se găseşte fiecare utilizator.
Atunci când o aplicaŃie activează un rol la nivel de aplicaŃie, se produce suspendarea
tuturor permisiunilor utilizatorului. Activarea rolurilor necesită parole. Fiecare bază
de date cuprinde roluri (există nouă roluri fixe sau predefinite şi pot exista roluri ale
utilizatorului) pentru care există proceduri. Fiecare rol al unei baze de date acordă
utilizatorilor un număr de permisiuni şi capabilităŃi. Numele rolului este necesar să fie
unic la baza de date. ApartenenŃa la un rol fix al unei baze de date nu are legătură cu
permisiunile acordate pentru o altă bază de date.
SQL Server permite realizarea salvărilor de siguranŃă (backup).
SQL Server este însoŃit de utilitare şi instrumente care asigură următoarele
servicii:
1. MSSQLServer ce reprezintă serverul propriu-zis de baze de date;
2. MSSearch care asigură indexarea câmpurilor de tip text care operează sub SQL
Server;
3. SQLServerAgent ce realizează planificarea operaŃiilor, gestionarea
evenimentelor, replicarea, generarea avertismentelor;
4. MSDTC (Microsoft Distributed Transaction Coordinator) adică coordonatorul
tranzacŃiilor distribuite pe mai multe servere;
5. MSSQLServerOLAPService ce asigură serviciile de analiză a datelor prin
OLAP;
6. MSSQLServerADHelper ce realizează integrarea activă a directoarelor pentru
SQL Server.
InstanŃa în SQL reprezintă o copie independentă a unui server de baze de date
pe un calculator din categoria platformelor Microsoft Windows. Microsoft SQl Server
permite execuŃia a cel mult 16 astfel de instanŃe. InstanŃele SQL Server pot fi
prestabilite (este acceptată o singură instanŃă prestabilită pe un anumit calculator) sau
pot fi denumite (acele instanŃe cărora li s-a dat un nume la instalare). Doua instanŃe
denumite de pe acelaşi calculator nu sunt acceptate cu acelaşi nume.
Firma Microsoft a realizat controlul fiecărui serviciu prin mai multe metode
realizabile prin utilitare şi instrumente asociate SQL Server (instalate într-o copie
unică, indiferent de numărul de instanŃe instalate ale SQL Server). Utilitarele asociate
SQL Server sunt următoarele:
• SQL Server Books OnLine ce reprezintă manuale electronice sub formă de pagini
HTML (de exemplu: Getting Started, SQL Server Architecture, Creating and
Maintaining dataBases, Creating and Using Data Warehouses etc.).
• SQL Server Service Manager care este un utilitar pentru controlul serviciilor
pentru SQL Server (SQL Server, MSDTC, SQL ServerAgent şi MSSearch).
• Client Network ce reprezintă un utilitar care deserveşte procesul de conectare a
unui calculator client la SQL Server).
• Server Network care este un utilitar pentru indicarea bibliotecilor de reŃea pe care
le poate utiliza SQL Server (pentru bibliotecile ce conŃin date confidenŃiale la care nu
se permite accesul, se execută criptarea de către server a căilor de conectare la
bibliotecile respective).
• SQL Server Query Analyser care este utilitarul destinat executării interogărilor sau
a procedurilor memorate Transact-SQL.
• SQL Server Enterprise Manager ce reprezintă un utilitar de tipul MMC (Microsoft
Management Console), adică consolă de Management Microsoft ce asigură interfaŃa
grafică de dezvoltare şi administrare din SQL Server.
• SQL Server Profiler ce reprezintă utilitarul pentru monitorizarea întregii activităŃi
executate de SQL Server.
Utilitarele prezentate mai sus se găsesc în meniul Start al SQL Server. În afară de
aceste utilitare de bază, au fost realizate instrumente pentru conectare, pentru
diagnosticarea serverului şi pentru întreŃinere.
NoŃiunea de replicare a fost explicată parŃial în capitolul destinat SGBD Microsoft
Access. Procesul de replicare în SQL Server este un proces complex ce utilizează un
scenariu de tip editor-abonat la care sunt asociate articole şi publicaŃii. AbonaŃii sunt
calculatoarele utilizatorilor ale datelor. Un sistem SQL Server poate juca în scenariul
de tip editor-abonat unul, două sau trei roluri din mulŃimea de roluri {editor, abonat,
distribuitor}. Rolul de distribuitor presupune recepŃionarea tuturor modificărilor
efectuate de abonaŃi sau editori, memorarea acestor date şi apoi trimiterea lor la
editori sau abonaŃi, la un anumit moment. Articolul reprezintă un tabel sau o mulŃime
de date dintr-un tabel, obŃinută prin partiŃionare. PublicaŃia este ansamblul mai multor
articole combinate. Articolele şi publicaŃiile pot fi primite de abonaŃi prin efectuarea
de abonamente. Abonamentele pot fi configurate în abonamente de intrare
(configurate la nivelul fiecărui abonat) şi abonamente de ieşire (configurarea
abonamentului se produce simultan cu crearea publicaŃiei).
Replicarea asigură un mediu de lucru ce facilitează duplicarea şi distribuirea
mai multor copii (replici) ale aceloraşi date, în mai multe baze de date din reŃea (în
mai multe locaŃii). În distribuirea datelor prin această metodă se au în vedere
autonomia locaŃiei, consistenŃa tranzacŃională (care nu trebuie să afecteze consistenŃa
datelor) şi latenŃa distribuirii (întârzierea).

SQL Server permite utilizarea următoarelor metode de distribuire a datelor :


• replicarea cu combinare (fiecare locaŃie îşi poate modifica copia locală a datelor
replicate, astfel încât editorul combină modificările primite de la aceste locaŃii);
• replicarea copiilor integrale (prin transferul unei copii de ansamblu a datelor
replicate de la editor la abonaŃi);
• replicarea tranzacŃională (adică tranzacŃiile sunt copiate de pe serverul editor la
abonaŃi, fără existenŃa reversului de la abonaŃi la editor);
• abonarea cu actualizare (la care acualizarea poate fi imediată, cu fir de aşteptate
sau combinată – imediată şi cu fir de aşteptare);
• replicarea copiilor integrale cu actualizare la abonaŃi (prin aceasta, abonatul nu
este necesar să se afle în contact permanent cu editorul);
• replicarea tranzacŃională cu actualizare la abonaŃi ;
• tranzacŃiile distribuite (cu MSDTC, cu aplicarea simultană a tranzacŃiilor la toŃi
abonaŃii).
Replicarea este asigurată de cinci agenŃi: agent de distribuŃie, agent de citire
din jurnalele de tranzacŃii specifice tuturor bazelor de date publicate, agent de
combinare, agent de copiere şi agent de citire din firul de aşteptare.
Datele pot fi publicate pe Internet prin mai multe metode. Se apreciază că una
dintre cele mai sigure metode este tehnologia reŃelei private virtuale, VPN (Virtual
Private Network). Prin VPN se pot conecta două reŃele prin utilizarea Internetului, cu
protocoalele specifice, folosind servere proxy (intermediare) către serverele SQL.
SQL Server foloseşte patru baze de date astfel:
- master, ce conŃine configurările SQL Server-ului, precum şi date care privesc
utilizatorii bazei de date;
- model, ce reprezintă o bază de date model, care se duplică de fiecare dată când
utilizatorul creează o bază de date nouă;
- tempdb, ce este o bază de date care stochează tabele temporare şi rezultatele
intermediare ale unor interogări;
- msdb, ce este utilizată de SQLServerAgent pentru memorarea datelor cu privire la
sarcinile periodice (salvarea bazei de date, salvarea jurnalului etc).
O bază de date SQL Server este organizată pe mai multe niveluri: componente
logice ce sunt transparente utilizatorilor; tabele (tables) care conŃin înregistrări ale
bazei de date; vederi (views); indecşi (indexes); proceduri stocate (procedures);
declanşatori (triggers). Fizic, o bază de date include cel puŃin două fişiere (fişier
primar de date, primary data file, cu date şi referinŃe asupra celorlalte fişiere ale bazei
de date; fişierul jurnal care înregistrează toate modificările efectuate în baza de date).
În cazul bazelor de date foarte mari, pot exista şi fişiere secundare (secondary data
file).
La fiecare instalare a produsului Microsoft SQL Server sunt generate mai multe baze
de date: master, model, tempdb şi msdb, precum şi baze de date utilizator (pubs,
Northwind).
Metodele de creare a unei baze de date Microsoft SQL Server 2000 sunt
următoarele:
• Database Creation Wizard
• SQL Server Enterprise Manager
• Cu ajutorul instrucŃiunii CREATE DATABASE.
Crearea unei noi baze de date este echivalentă cu execuŃia unei copii a bazei
de date model, prin extinderea până la dimensiunea dorită, spaŃiul suplimentar fiind
completat cu pagini goale. Baza de date astfel creată utilizează fişiere pentru stocarea
fizică a datelor pe discul magnetic.
Salvarea bazelor de date în SQL Server se efectuează complet, diferenŃial şi
prin salvarea jurnalelor de tranzacŃii cu ajutorul SQL Server Enterprise Manager sau
cu Transact-SQL (ce va fi prezentat în paragraful următor). Copiile de siguranŃă
(backup) servesc pentru o restaurare a bazelor de date în caz de defectări ale
serverului.
SQL Server are pus la punct un scenariu de restaurare a bazelor de date în caz
de dezastre. Se poate realiza recuperare automată sau manuală. Recuperarea
automată reprezintă un proces care se derulează la fiecare pornire a serviciului SQL
Server. Ca urmare, atunci când serverul se decuplează din diferite motive, inclusiv la
avarii, procesul de recuperare automată se porneşte la repornirea serverului. La
terminarea acestui proces de recuperare automată, bazele de date rămân într-o formă
consistentă din punct de vedere logic. Pentru recuperarea tuturor bazelor de date, SQL
Server utilizează baza de date model, după care se creează baza de date tempdb, se
restaurează baza de date msdb şi, în final, bazele de date ale utilizatorilor.
Recuperarea manuală reprezintă procesul de recuperare a unei baze de date a
utilizatorului, prin restaurarea unei copii complete a bazei de date (sau copie
diferenŃială) sau restaurarea uneia sau mai multor copii pentru jurnalul de tranzacŃii,
în ordinea în care au fost generate. În momentul restaurării baza de date nu trebuie să
fie în uz (să nu fie activă comanda USE). Pentru aceasta, trebuie reperat setul
corespunzător de copii de siguranŃă (cu comenzile RESTORE LABELONLY, RESTORE
HEADERONLY, RESTORE FILELISTONLY). În continuare, se verifică dacă setul salvat
este utilizabil (RESTORE VERIFYONLY), se restaurează complet sau diferenŃiat baza de
date şi jurnalul de tranzacŃii. Scenariile de recuperare sunt construite pentru diferite
situaŃii ca recuperarea datelor după defectarea unui disc, recuperarea datelor după
pierderea bazei de date master,
SQL Server asigură, aşa cum s-a precizat mai sus, servicii de extragere a
datelor din bazele de date operaŃionale şi de construire a depozitelor de date, după
care aceste date din depozite sunt supuse analizei de tip OLAP. Acest serviciu este
tratat în capitolul consacrat bazelor de date în tehnologii avansate.
Microsoft SQL Server prezintă următoarele avantaje:
- portabilitatea, adică capacitatea de a funcŃiona pe o mare varietate de
platforme hardware;
- compatibilitatea modelului de programare cu modelele folosite în întreaga
gamă de sisteme de operare Microsoft Windows (95, 98, 2000, XP);
- optimizarea capabilităŃilor sale pentru lucrul cu baze de date mari;
- execuŃia rapidă a interogărilor SQL;
- posibilitatea de extragere şi analiză a datelor pentru baze de date multidimensionale;
- facilitatea de integrare cu alte produse software Microsoft.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Ce asigură SQL Server prin crearea şi gestionarea rolurilor?
2. Ce reprezintă instanŃa în SQL?
3. Ce reprezintă replicarea în SQL?
4. Care sunt metodele de distribuire a datelor utilizate ]n SQL?
5. Care sunt metodele de creare a unei baze de date Microsoft SQL Server
2000?
Prezentarea lecŃiei / capitolul 8:
8. BAZE DE DATE DISTRIBUITE
8.1 Despre necesitatea bazelor de date distribuite în aplicaŃiile economice

Când s-a prezentat clasificarea bazelor de date, s-a arătat că din punctul de
vedere al modului de localizare al datelor, bazele de date pot fi locale sau distribuite.
În capitolul anterior, au fost numeroase situaŃiile în care s-au făcut referiri la categoria
de baze de date distribuite, dându-se explicaŃii succinte referitoare la noŃiunile şi
elementele implicate. În consecinŃă, este necesară o aprofundare a acestor concepte
într-un capitol separat.
S-au prezentat în capitolele anterioare ce este şi cum se construieşte o aplicaŃie
Access cu ajutorul căreia se poate asigura gestionarea şi partajarea datelor între diferiŃi
utilizatori finali în reŃea. În cazul utilizatorilor conectaŃi intermitent şi aleator la baza
de date centrală şi de la distanŃă (de exemplu, prin intermediul Internetului), a fost
necesară dezvoltarea unei filozofii de lucru şi a unor arhitecturi adecvate care să
răspundă unor cerinŃe multiple.
Arhitecturile client/server prezentate în capitolul anterior pot fi percepute ca
un caz particular al sistemelor distribuite.
Bazele de date distribuite apar ca o consecinŃă firească a faptului că organizaŃiile
economice performante sunt distribuite logic în departamente, secŃii, birouri, grupuri
de lucru şi distribuite geografic în locaŃii diferite ce reprezintă filiale ale acestei
organizaŃii.
Abordarea bazelor de date distribuite, ca elemente fundamentale ale
sistemelor informatice integrate unei organizaŃii economice, trebuie să aibă în vedere
cele trei tendinŃe importante care redefinesc rolul acestora în aplicaŃiile economice:
1. Internetul şi alte reŃele de calculatoare şi de comunicaŃii pe arie largă, WAN
(Wide Area Network) conectează în timp real participanŃii cheie: vânzători,
producători, distribuitori şi clienŃi.
2. Globalizarea pieŃii, a mediului de afaceri, necesită stocarea şi procesarea
unor cantităŃi mari de date (baze de date mari), distribuite în toate locaŃiile geografice
implicate într-o anumită activitate sau proces economic.
3. Transformarea SUA şi a altor Ńări industrializate în societăŃi informaŃionale
(economii informaŃionale) accentuează importanŃa eficienŃei sistemelor informatice şi
de comunicaŃii în care bazele de date distribuite joacă rolul determinant prin aceea că
stochează date ce susŃin informaŃii şi cunoştinŃe, cu ciclul de viaŃă din ce în ce mai
scurt.
9.2. Concepte fundamentale
Aşa cum s-a arătat, fişierul reprezintă unitatea fundamentală de stocare care
(într-o definiŃie simplificată) asigură deosebirea unei mulŃimi de date de alta de către
sistemul de calcul.
Sistemul de fişiere este format din fişiere, directoare şi informaŃiile necesare
pentru localizarea şi accesul la ele. Fiecare fişier conŃine un grup de date, complet
denumit, cum este un program, o mulŃime de date folosită de un program sau un
document generat de utilizator (fig.8.1). În exploatarea multiutilizator a sistemelor de
calcul, datorită dezavantajelor legate de accesul mai dificil la date, redundanŃa ridicată
a datelor, izolarea datelor, descrierea independentă a datelor, dependenŃa programelor
faŃă de date, se preferă bazele de date şi sistemele de gestiune a bazelor de date
(SGBD sau DBMS, DataBase Management System). Baza de date este o colecŃie
organizată după regulile unui model de date (mulŃime de reguli destinate structurării şi
manipulării datelor). Gestiunea bazelor de date presupune utilizarea ca interfaŃă între
programele de aplicaŃie şi bazele de date a unui sistem de gestiune a bazei de date
(fig.8.2).

PROGRAM 1
FIŞIER
DESCRIERE
DATE 1

PROGRAM 2
FIŞIER
DESCRIERE
DATE 2

PROGRAM 3 F
FIŞIER
DESCRIERE

Fig.8.1 Sistem de fişiere


PROGRAM DE
APLICAłIE 1

SISTEM DE
GESTIUNE A BAZEI
DE DATE (SGBD)
BAZA DE PROGRAM DE
DATE APLICAłIE 2

PROGRAM DE
APLICAłIE 3

Fig.8.2 Gestiunea unei baze de date

SGBD soluŃionează cererile utilizatorilor referitoare la diversele acŃiuni legate


de baza de date şi asigură stabilirea unor măsuri de integritate şi de securitate.
O bază de date distribuită, DDB (Distributed DataBase), este o colecŃie
formată din mai multe baze de date logic interconectate şi care sunt localizate în
nodurile unei reŃele de calculatoare şi de comunicaŃii. În fapt, o DDB este o colecŃie
de site-uri distribuite interconectate cu ajutorul unei reŃele de comunicaŃii. Dintr-o altă
perspectivă, o DDB este o bază de date virtuală cu componentele stocate fizic într-un
număr de baze de date „reale” diferite, localizate în site-uri diferite. Sistemul de
gestiune a bazei de date distribuite, DDBMS (Distributed DBMS), reprezintă softul ce
asigură lucrul cu DDB prin integrarea şi distribuirea acestor baze de date (fig.8.3),
furnizând un mecanism de acces care face distribuirea acestora transparentă pentru
toŃi utilizatorii. Sistemul baze de date distribuite, DDBS (Distributed DataBase
System) este format din DDB şi DDBMS.

REłEA DE TEHNOLOGIE A
CALCULATOARE BAZEI DE DATE

distribuire integrare

SISTEM BAZE DE
DATE DISTRIBUITE
(DDBS)

integrare
Fig.8.3 Determinările într-un sistem baze de date distribuite (DDBS)
Este important de menŃionat că într-un sistem baze de date distribuite (DDBS)
operaŃia de integrare nu este similară cu aceea de centralizare. Într-un cadru mai larg,
DDBS este inclus în conceptul de calcul distribuit ce desemnează un număr de
elemente de procesare autonome, nu în mod necesar omogene, care sunt
interconectate într-o reŃea de calculatoare şi de comunicaŃii şi care cooperează în
scopul realizării sarcinilor (task-uri) atribuite. Pentru calcul distribuit, există mai
mulŃi termeni sinonimi cum sunt: prelucrarea datelor distribuite, multiprocesare,
procesare back-end, sisteme în time-sharing, sisteme modulare funcŃional etc. În
DDBS sunt distribuite logica prelucrării, datele, funcŃiile şi controlul. Ca urmare, un
sistem baze de date distribuite, DDBS, se poate defini ca o colecŃie de baze de date
multiple, logic interlegate, distribuite în întreaga reŃea de calculatoare şi de
comunicaŃii. Este important de reŃinut că un DDBS nu este un sistem în time-sharing
şi nici un sistem multiprocesor puternic sau slab cuplat. O bază de date centralizată,
CDB (Centralized DataBase) este o bază de date ce este localizată într-unul din
nodurile reŃelei de calculatoare. Un sistem de gestiune a bazelor de date (SGBD)
centralizat într-o reŃea de calculatoare reprezintă sistemul distribuit în care utilizatorii,
prin intermediul reŃelei de comunicaŃii asociate, accesează DDB (fig 8.4).
Un mediu specific unui sistem de gestiune a bazelor de date (SGBD)
distribuite, DDBMS, oferă posibilitatea accesării bazelor de date distribuite (DDB)
din oricare locaŃie din reŃeaua de calculatoare prin intermediul reŃelei de comunicaŃii
asociate (fig.8.5). Aşa cum se observă din configuraŃia DDBMS, datele sunt memorate
într-un număr de locaŃii (site-uri) ale reŃelei de calculatoare, iar fiecare site conŃine,
logic, un singur procesor. DDB pot fi astfel utilizate în orice organizaŃie care are o
structură organizatorică descentralizată, inclusiv în compunerea sistemelor
informatice pentru management, MIS (Management Information Systems) şi a
sistemelor informatice pentru asistarea deciziei, DSS (Decision Support Systems).
SITE 2

SITE 3
SITE 1
REłEA DE
COMUNICAłII
SITE 4

SITE 6
SITE 5

Fig.8.4 Un SGBD centralizat într-o reŃea


DDBMS prezintă avantaje legate de gestiunea transparentă a datelor
distribuite, fragmentate şi replicate, de îmbunătăŃirea fiabilităŃii şi disponibilităŃii prin
intermediul tranzacŃiilor distribuite, de o dezvoltare mai facilă şi mai economică a
DDBMS. Gestiunea transparentă presupune separarea semanticilor de nivel ridicat de
cele de nivel scăzut (prin semantică se înŃelege în acest caz relaŃia dintre cuvinte sau
simboluri şi semnificaŃia lor). Problema fundamentală în DDBMS este realizarea
independenŃei datelor, adică separarea datelor de programele care le manipulează.
Din punctul de vedere al oricărui utilizator, DDB este percepută ca o bază de
date centralizată. Actualizarea datelor replicate necesită implementarea controlului
concurenŃei distribuite. Proiectarea unei DDB se referă, între altele, la modul cum
este distribuită baza de date, cum se distribuie datele replicate şi nereplicate şi cum se
rezolvă problema de gestionare a directoarelor. Directoarele (Directory) reprezintă
cataloage ce conŃin elemente de gestiune a DDB. Prelucrarea interogărilor asigură
conversia tranzacŃiilor utilizatorului în manipularea datelor, minimizează costurile de
transmitere a datelor şi de prelucrare locală a acestor date şi optimizează aceste
operaŃii. Controlul concurenŃei distribuite se referă la sincronizarea acceselor
concurente la DDB, consistenŃa şi izolarea efectelor tranzacŃiilor şi gestionarea
blocărilor. Fiabilitatea priveşte modul cum reacŃionează sistemul la defectări,
atomicitatea şi durabilitatea. RelaŃiile existente între diferitele componente ale
mediului DDBMS sunt sintetizate în fig. 8.6. Este interesant de precizat că între
cerinŃele de prelucrare de interes general din sistemul informatic şi cerinŃele de
prelucrare a bazelor de date există o dihotomie. Sistemul de operare al reŃelei sprijină
DDB. Caracteristicile de sistem deschis şi de interoperabilitate al DDBS au condus la
ideea dezvoltării sistemelor multibaze de date distribuite, DMDBS (Distributed Multi-
DataBase Systems).
SITE 2

SITE 3
SITE 1
REłEA DE
COMUNICAłII
SITE 4

SITE 6
SITE 5

Fig . 8.5 ConfiguraŃia unui sistem de gestiune a bazelor de date distribuite


(DDBMS)

FIABIL
ITATE

GESTIONAREA CONTROLUL GESTIUNEA


PROIECTAREA CONCURENłEI
DIRECTOARELOR
DISTRIBUIRII BLOCĂRILOR

PRELUCRAREA
INTEROGĂRILOR
Fig.8.6 RelaŃiile existente între diferitele componente ale mediului DDBMS

Aşa cum s-a arătat mai sus, o bază de date distribuită, DDB (Distributed
Data-Base) reprezintă o bază de date ce este logic integrată (utilizatorii percep o
singură bază de date), dar fizic distribuită pe mai multe calculatoare distincte,
interconectate între ele. Utilizatorii interacŃionează cu o DDB în acelaşi mod în care
interacŃionează cu o bază de date centralizată. O DDB este compusă din mai multe
baze de date locale (LDB) care sunt memorate în nodurile unei reŃele de calculatoare
(uneori, şi dintr-o bază de date centrală, CDB). Baza de date centrală primeşte de la
bazele de date locale numai acele colecŃii de date a căror stocare este justificată la
nivelul CDB în scopul unor prelucrări centralizate la nivelul sistemului informatic
integrat.
DDB reprezintă o bază de date globală şi este concepută după o singură
schemă conceptuală gobală, cunoscută şi accesată de utilizatorul global. Utilizatorul
local are acces şi exploatează una sau mai multe baze de date locale, în limitele
permisiunii acordate de softul de gestiune în reŃea la dispoziŃie.
Date C.J. a identificat douăsprezece obiective pentru DDB:
• autonomia locală a site-urilor componente ale unui sistem distribuit (în cea mai
mare măsură); fiecare site component poate opera, de regulă, cu datele din bazele de
date locale (LDB) fără a depinde de alt site;
• absenŃa unei dependenŃe de un site central;
• funcŃionarea continuă datorită fiabilităŃii şi disponibilităŃii crescute a sistemelor
distribuite la apariŃia întreruperilor aleatoare;
• existenŃa transparenŃei (independenŃa de localizare) adică nu este important
pentru utilizatorul final unde sunt stocate fizic datele de care acesta are nevoie;
• independenŃa de fragmentarea datelor, ceea ce înseamnă că fragmentarea datelor
în DDB (prezentată în paragraful următor) nu afectează percepŃia utilizatorului final,
din punct de vedere logic, de nefragmentare a datelor;
• independenŃa de replicarea (reproducerea) datelor, adică replicarea datelor nu
afectează percepŃia utilizatorului final care, logic, se comportă ca şi cum datele nu ar
fi fost replicate;
• procesarea distribuită a interogărilor;
• gestionarea distribuită a tranzacŃiilor, prin care, tranzacŃiile, compuse din mai
mulŃi agenŃi (agenŃii reprezintă procese terminate sub denumirea de tranzacŃii pe
anumite site-uri), sunt refăcute cu ajutorul protocolului de finalizare în două faze
(finalizare/derulare înapoi), iar controlul concurenŃei se obŃine prin regula de blocare;
• independenŃa de hardware);
• independenŃa de sistemul de operare;
• independenŃa de reŃeaua de calculatoare şi de comunicaŃii;
• independenŃa de DDMBS;
Un DBMS pentru DDB, adică un DDBMS, asigură următoarele obiective:
a) transmiterea datelor la utilizatorii acestora (utilizatori care dispun de dreptul şi
autoritatea de a le accesa);
b) asigurarea unui raport optim între centralizarea şi descentralizarea resurselor de
date (o centralizare ridicată a resurselor de date determină costuri foarte mari de
prelucrare şi transmitere a datelor la utilizatori);
c) creşterea durabilităŃii şi disponibilităŃii sistemului (sistem open, adică deschis să
primească oricând noi structuri de baze de date în schema conceptuală globală,
precum şi noi restructurări ale bazelor de date locale);
d) asigurarea proiectării structurii organizatorice şi funcŃionale a sistemului
informaŃional conformă cu structura organizaŃiei deservite de sistem;
e) sporirea gradului de utilizare a sistemului informaŃional (mărirea numărului de
utilizatori efectivi).
În implementarea DDMBS este valabilă aceeaşi filozofie ca şi la decizia de
implementare a unei reŃele de calculatoare: o astfel de decizie are consecinŃe pe
termen mediu şi lung, implică investiŃii mari, nu mai poate fi schimbată după achiziŃia
platformei de bază de un anumit tip decât cu « plata » renunŃării în totalitate la soluŃia
iniŃială. Ca urmare, decizia de implementare a unui anumit DDBMS implică înainte
de toate alegerea unui furnizor de marcă. Cei şase mari producători de DDBMS -
Oracle, Sybase, Informix, Microsoft, IBM şi Computer Associates – monopolizează
peste 90% din piaŃa mondială a domeniului.

Lista subiectelor pentru pregătirea în vederea evaluării finale:


Întrebări:
1. EnumeraŃi conceptele fundamentale legate de bazele de date distribuite
(DDB).
2. Care sunt obiectivele pentru bazele de date distribuite?
3. Ce obiective asigură un DBMS pentru bazele de date distribuite?
Prezentarea lecŃiei / capitolul 9:
9.1Fragmentarea datelor în bazele de date distribuite

Principiul fundamental al bazelor de date distribuite constă în faptul că pentru


oricare dintre utilizatorii finali, baza de date distribuită trebuie să fie percepută ca o
bază de date nedistribuită.
O bază de date distribuită, DDB, este fragmentată (distribuită) pe baza
următoarelor principii:
• dispunerea datelor stocate în nodul de producere şi de utilizare a lor;
• minimizarea căilor de transport de date în cadrul reŃelei de calculatoare.
Fragmentarea DDB se realizează pe două niveluri:
1. mulŃimea de colecŃii de date este partiŃionată în submulŃimi de colecŃii de
date;
2. colecŃia de date este partiŃionată în fragmente (pe orizontală - cu aceeaşi
structură ca şi colecŃia de date şi pe verticală – fragmentele conŃin fiecare
numai o parte din structura colecŃiei de date din care provin).
Fragmentele rezultate după partiŃionarea DDB reprezintă elemente de
distribuire a datelor. Ansamblul fragmentelor unei DDB stocate într-un nod al reŃelei
de calculatoare reprezintă o bază de date locală (LDB). De regulă, un fragment de
date reprezintă un derivat obŃinut prin orice combinaŃie aleatoare de restricŃii şi
proiecŃii din baza de date. Se reaminteşte, de la modelul relaŃional, că operaŃia de
restricŃie asigură selecŃia anumitor înregistrări (rânduri) dintr-un tabel al unei baze de
date relaŃionale, iar operaŃia de proiecŃie permite extragerea câmpurilor (coloanelor)
specificate dintr-un tabel.
Dacă se consideră o variabilă-de-relaŃie (variabila care face legătura între câmpul
reprezentând cheia primară şi câmpul reprezentând o cheie externă) de bază CL
pentru entitatea CLIENTI (aşa cum este percepută de utilizatorul final) ce conŃine
clienŃii-persoane juridice (Corporate) ai unei bănci, cu valorile eşantion prezentate în
fig.9.1, se poate explica fragmentarea datelor. Două fragmente de date, cu numele de
Cl _BUC şi CL _CTA, se pot defini astfel :
FRAGMENT CL AS
CL_BUC FROM SITE `Bucuresti` WHERE CORP# = CORP#(`C1`)
OR CORP# = CORP#(`C3`),
CL_CTA FROM SITE `Constanta` WHERE CORP# = CORP#(`C1`)
OR CORP# = CORP#(`C2`)
OR CORP# = CORP#(`C4`);
Tuplurile corespunzătoare clienŃilor băncii ce operează în Bucureşti sunt
memorate în site-ul din Bucureşti, iar tuplurile clienŃilor băncii ce operează în
ConstanŃa sunt memorate în site-ul din ConstanŃa.
Bucuresti ConstanŃa

CL_BUC CL_CTA

CL# CORP# SUMA_CT CL# CORP# SUMA_CT

N1 C1 1200000 N2 C2 800000
N4 C3 2450000 N3 C2 1050000
N5 C4 4200000
N6 C1 2500000

CL

CL# CORP# SUMA_CT

N1 C1 1200000
N2 C2 800000
N3 C2 1050000
N4 C3 2450000
N5 C4 4200000
N6 C1 2500000

Fig.9.1 Exemplu de fragmentare a datelor

Pe baza fragmentelor de date CL_BUC şi CL_CTA se poate reconstitui


variabila-de-relaŃie de bază iniŃială CL cu ajutorul operaŃiei de reuniune a
fragmentelor de date. Trebuie precizat faptul că operaŃia de reuniune se foloseşte
pentru fragmentele orizontale, iar operaŃia de uniune se utilizează pentru fragmentele
verticale. În cazul operaŃiei de uniune, se pot combina două tabele într-unul singur pe
baza valorilor comune ce există într-un câmp (coloană) comun.

9.2 Gestiunea tranzacŃiilor

TranzacŃia, în general, este o activitate individuală într-un sistem de calcul (de


exemplu, actualizarea unui articol de inventar sau introducerea unei comenzi efectuate
de un client). În sistemele de gestiune a bazelor de date distribuite (SGBDD),
tranzacŃia reprezintă o unitate logică de prelucrare prin intermediul căreia se
realizează siguranŃa şi consistenŃa bazei de date. O bază de date este într-o stare
consistentă dacă sunt îndeplinite toate constrângerile de integritate a datelor. Baza de
date se găseşte în stare consistentă atât înaintea executării tranzacŃiei cât şi după
executarea acesteia (în timpul executării tranzacŃiei, baza de date poate să fie în stare
inconsistentă). SiguranŃa bazei de date înseamnă toleranŃa acesteia faŃă de defectări şi
capacitatea de recuperare a datelor după apariŃia unor defectări. ConsistenŃa bazei de
date semnifică respectarea restricŃiilor de integritate a datelor după efectuarea uneia
sau mai multe operaŃii de prelucrare în baza de date (adăugare, actualizare, ştergere
etc.).
În esenŃă, o tranzacŃie este o succesiune de operaŃii de scriere şi de citire a
bazei de date, precum şi de operaŃii de calcul. O tranzacŃie este caracterizată de
punctul de început şi de punctul de sfârşit. Din acest punct de vedere tranzacŃiile se
clasifică în:
a) tranzacŃii implicite (punctul de început şi cel de sfârşit sunt automat
definite);
b) tranzacŃii explicite (utilizarea unor comenzi speciale pentru stabilirea
punctelor de început şi sfârşit ale tranzacŃiei).
În SQL-Server, tranzacŃiile explicite permit utilizatorului să grupeze un set de
comenzi SQL într-o tranzacŃie folosind comenzile BEGIN TRANSACTION şi
COMMIT TRANSACTION, pentru precizarea punctelor de început şi sfârşit.
Utilizatorul poate el însuşi defini punctele de salvare în cazul tranzacŃiilor complexe,
folosind comanda SAVE TRANSACTION, sau să deruleze înapoi tranzacŃia până la
punctul de început sau până la un punct de salvare anterior, folosind comanda
ROLLBACK TRANSACTION.
Accesul unei baze de date distribuite (ce defineşte gestiunea tranzacŃiilor) se
face, de regulă, în mod concurent, motiv pentru care toleranŃa la defectări şi
menŃinerea consistenŃei bazei de date prin controlul concurenŃei devin cerinŃe
prioritare pentru fiabilitatea bazei de date . ToleranŃa la defectări priveşte capacitatea
bazei de date şi a sistemului de gestiune a bazei de date de a face faŃă defectelor
dezastruoase astfel încât să nu se piardă date (să existe posibilitatea recuperării
datelor) şi să nu fie afectată activitatea (operaŃiunea) în curs de desfăşurare. Controlul
concurenŃei se referă la mecanismele de sincronizare a acceselor cu scopul de
menŃinere a integrităŃii bazei de date. În concluzie, cu ajutorul toleranŃei la defectări şi
controlul concurenŃei se asigură siguranŃa şi consistenŃa bazei de date.
Orice tranzacŃie trebuie să ia sfârşit (cu rezultat pozitiv sau negativ) prin
executarea tuturor operaŃiilor prevăzute de procedură. Ultima operaŃie executată în
acest caz este una de validare (commit). În caz contrar, ultima operaŃie efectuată este
una de abortare (abort) cu semnificaŃia că tranzacŃia nu a reuşit executarea tuturor
operaŃiilor prevăzute de procedură. Urmarea acestei situaŃii este anularea tuturor
operaŃiilor efectuate asupra bazei de date şi menŃinerea situaŃiei dinaintea începerii
tranzacŃiei.
TranzacŃia trebuie să îndeplinească patru condiŃii, sintetizate prin acronimul
ACID – atomicitate, consistenŃă, izolare şi durabilitate. Atomicitatea înseamnă că
orice tranzacŃie reprezintă o unitate elementară de prelucrare; execuŃia acesteia se
produce după regula „Totul sau nimic!”. ConsistenŃa unei tranzacŃii semnifică
proprietatea de transformare (corectă din punct de vedere logic) a unei baze de date
dintr-o stare consistentă într-o altă stare consistentă. Altfel exprimat, sunt menŃinute
în permanenŃă restricŃiile de integritate ale bazei de date (unicitatea cheilor primare şi
integritatea referenŃială). Prin consistenŃă este reflectată corectitudinea operaŃiilor
specifice tranzacŃiei. Izolarea reprezintă proprietatea unei tranzacŃii de a poseda
accesul numai la stările consistente ale bazei de date (pe timpul executării operaŃiilor
unei anumite tranzacŃii, până la realizarea operaŃiei de validare, celelalte tranzacŃii
concurente nu au permis accesul la modificările provocate de operaŃiile acestei
tranzacŃii asupra bazei de date). Prin intermediul acestei proprietăŃi este prevenită
apariŃia fenomenului de abortare în cascadă a tranzacŃiilor (efectul de domino).
Durabilitatea tranzacŃiei se referă la rezultatele tranzacŃiei asupra bazei de date în
sensul că acestea devin permanente (sunt scrise în baza de date) după terminarea
tranzacŃiei. Durabilitatea se obŃine cu ajutorul jurnalului (un fişier secvenŃial în care
sunt înregistrate operaŃiile executate de tranzacŃii). Jurnalul cuprinde istoria evoluŃiei
întregului sistem bază de date.
Pentru exemplificare, se consideră tranzacŃia efectuată de un client al unei
bănci, tranzacŃie prin care efectuează o plată din contul personal. Clientul băncii
efectuează această tranzacŃie prin intermediul unei maşini inteligente (multimat) în
sistemul self-banking.
Pentru simplificare, baza de date este formată din trei relaŃii definite de:
CLIENT (Cod_client, Nume_client, Adresa_client, Telefon_client, E_mail_client)
CONT_BANCAR (Nr_cont, Cod_client, Moneda, Suma_debitoare, Suma_creditoare,
Comision, Dobanda, Sold)
TRANZACTIE (Cod_tranzactie, Nr_cont, Suma _tranzactie, Detalii).
Atributele din relaŃii au semnificaŃia rezultată din denumirea lor. S-a pornit de
la premiza că un client al unei bănci (persoană juridică sau persoană fizică) poate avea
mai multe conturi bancare în cadrul aceleiaşi bănci (one-to-many). Nr_cont se
identifică cu codul IBAN. S-au evidenŃiat unele atribute deşi acestea, în practică, sunt
codificate în Cod_client, Nr_cont şi Cod_tranzactie. Cod_client reprezintă codul unic
de înregistrare fiscală (CUIF) pentru persoane juridice, respectiv codul numeric
personal (CNP) pentru persoane fizice. Atributele subliniate reprezintă cheile primare
ale relaŃiilor. Nu au fost evidenŃiate atribute ca Data_Tranzactie, Tip_tranzactie,
Cont_destinatie etc. care au fost considerate, pentru simplificare, incluse la Detalii.
De asemenea, nu au fost evidenŃiate atributele care sunt legate de securitatea
tranzacŃiei şi a datelor.
Pentru efectuarea tranzacŃiei, clientul băncii introduce codul tranzacŃiei pe care
doreşte să o efectueze şi numărul contului bancar în care se vor reflecta efectele
tranzacŃiei care se va efectua.
Dacă se foloseşte o interfaŃă SQL pentru efectuarea tranzacŃiei, reprezentarea
tranzacŃiei de înregistrare a unei plăŃi de către clientul băncii, în limbaj pseudocod, se
scrie astfel:
Begin Transaction TRANZACTIE
Begin
Input (Cod_tranzactie, Nr_cont)
EXEC SQL
UPDATE CONT_BANCAR
Set Suma_debitoare=Suma_tranzactie
WHERE Nr_cont=Numar_cont
EXEC SQL
INSERT INTO TRANZACTIE (Cod_tranzactie, Nr_cont,
Suma_tranzactie, Detalii).
VALUES (Cod_tranz, Numar_cont, Suma_plata, NULL)
Output (“ Plata a fost inregistrata!”)
End.
În relaŃia CONT_BANCAR suma care constituie obiectul plăŃii care se va
efectua se scade din sold (se trece la suma_debitoare), iar în relaŃia TRANZACTIE se
scrie o înregistrare care materializează datele de identificare a tranzacŃiei. Nu s-au luat
în considerare toate operaŃiile de actualizate a datelor din baza de date considerată.
Când tranzacŃia se termină cu succes, se produce în final operaŃia de validare
(COMMIT), iar în caz contrar, se produce operaŃia de abortare (ABORT sau
ROLLBACK). Când are loc abortarea, tranzacŃia este oprită, iar efectele operaŃiilor
deja efectuate sunt anulate, ceea ce înseamnă că baza de date este adusă în starea pe
care o avea înaintea începerii tranzacŃiei.
Când s-a produs validarea tranzacŃiei, efectele acestei tranzacŃii nu mai pot fi
anulate.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Prin ce se caracterizează fragmentarea pentru o bazeă de date distribuită.
2. Cum se realizează gestiunea tranzacŃiilor?
Prezentarea lecŃiei / capitolul 10:
10.1. ProtecŃia bazelor de date distribuite

ProtecŃia bazelor de date distribuite reprezintă un ansamblu de măsuri umane


şi facilităŃi oferite de SGBDD (DDBMS) prin care se asigură integritatea datelor
(corectitudinea datelor introduse) şi securitatea datelor (accesul autorizat la date).
ProtecŃia datelor se face prin salvarea lor în cazul unor defecte sau erori
accidentale. Se deosebesc trei aspecte ale asigurării integrităŃii datelor.
a) asigurarea integrităŃii semantice a datelor (prevenirea introducerii unor date
incorecte şi a efectuării unor prelucrări greşite);
b) controlul accesului concurent la date (prevenirea apariŃiei unor rezultate incorecte
din execuŃia concurentă a unor prelucrări în regim multiutilizator);
c) salvarea şi restaurarea bazei de date (refacerea acesteia atunci când a fost afectată
de funcŃionarea anormală sau de căderea SGBDD-ului, a sistemului de operare sau ca
urmare a unor defecte hardware).
Integritatea semantică a datelor. Introducerea unor date eronate în baza de
date sau prelucrări care furnizează rezultate greşite trebuie prevenite prin includerea
în programele de aplicaŃie a unor secvenŃe pentru testarea datelor şi a unor facilităŃi de
asigurare a integrităŃii semantice a datelor oferite de SGBDD. Concret, orice operaŃie
asupra datelor trebuie să respecte restricŃiile de integritate. După modul în care sunt
exprimate restricŃiile de integritate sunt implicite şi explicite.
RestricŃiile de integritate implicite înseamnă existenŃa verificărilor la
introducerea datelor (nu se acceptă valori care nu aparŃin tipului de date specificat),
precum şi dacă există conceptul de cheie unică, la inserare se va verifica unicitatea
cheiei.
În modelul relaŃional există două restricŃii de integritate asociate cheilor
primare şi cheilor externe şi anume:
1. Integritatea entităŃii care presupune că nici un atribut care participă la
formarea cheie primare a unei relaŃii nu poate primi o valoare NULL, aceasta din
motivul că o cheie primară trebuie să identifice în mod unic tuplurile unei relaŃii.
2. Integritatea referenŃială (referirii) adică orice valoare a unei chei externe
din relaŃia care referă trebuie să aibă corespondentă o cheie primară cu aceeaşi valoare
în relaŃia referită sau să fie NULL.
RestricŃiile de integritate explicite pot fi incluse în programele de aplicaŃie şi
verificate în momentul execuŃiei sau pot fi memorate în dicŃionarul datelor şi
verificate automat de SGBDD la fiecare operaŃie care se execută asupra anumitor
date.
Controlul accesului concurent la baza de date. În sistemul multiutilizator,
sistemul de operare asigură accesul concurent al programelor în execuŃie la resurse,
după o anumită disciplină internă. În cazul aplicaŃiilor, care utilizează aceeaşi bază de
date, întreruperea executării unui proces pentru începerea sau continuarea altora poate
conduce la alterarea datelor. Asigurarea integrităŃii datelor, în acest context,
presupune existenŃa unor facilităŃi speciale pentru controlul accesului concurent la
date la nivelul SGBDD-ului şi acestea sunt tranzacŃiile.
Tehnica blocării..O execuŃie neserială a unor tranzacŃii concurente este
considerată corectă dacă este serializabilă, adică dacă produce acelaşi rezultat ca şi
execuŃia serială a acestor tranzacŃii. Tehnica utilizată de SGBDD pentru a asigura
execuŃia serializabilă a tranzacŃiilor este tehnica blocării. În cea mai simplă formă,
blocarea unor date de către o tranzacŃie, interzice celorlalte tranzacŃii accesul la aceste
date. Blocarea se poate aplica la nivelul întregii baze de date, la nivelul unui fişier,
grup de înregistrări, înregistrare sau chiar la nivelul unui singur câmp dar cu implicaŃii
diferite.
La aplicarea tehnicii blocării, se urmăresc două aspecte:
a) în procesul de actualizare este interzis accesul celorlalŃi utilizatori până la
completarea acestei operaŃii;
b) accesul la datele pe care un utilizator le citeşte fără a le actualiza este interzis
utilizatorilor pentru operaŃia de actualizare, dar este permis pentru operaŃia de citire.
Blocarea poate fi:
- pentru citire sau partajabilă (datele pot fi folosite şi de alŃi utilizatori dar numai
pentru operaŃii de citire);
- pentru scriere sau exclusivă (datele nu pot fi accesate de alt utilizator).
Interblocarea resurselor intervine atunci când două tranzacŃii blochează
anumite resurse, apoi fiecare solicită resursele blocate de cealaltă. De aceea la nivelul
SGBDD există facilităŃi de prevenire sau de rezolvare a acestor situaŃii, putându-se
implementa una din următoarele strategii:
1. Prevenirea blocării adică programele blochează toate resursele de care au
nevoie încă de la începutul fiecărei tranzacŃii. Această strategie este dificil de
implementat, deoarece în cele mai multe cazuri este imposibil de precizat înainte ce
resursele vor fi necesare pentru o tranzacŃie.
2. SoluŃionarea interblocării. Se poate realiza prin utilizarea de către sistem a
unui graf al precedenŃelor care să reflecte dependenŃele dintre procese şi anume
ordinea în care acestea trebuie executate.
Salvarea şi restaurarea bazei de date are ca scop readucerea datelor la o formă
consistentă în urma unor evenimente care au alterat corectitudinea lor, cum ar fi:
1 – funcŃionarea anormală sau o cădere a SGBDD-ului sau a sistemului de operare;
2 – o defecŃiune a suportului fizic pe care este memorată baza de date.
SGBDD asigură acumularea de informaŃii despre derularea tranzacŃiilor până
în momentul întreruperii lucrului şi aplicarea uneia din următoarele strategii de
restaurare:
- derularea înapoi a tranzacŃiilor necompletate (cu ROLL-BACK) şi care
presupune anularea modificărilor făcute de acestea asupra bazei de date;
- derularea înapoi a tranzacŃiilor completate dar neefectuate în baza de date
(cu ROLLFORWARD) şi care presupune efectuarea acelor transformări prin care
baza de date restaurată să conŃină rezultatele acestora.
Salvarea bazei de date este operaŃia prin care se stochează date în vederea
folosirii lor pentru o eventuală restaurare. Volumul informaŃiilor care se salvează,
natura lor şi intervalul de timp dintre două operaŃii succesive de salvare, determină
strategia de salvare.
Datele salvate pot fi diferite combinaŃii între:
- copii ale bazei de date şi copii ale jurnalelor acestora;
- jurnale ale tranzacŃiilor;
- jurnale ale imaginii înregistrărilor din baza de date.
Copiile bazei de date pot fi realizate automat de sistem la anumite intervale de
timp sau la comanda administratorului bazei de date, ori de câte ori este nevoie şi de
obicei pe un alt suport magnetic decât cele pe care rezidă baza de date. Aceste copii
pot fi utilizate doar în situaŃia în care prelucrările efectuate între momentul realizării
copiilor şi cel al apariŃiei unei defecŃiuni pot fi reluate. Acest lucru este posibil doar
dacă prelucrările sunt efectuate într-o secvenŃă cunoscută iar timpul necesar pentru
reprocesarea lor nu este foarte mare.
Durata mare de execuŃie pentru astfel de copii face ca anumite SGBDD-uri să
recurgă la copii ale jurnalelor bazei de date. Volumul datelor care vor fi copiate în
acest caz va fi mai mic, iar procesul de restaurare va implica într-o măsură mai mică
intervenŃia umană.
Jurnalul tranzacŃiilor este un fişier special întreŃinut de SGBDD, în care sunt
memorate informaŃiile despre tranzacŃiile efectuate asupra bazei de date cum sunt:
- identificatorul sau codul tranzacŃiei;
- momentul începerii execuŃiei tranzacŃiei;
- numărul terminalului sau identificatorul utilizatorului care a iniŃiat
tranzacŃia;
- datele introduse;
- înregistrările modificate şi tipul modificării.
Jurnalul imaginilor se deosebeşte de jurnalul tranzacŃiilor prin aceea că el nu
conŃine descrierea operaŃiilor efectuate asupra bazei de date, ci efectul acestora. Acest
tip de jurnal poate avea una din formele:
- jurnalul cu imaginea înregistrărilor după modificare şi în acest caz
conŃine copia fiecărei înregistrări care este modificată;
- jurnalul cu imaginea înregistrării înainte de modificare;
- jurnalul care conŃine ambele tipuri de mai sus.
În funcŃie de defecŃiunea care a determinat întreruperea lucrului, restaurarea
bazei de date se realizează automat de SGBDD sau manual, adică necesită intervenŃie
umană.
Restaurarea automată a bazei de date este executată de SGBDD după oprirea
şi restaurarea sistemului în urma unei căderi. Prin acest proces baza de date este adusă
într-o formă consistentă prin derularea înapoi a tranzacŃiilor active în momentul
defecŃiunii şi continuarea tranzacŃiilor înregistrate ca finalizate în fişierul jurnal, dar
care nu sunt încă reflectate în baza de date. O cerere de acces la date, primită de
SGBDD, va determina transferul unei pagini de disc în memoria principală.
Eventualele modificări ale datelor, aflate acum în memoria principală, nu vor fi
urmate imediat de rescrierea paginii respective pe disc.
Această operaŃie poate fi făcută periodic sau la o cerere explicită a sistemului
sau în cazul în care este nevoie de spaŃiu fizic pentru o altă pagină de disc solicitată.
Pagina care se va înlocui va fi aceea care nu a fost utilizată într-un interval mare de
timp. De obicei sunt menŃi-nute în memorie paginile frecvent utilizate, ceea ce duce la
reducerea numărului de operaŃii de transfer între memoria principală şi memoria
externă. Acelaşi regim de păstrare în memorie, până la un transfer ulterior pe disc, se
aplică şi informaŃiilor de jurnalizare a tranzacŃiilor.
Sincronizarea memoriei cu baza de date şi fişierul jurnal se realizează prin
executarea unui punct de verificare (ceckpoint). SGBDD-ul poate executa punctul de
verificare la o comandă explicită CHECKPOINT. Un punct de verificare presupune
executarea următoarelor operaŃii:
a) oprirea proceselor active la momentul respectiv;
b) forŃarea scrierea paginilor de memorie în jurnale şi apoi în baza de date;
c) scrierea unei înregistrări speciale în jurnalul tranzacŃiilor, scriere necesară la
restaurarea şi reluarea prelucrărilor care indică starea fiecărui proces activ la
momentul executării punctului de verificare, starea fişierelor temporare de lucru,
pointerii la cozile de mesaje;
d) continuarea proceselor anterior oprite .
Restaurarea manuală a bazei de date este astfel denumită deoarece implică
intervenŃie umană şi nu pentru că ar fi un proces manual. Este necesară în situaŃia
distrugerii suportului de memorie externă pe care rezidă baza de date.
În cazul anumitor SGBDD-uri, acest proces se bazează doar pe efectuarea de
copii de siguranŃă ale bazei de date.
Restaurarea va consta din încărcarea celei mai recente copii a bazei de date
şi reluarea prelucrărilor efectuate din momentul copierii şi până la producerea
defecŃiunii.
Copiile se pot realiza în una din următoarele maniere:
1. Deconectarea tuturor utilizatorilor de la baza de date, efectuarea copierii şi apoi
conectarea utilizatorilor la baza de date.
2. Efectuarea copiilor în mod dinamic, adică în timp ce utilizatorii accesează baza de
date.
Această facilitate este utilă în regim de lucru on-line.
Copierea bazei de date va reflecta starea bazei de date la momentul respectiv,
inclusiv efectele tranzacŃiilor în curs de execuŃie. SGBDD-ul va realiza automat
derularea înapoi a tranzacŃiilor în curs de execuŃie, obŃinându-se astfel o stare
consistentă a bazei de date.
Timpul consumat de operaŃia de copiere este dependent de mărimea bazei de
date ca şi de metoda de copiere utilizată. Acest parametru va fi luat în considerare la
stabilirea frecvenŃei de realizare a copiilor. Restaurarea manuală este cu atât mai
eficientă cu cât SGBDD-ul va permite şi copierea fişierelor jurnal. În intervalul dintre
două copieri ale bazei de date se vor realiza mai multe copii ale fişierului jurnal, se
vor stabili punctele de verificare, în felul acesta asigurându-se sincronizarea memoriei
cu fişierul jurnal şi cu baza de date.
TranzacŃiile inactive din jurnal vor fi şterse din fişier.
Procesul de restaurare presupune încărcarea celei mai recente copii a bazei de
date, urmată de încărcarea copiilor jurnalului în ordinea în care au fost efectuate.
Asigurarea securităŃii bazei de date presupune interzicerea accesului
neautorizat la date şi se realizează cu un set de măsuri de protecŃie umană, software şi
hardware. Astfel, se pot stabili parole pe baza cărora să fie permis accesul la resursele
sistemului de calcul. SGBDD-ul poate activa şi un jurnal pentru urmărirea accesului
la baza de date, pe baza lui fiind posibilă detectarea încercărilor de acces neautorizat.
Pentru cererile de I/O transmisie sistemului de operare de SGBDD sunt posibile
verificări suplimentare referitoare la utilizarea corectă a fişierelor sau a funcŃiilor
sistemului de operare.
Hardware-ul poate oferi şi el o protecŃie suplimentară prin transferarea datelor
numai în zone de memorie care sunt controlate de SGBDD.
ModalităŃile de asigurare a securităŃii bazei de date sunt:
1. Autorizarea şi controlul accesului la date, care presupune identificarea
utilizatorilor, restricŃionarea accesului acestora la date precum şi stabilirea de restricŃii
pentru datele accesate.
SGBDD-urile actuale folosesc pentru identificarea utilizatorului, parole,
fiecare parolă fiind asociată cu anumite drepturi de acces la date. SGBDD-ul va
menŃine pentru fiecare parolă o listă de privilegii pentru user-ul care foloseşte acea
parolă.
User-ii pot fi asociaŃii unor grupuri, la drepturile fiecăruia adăugându-se
drepturile stabilite pentru grupul respectiv. Administratorul bazei de date este user-ul
care implicit are toate drepturile asupra bazei de date precum şi dreptul de a stabili sau
revoca privilegii pentru ceilalŃi utilizatori.
Utilizatorii obişnuiŃi sunt cei care nu au în proprietate obiecte şi nu au alte
privilegii decât cele moştenite ca membri ai unui grup sau menŃionate explicit de
administratorul bazei de date sau proprietarii de obiecte.
2. Definirea şi utilizarea viziunilor (a schemei externe a bazei de date).
Viziunile sunt partiŃii logice ale bazei de date. Ele sunt definite pentru diferiŃi
utilizatori în raport cu necesităŃile acestora de a avea acces la date. Securitatea datelor
va fi asigurată prin definirea tuturor drepturilor necesare unui utilizator pentru o
viziune şi revocarea drepturilor pentru obiecte iniŃiale.
Utilizatorul nu va avea acces la efectuarea unor operaŃii asupra vizunii care să
afecteze obiectele iniŃiale.
3. Realizarea de proceduri speciale. Sunt SGBDD-uri care au facilitatea
definirii unor proceduri care să fie păstrate la nivelul sistemului, într-o formă
precompilată. În aceste proceduri se vor specifica explicit operaŃiile care se vor
efectua asupra datelor.
4. Criptarea datelor este operaŃia de codificare a datelor pe timpul stocării sau
al transportului lor, astfel încât descifrarea lor să poată fi făcută numai de posesorii
autorizaŃi de cod. La nivelul SGBDD-ului această facilitate are două forme:
a) existenŃa unor rutine speciale care realizează criptarea datelor la cerere sau
automat;
existenŃa unor instrumente care permit utilizatorului să-şi realizeze rutine proprii de
criptare.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Ce se înŃelege prin integritatea semantică a datelor?
2. Care sunt restricŃiile de integritate implicite?
3. Care sunt restricŃiile de integritate asociate cheilor primare şi celor externe în
modelul relaŃional?
4. Cum se efectuează controlul accesului concurent la baza de date?
5. Ce reprezintă tehnica blocării?
6. Ce reprezintă interblocarea resurselor?
7. Ce reprezintă jurnalul tranzacŃiilor şi jurnalul imaginilor?
8. Cum se asigură securitatea unei baze de date?
Prezentarea lecŃiei / capitolul 11:
11. Baze de date online
11.1 Problematica generală

Bazele de date online reprezintă un tip special de baze de date distribuite care
este folosit într-un mediu de tipul Internet, Extranet sau Intranet. Din punctul de
vedere al utilizatorului final din organizaŃia economică, este mai puŃin important unde
este localizată baza de date (pe Intranet-ul organizaŃional, pe Extranet sau pe Internet),
ci dacă îi satisface cerinŃele imediate, sub aspect cantitativ şi calitativ, de informare
sau pentru asistarea deciziei.
ReŃeaua Intranet este o reŃea locală de calculatoare şi de comunicaŃii pentru
organizaŃii mari care asigură, prin tehnologia Web, cerinŃele de informare şi
documentare ale angajaŃilor săi, iar prin extensie, prin cont şi parolă de accces
(reŃeaua Extranet), şi ale utilizatorilor externi agreaŃi de organizaŃie (clienŃi, furnizori,
colaboratori externi etc.). ReŃeaua Intranet poate să existe complet separat de reŃeaua
Internet.
Arhitectura Intranet este prezentată, după BDASEIG , în fig.11.1.
Serverul Web, denumit şi server HTTP, este un server software care foloseşte
protocolul de transfer al hipertextelor, HTTP (HyperText Transfer Protocol) pentru a
furniza documente HTML şi scripturi asociate la cererea utilizatorilor finali. Prin
intermediul unor interfeŃe standard de tipul API (Application Programming Interface)
sau CGI (Common Gateway Interface), se pot executa pe server programe sau
scripturi prin care sunt accesate bazele de date online de diverse tipuri şi organizate
după diverse modele de date. Se reaminteşte că scriptul este un program compus
dintr-un set de instrucŃiuni cu privire la o aplicaŃie sau la un program utilitar. În
aplicaŃiile Web, scripturile sunt utilizate pentru obŃinerea interactivităŃii şi
personalizării paginilor Web.
În cadrul acestei reŃele Intranet, serviciile furnizate sunt de acces la
bazele de date (de unde se obŃin date sub formă de informaŃii şi cunoştinŃe), de
comunicaŃii şi partajarea resurselor informatice, pentru accesarea şi dezvoltarea
aplicaŃiilor, de administrare, securitate şi transport etc. Aceste servicii sunt împărŃite
pe opt niveluri (Forrester Research). Între acestea se regăsesc o serie de servicii
informaŃionale specializate ca pagini Web, transfer de fişiere realizabil prin
intermediul protocolului FTP, (File Transfer Protocol), groupware, ştiri (News),
circulaŃia documentelor, videoconferinŃe şi audioconferinŃe, forumuri electronice.
GROUPWARE,
MESAGERIE NEWS
PROGRAME SMTP/POP

API
INTERFEłE (BROWSER
STANDARD WEB) TCP/I
P
FTP

DIRECTOARE CLIENT
CU FIŞIERE JAVA MAIL

Fig.11.1. Arhitectura reŃelei Intranet

Paginile Web sunt documente Web, cu legături la alte documente Web, ce sunt
formate din fişiere HTML, fişiere asociate pentru grafică şi scripturi, stocate într-un
director personalizat pe un server Web, ce se identifică printr-o adresă de resursă tip
Internet, URL (Uniform Resource Locator). Paginile Web interactive conŃin şi applet-
uri Java (programe ce se execută într-o aplicaŃie cu browser, adică program de
navigare în reŃelele de tipul Intranet, Extranet şi Internet). Mai multe documente Web,
intercorelate între ele, formează un site Web. Un server Web poate stoca mai multe
site-uri Web (pentru persoane fizice şi firme mici), după cum mai multe servere Web
pot găzdui acelaşi site Web (organizaŃiile mari).
Transferul de fişiere se efectuează în directoare de fişiere, cataloage sau
dosare (folders).
Groupware asigură unui grup de utilizatori din reŃeaua Intranet să colaboreze
la realizarea unui proiect.
Serviciile Web reprezintă în esenŃă o familie de aplicaŃii bazate pe
protocoalele Web ce pot fi combinate şi integrate în aplicaŃiile comerciale (B2B,
B2C) pe Intranet, Extranet, respectiv Internet. În afara protocolului HTTP, reamintit
mai sus şi apreciat ca destul de nesigur, sunt utilizate alte protocoale standard ca
XML şi SOAP. Protocolul XML (extensible Markup Language) este o formă
condensată a limbajului standard generalizat de marcare, SGML (Standard
Generalized Markup Language), iar protocolul de acces la obiecte simple, SOAP
(Simple Object Access Protocol) permite schimbul de date structurate sub formă de
obiecte. Limbajul de descriere a serviciilor Web, WSDL (Web Service Description
Language) este un format XML creat pentru a asigura interoperabilitatea sporită a
serviciilor Web cu instrumentele de dezvoltare.
Mesageria, ca activitate de livrare a mesajelor (e-mail, fax), se realizează prin
intermediul protocolului TCP/IP de transfer a mesajelor simple în reŃea, SMTP
(Simple Mail Transfer Protocol), protocolului pentru serverele de e-mail (oficiile
poştale electronice), POP3 (Post Office Protocol) şi a protocolului de acces interactiv
la poşta electronică, IMAP (Interactive Mail Access Protocol). Serverele proxy sau
intermediare realizează selecŃia mesajelor, reducând astfel traficul prin reŃea. Prin
extensia poştei electronice s-a obŃinut circulaŃia documentelor (workflow) în Intranet.
VideoconferinŃele şi audioconferinŃele asigură interactivitatea utilizatorilor
pasivi, prin legături punct la punct sau multipunct, cu soft specializat (de exemplu,
CU-SeeMe).
Bazele de date online din Intranet sunt consultate prin intermediul
navigatoarelor (browser-elor). Motoarele de căutare (Search Engine) au devenit din
ce în ce mai puternice în regăsirea informaŃiilor după cuvinte-cheie şi grupuri de
cuvinte-cheie.
Accesarea bazelor de date online este facilitată de realizarea paginilor Web
dinamice.

11.2 Pagini Web statice şi dinamice

Paginile Web statice se realizează cu ajutorul limbajului HTML. În Microsoft


Access, prin funcŃia de export (meniul principal File, opŃiunea Export…), paginile
Web pot prelua date dintr-un tabel, formular, interogare sau raport. Succesiunea de
comenzi pentru un tabel MATERIALE este următoarea: selecŃie obiect de vizualizat
după nume din fereastra Database (table); meniul principal File; opŃiunea Export…;
fereastra Export Table ‘MATERIALE’ As; caseta Save As Type cu opŃiunea HTML
Documents; butonul Save.
Paginile Web dinamice pun în evidenŃă schimbările survenite în baza de date
online şi se adaptează permanent la aceste modificări, nefiind necesară generarea lor
ca la paginile Web statice realizate cu limbajul HTML. Produsul Microsoft Access
2000, respectiv 2002, 2003, asigură generarea paginilor Web dinamice de tipul ASP
(Active Server Pages) sau IDC/HTX. Tehnologia ASP pentru Web asigură script-area
pe partea de server pentru realizarea interactivităŃii documentelor indiferent de
platforma de lucru a părŃii de client. Utilizatorul are acces cu un editor peste codul
generat de Access pentru eventuale modificări ale elementelor de design al paginilor
sau legate de datele accesate. Pot fi adăugate în pagini diverse script-uri (JavaScript).
Aceste pagini dinamice pot fi generate cu Access numai în cazul obiectelor de tipul
tabel, interogare sau raport şi pot fi recepŃionate pentru publicare pe servere Web de
tipul Microsoft Internet Information Server(IIS) sau Personal Web Server (PWS).
Serverele Web de tipul IIS funcŃionează sub sistemele de operare începând cu
Microsoft Windows 2000, în timp ce PWS funcŃionează sub toate versiunile
sistemului de operare Microsoft Windows.
Legătura dintre baza de date şi pagina Web presupune definirea înaintea
generării paginii Web dinamice a unui nume al sursei de date, DSN (Data Source
Name) prin intermediul facilităŃii de conectivitate a bazelor de date deschise, ODBC
(Open DataBase Connectivity).
Paginile Web dinamice generate cu produsul Access de tip ASP cuprind cod
text în limbajul HTML şi acces la baza de date generată în limbajul VBScript.
Limbajul VBScript foloseşte colecŃia de obiecte ADO (ActiveX DataBase Object) şi
limbajul de interogare structurată, SQL. ADO reprezintă o interfaŃă la OLE DataBase,
de tipul interfeŃelor de programare a aplicaŃiilor, API (Application Programming
Interface), care permite accesul la date direct dintr-o bază de date.
Produsul Microsoft Access, prin obiectele de tipul Data Access Pages ce se
găsesc în fereastra Database, la secŃiunea Pages, asigură crearea unui fişier separat de
baza de date pentru pagini Web. Legătura către pagina Web este stocată în obiectul
din baza de date ce asigură accesarea bazei de date din Access de pe Internet cu
ajutorul browser-ului Microsoft Internet Explorer. Crearea unui obiect de tipul pagină
Web se realizează prin apăsarea butonului New, după care se alege una dintre
următoarele opŃiuni:
• Design View, ce asigură proiectarea manuală a paginii Web (este similară cu
shortcut-ul Create data access page in design view);
• Existing Web Pages, ce asigură proiectarea unei pagini Web având ca model o
pagină Web existentă în mediul de lucru (este similară cu shortcut-ul Edit Web page
that already exists);
• Page Wizard, ce asigură asistarea generării paginii Web (este similară cu shortcut-
ul Create data access page by using wizard);
• AutoPage:Columnar, ce asigură crearea automată a paginii Web ce are aspectul
unei coloane din tabelul sau interogarea selectată pentru prezentare.

Fig.11.2 Crearea formularului pentru pagina Web ce vizualizează tabelul


MATERIALE
În fereastra New Data Access Page se selectează tabelul sau interogarea bazei
de date care constituie sursa de date pentru pagina Web (de exemplu, MATERIALE)
şi apoi se apasă butonul OK. În modul Design View apar ferestrele Page 1: Data
Access Page, Field List şi Alignment and Sizing. În lista de câmpuri, Field List, se
selectează câmpurile ce vor fi reprezentate în pagina Web (fig.11.2). În fereastra Page
1: Data Access Page apare un formular special care va fi accesibil cu un browser
Web.

Lista subiectelor pentru pregătirea în vederea evaluării finale:


Întrebări:
1. Ce înseamnă paginile Web?
2. Ce sunt bazele de date online ?
3. Cum se face transferul de fişiere ?
4. Ce asigură groupware unui grup de utilizatori din reŃeaua Intranet ?
5. Ce înseamnă paginile Web dinamice ?
Prezentarea lecŃiei / capitolul 12:
12. Visual Basic.NET şi bazele de date distribuite
Aşa cum s-a arătat mai sus, bazele de date distribuite (DDB) sunt baze de date
implementate în reŃeaua de calculatoare şi de comunicaŃii prin intermediul partiŃiilor
componente ce sunt dispuse în diferite noduri ale reŃelei. Aceste baze de date pot fi
centrale sau locale. O entitate client poate executa, de regulă, două tipuri de operaŃii
asupra unei baze de date distribuite: citire (situaŃia în care nu se efectuează modificări
asupra bazei de date) şi scriere (adăugare de noi înregistrări, ştergerea unor
înregistrări în baza de date, modificarea conŃinutului unor înregistrări). Efectele
operaŃiei de scriere se obŃin dacă entitatea client dispune de permisiunea necesară
acestui scop. Între aplicaŃia entităŃii client şi sistemul de gestiune a bazelor de date
distribuite (DDBMS) de pe serverul de date se interpune un program specilizat,
adaptor de date sau driver care îndeplineşte funcŃia de translator între limbajul
aplicaŃiei clientului şi limbajul specific DDBMS.
Tehnologia Microsoft pentru platforma .NET, denumită ADO.NET realizează
accesul la bazele de date relaŃionale şi la etichetele XML. ADO.NET (Active Data
Object) semnifică obiecte de date active ce fac parte din clasele specifice DataSet
(tabele, rânduri, coloane, relaŃii etc.), sursele de date pentru .NET Framework şi
definiŃiile formulate pentru tipuri particularizate specifice, de exemplu SQL Server.
Etichetele XML (eXtensible Markup Language) desemnează, alături de atributele
XML, informaŃii referitoare la elementele XML din compunerea documentelor XML
(etichetă de început, element, etichetă de sfârşit):
&lt; Nume_banca =”BCR” din Bucuresti”&gt;

Sursa de date Setul de date


pentru locale
.NET DataSet
FRAMEWORK

XML
Fig.12.1 PărŃile componente ale arhitecturii generale de acces la date distribuite
ADO.NET

PărŃile componente ale arhitecturii generale ADO.NET sunt baza de date


(DataBase), sursa de date .NET (Data Provider) şi setul de date locale DataSet, aşa
cum se prezintă pe site-ul www.Microsoft.com (fig.12.1) şi în dicŃionarul de
calculatoare Microsoft.
Serverul de date realizează o conexiune temporară cu entitatea client numai pe
durata unei operaŃii de citire sau a unei operaŃii de scriere. Altfel exprimat, ADO.NET
utilizează un model deconectat în scopul gestionării bazelor de date.
Pentru efectuarea unor operaŃii asupra bazei de date de pe serverul de date este
necesară parcurgerea următoarelor etape :
stabilirea parametrilor de realizare a conexiunii client/server;
• instanŃierea unui obiect ce aparŃine clasei Data Adapter, prin intermediul
căruia clientul adresează serverului comenzi din categoriile selecŃie (Select), adăugare
(Insert), ştergere (Delete), actualizare (Update), după care recepŃionează rezultatele
acŃiunii într-o bază de date locală;
• construirea bazei de date locale cu ajutorul unei comenzi din adaptor (Data
Adapter);
• procesarea datelor din setul de date locale (DataSet) prin modificare şi
transmiterea rezultatelor acestor prelucrări la serverul de date (Microsoft SQL Server,
Oracle DB etc.).
Locul adaptorului de date în arhitectura client/server este prezentat în fig.12.2.
Prin intermedul lui Microsoft Visual Basic.NET se pot realiza conexiunile la
baze de date şi se pot construi seturile de date locale. Entitatea client stochează
imaginea setului de date de care are nevoie de pe serverul de baze de date, într-un
obiect local. După această operaŃie, se produce deconectarea clientului de la serverul
de baze de date. Dacă sunt efectuate modificări asupra înregistrărilor setului local de
date, ADO.NET realizează actualizarea modificărilor pe server la următoarea
conectare ce este destinată salvărilor prelucrărilor efectuate.
Pentru interogarea bazei de date de pe server, există mai multe metode:
• utilizarea frazelor SQL generate în mod automat de adaptorul de date
(SELECT…);
• crearea unor proceduri noi ce se memorează;
• utilizarea procedurilor deja memorate.

Adaptor de Server de date


Set de date local
date (Data (SQL Server,
(DataSet)
Adapter) Oracle DB)
la Client

Fig.12.2. Locul adaptorului de date în arhitectura client/server

Aceste metode apar ca opŃiuni ale ferestrei de alegere a tipului de interogare


din Data Adapter.
Setul de date local în ADO.NET reprezintă o colecŃie DataTable Collection
compusă din mai multe tabele ce sunt obiecte DataTable. Obiectele DataTable
reprezintă imaginile unor tabele ale căror coloane sunt stocate în
DataColumnCollection, ale căror restricŃii sunt conŃinute în ConstraintCollection, ale
căror rânduri sunt stocate în DataRowCollection. De asemenea, relaŃiile între tabelele
bazei de date relaŃionale sub formă de obiecte DataRelation sunt stocate în
DataRelationCollection.
Setul de date local poate fi populat cu înregistrări noi prin comanda Fill
(umple) care există la adaptorul de date. Accesul la elementele din setul de date local
se execută pe baza structurii ierarhice care, în sens descrescător, arată astfel: setul de
date local (DataSet), tabele (Tables), rânduri (Rows), câmpuri (Fields), itemi (Items).
Formularul de lucru în VB.NET se realizează în aceeaşi manieră cu cea
prezentată la capitolul de Visual Basic (casete cu text, etichete, liste etc.). În cazul
fiecărui set de date local pot fi vizualizate, din meniul contextual, proprietăŃile
câmpurilor acestuia, sub formă de ferestre cu două coloane. Aceste proprietăŃi nu pot
fi modificate de utilizator.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Care sunt părŃile componente ale arhitecturii generale ADO.NET?
2. Ce semnifică instanŃierea unui obiect ce aparŃine clasei Data Adapter?
3. Ce semnifică tipul de interogare din Data Adapter?
Cum se realizează formularul de lucru în VB.NET?
Prezentarea lecŃiei / capitolul 13.
13.1. BAZE DE DATE ÎN TEHNOLOGII AVANSATE

Cercetările în domeniul bazelor de date în tehnologii avansate (advanced


database) evidenŃiază câteva tendinŃe relevante concretizate în baze de date orientate
obiect, baze de date relaŃionale orientate obiect, baze de date active, baze de date
distribuite, baze de date online.
GeneraŃia bazelor de date în tehnologii avansate cuprinde, în principal, bazele de
date active:
• Baze de date deductive
• Baze de date multidimensionale
• Baze de date multimedia.
Bazele de date active sunt caracterizate de comportamentul lor descrie în raport cu
schimbările ce survin în interiorul acestora sau cu evenimentele ce se produc în afara
acestora. Acest comportament descrie al bazelor de date active este descris de regulile
eveniment – condiŃie – acŃiune (ECA). Aceasta înseamnă că atunci când (when) un
eveniment se produce, se testează o condiŃie şi dacă (if) aceasta este adevărată la evaluare,
atunci (then) se execută o acŃiune.
14.1 Bazele de date deductive
Bazele de date deductive sunt denumite şi baze de date inteligente sau baze de
date bazate pe logică şi sunt caracterizate de posibilitatea gestionării adaptive a datelor
în conformitate cu cerinŃele utilizatorilor în luarea deciziilor economice. Bazele de date
deductive sunt baze mari de date ce sunt supuse analizei şi interpretării. Sistemul de
gestiune aferent acestor baze de date deductive cuprinde instrumente de realizare
automată a raŃionamentelor ce sunt realizate prin programare logică. Programarea logică
reprezintă un tip de programare bazată pe raŃionamente, în care programul este compus
din fapte şi reguli şi are ca rezultat concluzii. Unul dntre limbajele de programare care
asigură implementarea acestui tip de programare este limbajul Prolog. Prin raŃionament
se înŃelege un proces de deducŃie (inferenŃă) aplicat asupra setului de fapte şi reguli.
Faptele (facts) sunt informaŃii declarative, cu reprezentare simbolică, ce servesc pentru
descrierea relaŃiilor care se referă la unul sau mai multe obiecte ale problemei de
rezolvat. RelaŃiile descriu legăturile dintre obiecte. Regulile (rules) sunt utilizate pentru
definirea şi deducerea de noi fapte şi relaŃii dintre faptele cunoscute. Motoarele de
inferenŃă reprezintă elementele efective de prelucrare, ce pornesc de la fapte ca date de
intrare (baza de fapte) şi prin construirea de raŃionamente pe baza regulilor, conduc la
obŃinerea de noi fapte.
Elementele de bază ale programării logice, ale sistemelor de inteligenŃă artificială
şi ale limbajului Prolog vor fi detaliate la cursul de Sisteme expert de gestiune care se
studiază în anii următori la specializarea „Contabilitate şi informatică de gestiune”. În
lucrarea de faŃă se prezintă numai câteva noŃiuni introductive în scopul întregirii imaginii
de ansamblu asupra generaŃiilor de baze de date, sisteme de gestiune şi tehnologii de
stocare şi prelucrare asociate acestora.
Fundamentarea matematică a bazelor de date deductive este bazată pe universul
Herbrand, adică setul de simboluri de tip constantă din limbajul L, limbaj care nu conŃine
simboluri funcŃie, dar conŃine cel puŃin simboluri predicative. Simbolul predicativ este
specific predicatelor (predicates) ca elemente de bază în procesarea datelor prin

1
programarea logică şi care reprezintă relaŃiile din expresiile cu fapte. Baza Herbrand
cuprinde ansamblul faptelor posibile despre baza de date şi se constituie într-un sistem
închis.
Bazele de date deductive utilizează, în principal, logica propoziŃiilor de ordinul I,
adică acel limbaj formal ce conŃine un alfabet, reguli de sintaxă, axiome şi o regulă de
deducŃie de tipul când (when)...dacă (if)... atunci (then) ... Este de menŃionat diferenŃa
esenŃială dintre regulile de producŃie specifice sistemelor expert (premisă sau
condiŃie→concluzie) şi regulile specifice sistemelor de gestiune a bazelor de date active
(eveniment→condiŃie →acŃiune).
Bazele de date deductive prezintă două componente: componenta asociată
modulului relaŃional (SGBDR pentru baza de fapte) şi componenta asociată modulului
programării logice (pentru realizarea interogărilor). Cuplarea dintre SGBDR şi modulul
programării logice (sistemul de raŃionamente) poate să fie cuplare slabă (realizată numai
în anumite momente de timp) sau cuplare strânsă (interacŃiune continuă, permanentă).
Prin integrarea completă a instrumentelor de realizare automată a raŃionamentelor în
cadrul SGBDR se obŃine un sistem de gestiune a bazelor de date deductive cu limbaj de
descriere a datelor, limbaj de manipulare a datelor şi limbaj de reguli. Pe baza limbajului
Prolog şi a unei interfeŃe specializate în lucrul cu baze de date, s-a realizat limbajul
Datalog. Limbajul Datalog este un limbaj declarativ orientat pe programarea logică
acceptat la limbaj standard destinat bazelor de date deductive. Un program realizat în
limbajul Datalog este o secvenŃă cu definiŃii de proprietăŃi. Sintaxa limbajului nu conŃine
predicate speciale şi utilizează logica propoziŃiilor de ordinul I, fără simboluri de funcŃie.
Bazele de date deductive sunt în curs de cercetare şi de punere la punct a unor
soluŃii practice în strânsă legătură cu dezvoltările din domeniul inteligenŃei artificiale.

13.2 Bazele de date multidimensionale

Bazele de date multidimensionale (MDB, Multidimensional DataBase) reprezintă


un ansamblu de date, constituite prin extracŃie sau transformare de date, având ca surse
bazele de date (fişierele) interne sau externe dintr-o organizaŃie, date ce variază în timp,
sunt organizate multidimensional şi sunt exploatate prin intermediul interogărilor
convenŃionale sau prin tehnici de analiză simplă (OLAP) sau prin tehnici de analiză în
tehnologii avansate (Data Mining).
Sursele de date interne sunt bazele de date operaŃionale din organizaŃie, adică
acele baze de date specifice domeniilor de gestiune ale organizaŃiei (producŃie-servicii,
comercial-marketing, cercetare-dezvoltare, financiar-contabil, resurse umane) ce
stochează datele ce se referă la tranzacŃiile (evenimentele) specifice domeniului de
gestiune considerat.
Sursele de date externe sunt reprezentate de datele provenite de la alte organizaŃii
de coordonare sau de sinteză.
Prelucrarea datelor din bazele de date operaŃionale se realizează potrivit
conceptului de prelucrare interactivă (online) a tranzacŃiilor, OLTP (On-Line
Transaction Processing) ce reliefează caracteristicile acestor prelucrări: volum limitat de
date accesate, previzibilitatea interogărilor realizate de utilizatorii finali, număr mic de

2
intrări/ieşiri asociat fiecărei tranzacŃii, prezenŃă sporadică şi slabă a elementelor de
analiză.
Bazele de date multidimensionale servesc pentru obŃinerea de noi informaŃii sau
pentru deducerea de noi cunoştinŃe prin interogare cu ajutorul limbajului SQL, prin
prelucrare analitică online (analiză simplă) – OLAP (OnLine Analytical Processing) sau
prin tehnologia de rafinare inteligentă (avansată) a datelor – Data Mining.
În tabelul 13.1 este prezentată, o comparaŃie între bazele de date operaŃionale şi
bazele de date multidimensionale.

Tabelul 13.1 ComparaŃie între bazele de date operaŃionale şi bazele de date


multidimensionale

Nr. Caracteristica de Bazele de date Bazele de date


crt comparaŃie operaŃionale multidimensionale
1. DestinaŃia Gestiunea curentă a Componentă a sistemelor
principală tranzacŃiilor informatice pentru asistarea
deciziilor
2. Structurarea Pe procese funcŃionale Pe subiecte ale
datelor managementului
3. Modele utilizate RelaŃional, normalizate Stea, fulg de nea, puŃin
normalizate
4. Date Actuale Temporale sau istorice
5. Agregarea datelor Nu Da
6. Actualizare Imediată În momente diferite
7. Grad de Foarte scăzut Foarte ridicat
consolidare
8. PercepŃie Tabele detaliate Multidimensională, rezumată
9. Număr utilizatori Mare Mic
10. Accesare Citire şi screre Numai citire
11. Mărime Sute MB – zeci GB Zeci GB – zeci TB
12. Număr de Mic Mare
înregistrări

Depozite de date
La nivelul de management de exploatare, datele sunt stocate în baze de date şi
sunt gestionate cu SGBD-uri, prin prelucrarea tranzacŃiilor online, OLTP. Extragerea
datelor relevante şi obŃinerea informaŃiilor consolidate ale organizaŃiei, necesare
nivelurilor superioare de management (de nivel mediu şi strategic) se efectuează prin
prelucrarea analitică online, OLAP. Se obŃin, la acest nivel depozitele de date (Data
Warehouse) ce sunt un produs al mediului organizaŃional (sistem informatic integrat) şi al
tehnologiilor informaŃiilor şi ale comunicaŃiilor (IT&C) cele mai avansate. Depozitele de
date conŃin volume mari de date (terabytes) ce servesc ca date de intrare pentru cele mai
sofisticate tehnici şi tehnologii de analiză şi sinteză. Depozitele de date sunt organizate
separat de bazele de date operaŃionale ale organizaŃiei. Aceste baze de date operaŃionale
asigură datele pentru depozite de date, după ce sunt mai întâi extrase, curăŃate,

3
transformate şi stocate. Depozitele de date servesc pentru implementarea fizică a unor
modele de date pentru asistarea deciziilor de importanŃă strategică pentru organizaŃie.
Caracteristicile fundamentale ale depozitelor de date sunt : orientarea pe subiecte,
integrarea, caracterul istoric şi persistenŃa datelor. Orientarea pe subiecte semnifică
faptul că un depozit de date este focalizat pe modelarea şi analiza datelor pentru asistarea
deciziilor. Integrarea presupune utilizarea, pentru construirea unui depozit de date, a mai
multor surse de date heterogene (fişiere de date, baze de date relaŃionale, înregistrări
referitoare la tranzacŃiile online, surse de date externe organizaŃiei etc.). Caracterul
istoric al depozitelor de date este dat de durata de stocare şi folosire a datelor din
depozitele de date (de regulă, de la începutul stocării electronice a datelor din
organizaŃie). PersistenŃa datelor din depozitele de date se referă la caracterul permanent
de stocare, cu atributul de « citeşte-numai » (read-only).
Un sistem informatic de asistare a deciziei, DSS (Decision Support System) asistă
luarea deciziei de management prin combinarea datelor, a modelelor şi instrumentelor
analitice sofisticate şi a softului într-un singur sistem informatic puternic bazat pe
depozite de date care poate sprijini luarea deciziilor structurate şi semistructurate.
Produsele informatice Microsoft SQL Server 7.0 sau 2000 conŃin instrumentul
destinat serviciilor de analiză a datelor din depozitele de date, Analysis Services, denumit
OLAP Services. În acest scop se utilizează conceptul de exploatare a datelor din
depozitele de date, Microsoft Repository, prin folosirea metadatelor (Microsoft MetaData
Services).
Datele provenite din operaŃiunile curente ale organizaŃiei (OLTP) sau din
sistemele moştenite sunt stocate în baze de date şi sunt manipulate, aşa cum s-a prezentat
în lucrarea de faŃă, cu ajutorul sistemelor de gestiune a bazelor de date (SGBD). Periodic,
aceste date sunt extrase şi asamblate în cadrul nivelurilor superioare de management ale
organizaŃiei economice sub forma depozitelor de date (Data Warehouse), servind astfel
pentru analiza şi extragerea informaŃiilor utile nivelurilor de management mediu şi
strategic. Datele sunt depozitate pe categorii de interes şi sunt corelate în timp (perioade
mari de timp) pentru a putea fi folosite pentru analiză şi interogare online. Elementele
depozitelor de date sunt tabelele de fapte, dimensiunile şi nivelurile de centralizare.
Dimensiunile depozitelor de date sunt imense (zeci şi sute de TB, terabaiŃi). Tabelul de
fapte este elementul constitutiv al depozitului de date ce constă în date şi informaŃii
(fapte) referitoare la obiectul de activitate al companiei, produsele/serviciile oferite şi
vândute/realizate, costurile de producŃie, preŃurile practicate, detalii privind livrarea
acestor produse/asigurarea serviciilor către beneficiari, date despre furnizori, colaboratori
şi beneficiari/clienŃi, performanŃele personalului companiei etc. Tabelul de dimensiuni
depozitează date şi informaŃii pe baza conceptului de dimensiune (aceasta poate
reprezenta entităŃile de măsurare a timpului – ora, ziua, săptămâna, luna, trimestrul,
semestrul, anul, cincinalul, deceniul, secolul -, entităŃile geografice – (localitatea, statul,
regiunea, continentul -, entităŃile de producŃie - categorie, denumire, cod, tip, calitate,
cantitate vândută, preŃ unitar etc. Nivelurile de centralizare servesc pentru creşterea
vitezei de răspuns la analiza şi interogarea depozitelor de date prin structurarea datelor în
funcŃie de diverse criterii – timp, categorii de produse, zonă geografică, categorii de
clienŃi etc.

4
13.3 Bazele de date multimedia

Multimedia reprezintă, în sens larg, ansamblul mijloacelor (mediilor) de


comunicare prin intermediul cărora se realizează o percepŃie vizuală şi auditivă, sub
diverse forme, a informaŃiilor destinate unui utilizator anume. Principalul avantaj oferit
de multimedia este dat de accesul rapid şi facil la cunoaştere şi infomare. Suportul
esenŃial al dezvoltării multimediei este dat de progresele IT&C. Ca urmare, în acest
context al informaticii şi ştiinŃei calculatoarelor, multimedia poate fi definită ca o
combinaŃie interactivă a mai multor tipuri de date: sunete, grafică, animaŃie şi secvenŃe
video. În DicŃionarul de calculatoare Microsoft se precizează că multimedia reprezintă
un subset al hipermediei în care elementele specifice multimediei sunt integrate cu
hipertextul. Hipertextul este un text legat sub forma unei reŃele complexe de asociaŃii, în
care parcurgerea are caracter nesecvenŃial (detaliile au fost date la cursul de Informatică
de gestiune – baze, când au fost studiate elemente ale limbajului HTML). Există mai
multe standarde hipermedia: HTML (HyperText Markup Language) şi variantele sale
ulterioare, MHEG (Multimedia Hypermedia Expert Group), HyTime, Dexter
Hypermedia, ODA, Acrobat PDF(Portable Document Format) etc.
Bazele de date multimedia, MMDB (Multimedia DataBases) sunt destinate
stocării datelor multimedia (prin extensie, datelor hipermedia). Structurile de stocare sunt
eficiente şi sunt realizate după arbori speciali (de exemplu, Quadtree, Rtree sau
combinaŃii ale acestora). Bazele de date multimedia sunt baze de date foarte mari
deoarece stocarea datelor video şi audio necesită spaŃii de memorie imense. Pe cale de
consecinŃă, interogarea acestor baze de date cere timp destul de mare. De aceea,
regăsirea datelor multimedia presupune aplicarea unor metode specifice. Datele
multimedia sunt date dinamice şi baza de date multimedia este o bază de date activă.
Bazele de date multimedia sunt şi baze de date reactive, în sensul că există posibilitatea
de modificare a stării mediului ca urmare a producerii unor evenimente externe: o
secvenŃă video sau o piesă muzicală pot fi modificate, inclusiv prin alterarea conŃinutului
acestora. Pentru datele multimedia lipseşte modelul abstract de date (specific tipurilor de
date alfanumerice).
Datele multimedia sunt structurate pe obiecte complexe, compuse din date de
tipuri elementare. De exemplu, o aplicaŃie de prezentare şi reclamă bancară poate fi
formată din desene animate, sunet corespunzător imaginilor şi secvenŃe de film din
activitatea de front-office la una dintre sucursalele băncii. Obiecte complexe utilizate în
realizarea spotului publicitar pot fi regăsite şi la monitoarele ATM-urilor băncii atunci
când clientul efectuează o operaŃiune de scoatere a numerarului din contul propriu.
În aplicaŃiile cu baze de date multimedia, accesul la date reprezintă, în realitate,
interacŃiunea dintre utilizator şi date, la nivel de obiect şi la nivel de mediu de
comunicare.
Bazele de date multimedia sunt astfel organizate după modelul orientat pe obiecte,
pe mai multe niveluri: structura funcŃională sau tehnologică, structura relaŃională,
structura de interogare sau dinamică şi structura de prezentare sau de sistem. În cazul
structurii funcŃionale sau tehnologice a bazelor de date multimedia, sunt evidenŃiate
funcŃiile de generare, achiziŃie, compresie, stocare, manipulare etc. a datelor multimedia
ce sunt, ulterior, integrate cu datele de tipuri clasice. În ceea ce priveşte structura
relaŃională, datele multimedia provenite din surse diferite, heterogene (audio, video,

5
animaŃie, imagini vectoriale, imagini raster, texte ASCII, date formatate) sunt corelate
static în conformitate cu modelul orientat pe obiecte. În cazul structurii de interogare sau
dinamică, metodele de regăsire a datelor multimedia se utilizează în funcŃie de tipul
datelor şi modul de interacŃiune a utilizatorului cu baza de date multimedia. În sfârşit,
structura de prezentare sau de sistem se referă la independenŃa bazei de date faŃă de
platforma de lucru a utilizatorului, la mecanismele de acces concurent la baza de date, la
modul de obŃinere a interfeŃelor grafice destinate utilizatorului, la scurtarea timpului de
regăsire a datelor multimedia şi la apropierea acestuia de cel al aplicaŃiilor în timp real
(run-time).
Sistemele de gestiune a bazelor de date multimedia se fundamentează pe
abordarea incrementală ce are la bază modele intermediare de date asociate datelor
grafice. Imaginile sunt interpretate ca tranziŃie de stări pe baza nivelelor de recunoaştere a
stărilor obiectelor dintr-o imagine anume (scenă). Când tranziŃia încetează se obŃine
momentul de definire şi stocare a unui model abstract al imaginii, cu cuvinte-cheie
asociate. Există limbaje de descriere a imaginilor video de tipul scenelor prin care
fiecărui segment grafic din compunerea unei scene i se asociază atribute (culoare, poziŃie,
direcŃie de deplasare, efecte speciale).
SGBD multimedia sunt caracterizate de următoarele particularităŃi: datele
multimedia sunt complexe, în volume mari şi de tipuri variate; obiectele multimedia sunt
mari, BLOB (Binary Large Objects); gestionarea datelor multimedia implică operaŃiuni
complexe de sincronizare şi de distribuire în timp şi spaŃiu a datelor multimedia de tipuri
diferite; suportul tehnic (adică gama de periferice ale sistemului informatic în a cărui
compunere intră bazele de date multimedia şi SGBD asociat) este diversificat.
Se pot da ca exemple de SGBD multimedia :
• SGBD multimedia orientat obiect, STORM (Structural and Temporal Object
Oriented Multimedia) ce integrează operatori structurali (tuple, set, list) cu relaŃii
temporale (equal, after, before);
• Modelul orientat obiect, MOAP (Multimedia Object and Application Model), ce
reprezintă obiectele multimedia sub forma unei ierarhii de clase orientate obiect, iar
aplicaŃiile multimedia interactive sunt obŃinute pe baza scenariilor bazate pe aplicaŃii şi
evenimente sistem, cu obiecte definite temporal şi spaŃial.
SGBD multimedia realizează stocarea şi transmiterea pe canalele de comunicaŃii a
datelor multimedia sub formă comprimată. Există tehnici de compresie avansate care
realizează comprimarea datelor multimedia cu rate de compresie situate între 10:1 şi 50:1
pentru imagini, respectiv 2000:1 pentru semnal video. Compresia datelor multimedia se
execută după standarde ca JPEG (Joint Photographic Expert Group) – rata de compresie
15:1, MPEG (Moving Pictures Expert Group) – rata de compresie a imaginilor în mişcare
200:1, iar a semnalului audio 10:1.
Crearea bazelor de date multimedia se realizează cu soft specializat (cu funcŃii de
stocare şi de consultare). De exemplu, Multimedia Toolbox, ce aparŃine firmei Asymetrix,
este un instrument de realizat cărŃi multimedia, orientat pe programare vizuală, sub
sistemul de operare Microsoft Windows. Limbajul de programare de tip script încorporat
în Multimedia Toolbox se numeşte OpenScript şi serveşte pentru descrierea scenariului
aplicaŃiei.
Datele multimedia sunt afişate şi transmise sub formă de fluxuri (stream-uri)
continue în timp.

6
Bazele de date multimedia se folosesc cu precădere în descrierea şi prezentarea
produselor (un magazin virtual pe Internet - mall electronic – utilizează în mod
obligatoriu baze de date multimedia cu imaginile produselor ce se oferă spre vânzare), în
administraŃia electronică, e-government (descrierea formularelor de contabilitate, a
formularelor de înregistrare a plăŃii impozitelor şi taxelor, a documentelor specifice
obŃinerii permisului auto, în activitatea de instruire şi educaŃie (tutori inteligenŃi,
enciclopedii multimedia educaŃionale), în activitatea de documentare (documente
hipertext) etc.
13.4 Bazele de date relaŃionale orientate obiect
Prin extinderea facilităŃilor oferite de bazele de date relaŃionale cu includerea
structurilor de date complexe de natura obiectelor, s-au obŃinut baze de date relaŃionale
orientate obiect. SGBD-ul asociat bazelor de date relaŃionale orientate obiect,
OORDBMS (Object-Oriented Relational DataBases Management System), include
elemente din SGBD relaŃional (RDBMS) şi din SGBD orientat pe obiecte (OODBMS).
Conceptul de domeniu din teoria bazelor de date relaŃionale este echivalent cu
conceptul de clasă de obiecte din teoria bazelor de date orientate pe obiecte. Se consideră
însă erori ca să se echivaleze variabila de relaŃie din lumea relaŃională cu clasa de
obiecte din lumea obiectelor şi să se amestece relaŃiile cu pointerii prin care se afectează
integritatea conceptuală a modelului relaŃional. Se reaminteşte aici că pointerii sunt
variabile ce conŃin adrese pentru itemi de date (itemii de date pot fi cuvinte, serii de
numere sau înregistrări din fişiere) sau pentru instrucŃiuni. Revenind la una dintre ideile
de bază prezentate mai sus, pe cale de consecinŃă, tabelele nu pot fi egalate cu clasele.
Stonebraker a realizat o matrice de clasificare a SGBD (fig.13.1) care ajută la o
mai bună înŃelegere a interacŃiunilor dintre cele două modele pentru baze de date
(relaŃional şi orientat pe obiecte). Exemplele tipice asociate celor patru cuadranŃi
(sferturi) ai matricei Stonebraker sunt:
• pentru cuadrantul 1 – procesorul de texte clasic;
• pentru cuadrantul 2 – aplicaŃiile economice (din domeniul afacerilor);
• pentru cuadrantul 3 – aplicaŃiile de proiectare asistată de calculator, CAD (Computer
Aided Design);
• pentru cuadrantul 4 – aplicaŃiile cu baze de date multimedia.

2. AplicaŃii pentru 4. AplicaŃii pentru


date simple cu cerinŃe date complexe cu
INTEROGARE de interogări ad-hoc cerinŃe de interogări
PREZENTĂ ad-hoc
1. AplicaŃii pentru 3. AplicaŃii pentru
INTEROGARE date simple fără date complexe fără
ABSENTĂ cerinŃe de interogări cerinŃe de interogări
ad-hoc ad-hoc

DATE SIMPLE DATE COMPLEXE

Fig.13.1 Matricea de clasificare a SGBD (matricea lui Stonebraker)

7
Interogarea ad-hoc a unei baze de date semnifică, în acest caz, interogarea imediată
efectuată asupra bazei de date.
Dacă se ia, ca exemplu, o bază de date ce conŃine produsele unei firme de
aparatură electronică şi se adaugă la această bază de date imagini cu produsele respective,
se pune problema determinării acelor produse electronice care satisfac o anumită
caracteristică de design (aspect exterior). Este necesară prelucrarea imaginilor produselor
electronice (ca obiecte) pentru a obŃine răspunsul la problema ridicată. Caracteristicile
dorite la selecŃie se descriu printr-o metodă ataşată obiectului.
Se pot crea tabele prin intermediul caracteristicii de moştenire (inheritance)
specifică obiectelor. Crearea unor funcŃii la nivel de înregistrare, la nivel de tabel şi chiar
la nivel de bază de date sunt căi de soluŃionare a problemelor practice care depăşesc
cadrul bazelor de date relaŃionale, conducând la ideea de bază de date relaŃională
orientată obiect.
Bazele de date relaŃionale orientate obiect asigură utilizarea la interogare a
metodelor obiectelor diverse şi a unor noi operatori pentru obiecte, precum şi
posibilitatea definirii propriilor metode pentru obiectele folosite din partea utilizatorului
final.
Date C.J. demonstrează că un sistem obiect-relaŃional prezintă mai multe
caracteristici, dintre care se menŃionează:
• cerinŃa de interogare ad-hoc, cu definirea vederilor (view-urilor) şi constrângeri de
integritate declarative;
• definirea dinamică a claselor pentru rezultatele interogărilor ad-hoc;
• metode ce includ mai multe clase;
• posibilitatea accesului dual – interactiv şi programat – la baza de date;
• existenŃa regulilor pentru chei externe sau străine etc.
În cazul ultimelor versiuni ale SGBD Oracle, a fost implementat modelul obiectural-
relaŃional de date.
Lista subiectelor pentru pregătirea în vederea evaluării finale:
Întrebări:
1. Ce sunt bazele de date deductive?
2. Ce sunt bazele de date multidimensionale ?
3. Ce sunt depozite de date ?
4. Ce sunt bazele de date multimedia ?

You might also like