Sunteți pe pagina 1din 10

Introducere

Informaţiile din lumea ce ne înconjoară sunt structurate în diverse moduri. Adesea structura
o impunem sau o inventăm chiar noi în procesul de memorare, în încercarea de a transforma
informaţiile cu care suntem bombardaţi în cunoştinţe. Sistemul de structurare a datelor care
intervine cel mai frecvent este tabelul, iar în cazul volumelor mari vorbim despre baze de date.
Procesul de instruire în societatea noastră tot mai informatizată, în aşa numita Societate
Informaţională, impune tot mai mult structurarea cunoştinţelor acumulate, capacitatea de a le
organiza, clasifica, regăsi şi mai ales completa. Vorbim despre managementul cunoştinţelor, un
capitol important atât al ontologiei, cât şi al informaticii. Putem spune că disciplina "Baze de
Date" se ocupă cu câteva din mecanismele de gestiune a informaţiilor şi a cunoştinţelor.
Informaţiile şi cunoştinţele au o mare importanţă, atât pentru dezvoltarea personalităţii umane,
cât şi pentru evoluţia vieţii şi societăţii. Nici societatea şi nici indivizii ei nu pot progresa
satisfăcător în lipsă de informaţii. Prin intermediul informaţiilor se asigură transferul
cunoştinţelor de la o generaţie la alta, se asigură accesul la cele mai avansate realizări ale
omenirii.
Conceptul de informaţie reprezintă o noţiune de maximă generalitate care semnifică
o comunicare, o veste, o ştire, un mesaj, un semnal etc. despre evenimente, fapte, stări,
obiecte, despre forme de manifestare a realităţii care ne inconjoară. Informaţia reprezintă
cantitatea de noutate adusă de un mesaj din lumea reală.
Procesul de sesizare, înţelegere şi însuşire a informaţiilor dintr-un anumit domeniu
reprezintă un proces de informare. Informaţiile dobândite în urma unui proces de informare
într-un anumit domeniu formează cunoştinţele despre acel domeniu, iar mulţimea acestora
reprezintă baza de cunoştinţe.
Cunoştinţele reprezintă deci o însumare a tuturor informaţiilor dobândite într-un
anumit domeniu, sau care se referă la un anumit obiect. Atunci când informaţia este gestionată cu
ajutorul tehnicii de calcul, ea devine data. Data este forma de reprezentare accesibilă a
informaţiei prelucrate. Organizarea datelor în vederea prelucrării lor cu calculatorul este o
activitate tot atât de importantă ca şi cea de realizare a programelor. Datele şi programele se
găsesc într-o strânsă corelaţie. Un program, oricât de complex ar fi, nu va furniza rezultate
satisfăcătoare dacă structura datelor cu care lucrează nu este bine gândită. Invers, o structură de
date bine pusă la punct nu va fi suficientă, dacă programul care o prelucrează nu este corect
conceput şi realizat. Limitele organizării datelor în fişiere şi posibilităţile oferite de noile
tehnologii informaţionale au dus la promovarea metodei de organizare a datelor în baze de date.
Ideea a fost de a colecta toate datele, a le organiza într-un mod convenabil (specific realităţii pe
care acele date le modelează) şi a proiecta programe care să consulte şi să actualizeze
această colecţie de date. Prin urmare, o bază de date se defineşte ca fiind un ansamblu de date
elementare sau structurate, accesibile unei comunităţi de utilizatori.
Obiective fundamentale ale unei baze de date:
• Centralizarea datelor. Permite controlul centralizat al datelor şi eliminarea repetărilor
(numite redundanţe). O eliminare totală a redundanţelor nu este posibilă, dar controlul
asupra lor duce la o utilizare eficientă a spaţiului de memorie externă.
• Independenţa între date şi prelucrări. Baza de date, fiind un model al unei realităţi,
se schimbă mereu (de exemplu, într-o bancă au loc: numeroase tranzacţii financiare, schimbări
de personal, schimbări de parteneri de afaceri etc.). Acest lucru nu trebuiesă afecteze programele
de prelucrare a datelor şi invers, dacă este necesară operarea de schimbări în anumite programe,
datele nu trebuie să fie afectate.
• Realizarea de legături între date. Datele ce reprezintă modelul unui sistem nu sunt
disparate, între ele există legături logice. Aceste legături vor fi surprinse în baza de date.
• Integritatea datelor. Asigură fiabilitatea şi coerenţa bazei de date.
• Securitatea datelor. Baza de date trebuie să fie protejată împotriva distrugerilor
logice (greşeli la actualizare) şi/sau fizice (deteriorări ale suporţilor fizici, pierderi de
date datorate unor accidente naturale (calamităţi, incendii etc.).
• Confidenţialitatea datelor. Se referă la caracterul secret al datelor, ce pot fi accesate
doar de către cei autorizaţi.
• Partajarea datelor. Permite deservirea utilizatorilor care accesează simultan aceleaşi
date din bază.
În numeroase situaţii bazele de date sunt dispersate geografic – se spune că sunt
distribuite (BDD). O bază de date distribuită permite ca o colecţie arbitrară de relaţii, dintr-o
colecţie arbitrară de baze de date , aflate pe o mare varietate de maşini ce lucrează sub
diverse sisteme de operare şi sunt legate prin diferite reţele de comunicaţie, să poată fi utilizate
ca şi cum ar fi o singură bază de date pe o singură maşină. Principalele cerinţe pe care trebuie să
le asigure un sistem de baze distribuite sunt: autonomia locală în organizarea şi prelucrarea
datelor, posibilitatea de lucru continuu al nodurilor, independent de schimbările în configuraţiile
de lucru (adăugări sau eliminări de noduri), independenţa localizării şi fragmentării datelor
(transparenţa fizică), posibilităţi de replicare (copiere) şi independenţa copiilor, prelucrarea
distribuită a cererilor, administrarea distribuită a tranzacţiilor, independenţa de hardware, de
sistem de operare, de reţea şi de SGBD.
Conceptul de baze de date distribuite

O bază de date, uneori numită și bancă de date (abreviat BD), reprezintă o modalitate de
stocare a unor informații și date pe un suport extern (un dispozitiv de stocare), cu posibilitatea
extinderii ușoare și a regăsirii rapide a acestora.
De obicei o bază de date este memorată într-unul sau mai multe fișiere. Bazele de date sunt
manipulate cu ajutorul sistemelor de gestiune a bazelor de date.

O bază de date distribuită (BDD) este o colecţie de date interconectate logic, care sunt fizic
distribuite pe staţii (site-uri) într-o reţea. Fiecare staţie din reţea are autonomie de procesare a
aplicaţiilor locale, aplicaţii care sunt executate în întregime pe acea staţie. De asemenea, fiecare
staţie participă la faza de execuţie a cel puţin unei aplicaţii globale, care necesită accesarea
datelor de la mai multe staţii.
Principalele cerinţe pe care trebuie să le asigure un sistem de baze distribuite sunt:
autonomia locală în organizarea şi prelucrarea datelor, posibilitatea de lucru continuu al
nodurilor, independent de schimbările în configuraţiile de lucru (adăugări sau eliminări de
noduri), independenţa localizării şi fragmentării datelor (transparenţa fizică), posibilităţi de
replicare (copiere) şi independenţa copiilor, prelucrarea distribuită a cererilor, administrarea
distribuită a tranzacţiilor, independenţa de hardware, de sistem de operare, de reţea şi de
SGBD.
Un sistem de gestiune a bazelor de date distribuite (SGBDD) este un sistem de programe
care permite gestionarea bazei de date distribuite, permiţând utilizatorilor accesul transparent la
informaţii dispersate în întreaga reţea.
Spre deosebire de SGBD centralizate unde există o arhitectură general acceptată, încazul
SGBDD din cauza diversităţii este dificil de prezentat o astfel de arhitectură.
Una dintre cele mai cunoscute arhitecturi pentru SGBDD este arhitectura ANSISPARC
(American National Standards Institute - Standards Planning And Requirements Committee) -
fiind un standard de proiectare abstract pentru un SGBDD. Cele mai multe SGBD-uri comerciale
moderne sunt bazate pe acest sistem. Această arhitectură multinivel, reprezentată în figura1,
realizează obiectivul transparenţei distribuţiei.
Schema Globală

Schema Fragmentării

Schema de alocare

Schema locală 1 Schema locală 2 Schema locală N

SGBD local 1 SGBD local 2 SGBD local N

BD 1 BD 2 BD N

Figura1. Arhitectura ANSISPARC al SGBDD

Pentru a defini o arhitectură pentru un sistem de gestiune a bazei de date distribuite este
necesar mai intîi să identificăm principalele funcții ce trebuie îndeplinite de acesta. Noile
funcționalități se bazează pe funcționalitățile sistemelor de baze de date centralizate și cel puțin
la nivel local fiecare componentă trebuie să asigure funcționalitățile sistemelor centralizate.
Dintre funcționalitățile suplimentare amintesc:

 Să se comporte pe ansamblu în același mod în care se comportă un SGBD centralizat;


 Să ofere acces la nodurile din rețea și să permită transfer de date, controlat și minimal
pentru realizarea interogărilor;
 Să poata gestiona un dicționar de date extins care să conțină detalii legate de modul de
distribuire a datelor;
 Să permită și să ofere servicii pentru procesarea distribuită a interogarilor;
 Să asigure controlul concurenței în scopul menținerii unui grad cît mai ridicat al
consistenței datelor;
 Sa ofere servicii de refacere (recovery) peste toate nodurile care să resincronizeze
intreaga bază de date dupa defectări ale nodurilor sau pierderea comunicației.
In această arhitectură de SGBDD există un singur nod pe nivelul global și mai multe noduri
pe nivelul local. În totalitate, sistemul distribuit tratează o schemă globală, referitoare la toate
datele distribuite în rețea, și are în vedere mai multe scheme locale, referitoare la datele de la
fiecare locație. Fiecare dintre niveluri are componente bine precizate. Nivelul global are rolul de
a asigura o tratare de ansamblu a bazei de date distribuite. Aici sunt integrate unitar toate datele
din bazele de date locale. Integrarea se realizează cu ajutorul celor trei tipuri de scheme care sunt
implementate la nivelul global: schema globală, schema de fragmentare și schema de alocare.
 Schema globală definește și descrie toate informațiile din baza de date distribuită. Pentru
descriere se folosește unul din modelele de date fundamentale utilizate în bazele de date:
arborescent, rețea, relational, orientat pe obiecte. In sens general, vom spune că schema
globală descrie un set de colecții globale și legăturile dintre ele. Dacă considerăm că
SGBD-ul distribuit implementează modelul relațional, atunci schema globală descrie un
set de tabele numite globale și legăturile dintre ele. Fiecare dintre tabelele globale este
împărțită logic în fragmente. Fragmentele sunt părți disjuncte ale unei tabele globale, un
fragment nu poate proveni din mai multe tabele.
 Schema de fragmentare descrie legăturile dintre colecția globală și fragmentele sale. Ea
este de tipul unu la mai mulți și are forma unei ierarhii. Scopul fragmentării logice a
colecțiilor globale este de a se putea face o alocare fizică corespunzatoare a datelor ce
sunt gestionate de nodurile sistemului distribuit. De exemplu, fragmentele unei tabele pot
fi toate alocate pe un singur calculator sau fiecare pe un alt calculator din arhitectură. În
acest fel, o tabela globală poate fi alocată fizic pe mai multe calculatoare, deci va fi
distribuită în rețea.
 Schema de alocare descrie modul de distribuire a fragmentelor pe stațiile din rețea. În
acest mod fiecare segment va avea o alocare fizica pe una sau mai multe stații. Rezultă că
schema de alocare introduce o redundanță controlată: un anumit segment se poate regăsi
fizic pe mai multe calculatoare. Pe de altă parte, pe un calculator pot exista fragmente din
mai multe tabele globale. In aceste conditii, schema de alocare este de tipul multi la mai
multi avand o forma de retea.
Fig. 2. Schema de alocare

In exemplul considerat in fig. 2., fragmentul F1 va fi alocat fizic atat pe calculatorul N1 cat și
pe N2, fragmentul F2 pe calculatoarele N1, N2 și Nm și așa mai departe.
Totalitatea fragmentelor dintr-o anumita tabela globala care sunt alocate pe acelasi calculator
formeaza imaginea fizica a tabelei date, pe calculatorul respectiv. In exemplul de mai sus,
imaginea fizica a tabelei T pe calculatorul N1 este data de fragmentele F1, F2 si F3, iar pe
calculatorul N2 avem o alta imagine data de fragmentele F1 si F2. Localizarea optima a datelor
in nodurile unei retele Sisteme de baze de date distribuite – revine proiectantului si
administratorului bazei de date distribuite. Ei vor construi schema de alocare tinand cont de:
volumul de date necesar a fi utilizat in fiecare nod, performantele calculatoarelor din noduri,
performantele retelei, volumul tranzactiilor din fiecare locatie, tipul tranzactiilor.

Nivelul local al unui SGBD distribuit reuneste toate bazele de date locale distribuite pe
calculatoarele din retea. Fiecare dintre aceste baze de date este tratata ca o baza centralizata cu
ajutorul a trei componente: schema locala, SGBD-ul local si baza de date locala propriu-zisa.

Detaliem rolurile componentelor:

 Schema locala are rolul de a realiza legatura dintre imaginea fizica si datele stocate local
si este dependenta de tipul SGBD-ului local.
 SGBD-ul local implementeaza schema locala si are rolul de a descrie si gestiona datele
stocate pe respectivul nod. La nivelurile locale putem avea situatia in care toate
SGBDurile utilizate sunt de acelasi tip, de la acelasi producator (cazul omogen),
respective autipuri diferite (cazul eterogen).
 Baza de date locala contine datele propriuzise alocate conform imaginilor fizice si este
organizata dupa modelul de date acceptat de SGBD-ul local.
Proiectarea unei baze de date relationale
distribuite.

Pentru proiectarea unei baze de date distribuita avand ca model al datelor modelul
relational se parcurg de regula, in prima faza aceleasi etape ca si pentru o baza de date
centralizata prin care se obtine schema relationala sau modelul relational al bazei de date.
Daca la o baza de date centralizata, schema relationala se particularizeaza functie de SGBD
si se transpune apoi in modelul intern care defineste structura tabelelor bazei de date, la
sistemele distribuite principale problema de proiectare ce trebuie rezolvata consta in luarea
deciziei privind plasarea datelor si a programelor pe nodurile de calcul sau eventual chiar
reproiectarea retelei de calculatoare [Gam]. Un astfel de process presupune decizii privind
SGBD-ul ce ruleaza pe fiecare nod, a datelor ce vor fi stocate pe fiecare nod si a aplicatiilor
care ruleaza baza de date. La acest moment discutam doar despre distributia datelor. Desigur
ca in proiectarea bazei de date distribuite sunt posibile mai multe strategii determinate in
principal de situatia actuala concreta. Daca baza de date este nou proiectata se va porni de la
cerinte si are ca rezultat, de cele mai multe ori un sistem omogen, pe cand daca anumite
componente ale bazei de date exista deja pe un numar de locatii acestea trebuie conectate
pentru a rezolva sarcinile cerute. Partea centrala, specifica pentru baze de date distribuite,
este cea privind proiectarea distributiei, celelalte activitati fiind similare ce cele ale
proiectarii bazelor de date centralizate. Principalui obiectiv pentru proiectarea distributiei
consta in decizia privind modul de alocarea a relatiilor sau a subrelatiilor pe noduri. Doua
aspecte sunt importante si trebuie abordate cu mare atentie:
• Fragmentarea – operatia prin care o relatie este impartita intr-un numar de subrelatii ce
urmeaza a fi distribuite;
• Alocarea – determinarea locului in care un fragment este stocat pentru o distributie
optima si eventual a numarului de copii ale fragmentului pe mai multe noduri. In situatia
in care se decide ca un fragment sa fie stocat intr-un numar de copii pe langa problema
alocarii intervine si problema replicarii.
Fragmentarea
O intrebare obisnuita vrea sa dea un raspuns la intrebarea “Cum este mai rezonabil sa
distribuim o relatie sau un fragment al unei relatii?” Desigur ca raspunsul este greu de
stabilit, intrucat sunt motive intemeiate pentru a distribui relatii si la fel de intemeiate pentru
a distribui fragmente. O analiza este necesara pentru a determina situatiile in care este
avantajoasa distributia relatiei, respectiv a fragmentelor. In cazul in care se distribuie
intreaga relatie sunt posibile urmatoarele
situatii:
 intreaga relatie replicata intr-un numar mare de copii va genera probleme la
actualizarea datelor pentru sincronizarea tuturor replicilor, mai ales in situatia in care
datele se modifica la mai multe locatii;
 Daca relatia nu este replicata, pentru accesul la date de la distanta se va genera
un volum mare al traficului si datele vor fi disponibile cu mare intarziere. Sunt
situatii in care intreaga tabela trebuie transmisa unui alt nod;
 Relatia se pastreaza la un singur nod daca cererile necesita toate datele stocate
in relatie si
datele se stocheaza pe nodul care utilizeaza datele;
 Un principiu universal valabil arata ca este mult mai usor sa distribuim programe
in sensul ca datele sa se gaseasca in acelasi loc cu programele decat sa
transportam date. Descompunerea relatiilor in fragmente si distribuirea
fragmentelor este rezonabila daca:
 Aplicatiile acceseaza usual numai anumite subseturi de date ale relatiei;
 Descompunerea relatiiilor in fragmente si distributia lor permite executarea de
tranzactii in paralel intrucat fiecare operatie are nevoie de acces la un set deferit
de date din relatie;
 Cererile contin subcereri ce pot fi executate in paralel.
Cu toate aceste avantaje pastrarea integritatii unei relatii descompuse in fragmente si
distribuite intre mai multe noduri este greu de asigurat. Din cele analizate rezulta ca atat
fragmentele cat si relatiile sunt unitati corespunzatoare pentru distributie, insa decizia
privind distributia trebuie foarte bine analizata. Fragmentarea bazei de date asigura
suplimentar o serie de alte avantaje cum sunt: cresterea fiabilitatii, cresterea performantelor,
scaderea costurilor de comunicatie, cresterea securitatii prin politici de securitate diferite la
noduri, utilizarea eficienta a capacitatii de stocare. Alte criterii ce trebuie luate in
consideratie la decizia de fragmentare constau in analizarea locului in care o cerere se
executa, ce seturi de date necesita, care este fvrecventa de executie a unor cereri specifice,
modul in care datele sunt accesate: read sau write.Se cunosc mai multe tipuri de
fragmentare, indiferent de modul in care fragmentarea este efectuata trebuie sa existe o
succesiune de operatii prin care relatia fragmentata sa poate fi refacuta.
Fragmentarea poate fi:
 Orizontala– atunci cand n-uplurile relatiei sunt segmentate in mai multe
fragmentefiecare dintre acestea avand aceleasi attribute cu cele ale relatiei
originale. In aceastasituatie sunt puse intr-un fragment n-uplurile care indeplinesc
o anumita conditie,respectiv celelalte in alt fragment. Din punctul de vedere al
reconstructiei o simplaoperatie UNION reface relatia initiala. In principal,
fragmentarea orizontala decupeaza otabela pe orizontala pastrand in fiecre
fragment inregistrarile satisfacand o anumitaconditie ce defineste setul de
inregistrari. Fragmentarea orizontala nu afecteaza redundanta in sensul ca
fragmentele pot sa contina date distincte si nu sunt pastrate aceleasi n-upluri in
mai multe fragmente. Pentru descompunerea unei relatii in fragmente se executa
operatii similar cu operatiaSELECT din algebra relationala. Daca o relatie R a fost
fragmentata orizontal in fragmentele R1, R2, R3, putem a recompune relati
initiala prin 𝑅 = 𝑅1 ∪ 𝑅2 ∪ 𝑅3;
 Verticala – partitonarea relatiei dupa atributele sale. Un fragement contine toate
nuplurilerelatiei, insa numai anumite atribute ale acesteia. Pentru refacerea relatiei
initialeeste necesara o operatie de tip join insa pentru realizarea acesteia
fragmentele trebuie sa contina ca informatie redundanta macar atributul cheie al
relatiei initiale. Se observa ca fragmentarea pe verticala necesita un grad mai mare
de redundanta pentru pastrarea in fiecare fragment a atributului cheie. Fie o relatie
R si S1, respectiv S2 doua subseturi de atribute ale lui R, ambele subseturi contin
cel putin un atribut cheie si reuniunea celorlalte atribute contine toate atributele
lui R, prin fragmentarea pe verticala vom obtine fragmentele R1 si R2 astfel: 𝑅1 =
𝑃𝑆1(𝑅) si 𝑅2 = 𝑃𝑆2(𝑅), iar 𝑅 = 𝑅1 ∗ 𝑅2, in care am notat cu * simbolul operatiei
NATURAL JOIN.
 Hibrida – vazuta ca o combinatie intre fragmentarea orizontala si verticala sau
invers. Infunctie de ordinea in care fragmentarea a fost facuta refacerea relatiei
initiale se face fie printr-o operatie JOIN urmata de UNION, fie UNIONurmate de
JOIN.
Avantajele și dezavantajele bazelor de date
distribuite

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