Bază de date distribuită
De la Wikipedia, enciclopedia liberă
O bază de date distribuită este o bază de date controlată de un sistem de gestiune a bazelor de date (Data Base Management System, DBMS), în care dispozitivele de stocare a datelor sunt ataşate în mod distribuit la mai multe calculatoare. Aceste calculatoare pot ori să se afle fizic în aceeaşi locaţie (sală, clădire etc.), ori să fie dipersate într-o reţea de calculatoare interconectate.
Porţiunea unei baze de date distribuite ataşată la unul singur dintre calculatoarele involvate este numită partiţie sau fragment. Fiecare partiţie a unei baze de date distribuite se poate replica (duplica) identic într-o altă locaţie, deci în alt calculator din reţea, cu scopul măririi siguranţei în funcţionare (fiabilităţii). Pe baza acestei structuri redundante, eventualele greşeli/defecte în funcţionare se pot de multe ori repara "în zbor", deci fără întreruperea funcţionării, similar într-o oarecare măsură cu principiul matricilor cu discuri hard multiple de tip RAID.
În afară de fragmentare şi replicare, pentru bazele de date distribuite există multe alte modele. Aşa de exemplu autonomia locală, de asemenea tehnologiile sincrone şi asincrone. Alegerea unei anumite baze de date distribuite şi implementarea ei concretă depind de:
- nevoile întreprinderii,
- confidenţialitatea care trebuie garantată datelor din baza de date,
- gradul necesar de securitate, consistenţă şi integritate a datelor,
- precum şi de suma pe care compania este dispusă să o investească.
Cuprins |
[modifică] Arhitectura de bază
Un server de baze de date este software-ul care administrează baza de date; un client de baze de date este o aplicaţie care cere servicii de la server, de exemplu transmite date la, sau cere date de la baza de date. De obicei pentru un server şi baza de date corespunzătoare există concomitent mai mulţi clienţi. Fiecare calculator din reţeaua de calculatoare a bazei de date distribuite se numeşte un nod. Un nod al sistemului unei baze de date distribuite se poate comporta drept server, drept client, sau chiar drept ambele, în funcţie de situaţie.
Un tip important de baze de date distribuite sunt bazele de date distribuite relationale, conduse de un Relational Data Base Management System (RDBMS). În cadrul acestor baze de date avem:
- Fragmente orizontale -
- subseturi de tuple (rânduri) dintr-o relaţie (tabel).
- Fragmente verticale -
- subseturi de atribute (coloane) dintr-o relaţie (tabel).
- Fragmente mixte -
- un fragment care este fragmentat atât orizontal, cât şi vertical.
- Bază de date ditribuită omogenă -
- foloseşte un SGBD (exemplu: Oracle).
- Bază de date distribuită eterogenă -
- foloseşte mai multe SGBD (exemple: Oracle ; MySql; PostgreSQL).
Utilizatorii accesează baza de date distribuită prin:
- Aplicaţii locale (aplicaţii care nu necesită date de pe alte situri), sau
- Aplicaţii globale (aplicaţii care au nevoie de date de pe alte situri).
[modifică] Consideraţii importante
Administrarea internă a bazelor de date distribuite este pretenţioasă şi în general dificilă, deoarece trebuie asigurat că:
- Distribuţia este transparentă (invizibilă şi nederanjantă) – utilizatorii trebuie să poată să interacţioneze cu sistemul ca şi când ar fi vorba un sistem nedistribuit (monolitic);
- Tranzacţiile trebuie să aibă şi ele o structură transparentă (invizibilă şi nederanjantă). Fiecare tranzacţie în parte trebuie desigur să menţină integritatea bazei de date, în ciuda multitudinii de partiţii. Pentru aceasta ele se divizează de obicei în subtranzacţii, fiecare din acestea prelucrând doar o singură partiţie.
[modifică] Avantajele bazelor de date distribuite
- Pot reflecta structura organizaţională a companiei – partiţiile pot fi plasate direct în secţiile de care aparţin.
- Autonomie locală – fiecare secţie îşi poate controla mai îndeaproape propriile ei date.
- Disponibilitate îmbunătăţită – o greşeală într-o bază de date distribuită va afecta de cele mai multe ori o singură partiţie, şi nu toată baza de date. Celelalte partiţii rămân disponibile pentru prelucrare.
- Performanţă îmbunătăţită – datele pot fi amplasate lângă situl cu cererea cea mai mare, iar partiţiile însele sunt paralelizate, permiţând astfel ca solicitarea bazei de date să se echilibreze dinamic între serverele disponibile (o solicitare intensă într-o partiţie a bazei de date distribuite nu va afecta alte partiţii).
- Economie – costă mai puţin să se creeze o reţea de computere mai mici, dar cu puterea totală a unui singur computer mare.
- Modularitate – subsistemele unei baze de date distribuite pot fi modificate, adăugate sau deconectate dinamic, fără să se afecteze alţi clienţi sau partiţii.
[modifică] Dezavantaje ale bazelor de date distribuite
- Complexitatea – trebuie depusă muncă suplimentară de către administratorii bazelor de date pentru se a asigura că natura distribuită a sistemului este transparentă (invizibilă pentru utilizator). Muncă suplimentară trebuie de asemenea depusă şi pentru a întreţine multiple sisteme disparate. Proiectarea unei baze de date distribuite trebuie să ţină cont şi de natura ei disconectă – de exemplu, operaţia join (reunirea a două tabele ale unui RDBMS) devine deosebit de laborioasă când trebuie efectuată pe baza mai multor partiţii disparate.
- Profitabilitatea redusă – complexitatea mai mare şi infrastructurile mai ample duc la costuri suplimentare pentru realizare şi implementare.
- Securitatea – toate partiţiile bazei de date trebuiesc securizate, dar deoarece acestea nu sunt centralizate, trebuiesc securizate şi toate siturile involvate, la orice distanţe s-ar afla ele. Drept urmare, şi infrastructura trebuie securizată (de ex. prin codificarea tuturor transmisiilor între siturile reţelei).
- Dificultatea de a menţine integritatea – dacă baza de date este concepută greşit, atunci asigurarea integrităţii poate suprasolicita şi chiar bloca reţeaua dintre noduri.
- Lipsa de experienţă – câmpul de activitate fiind dificil, nu există documentaţie suficientă despre experienţa acumulată în diverse proiecte concrete.

