Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica » baze de date
Baze de date distribuite

Baze de date distribuite


Baze de date distribuite

Cuprins

Initiere

De ce distribuite?

Concepte

Exemple de baze de date distribuite

Proiectarea

Procesarea

Prioritati



Principiu fundamental

Douasprezece scopuri

Autonomie locala.

Independenta fata de nodul central

Functionare continua

Independenta de amplasare

Independenta de fragmentatie

Independenta de replicatie

Prelucrarea adresarilor distribuite

Manajarea tranzactiilor distribuite

Independenta de dotarea tehnica

Independenta de sistema de operare

Independenta de retea

Independenta de SGDB

Sisteme client -Server

Concluzii

Consideratii finale

Bibliografie

Initiere

Centralizare si descentralizare: doua tendinte opuse care au marcat alternativ evolutia sistemelor informatice. Bazele de date distribuite reprezinta unul dintre compromisurile cele mai profitabile, pastrind avantajele ambelor abordari.

In 1988 Stonebraker prognoza ca in urmatorii 10 ani bazele de date centralizate vor deveni doar o "curiozitate antica". [Stonebraker, pag. 189].

Chiar daca "era" bazelor de date centralizate nu este оnca terminata - dimpotriva, in ultimii doi ani acestea sunt din nou in voga - interesul de care se bucura bazele de date distribuite, atit in comunitatea stiintifica cit si in cercurile comerciale, demonstreaza importanta acestui subiect pentru perioada actuala.

Spre deosebire de bazele de date centralizate, bazele de date distribuite ofera o noua gama de posibilitati, concepte de abordare si tehnologii, care bineinteles sint necesare dezvoltarii gestionarii bazelor de date.

Odata cu dezvoltarea retelelor, o tendinta vadita este utilizarea unor date in comun, accesul la unele date indepartate, estimarea unor indicatori din analiza mai multor baze de date diferite, separate una de alta, logic si fizic.

Anume acesta este obiectul si destinatia bazelor de date distribuite, baze ale viitorului. In continuare, prezentam o analiza a bazelor de date distribuite.

De ce distribuite?

Exista citeva elemente cheie care au motivat trecerea multor companii de la sistemele centralizate de baze de date la cele distribuite. in primul rind, costurile de comunicatie sunt mai mici in sistemele distribuite, atita timp cit accesul la un computer local este mai ieftin decit accesul la distanta. Pe de alta parte, autonomia locala a reprezentat unul dintre cele mai importante avantaje oferite de sistemele de baze de date distribuite. Conform unui studiu realizat de D'Oliviera in anul 1977, "posibilitatea partitionarii autoritatii si a responsabilitatii in sistemele informationale din management este unul dintre motivele principale care au determinat multe organizatii sa treaca la sisteme informationale distribuite". Si, cum in prezent sistemele informationale din management sunt in general "computerizate", trecere la sisteme informatice distribuite, respectiv la sisteme distribuite de baze de date, a fost fireasca.

Sistemele distribuite de baze de date (DDBS - Distributed Database Systems) ofera sistemelor informationale o serie de alte avantaje: permit managerilor locali libertatea de a manipula informatiile astfel оncit sa rezolve necesitatile departamentului pe care оl conduc, reduc impactul provocat de eventualele caderi ale echipamentului. De asemenea, prin crearea unor baze de date mai mici, la diferite locatii, se asigura prevenirea pierderii datelor.
In luarea deciziei de trecere de la un sistem centralizat de baze de date la un DDBS, firmele trebuie sa analizeze si dezavantajele prezentate de sistemele distribuite. Daca structura firmei si stilul de management sunt centralizate, atunci implementarea unui DDBS nu-si are rostul. Costurile de reciclare a personalului si cele pentru achizitionarea software-ului adecvat pot sa fie atit de ridicate оncit, mai ales pentru firmele mici, modificarea sistemului informatic sa nu fie justificata din punct de vedere economic. De asemenea, DDBS pot ridica atit probleme de sincronizare, de consistenta si integritate a datelor, cit si probleme legate de controlul accesului.

Sistemele distribuite de baze de date au aparut la granita dintre doua domenii aparent opuse din punct de vedere al procesarii datelor: sisteme de baze de date si retele de calculatoare. Bazele de date distribuite se definesc [Ozsu] ca o colectie de baze de date logic interconectate, distribuite peste o retea de calculatoare. Este bine de subliniat faptul ca bazele de date distribuite nu sunt doar o colectie de tabele care pot fi stocate individual in fiecare nod al retelei. Pentru a forma un DDBS, tabelele trebuie sa fie logic interconectate, iar accesul la aceste tabele se face printr-o interfata comuna.

Transformarea unui sistem centralizat de baze de date оntr-un sistem distribuit consta in scindarea bazei de date centralizate in sectiuni corespunzatoare si repartizarea acestor sectiuni in nodurile retelei. Este important ca principiul fundamental al DDBS sa fie respectat: "Utilizatorul trebuie sa vada un sistem distribuit exact ca pe un sistem ne-distribuit". Scindarea bazei de date se realizeaza doar la nivel fizic, la nivel logic ea ramine centralizata.

Software-ul DBMS evolueaza in permanenta. De-a lungul anilor s-a trecut de la bazele de date ierarhice la cele normalizate, de la centralizare la distribuire, fiecare dintre aceste etape implicind concepte suplimentare de descriere, stocare si regasire a datelor. Daca structurile de date pot sa para naturale unui inginer, nu acelasi lucru trebuie prespus si pentru utilizatorul obisnuit. in realizarea unui sistem de baze de date, distribuit sau nu, este esential caracterul "prietenos" pe care acesta trebuie sa il prezinte utilizatorului final.

Realizarea sistemului distribuit implica luarea de decizii in ceea ce priveste plasarea datelor si a programelor peste nodurile retelei de calculatoare. in cazul sistemelor distribuite de baze de date, distributia aplicatiei presupune atit distributia software-lui DBMS cit si distributia programelor de aplicatie care vor rula pe acest software. in ceea ce priveste softul DBMS, se presupune ca exista o copie a acestuia in fiecare nod al retelei. Din punct de vedere al proiectarii DDBS, ceea ce intereseaza este distributia programului aplicatie. Daca consideram ca reteaua de calculatoare este deja proiectata, realizarea sistemului distribuit de baze de date revine la rezolvarea a doua etape: proiectarea bazelor de date distribuite si procesarea distribuita a cererilor.

Majoritatea DDBS-urilor actuale satisfac urmatoarele trei presupuneri:

a.      Fiecare nod al retelei este un calculator care executa atit aplicatii program cit si functii de management a bazelor de date distribuite;

b.     Reteaua de calculatoare poate sa fie de tip LAN sau WAN;

c.      Gestiunea bazelor de date se bazeaza pe modelul relational.

Concepte

Sistemele de baze de date distribuite constau dintr-un set de noduri, legate intre ele printr-o retea comunicativa, in care:

Fiecare nod poseda bazele sale de deate proprii;

Nodurile lucreaza sincronic, deaceia utilizatorul poate avea acces la orice nod al retelei, ca si cum toate datele se afla pe nodul sau propriu.

De aici reiese ca asa numita "baza de date distribuita" in esenta este o baza virtuala, partile careia se pastreaza intr-o o serie de baze de date reale aflate pe noduri diferite ale retelei. Practic ea este imaginea logica a tuturor acesto baze de date reale.

Trebuie de mentionat insa ca fiecare nod poseda bazele de date proprii utilizatorilor locali, un Sistem de Gestiune a Bazelor de Date (SGBD) propriu, si softul necesar lucrului cu baza de date. In particular utilizatorii unui nod pot opera cu baza nodului in asa fel ca si cum acest nod nu este o parte a unui sistem distribuit a unei baze de date, ci este o unitate complexa a bazei de date. In asa mod o baza de date distribuita poate fi privita ca o modalitate de conlucrare comuna a diferitor SGBD-uri, situate pe diferite noduri locale separate, unde o componenta soft noua pe fiecare nod poseda toate functiile lucrului in comun, adica este o continuitate logica a bazei de date locale. Anume combinatia intre acest produs soft si SGDB-ul existent de obicei este numita sistema distribuita de manajare a bazelor de date.


De cele mai dese ori se presupune ca nodurile sint despartite fizic si geografic, dupa cum este indicat in desenul 1, cu toate ca in realitate este de ajuns ca ele sa fie despartite logic. Cu toate ca este permis ca doua "noduri" sa fie situate pe acelasi computer, mai ales in timpul elaborarii si testarii sistemei. In ultimii ani sensul unei baze de date distribuite s-a schimbat usor. Necatind la toate ca in primele cercetari in domeniul bazelor de date distribuite se descriau sisteme separate geografic, printre primele sisteme comerciale distribuite foloseau o distribuire locala cu mai multe noduri, amplasate in una si aceiasi cladire, unite intre ele printr-o retea locala. Insa din punct de vedere a bazelor de date distribuite intre aceste doua modalitati nu exista difirentieri substantiale, deoarece in ambele cazuri este necesar de solutionat una si aceleasi probleme tehnice si logice, deaceia situatia prezentata in desenul 1 poate fi analizata ca o situatie tipica a unei sisteme de baze distribuite.

Cu toate ca teoria bazelor de date distribuite mentioneaza ca SGDB-urile aflate pe nodurile retelei pot fi de diferite tipuri, in practica de cele mai dese ori se intilnesc sisteme cu acelasi tip de SGDB. Aceasta are loc din cauza simplificarii problemei de comunicatie si compatibilitate intre SGBD-uri. Astfel de sisteme, care utilizeaza acelasi tip de SGDB se numiesc unigene.

Sistemele unigene au mai multe proprietati fata de sistemele distribuite obisnuite din mai multe motive:

Compatibilitate in comunicatie - de cele mai multe ori SGBD-urile avansate au o varianta proprie de comunicare intre ele, necatind la toate ca exita anumite standarde special elaborate pentru a solutiona aceste probleme, ca de exemplu SQL (Structured Query Language). In multe cazuri, din interese comerciale si eficacitate in lucru cu baza de date, producatorii de SGBD-uri isi creaza un limbaj propriu, derivat de la cel standard, care proseda un sir de caracteristici imbunatatiri. De exemplu Oracle a elaborat PLSQL, InterBase - SCSQL, sau Microsoft SQL a inventat MSSQL. Toate aceste derivari sint compatibile cu standardul de baza SQL, sau SQL92, insa producatorilor de soft le vine dificil de a elabora programe folosind numai standardul SQL, deoarece acesta ofera un set mai restrins de posibilitati si comenzi de tratare a bazelor de date fata de extensiile acestora.

Concept de abordare - cu toate ca teoria bazelor de date are una si aceiasi ideologie in conceptul bazei de date, mecanisme de abordare si lucru, multe SGBD-uri actuale au variantre proprii de abordare si lucru cu baze de date. De exemplu InterBase are ca concept tratarea multiversionala a bazei de date, metodologie care in Oracle sau Microsoft SQL Server nu este prezenta, sau invers Oracle poseda functii avansate statistice, pe care InterBase la curent nu le poseda, insa pot fi incluse prin definirea UDF (User Defined Function). Toate aceste diversificatii ingreuneaza cu mult elaborarea unui produs soft care ar asigura lucrul sincron distribuit al diferitor SGBD-uri, cu toate ca teoria bazelor distribuite accepta acest fapt si analizeaza problemele ce pot aparea la proiectarea unei astfel de baze distribuite numai la nivel logic, in practica o pondere destul de mare in reusita proiectului o au si problemele fizice si specifice pe care le are fiecare SGBD in parte.

Exemple de baze de date distribuite

In calitate de exemle se poate de mentionat unele sisteme cunoscute de baze de date distribuite. Dintre multiplele prototipe si sistemele stiintifice de cercetare se poate de amintit sistema SDD-1, elaborata la sfirsitul anilor "70 - inceputul anilor "80 in centrul de cercetare stiintifica a companiei Computer Corporation of America;  sistema R* (se citeste R-star), care este versiunea distribuita a sistemei System R elaborata la sfirsitul anilor "80 de compania IBM; si deasemenea sistema Distributed INGRES, care este versiunea distribuita a SGDB-ului INGRES, elaborata de asemenea la sfirsitul anilor "80 in universitatea Berkley din California.

In cea ce priveste produsele comerciale, atunci in majoritatea sistemelor relationale sint precautate diferite metode si concepte de abordari ale bazelor de date distribuide cu diferite nivele de functionalitate si posibilitati. Dintre, pe cele mai cunoscute, putem mentiona sistemul INGRES-STAR o ramura a companiei Ingres Division, sistemul ORACLE al firmei Oracle Corporation, deasemenea componentele de organizare a lucrului cu bazele de date distribuide ale sistemului DB2 ale companiei IBM, si ale sistemului InterBase ale corporatiei InterBase. Trebuie de mentionat ca toate sistemele amintite sint sisteme relationale de gestiune a bazelor de date. Desigur exita multe motive dupa care un sitem eficace distribuit trebuie sa fie si relational, dar tehnologia relationala, este un factor sau un mediu in care se poate de creat un sistem efectiv de lucru distribuit.


Proiectarea

Problema proiectarii bazelor de date distribuite (sau, altfel spus, cum vor fi plasate bazele de date si aplicatiile in nodurile retelei) consta in fragmentarea bazelor de date, adica descompunerea relatiilor initiale in subrelatii si apoi alocarea acestor fragmente in nodurile retelei.

Exista doua modele de plasare a bazelor de date in nodurile retelei:

a.      Partitionat (total nereplicat): baza de date este оmpartita in partitii disjuncte (fragmente), fiecare dintre aceste partitii fiind plasata apoi in alt nod al retelei.

b.     Replicat: acest model are la rindul lui doua variante - total replicat, respectiv partial replicat. In varianta "total replicat" оntreaga baza de date este stocata in fiecare nod al retelei. In varianta "partial replicat" fiecare partitie a bazei de date este stocata in mai multe noduri ale retelei, dar nu in toate.
In ceea ce priveste bazele de date replicate (total sau partial) s-au dezvoltat doua mecanisme fundamentale de replicare : dinamica si respectiv statica.

Definirea fragmentelor in baze de date distribuite se realizeaza conform unor reguli similare cu cele pentru definirea relatiilor virtuale (view) in bazele de date centralizate. Mai mult decit atit, datele replicate pot fi tratate in acelasi mod.

Intrebarile la care trebuie sa raspundem pentru a realiza o fragmentare cit mai "buna" sunt: "de ce sa fragmentam?", "cum fragmentam", "cit de mult fragmentam?" si "cum putem verifica corectitudinea descompunerii?". Raspunsurile la aceste intrebari depind in general de aplicatie.

Argumentul esential in favoarea fragmentarii consta in posibilitatea executiei unor operatii in paralel, pe diverse fragmente. Deci, fragmentarea creste concurenta. Exista si argumente оmpotriva fragmentarii, si acestea se refera la problemele de control semantic si integritate a datelor.

S-au dezvoltat doua strategii fundamentale de partitionare:

a.      Fragmentarea orizontala - partitioneaza o relatie de-a lungul tuplelor sale; deci fiecare fragment contine un subset din tuplele relatiei.

b.     Fragmentarea verticala - produce din relatia R partitiile R1, R2, Rn, fiecare continind un subset al atributelor din R, inclusiv cheia primara. Fragmentarea verticala a fost tratata pe larg in cazul bazelor de date centralizate, dar in contextul bazelor de date distribuite ceea ce intereseaza in primul rind este nesuprapunerea fragmentelor (exceptind cheia primara).

De cele mai multe ori, pentru o aplicatie reala, o simpla partitionare verticala sau orizontala nu este suficienta, deci se aplica ambele variante, conducind astfel la aparitia celui de-al treilea tip de fragmentare, numita hibrida.

Al doilea pas in proiectarea bazelor de date distribuite consta in alocarea fragmentelor in nodurile retelei. in cazul in care alocarea se realizeaza conform modelului partitionat, procesarea cererilor este dificila dar controlul concurentei este relativ usor de realizat. Alternativa replicarii totale conduce la o procesare usoara a cererilor, dar controlul concurentei este moderat.

Daca consideram un set de fragmente F= pe care ruleaza un set de aplicatii Q, problema alocarii revine la determinarea distributiei optime a lui F peste R.

Un pas important pentru aflarea solutiei este definirea "optimului", care poate fi considerat:

a.      costul minimal - functia de cost consta din costul stocarii fiecarui fragment Fi in nodul Rj, costul procesarii lui Fi la nodul Ri, costul actualizarii lui Fi in toate nodurile unde este stocat si costul comunicatiilor de date.

b.     performanta - strategia de alocare este proiectata astfel оncit sa mentina o anumita performanta (de exemplu minimizarea timpului de raspuns).

Problema alocarii poate fi specificata ca o problema de minimizare a costului in care se оncearca gasirea unui set I din S care specifica unde vor fi stocate copiile fragmentelor.

Problema este NP-hard, in concluzie solutiile propuse sunt euristice si depind, in general, de aplicatie.

In literatura de specialitate exista citeva linii de cercetare in domeniu. Chang a dezvoltat independent o teorie pentru fragmentarea si alocarea bazelor de date [Chang]. Mai utilizata in implementarea sistemelor distribuite este оnsa teoria fragmentarii propusa de Ceri, Pelagatti si Widerhold [Ceri1], [Ceri2].

In ceea ce priveste problema alocarii, majoritatea modelelor se ocupa de alocarea fisierelor simple, fara a lua in considerare aspectele legate de distributia datelor. Ozsu si Valduriez au prezentat un model care rezolva, la un nivel minim, problemele specifice alocarii bazelor de date [Ozsu].

In luarea deciziei privind proiectarea bazelor de date distribuite pentru un anumit sistem trebuie, in general, sa se raspunda urmatoarelor оntrebari:

Vor reduce fisierele locale volumul traficului de comunicatii (mesaje, tranzactii, etc.)?

Este necesar pentru toate statiile sa actualizeze aceleasi оnregistrari?

Daca statiile au nevoie sa acceseze оnregistrari, cit de des trebuie acestea sa fie actualizate? De exemplu, pretul marfurilor de vindut se modifica la anumite intervale de timp.

Pot fi utilizate fisierele locale pentru a verifica datele de intrare?

Fac parte inregistrarile unei tabele, in mod natural, din fragmente care sa poata fi pastrate in noduri dispersate?

Cine este responsabil de pastrarea integritatii оnregistrarilor din fisier si de actualizarea acestora? Daca responsabilitatea revine unui departament central, este necesar ca acesta sa informeze pe toti detinatorii fisierelor distribuite de fiecare data cind au fost facute modificari?

Siguranta bazelor de date distribuite este pastrata satisfacator in mod local?

Procesarea

Procesarea distribuita a cererilor are urmatorul scop: dindu-se o interogare pentru o BDD, sa se gaseasca o strategie de executie corespunzatoare care minimizeaza costurile de comunicatie. Strategia este descrisa in termenii operatorilor din algebra relationala folosind si primitive de comunicatie (send/recevie) aplicate bazelor de date locale.
Procesul este compus din urmatoarele etape:

a.      Descompunerea cererilor: realizeaza transformarea cererilor din calcul relational (limbaj de nivel оnalt) in termenii algebrei relationale. Deoarece atit cererile de intrare cit si cele de iesire sunt globale, fara cunostinte despre distributia datelor, problema se trateaza similar cu cazul bazelor de date centralizate.
Procesul are 4 pasi:

normalizarea - se transforma in forma conjunctiva normala sau in forma disjunctiva normala.

analiza semantica - determina cererile incorecte din punct de vedere semantic si le elimina.

eliminarea redundantei - prin aplicarea unor reguli de simplificare asupra predicatelor obtinute in prima etapa se elimina predicate inutile.

rescriere - se rescrie cererea in termenii algebrei relationale.

b.     Localizarea datelor: se transforma cererea globala exprimata in termenii algebrei relationale оntr-o cerere fragmentata aplicata fragmentelor bazei de date.

c.      Optimizarea globala si locala a cererilor: cererea rezultata din primii doi pasi poate fi executata dupa simpla adaugare a primitivelor de comunicatie. Permutarile posibile in ordinea operatiilor din cerere pot sa conduca la diverse strategii de executie. Rolul acestui pas consta in gasirea unei ordini "optimale".

Exista doi algoritmi de optimizare "clasici" - algoritmul propus in Ingres (Stonebraker), care este un algoritm dinamic si algoritmul propus in System R (Astrahan), care este un algoritm static.

Pentru implementarea unui sistem distribuit de baze de date este necesar un limbaj de date relational (SQL) bazat fie pe algebra relationala, fie pe calculul relational. Pentru scrierea aplicatiilor complexe, SQL nu este suficient si de aceea interfatarea cu un limbaj de programare (procedural) este de obicei necesara. Un astfel de limbaj de programare este PASCAL/R, care contine un nou tip de variabila, numit relation.
Limbajele de generatia a 4-a (4GL) sunt limbaje de nivel оnalt care combina operatorii din algebra relationala cu constructii de program. Posibilitatea de a utiliza variabile temporare si constructii puternice de program face ca aceste limbaje numite "limbaje de programare orientate spre baze de date" (Oracle, Ingres, etc.) sa fie deosebit de utile la scrierea aplicatiilor.

Prioritati

De ce oare sint atit de necesare bazele de date distribuite? In general pentru aceia ca unitalile mari, au de regula o structura distribuita, macar din motive ca ele sint despartite logic, in departamente, sectoare, sectii, sau chiar fizic, de exemplu in uzine, fabrici, laboratoare, linii de prelucrare etc. Din aceasta reiese ca datele intre ele deasemenea sint distribuite, deoarece la diferite nivele organizationale se duce lucrul cu date specifice sau necesare acestui nivel. In asa mod, intr-o sistema distribuita se poate de elucidat structura organizationala a unitatii reiesind din structura logica a bazei de date, adica datele cu destinatie locala pot fi salvate in bazele locale, iar accesul la datele indepartate se face numai dupa necesitati.

Sa analizam de exemplu Desenul 1, unde este elucidata o schema bancara simplificata care deserveste patru orasele New York, Loss Angeles, Londra si San Francisco. Conforma acestei scheme, in fiecare din orase, se pastreaza datele bancare despre clientii din aceste orase. O prioritate a acestui sistem este vizibia: in sistemele cu baze de date distribuite este combinata prelucrarea eficace a datelor, deoarece datele se afla aproape de locul unde se prelucreaza si se mareste vadit accesul la date, de exemplu din New York, putem usor controla orice informatie despre un client, sau a face orice tip de operatii bancare cu conturile clientului din Londra si invers.

Posibilitatea oglindirii structurii orgranizatieie in structura logica a bazei de date, este, poate, cea mai substantiala prioritate a bazei de date distribuite. Insa bazele de date distribuite au o serie de prioritati, pe care le vom analiza mai jos. Insa trebuie de mentionat ca bazele de date distribuide si lucrul cu ele au deasemenea si unele neajunsuri, in particular compeyitatea bazei de date distribuite, macar din punct de vedere tehnic. In cazul ideal aceasta va fi o "surpriza" pentru programator, dar nu pentru utilizator. Insa daca nu se iau toate aspectele si masurile necesare, la elaborarea produsului soft, unele nuante din aceasta complexitate pot fi actuale si pentru utilizatori.

Principiu fundamental

Acum dupa o mica introducere putem formula principiului fundamental al bazei de date distribuite:

Pentru utilizator o sistema distribuita trebuie sa apara ca si cum ar fi o sistema Hedistribuita

Altfel vorbind, lucrul utilizatorului intr-o sistema distribuita trebuie de organizat in asa fel incit, ca si cum ea nu ar fi distribuita. Tote problemele legate de particularitatile sistemelelor distribuite trebuie sa fie interne, si trebuie sa apara numai la un nivel intern, la nivelul elaborarii, dar nu la un nivel extern sau la nivelul utilizatorului.

Remarca. In contextul dat termenul de "utilizator" se refera la utilizatorul sau utilizatorii sistemului, care executa operatii de gestiune a datelor. Toate aceste operatii trebuie sa fie logic neschimbate, spre deosebire de operatiile de determinare a datelor, care din contra pot fi extinse chiar si de utilizator. De exemplu utilizatorul nodului X poate indica ca relatia pastrata poate fi "fragmentata" pe nodurile Y si Z.

Principiul fundamental al bazelor de date distribuite duce la un set de reguli ajutatoare si scopuri proprii unei baze de date distribuite:

a.      Autonomie locala.

b.     Independenta fata de nodul central

c.      Functionare continua

d.     Independenta de amplasare

e.      Independenta de fragmentatie

f.      Independenta de replicatie

g.     Prelucrarea adresarilor distribuite

h.     Manajarea tranzactiilor distribuite

i.       Independenta de dotarea tehnica

j.       Independenta de sistema de operare

k.     Independenta de retea

l.       Independenta de SGDB

A ceste douasprezece scopuri nu se afla independente una fata de alta, plus la toate nu toate din ele au acelasi grad de insemnatate, si cu ele sigur inca nu se incheie lista tuturor scopurilor posibile. Ele insa sint foarte utile la intelegerea conceptului de baze de date relationale si pentru functionarea generala a unui sistem de baze de date distribuite.

Trebuie de difirentiat insa sistemele cu baze de date distribuite fata de sistemele cu baze de date indepartate. Intr-un sistem cu baze de date distribuite utilizatorul lucreaza cu o multime de baze de date indepartate concomitent si sincron de parca ar fi locale, insa in sistemele cu baze de date indepartate, toate datele se afla pe un nod indepartat, utilizatorul indicindu-i nodului indepartat operatiile cuvenite de gesionare a bazei de date. Printre tehnicile ce folosesc baze de date indepartate poate fi amintia tehnologia Client/Server.

Douasprezece scopuri

Autonomie locala

Intr-o sistema de baze de date distribuite, nodurile trebuie sa fie autonome. Autonomie locala presupune ca operatiile efectuate pe acest nod trebuie sa fie conduse anume de acest nod, adica functionarea oricarui nod X nu depinde de succesul functionarii sau realizarii operatiilor pe un oricare alt nod Y, in caz contrar lipsa acestei reguli duce la consecinte neplacute, daca de exemplu un nod Y este defectat, nodul X, dependent de Y, deasenea nu poate functiona. Din principiul autonomiei locale reiese inca si faptul ca odata cu prelucrarea datelor local are loc deasemenea in mod local si controlulul integritatii si a tuturor restrictiilor aplicate bazei de date.

In realitate scopul autonomiei locale nu se atinge complet, din cauza ca exista o multime de situatii in care nodul X trebuie sa-I acore o parte din controlul datelor altui nod Y. Deaceia scopul atingerii autonomiei locale are nevoie de o formulare mai precisa, si anume: nodurile trebuie autonomizate pina la nivelul maxim posibil.

Independenta de nodul central

Sub termenul de autonomie locala se subintelege ca toate nodurie trebuie abordate ca egale. Rezultativ nu trebuie sa existe nici o dependenta de nodul central, de "baza", cu o oarecare deservire centralizata, ca de exemplu prelucrarea centralizata a adresarilor la baza de date sau organizarea centralizata a lucrului cu tranzactiile asupra bazei. In asa mod, al doilea scop este o continuare logica a primului, adica daca este atins primul scop, atunci al doilea este indestulat cu atat mai mult. Insa daca autonomia locala nu este atinsa total, atunci si independenta de nodul central este foarte importanta si poate fi tratata ca un scop aparte.

Dependenta de nodul central este de nedorit in cel mai rau caz din doua motive. In primul rind, nodul central poate fi "ingust" pentru tot sistemul, iar intr-al doilea caz sistemul devine legat, si in cazul defectarii centrului poate iesi din functiune tot sistemul.

Functionarea continua

Una din principalele prioritati ale sistemului distribuit este aceia ca ele asigura o stabilitate si o accesibilitate sporita.

Stabilitate - probabilitatea ca sistemul este in functiune si functioneaza in orice moment de timp nu lucraza dupa principiul "tot sau nimic", dar in regim continuu, adica lucrul sistemului continua, cu toate ca la un nivel mai scazut, chiar daca unele noduri ale sistemei au iesit din functiune.

Accesibilitate - probabilitatea ca sistemul este in functiune si functioneaza in decursul unei perioade de timp se mareste partial din cauza aceluiasi motiv, cit si din motivul posibilitatii replicatiei datelor, metoda care o vom descrie putin mai tarziu.

Independenta de amplasare

Principala ideie a independentei de amplasare, care se mai numeste si transparenta aplasarii, este destul de simpla: utilizatorii nu urmeaza sa cunoasca in ce loc fizic are loc pastrarea datelor, invers, din punct de vedere logic, utilizatorilor trebuie sa li se asigure un asa regim, in care sa apara iluzia ca toate datele se afla pe nodurile sale proprii. Asigurarea independenlei de amplsare este foarte benefica, deoarece aceasta simplifica mult, la nivel exterior, programul utilizatorului si insasi conceptul si termenii de lucru. In particular aceasta permite de efectuat migrarea datelor de la un nod la altul.

Independenta de fragmentatie

Intr-o baza distribuita se sustine fragmentatia datelor, daca o oricare relatie, cu scopul pastrarii fizice poate fi despartita pe parti sau "fragmente". Fragmentatia este de binevenit, deoarecea ea mareste productivitatea bazei distribuite, deoarece datele e bine de pastrat in acel loc, unde ele mai des sau uzual se folosesc. La o asa organizare, multe operatii vor fi pur si simplu locale, si fluxul de date in retea se va micsora considerabil. De exemplu sa analizam relatia sistemului bancar international (EMP) din desenul 1. In aceasta sistema este sustinuta fragmentatia, ti sint determinate doua fragmente, dupa cum e indicat in desenul 2:


Printr-un set de operatori SQL, aceasta ar avea forma:

FRAGMENT EMP INTO

N_EMP AT SITE "New York" WHERE DEPT# = "D1" OR DEPT# = "D3"

N_EMP AT SITE "Londra" WHERE DEPT# = "D2";

Remarca: Se presupune ca toata informatia despre clientii bancii din New-Yourk se pastreaza numai pe nodul New-York, si resprectiv pentru clientii bancilor din Londra, in Londra. Acrasta este elucidata in structura interna a tabelelor (relatiilor) N_EMP si L_EMP.

Deosebim doua tipuri de fragmentatie - pe orizontala si pe verticala, care sint legate cu operatii de selectie si proiectie. Trebuie de resprectat insa urmatoarele restrictii:

a.      Se presupune ca tuplurile relatiei date sint independente unul fata de altul, adica nici una din relatii nu poate fi determinata de altul. Ca exeplu putem lua exemplul nostru, unde suma, sau contul unui client al bancii din New York nu are nici o legatura cu nici un client din Londra, sau invers. Daca apare necesitatea salvarii uneia si aceiasi informatie, atunci folosim mecanismul replicarii, care il vom analiza mai jos.

b.     Proiectiile nu trebuie sa permita pierderea informatiei

c.      Trebuie de mentionat faptul ca anume usurinta realizarii fragmentatiei si a reconstruirii structurii bazei de date - este una din principalele motive din care intr-o baza de date relationala se utilizeaza baze de date relationale. Adica, pentru a putea fragmenta baza, este nevoie de un set de operatii compatibile cu bazele de date cu o structura relationala.

O baza de date distribuita, care suporta fragmentatia datelor, trenuie de asemenea sa se supuna criteriului independentei de fragmentatie. Cu alte cuvinte, din punc de vedere logic, utilizatorilor trebuie sa le oferim un asa regim de lucru in care datele par absolut nefragmentate. Independenta de fragmentatie este foarte benevenita, deoarece simplifica mult realizarea interfetelor terminale, pentru utilizator.

Independenta de fragmentatie presupune ca datele vor fi prezentate pentru utilizator intr-o forma de combinatii logice. Cu aceasta optimizatorul de sistem gestioneaza si determina fragmentele respective carora trebuie sa le acorde acces fizic utilizatorului, pentru executarea oricarei interpelari ale utilizatorului. In calitate de exemplu presupunem, ca pentru fragmentarea ilustrata in desenul 2 utilizatorul se adreseaza cu urmtoarea interpelare:

EMP WHERE SALARY > 40K AND DEPT# = "D1"

In acest caz, optimizatorul, determina adresa fizica a datelor, adica pe ce nod se afla, New-York sau Londra. Daca analizam exemplul mai detaliat, observam ca relatia EMP este sezizata de utilizator ca prezentarea fragmentelor N_EMP si L_EMP:

EMP = N_EMP UNION L_EMP.

Reiesind din aceasta, optimizatorul reformuleaza interpelarea utilizatorului in urmatoarea forma:

(N_EMP UNION L_EMP) WHERE SALARY > 40K AND DEPT# = "D1"

Iar aceasta expresie poate fi reformulata astfel:

(N_EMP WHERE SALARY > 40K AND DEPT# = "D1")

UNION

(L_EMP WHERE SALARY > 40K AND DEPT# = "D1")

Din fragmenul bazei de date distribuie L_EMP, optimizatorul cunoaste ca partea a doua a interpelarii va intoarce o multime vida, deaceia interpelarea initiala a utilizatorului intr-o forma finala are forma:

N_EMP WHERE SALARY > 40K AND DEPT# = "D1".

Independenta de replicatie

Intr-o baza de date distribuita exista independenta de replicatie, daca relatia data sau portiunea data poate fi prezentata ca o multime de copii diferite, sau replici, pastrate pe noduri diferite, ale bazei de date distribuite.

Prezentam acum un exemplu de replicatie, in desenul 3:

REPLICATE N_EMP

LN_EMP AT SITE "Londra" ;

REPLICATE L_EMP

LN_EMP AT SITE "New York" ;

Replicatia e folositoare, in principal din doua motive. In primul rind, datorita ei, se atinge o productivitate sporita, aceasta se explica prin faptul ca aplicatiile lucreaza cu copiile datelor, pe nodul local, si nu face schimb de informatii cu nodurile indepartate. Intr-al doilea rind replicatia sporeste accesibilitatea datelor, deoarece se poate de efectuat orice operatie cu datele atit timp cit exista macar o replica a datelor.
Principalul neajuns al replicatiei consta in faptul ca reinnoind obiectul relational analizat, toate replicile acestui obiect, trebuiesc deasemenea actualizate. Acest neajuns se numeste problema actualizarii distribuie, pe care o vom cerceta putin mai jos.
Printre altele, trebuie de mentionat ca replicatia intr-o baza de date distribuita prezinta un mod special de tratare a neajunsurilor.
Intr-un caz ideal, replicatia, ca si fragmentatia, intr-o baza de date distribuita trebuie sa fie "nesesizata de utilizator". Altfel vorbind, intr-o baza de date distribuita, in care este prezenta replicatia datelor, trebuie de asemenea sa fie prezenta si independenta de replicatie, adica pentru utilizatori, macar din punct de vedere logic, trebuie sa lucreze intr-un asa regim, ca si cum datele nu sint replicate de loc.
Independenta de replicatie presupune ca optimizatorul sistemului raspunde de locatia fizica a datelor replicate si are sub control actualizarea tuturor replicilor, la o modificare a datelor replicate.
In incheiere trebuie sa mentionam ca multe SGDB-uri comerciale, in timpul de fata propun o forma de replicatie care nu asigura independenta totala de replicatie.

Prelucrarea interpelarilor distribuite

Prezentam in continuare doua intrebari largi si complexe.

Analizam interpelarea "A primi informatii despre distribuitorii de piese rosii, aflati in Londra", unde mai presupunem ca utilzatorul se afla in New-York, iar datele se afla pe nodul din Londra. Presupunem de asemenea, ca conform interpelarii utilizatorului corespund n distribuitori. Daca sistemul este relational, atunci adresarea la baza va fi constituita din doua fluxuri informationale sau traficrui, sau traficuri - unul cu interpelarea clientului, adresata nodului din New-York, si altul cu intoarcerea rezultatelor - raspuns pentru utilizatorul din Londra. In cazul cind sistemul nu este relational, vom avea de a face cu 2*n traficuri, spre New-York pentru gasirea urmatorui distribuitor ce satisface conditiile propuse, si din New-York, raspunsul respectiv despre urmatorul distribuitor. Acest exemplu ne arata ca de cele mai multe ori, bazele de date relationale operaza cu datele de citeva ori mai repede decit alte modele, macar la prelucrarea datelor la nivel de multimi.

Problema optimizarii etste mult mai "dureroasa" si mai principala in cazul bazelor de date distribuite, decit in cazul celor centralizate. Principala problema si ideie consta in faptul ca la procesarea unei interpelari ale utilizatorului adresata la mai multe noduri, se poate efectuat in mai multe feluri, in ce priveste deplasarea datelor de la un nod la altul. In acest caz, este foarte rezonabil de gasit solutia optima in ceia ce priveste gestiunea datelor si prelucrarea interpelarilor. De exemplu, o interpelare adresata bazei de date ce are ca rezultat uniunea multimilor Rx aflata pe nodul X si multimea Ry aflata pe nodul Y, poate fi realizata prin deplasarea relatiei Rx la nodul Y, deplasarea relatiei Ry la nodul X, sau prin deplasarea ambelor relatii pe un alt nod Z. Uneori strategia optima aleasa difera prin timpul de prelucrare chiar cu ordinul orelor fata de unele mai putin optimizate, nemaivorbind de cele neoptimizate.

Gestionarea tranzactiilor distribuite

Exista doua aspecte de baza de gestionare a tranzactiilor distribuite, si anume gestionarea "recuperarii" si gestionarea "paralelismului". Ambelor acestor aspecte trebuie sa le acordam o atentie deosebita. Gestionarea tranzactiilor asupra bazelor de date distribuite este mult mai dificla de realizat, din motivul ca o interpelare a unui client poate modifica, adauga, sterge noi date de pe diferite noduri ale bazei. Aici poate de vorbit despre notiunea de agent, care desemneaza o operatie facuta asupra datelor de pe un nod al bazei distribuite. De exemplu, incazul cind modificam, printr-o singura interpelare preturile petroluilui, de pe toate nodurile, atunci pe toate nodurile, se creaza asa numitii agenti, niste procese, care duc contul despre operatia in cauza, la o alta interpelare a altui utilizator apar alti agenti pe nodurile respective. La operatia salvarii lucrului COMMIT WORK sau la anularea lui, ROOLBACK WORK, sistemul trebuie sa determine corelatia agentilor si a relatiilor dintre ei, sau a conflictelor ce pot aparea, ca de exemplu DEADLOOK.
Aplicarea "recuperarii" presupune ca la sfirsitul tranzactiei primim succes sau insucces, de tipul "totul sau nimic". Pentru a evita insuccesele, care de cele mai dese ori sint nedorite, se utilizeaza deseori tranzactie multifaza, axata pe generarea automata a tranzactiilor asupra operatiilor respective.
In cea ce priveste "paralelismul", atunci in bazele de date distribuite, ca si in cazul celor cemtralizate se aplica blocarea inregistrarilor, care de multe ori este nedorita, mai ales cind se executa operatii asupra multimilor. O solutie, intilnita in SGDB-urile moderne este tehnologia "multiversiunilor", aplicata de exemplu in SGDB-ul InterBase al Corporatiei Inprise.

Independenta de dotarea tehnica

Practic la acest capitol nici nu prea avem ce mentiona, deoarece totul este explicat deja insati in denumirea capitolui. In prezent deosebim o larga diversificare a calculatoarelor, in ce-a ce compania producatoare, din care putem mentiona Hewleet Packard, IBM, DELL etc. Deci o conditie necesara bazelor de date distribuite este compatibilitea ei cu calculatoarele respective.

Independenta de dotarea tehnica

In ultimul timp observam o diversificare larga a sistemelor de operare existente. Din ele putem mentiona Windows 95-98, Windows NT, familia Unix, QNX, Beo etc.
In legatura cu aceasta exista o problema reala in ceia ce priveste compatibilitatea bazei de date sau a SGDB-ului cu sistemul de operare cuvenit. Multe sisteme de gestiuen a bazelor de date sint cunoscute ca fiind compatibile cu mai mai multe sisteme de operare. Insa deseori ele apar cu mici modificari sau limitari, de exemplul InterBase ruleaza pe sistemele Windows 95-98, Windows NT, Unix, Linux, FreeBSD, insa pe platformele Unix sau Linux, utilieaza tehnologia SimpleServer, iar pe platformele Windows 95-98, Windows NT, FreeBSD tehnologia SuperServer, in cea ce priveste prelucrarea interpelarilor.

Independenta de retea

Cunoastem deja mai multe tipuri de retea, care in cazul bazei de date distribuite pot lega intre ele nodurile. Pot fi insa cazuri cind unele segmente de retea ce unesc nodurile respective sa fie de diferite tipuri de retea. Atunci este binevenit faptul ca SGDB-ul ce suporta bazele de date distribuite trebuie sa fie compatibil la fel, ca si in cazul sistemelor de operare cu mai multe tipuri de retea.

Independenta de SGDB

O baza de date distribuita, cel putin teoretica, necesita compatibilitatea cu diferite SGDB-uri, aceasta se explica prin faptul ca unele noduri ale bazei de date distribuite pot fi gestionate de un SGDB, iar o alta parte din noduri de alt SGDB. De multe ori, in practica, este intilnit cazul cind exita deja diferite baze de date, gestionate de difertite SGDB-uri, care cer reformalizate si reunite intr-o baza de date distribuita. Teoretic aceste SGDB-uri ar trebui sa "comunice" intre ele, mai ales daca ambele suporta standardul SQL, insa in multe carui multe SGDB-uri isi dezvolta propriile sale extensii ale limbajului SQL, derivate care sint facilitati necompatibile intre ele.


Sisteme de tip Client-Server

Sistemele Client-Server pot fi percepute ca o varianta sau un caz particular al bazelor de date distribuite. Mai precis, sistemele Client-Server sint niste sisteme distribuite in care unele noduri sint clientii iar altele serverul. Datele se pastreaza pe server, iar interfetele, sau programele ruleaza pe clienti. Sistemele Client-Server, se deosebesc putin de bazele reale distribuite prin faptul ca datele se pastreaza numai pe server, adica de la clienti parvin numai interpelarile, iar toate modificarile, operatiile sint executate de server, serverul in acest caz duce controlul total asupra tranzactiilor efectuate de clienti. Cu toate acestea, putem considera sistemele Client-Server ca o varianta simplificata a bazelor de date distribuite.

Concluzii

Conceptia, elaborarea, exploatarea, оntretinerea si evaluarea sistemelor distribuite de baze de date constituie un proiect care impune concentrarea unor resurse umane si materiale importante pe o perioada оndelungata de timp.

Aceste greutati sunt generate atit de dimensiunea si complexitatea problemelor ce trebuie rezolvate, cit si de faptul ca instrumentele tehnologice specifice sunt inca destul de sarace. in acelasi timp, cerintele aplicatiilor ce urmeaza sa le deserveasca - performanta, fiabilitate, interfata de utilizare - si raportul performanta/cost, reprezinta tot atitea elemente de dificultate puse in fata celor care concep astfel de sisteme.

Este necesara o teorie a sistemelor distribuite de baze de date care sa permita оntelegerea limitarilor teoretice si a complexitatii, limbajele de specificare trebuie extinse pentru a permite o tratare cit mai completa a naturii distribuite a sistemului. De asemenea, este nevoie de o metodologie de conceptie, construire si оntretinere a DDBS complexe.

Un impact puternic asupra dezvoltarii bazelor de date distribuite l-a avut aparitia statiilor de lucru (workstation) puternice si a calculatoarelor paralele.

Intrucit se estimeaza ca un sistem cu prelucrare distribuita va fi un sistem expert extensibil, adaptabil, fizic distribuit dar logic integrat, bazele de date distribuite iau locul bazelor de date centralizate, cu un caracter local. Viitorul promite acestor tipuri de baze un nivel inalt de aplicabilitate, devenind bazele de date obisnuite, uzual folosite.

Insa trebuie de tinind cont si de faptul ca noile directii de cercetare cuprind si aspecte specifice de inteligenta artificiala. Cu aceasta ocazie bazele de date relationale distribuite vor fi inlocuite vor avea o forma de baze de cunostinte distribuite sau baze de date distribuite orientate-obiect.

Bibliografie

[Adiba] M. Adiba, B.G. Lindsay. Databases Snapshots. in Proc. 6th Int. Conf. on Very Large Data Bases, Montreal, Oct. 1980, pag. 86-91.

[Ceri1] S. Ceri, S.B. Navathe, G. Widerhold. Distributin Design of Logical Databases Schemes. IEEE Trans. Software Eng., July 1983, pag. 487-503.

[Ceri2] S. Ceri, M.Negri, G. Pelagatti. Horizontal Data Partitioning in Database Design. Proc ACMSIGMOD Int. Conf. on Management of Data, Orlando, June 1982, pag. 128-136.

[Chang] S.K. Chang, W.H. Cheng. A Metodology for Structured Database Decomposition. IEEE Trans. Software Eng., March 1980, pag. 205-218.

[Ozsu] M.T. Ozsu, P. Valduriez. Principles of Distributed Systems. Prentice-Hall International, 1991.

[Smith] G. Smith. Symmetric Replication. Asynchronous Distributed Technology. Oracle Magazine, vol. VIII, nr. 4, 1994.

[Stonebraker] M. Stonebraker. Readings in Database Systems. San Mateo, Calif.: Morgan Kaufmann, 1988.

Adrese Internet

https://www.wargaming.net/Programming/125/Distributed_Databases_index.htm

https://nash.baruch.cuny.edu/oracle/server803/A54643_01/ch21.htm

https://www.seas.smu.edu/~mhd/dist.html

https://www.eecs.usma.edu/courses/cs393/lessons/lsn35/summary.htm

https://www.interbase.com/products/q89.html

https://www.busn.ucok.edu/bmorey/LectureNotes/Hansn/hansench12/sld001.htm

https://www.sunworld.com/sunworldonline/swol-09-1995/swol-09-unix.html

https://www-star.st-and.ac.uk/starlink/stardocs/sun162.htx/node35.html

https://www.oracle.com/database/features/o8/dtp.html

https://www.eecs.usma.edu/courses/cs393/lessons/lsn35/summary.htm





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.