Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Baze de date


Index » educatie » » informatica » Baze de date
» Rezistenta la pana si securitatea datelor


Rezistenta la pana si securitatea datelor


Agenda

Principiile rezistentei la pene

Obiectivele rezistentei la pene

Elemente utilizate pentru asigurarea rezistentei la pene

BDD - Consideratii generale



Fragmentarea - partitionarea

Fragmentarea orizontala

Fragmentarea verticala

Fragmentarea mixta

Fragmentarea derivata

Relatii nefragmentate

Replicarea

Proiectarea alocarii

Arhitectura de referinta a unui sistem distribuit

REZISTENTA LA PANA SI SECURITATEA DATELOR

Domeniu vast - protectia la pene hard si utilizare gresita a datelor. In acest domeniu intra:

  • securitatea datelor in caz de pana hard - reluarea bazei de date dintr-o stare coerenta si re-executarea tranzactiilor pierdute;
  • autorizarea accesului la BD.

Multe aspecte specifice: securitatea BD statistice, criptografierea etc.

  1. Principiile rezistentei la pene

Model redus: SGBD = sistem tranzactional + memoria auxiliara.

Cauzate: umiditate, erori de programare, functionara gresita a echipamentului etc. Tipuri de pene:

  • pana de actiune - executarea gresita a unei comenzi SGBD - detectat de sistem care returneaza un cod de eroare programului de aplicatii; se corecteaza eroarea si se continua tranzactia;
  • pana unei tranzactii - tranzactia nu poate continua ca urmare a erorilor de programare, inter-blocajului sau a unei ordonari gresite la acces concurent - o pana nerecuperabila etc.; se anuleaza punerile la zi facute de tranzactie;
  • pana de sistem - se opreste sistemul; de regula nu afecteaza memoria auxiliara, dar se pierd tranzactii din memorie;
  • pene de memorie auxiliara din cauza hard sau a unor scrieri gresite → distrugerea partiala a datelor - eroare catastrofala.

Frecventa penelor [Gray] primele doua la cateva minute, pene de sistem, de cateva ori pe luna, de memorie auxiliara sunt rare - se refac dupa arhive si pot fi nerecuperabile.

  1. Obiectivele rezistentei la pene

Obiectiv central - simplificarea muncii de recuperare a datelor dupa pana. In general unitatea de tratare atomica - tranzactia. De exemplu, un transfer de bani la banca <A←A-x, B+x→B> sau se executa amandoua sau niciuna.

primul obiectiv este de furnizarea unui protocol care sa permita efectuarea, anularea sau reluarea tranzactiilor (protocol do, undo, redo). Rezulta ca protocolul se compune din 3 actiuni atomice acceptate integral sau respinse integral. Cele 3 actiuni corespund la validare (denumit si commitment - a comite/consemna, consolidation si confirmation), anulare (denumit si abandon sau abort) si reluare (restaurare sau re-executie).

Validarea tranzactiei (Transaction Commitment) - executarea unei actiuni atomice speciale COMMIT, in general la sfarsitul tranzactiei, care are ca efect integrarea tuturor modificarilor in BD.

Anularea tranzactiei (Tranzsaction Abort) - executarea unei actiuni atomice ABORT, in general dupa o pana, anuleaza toate punerile la zi din baza efectuate de tranzactii. Anularea unei tranzactii nevalidate este mult mai simpla decat a uneia deja validate.

Reluarea tranzactiei (Transaction Recovery) executarea unei actiuni atomice speciale RECOVERY, care permite refacerea modificarilor efectuate de o tranzactie anulata in prealabil.

  1. Elemente utilizate pentru asigurarea rezistentei la pane
  • Memorie stabila/sigura (Stable Memory) - memorie fizica impartita in pagini care fie se scriu integral corect, fie nu se scriu deloc - de regula se bazeaza pe dubla scriere. In general SGBD-urile lucreaza cu astfel de memorii.
  • Jurnale (Log) - metoda cea mai uzuala de anulare sau reluare a unei tranzactii.

Jurnal cu Imaginea Dinainte (Before Image Log) - Fisier sistem care contine valorile (imaginile) paginilor inainte de modificare, in ordinea modificarilor, cu indicatorii tranzactiilor care au efectuat modificarile, precum si inregistrari cu inceputul, validarea sau anularea tranzactiilor.

Jurnal cu Imagini de dupa (Before Image Log) - Fisier sistem care contine valorile (imaginile) paginilor dupa modificare in ordinea modificarilor, cu indicatorii tranzactiilor care au efectuat modificarile, precum si inregistrari cu inceputul, validarea sau anularea tranzactiilor.

In principiu exista si jurnale cu modificarile atat dinainte cat si de dupa modificare. Structura unui astfel de jurnal este in principiu:

IDT

Identificatorul tranzactiei

HMO

Ora de modificare

FMO

Fisier modificat

ADP

Adresa paginii modificate

IMA

Imaginea dinainte de modificare

IMP

Imaginea de dupa modificare

Modificarile legate de o tranzactie pot fi grupate in jurnal pentru optimizarea utilizarii.

Modificarile uzual in buffere - volatile → modificarile in baza si jurnal. Rezulta ca scrierea in jurnal trebuie inaintea celei in baza.

  • Salvare (Backup Copy) - copie a unei BD in stare coerenta - de regula la inceput de saptamana, zi, ora, etc. Pentru salvare nici o tranzactie nu trebuie sa fie activa. Se utilizeaza un mecanism sofisticat de blocare.
  • Punct de reluare sistem (System checkpoint) - punct in care se memoreaza starea sistemului pe memoria auxiliara si de la care se poate relua executia in caz de pana - imagine de memorie operativa, starea lucrarilor in curs, punctele curente din fisierele secventiale - in particular jurnal, etc. Se memoreaza in general in jurnal. Reluarea se executa de regula de la ultimul punct de reluare a sistemului. Reluarea de la punct de repriza este o operatie costisitoare si de aceea sunt teorii de optimizare a frecventei reluarilor.

BDD - Consideratii generale

Initial BDD - hibrid = sistemul cu prelucrare distribuita + un sistem centralizat de BD.

Precursor - o baza de date centrala exploatata prin intermediul unei retele de calculatoare.

  • Punctele forte: integrarea aplicatiilor si a datelor din cadrul unei organizatii, simplitatea proiectarii.
  • Neajunsuri - accesul concurent, vulnerabilitatea si disponibilitatea nodului central, numar relativ scazut de utilizatori si accese concomitente; viteza scazuta si "distanta" acceselor.


Primitive - sistemele centralizate au o cota destul de ridicata in implementarile existente si o varianta buna - pentru "comunitatile informatice" de dimensiuni mici - preferabila sistemelor distribuite.

D1: BDD - colectie de date integrate logic, insa repartizate fizic pe siturile unei retele de calculatoare.

D2.: BDD - ansamblu de BD administrate de diferite situri, care apar pentru utilizator ca o baza unica → proiectate sub forma unor colectii de date integrate, omogene sau nu, imprastiate intr-o retea de calculatoare sub forma unei BD globale.

Doua elemente importante:

  • Integrarea logica - datele inmagazinate nu sunt simple colectii de fisiere -    o structura bine organizata pe care utilizatorul - potrivit unor principii - trebuie s-o perceapa ca facand parte dintr-o singura BD globala, la fel ca si in cazul BD locale sau centralizate;
  • Repartizarea fizica - BD nu este stocata intr-o singura locatie - impartita intre mai multe statii de lucru.

Exemplul FSEGA sau a unei firme.

Aparitia retelelor de calculatoare - prim pas in integrarea informatiei existente intr-o companie. Integrarea tehnologiei BD cu cea a retelelor → o tehnologie mult mai puternica decat era fiecare dintre cele doua domenii anterior momentului hibridizarii.

Exemplu de SD intr-o companie:


SGBDD - obiectiv crearea unei "punti" intre "insulele de informatii". Ideea - accesibilitatea datelor necesare functionarii unei organizatii, oriunde s-ar afla ele, si de a le raspandi fizic, daca este cazul, in acele locatii unde vor fi utilizate cel mai des → rolul SGBDD - de a face ca o aplicatie sa poata efectua transparent diverse operatii asupra datelor imprastiate in mai multe BD, gestionate de diverse SGBD-uri, care ruleaza pe calculatoare cu tehnologii de fabricatie diferita si inzestrate cu SO diferite, toate fiind conectate prin retele de calculatoare de topologii diferite. SGBDD-ul - o extensie software si functionala a SGBD locale.

D: SGBDD - sistemul software care permite gestiunea BDD, facand distribuirea fizica transparenta pentru utilizatori.

Termeni: fragmentare, alocare si replicare.

Fragmentarea - partitionarea

D: Fragmentarea - procedeul de "spargere" a relatiilor utilizate intr-un SD prin operatii relationale de proiectie si selectie controlate, in vederea plasarii asa-numitelor fragmente rezultate in locul in care sunt cel mai frecvent solicitate datele pe care le contin.

O abordare a BD prin divizarea tabelelor in unul sau mai multe fragmente disjuncte, in scopul stocarii fizice.

[Connolly] premisele de baza pentru fragmentare:

  • Uzanta - Aplicatiile cu BD - multiutilizator se utilizeaza tabelele virtuale in detrimentul relatiilor - nu este nevoie de toate informatiile, atat ca si structura, cat si ca si continut, pe care o relatie intreaga este capabila sa le furnizeze → unitatea atomica de proiectare si utilizare in cadrul unor sisteme, nu va fi relatia, ci o subdiviziune a acesteia;
  • Eficienta. Distribuirea unor relatii intregi pe diferite statii de lucru ar anula aspectul "semantic" al siturilor in functionalitatea SD. Exemplu: in situl X localizat in Cluj - stocata relatia ce contine materiile de studiu, iar pe nodul Y aflat in Sighet relatia care contine datele de identificare a tuturor studentilor? Secretariatul din Cluj ar dori sa utilizeze informatiile privind studentii care frecventeaza cursurile in Cluj, iar cel din Sighet, informatiile referitoare la cei din Sighet. Abordare normala - datele studentilor din Cluj sa fie stocate pe situl X, iar a celor din Sighet pe situl Y - plasam datele in acel loc de unde vor fi solicitate cel mai des;
  • Paralelismul. Mai multe fragmente ale unei BD → sporirea accesului concurent - sistemul capabil sa raspunda aproximativ in acelasi timp la mai multe cereri. De exemplu, mult mai rapid se va raspunde unor cereri lansate simultan, una de pe situl X si una de pe Y, in cazul in care X solicita mediile studentilor ce frecventeaza cursurile in Cluj, iar Y ale celor din Sighet;
  • Securitate - un atac asupra unui sit n-ar afecta functionarea intregului sistem - doar fragmente ale bazei de date si nu intreaga baza sau relatii intregi. Pentru succesul atacului acesta ar trebui sa fie directionat asupra mai multor noduri, iar probabilitatea unui asemenea eveniment este mult mai mica decat cea a reusitei asupra unui singur nod.

Dezavantajele fragmentarii:

  • Complexitatea proiectarii. SD - mai greu de proiectat decat unul nedistribuit. Existenta fragmentelor → factori suplimentari, cum ar fi stabilirea locatiei unui fragment, optimizarea interogarilor etc.;
  • Performanta - unui SD chiar daca sunt mai mari decat ale unui sistem nedistribuit, lucrurile se pot complica in cazul unor interogari mai complexe care solicita informatii prea disparate (de pe mai multe situri);
  • Controlul integritati - dezideratul primordial al oricarui sistem tranzactional. Fata de abordarea in cazul unui sistem centralizat, existenta mai multor fragmente raspandite pe siturile sistemului, complica lucrurile.

Fragmentele rezultate trebuie sa indeplineasca conditiile:

  • Completitudinea fragmentarii. Divizarea unei relatii in fragmente - fragmentele sa asigure acoperirea intregii relatii initiale. Unele fragmente pot fi redundante, incalecandu-se astfel total sau partial → fragmentarea are ca obiectiv eliminarea aparitiei pierderilor informationale si nu cea a redundantelor.
  • Refacerea relatiei initiale. In orice moment sa poata fi reprodusa relatia initiala din care provin fragmentele. Operatorii de recompunere trebuie sa fie strict relationali.
  • Caracterul disjunct - o completare la completitudine. Fragmentele provenite din aceeasi relatie trebuie sa fie disjuncte, adica sa nu se suprapuna, atat ca tuple cat si ca atribute. Exceptie: pentru a nu pierde legatura intre datele unui tuplu si pentru a putea face recompunerea cu usurinta, cheile primare trebuie replicate pentru fiecare fragment creat de-a lungul atributelor. Unele SGBD-uri utilizeaza atribute ascunse, in locul cheii primare - prin generarea automata a unor valori unice pentru fiecare tuplu - chei de replicare.

In functie de operatorii relationali care se aplica asupra relatiilor, fragmentarea (partitionarea): orizontala, verticala si mixta. Uneori situatia impune necesitatea unor fragmentari derivate sau chiar a unor relatii nefragmentate.

Limitele in care se incadreaza fragmentarea sunt de la un tuplu - in cazul fragmentarii orizontale - un atribut (in cazul celei verticale), sau o valoare a unui tuplu, in cazul celei mixte, pana la intreaga relatie in toate cazurile enumerate sau pana la intreaga BD in cazul fragmentarii derivate → granulatia fragmentarii. Ce, cum si cat fragmentam - intrebarile pe care si le pun proiectantii de BD.

Fragmentarea orizontala

Se face de-a lungul tuplelor unei relatii → fragment orizontal - format dintr-o submultime a tuplelor unei relatii, submultime obtinuta in urma unei operatii de selectie. Restrictia trebuie sa asigure o descompunere ortogonala in fragmente orizontale.

Reprezentarea simbolica a unui fragment orizontal F, obtinut dintr-o relatie R, prin specificarea modalitatii de obtinere:

Fi: σp(R), Fi reprezinta numele fragmentului, p - un predicat bazat pe unul sau mai multe atribute ale relatiei, iar R reprezinta denumirea relatiei. σ este simbolul operatiei de restrictie (selectie).

Reprezentarea intuitiva a fragmentelor orizontale, poate fi urmatoarea:

Fragment orizontal

Fragment orizontal

Fragment orizontal

In relatia STUDENT avem atributul Locatia - locul unde urmeaza cursurile studentii de la FSEGA. Considerand ca acestia pot sa fie intr-una din cele doua locatii posibile, avem fragmentele:

CJ_STUD: σLocatia = "Cluj"(STUDENT)

SM_STUD: σLocatia = "Sighet"(STUDENT)

→ doua fragmente:CJ_STUD pentru studentii inscrisi la Cluj si fragmentul SM_STUD pentru studentii inscrisi la FSEGA Cluj-Napoca, dar care frecventeaza cursurile in Sighet. Cele doua fragmente indeplinesc cele trei reguli, si anume:

  • Completitudinea: Studentii inscrisi la FSEGA sunt studenti fie in Cluj, fie in Sighet → impreuna cele doua fragmente sunt definite pe intreg domeniul atributului Locatia, neexistand posibilitatea ca sa avem studenti care sa urmeze cursurile in alta localitate.
  • Capacitatea de refacere a relatiei initiale: in orice moment se poate recompune relatia initiala din cele doua fragmente, printr-o simpla operatie de reuniune: CJ_STUD SM_STUD = STUDENT. Caracterul disjunct: Nici unul din studenti nu poate fi arondat atat sediului din Cluj, cat si celui din Sighet.

In proiectarea fragmentelor se tine cont de aspectul logic si cel statistic.

  • Componenta logica a unui fragment - data de predicatul pe baza caruia se face fragmentarea. Acesta poarta numele si de calificare.
  • Proprietatile statistice se refera la afinitatea (numar si frecventa) unor aplicatii sau cereri pentru fragmentul in cauza.

Fragmentarea verticala

Fragmentarea verticala - de-a lungul atributelor unei relatii → operatii de proiectie asupra atributelor - includerea in fiecare fragment a unei chei alternative a relatiei. Scopul - obtinerea unei descompuneri fara pierderi, deci sa verifice cele trei conditii impuse fragmentarii, de orice fel ar fi ea.

  • Completitudinea fragmentarii
  • Refacerea relatiei initiale
  • Caracterul disjunct

Simbolistica: fragment vertical Fi - prin proiectia atributelor a1, a2, , an ale unei relatii R:

Fi: Πa1, a2, ,an(R), Π reprezinta proiectia din algebra relationala.

Reprezentarea nu este fidela deoarece ascunde detaliile referitoare la tributul sau grupul de atribute de replicare. Pentru o imagine mai exacta ar fi trebuit sa hasuram o portiune suplimentara pentru cheia de replicare.

Exemplu: Relatia LOCALITATI(CodLoc, Loc, CodJud). Numarul redus de atribute si dimensiunea unui tuplu, precum si a relatiei in sine, nu ar justifica o astfel de fragmentare. Totusi putem avea urmatoarele fragmente:

L_LOC: ΠCodLoc, Loc(LOCALITATI)

J_LOC: ΠCodLoc, Jud(LOCALITATI)

In ambele fragmente - includem cheia primara a relatiei LOCALITATI. Ele trebuie sa respecte urmatoarele reguli:

  • Completitudinea: Relatia initiala, formata din atributele CodLoc, Loc si Jud isi regaseste toate atributele in cele doua fragmente in care a fost descompusa. Astfel, CodLoc e in ambele, Loc in L_LOC, iar Jud in J_LOC.
  • Capacitatea de refacere a relatiei initiale: datorita propagarii cheii primare in ambele fragmente, recompunerea relatiei initiale se poate realiza oricand printr-o simpla operatiune de JOIN.
  • Caracterul disjunct: Cu exceptia atributului cheie primara fiecare din celelalte doua atribute se afla cate unul in cate un fragment. Astfel, nu putem sa vorbim de o suprapunere de atribute.

Partitionarea verticala - mult mai complexa decat cea orizontala.

In fragmentarea orizontala numarul de variante posibile la un numar dat (n) de predicate simple este 2n. La un numar dat de m atribute non-cheie ale unei relatii, numarul de variante de fragmentare verticala este valoarea unei functii B(m), care reprezinta al m-lea numar Bell. Pentru valori mari ale lui m, numarul de variante posibile tinde spre 10m. De exemplu, pentru m=15, B(m) 109, iar pentru m=30, B(m)

2 modalitati de abordare a proiectarii fragmentarii verticale:

  • Gruparea atributelor. Propusa prima data spre a fi utilizata in BD centralizate in 1979; 1985, in BDD. Initial stabilirea cate unui fragment pentru fiecare atribut - apoi, pana la satisfacerea unor criterii stabilite se agrega noi atribute. Aceasta tehnica incalca proprietatea de disjunctivitate a fragmentelor → se recomanda ca atributele replicate sa nu fie deloc, sau eventual doar rar actualizate;
  • Partitionarea atributelor. Tehnica - discutata si propusa pentru BD centralizate in 1975, extinsa in 1984 si in cazul    BDD. Se porneste de la schema initiala a relatiei si pe baza unor criterii statistice (numar de accese din partea aplicatiilor) se constituie in fragmente separate.

In general se aplica cea de-a doua metoda. Pentru stabilirea atributelor care vor face parte dintr-un anumit fragment se identifica mai intai aplicatiile (cererile) care actioneaza asupra acestor atribute.

Fragmentarea mixta

Fragmentarea mixta -hibrida, nu reprezinta un tip special de fragmentare - o combinatie a celorlalte doua. Combinatia se datoreaza aplicarii celor doi operatori din algebra relationala utilizati pentru fragmentarea pe orizontala si pentru cea pe verticala. In functie de ordinea in care sunt aplicati, putem sa avem doua tipuri de fragmentari mixte:

daca mai intai avem o operatie de selectie, urmata apoi pentru fiecare fragment, de operatii de proiectie → fragmente orizontale partitionate vertical.

daca ordinea operatiilor este inversata → fragmente verticale partitionate orizontal.

→ reprezentarea simbolica se vor folosi notatiile deja amintite. Un fragment din cadrul unei partitionari hibride poate fi descris ca fiind rezultatul aplicarii fie a unei operatii de proiectie asupra uneia de restrictie, fie rezultatul unei restrictii aplicat asupra rezultatului unei proiectii:

Fi: Πa1, a2, ,anp(R)) sau Fj: σpa1, a2, ,an(R))

F1

F2

F3

F4

F5

F6

F1

F3

F4

F2

F5

F6

Tipuri de fragmente mixte

Din imagine → caracterul complet al fragmentarii mixte, indiferent de cazul analizat. Cele 6 fragmente acopera pe de-a-ntregul relatia studiata.

Reconstructia se face prin operatii de join si reuniune.

R = (F1    F2) U (F3 F4 F5) U F6 sau

R = (F1 U F2)    F3 (F4 U F5 U F6)

Caracterul disjunct - nici un fragment nu incalca un alt fragment.

Fragmentarea derivata

Fragmentarea derivata - un tip mai aparte de fragmentare, chiar daca in practica este cel mai des intalnita. S-a vorbit de fragmentari a caror sursa erau relatii intregi stocate in cadrul a diferitelor situri. Fragmentarea derivata - impusa de anumite nevoi practice menite sa optimizeze accesul la date prin reducerea timpului de transmisie in retele. Chiar daca asemenea practici contravin intr-o anumita masura procesului normalizarii - cvasiutilizate. In crearea vederilor, fragmentarea derivata presupune crearea unor fragmente orizontale bazate pe mai multe relatii aflate in situri diferite. Deoarece sistemul distribuit ar fi suprasolicitat in cazul executiei ad-hoc a unei astfel de interogari, daca probabilitatea de repetare a acestor cereri este destul de mare, s-a optat pentru aceasta solutie, chiar cu riscul cresterii redundantei informationale in cadrul sistemului distribuit. Fragmentarea derivata este o fragmentare orizontala care se face intre doua relatii: una parinte si cealalta fiu. Se va porni de la relatia copil, care va fi fragmentata conform predicatului prestabilit. Predicatul implica in mod obligatoriu cheia externa. Dupa obtinerea fragmentelor orizontale din relatia copil, se face join cu fragmentele - tot orizontale ale relatiei parinte - corespunzatoare aceluiasi predicat (in care este implicat, deci cheia primara). Asocierea se va face pe o operatie de semi-join din algebra relationala. In cazul in care tipul de entitate reprezentat de relatia copil este cu participare totala fata de tipul de entitate parinte, atunci in fragmentele rezultate vor fi cuprinse toate tuplele din relatia parinte. In caz contrar anumite tuple vor ramanea nereprezentate in niciunul dintre fragmente. Chiar si asa, fragmentele rezultate satisfac cele 3 cerinte primordiale ale fragmentarii.

Exemplu: In conditiile in care relatia LOCALITATI(CodLoc, Loc, CodJud) ar fi stocata pe situl X, iar JUDETE (CodJud, Jud) in cadrul sitului Y, atunci am putea efectua o fragmentare derivata pentru aceste doua relatii. Atunci cand relatia JUDETE contine nomenclatorul complet al judetelor, atunci s-ar putea ca nu tot continutul ei sa reapara in reuniunea fragmentelor rezultate. De exemplu daca nu vom avea nici un student nascut sau domiciliat in nici una din localitatile judetului Teleorman. Fragmentele vor avea structura LOC_JUD(CodLoc, Loc, CodJud, Jud), iar predicatele de selectie vor fi de genul CodJud="CJ", CodJud="MM" s.a.m.d.

Relatii nefragmentate

Nu intotdeauna fragmentarea va fi eficienta si nu va fi aplicata. Relatiile care se preteaza la o astfel de abordare sunt acelea care au un numar relativ mic de inregistrari. In astfel de situatii se recomanda fie replicarea acestora pe fiecare sit in parte, fie mentinerea lor in acele noduri unde se utilizeaza cel mai des, iar in cazul unei cereri la distanta care le solicita, strategia optima ar fi cea de mutare a acestei relatii, si nu a celorlalte, fie in situl din care s-a solicitat cererea, fie intr-un alt sit in care exista deja una sau mai multe din relatiile implicate.

In aceasta situatie s-ar putea afla relatia LOCATII care ar descrie locatiile (localitatile) in care se desfasoara cursurile pentru studentii inscrisi la FSEGA din Cluj.

La optimizarea interogarilor o astfel de strategie este salutara, atunci cand se pune problema actualizarilor pentru toate copiile, situatia se complica intr-o oarecare masura. Totusi, daca actualizarile la nivelul tabelelor se desfasoara relativ rar - cel mult o data pe an - replicarea chiar si totala este de bun augur.

Replicarea

Aspectele importante pentru sistemele distribuite - fiabilitatea si disponibilitatea → pana in unul dintre siturile sistemului nu va paraliza functionarea sistemului si nu va afecta disponibilitatea datelor care au fost inmagazinate in situl respectiv. Atingerea acestei performante se poate realiza cu ajutorul replicarii fragmentelor.

Replicarea = reproducere - copierea unor fragmente in mai multe locatii. Exista mai multe nivele de replicare:

BD centralizate - sistemele cu prelucrare distribuita (centralizate) - o BD stocata pe nodul central si singur SGBD. Caracterul local al referintei scazut - nodul central poate face accesari sau prelucrari locale. Securitatea, fiabilitatea si disponibilitatea - scazute si depind in cea mai mare masura de nodul central. Costul comunicatiei este ridicat;

BD partitionate, fragmentate - nereplicate - BDD la care toate fragmentele apar o singura data. Cel mai scazut cost al stocarii. Nu ofera fiabilitate si nici disponibilitate ridicata, dar mai mare decat in cazul sistemelor centralizate. Caracterul local al referintei este la un nivel acceptabil. Costurile de comunicatie sunt mai moderate. Actualizarile si consultarile se fac eficient;

BD replicate integral - fiecare sit contine cate o copie a intregii BD. Caracterul local al referintei, disponibilitatea, securitatea si fiabilitatea sunt maxime. Costul ridicat al echipamentelor de stocare - comunicatia aglomerata in cazul actualizarilor. O rezolvare partiala a acestor inconveniente - utilizarea instantaneelor, adica imagini ale BD care se actualizeaza periodic. Dezavantajul - nu intotdeauna ofera o situatie actualizata, iar in momentul actualizarii se genereaza trafic mare pe retea;

BD replicate partial - selectiv. Anumite fragmente sunt replicate, altele nu. Sunt replicate fie acele fragmente cu utilizare frecventa, fie relatii intregi de dimensiuni mici care nu merita sa fie fragmentate, ci mai degraba memorate pe fiecare sit - relatii sau fragmente cu actualizari sporadice. Aceasta strategie este o imbinare a celor 3 enuntate anterior. Incearca sa le preia avantajele si sa le minimizeze dezavantajele. De aceea aceasta se implementeaza cel mai adesea. Costurile de comunicatie si de stocare - relativ reduse. Caracterul local al referintei, securitatea, fiabilitatea si disponibilitatea sunt apropiate de maxim.

Replicarea favorizeaza performantele sistemului la consultare dar     la actualizari, replicarea poate constitui un impediment: se genereaza trafic suplimentar, pot aparea inconsistente datorita indisponibilitatii temporare a unei replici.

Proiectarea alocarii

Fie un set de fragmente F = intr-o retea formata din siturile S = si asupra carora se executa anumite aplicatii (interogari) Q = . Problema proiectarii alocarii - distribuirea optima a fragmentelor F pe siturile S.

Dowdy si Foster, "optimul" se refera la:

  • Cost minim - Functia cost reflecta:
    • costul plasarii fragmentului Fi pe situl Sj
    • costul interogarii lui Fi din Sj
    • costul actualizarii tuturor fragmentelor Fi plasate in toate siturile si costul comunicatiei.

In functie de acest criteriu problema alocarii este de a gasi o schema care sa minimizeze toate aceste costuri;

Performanta - Strategia de proiectare tine cont de mentinerea unui anumit nivel de performanta. Se face prin minimizarea timpului de raspuns si maximizarea capacitatilor sistemului ca masura a contributiei fiecarui sit.

Alocarea poate sa fie neredundanta/ redundanta.

Alocarea neredundanta - mai ieftina in ce priveste efortul de proiectare si cea mai usor de realizat. Alt avantaj - posibilitatea de actualizare a fragmentelor. Realizarea unei astfel de proiectari se bazeaza pe metoda celei mai bune alegeri: unei statii pe care deja a fost plasat un fragment, nu poate sa-i mai fie alocat un fragment "inrudit".

Alocarea redundanta este o problema de proiectare mult mai complexa. Mai mult, atat consultarile de date cat si actualizarile sunt problematice. Exista doua variante de abordare a proiectarii in acest caz.

Arhitectura de referinta a unui sistem distribuit

Arhitectura ANSI-SPARC pentru sisteme centralizate, prin initiativa comuna a doua organisme: Institutului National American pentru Standarde (ANSI) si Comitetul de Planificare si Cerinte privind Standardele (SPARC). Desi intentia era una de standardizare a proiectarii acestor sisteme, arhitectura amintita s-a impus doar ca una de referinta, larg uzitata in mediile academice si chiar pragmatice ale bazelor de date. Datorita complexitatii domeniului bazelor de date distribuite fata de cele centralizate, impunerea unei arhitecturi standardizate ar fi cu mult mai greu de realizat.


O arhitectura de referinta pentru un SGBDD

Arhitectura este formata din:

schemele externe globale, care reprezinta viziunea fiecarui utilizator asupra sistemului;

schema conceptuala globala - o imagine completa a intregii BD, fara a lasa impresia ca aceasta ar putea fi una distribuita;

schema de fragmentare - reprezinta ideea proiectantului de partitionare a BD;

schema de alocare se refera la modul de amplasare fizica a fragmentelor si replicilor acestora in vederea deservirii optime a interogarilor si tranzactiilor sistemului distribuit;

pentru fiecare sit avem o arhitectura ANSI-SPARC pe trei nivele:

o       schema de transformare reflecta o armonizare de interese intre fragmentele amplasate conform schemei de alocare si vederile utilizatorilor bazei de date locale;

o       schema conceptuala locala este descrierea logica a bazei de date amplasate pe un anumit sit;

o       schema interna locala indica modalitatea de stocare a datelor locale (reprezentarea fizica a bazei de date locale).

Nivelul extern este cel mai apropiat de utilizator - nivelul logic al utilizatorului si reflecta modul in care sunt vazute datele de catre utilizatorii finali, indiferent daca acestia sunt operatori, programatori etc. Referitor la BD de evidenta a studentilor, anumiti utilizatori sunt interesati de situatia scolara. Utilizatorii pot avea viziuni diferite asupra unor elemente, cum ar fi denumirea cu care s-au obisnuit pentru numarul matricol sau faptul ca numele unui student este separat sau nu in nume si prenume.

Nivelul conceptual - presupune reuniunea "semantica" a tuturor schemelor externe, adica reflecta viziunea globala asupra bazei de date (logica bazei de date). In plus contine constrangeri de integritate si securitate. Se comporta ca un strat intermediar intre celelalte doua nivele. Vederea conceptuala nu trebuie sa coincida integral sau partial cu nici o vedere externa sau interna.

Nivelul intern reprezinta nivelul inferior al arhitecturii ANSI/SPARC, prin intermediul caruia baza de date este reprezentata aproape de nivelul fizic. Schema interna prezinta implementarea schemei conceptuale prin utilizarea SGBD-urilor. Totusi, la acest nivel nu vom vorbi de blocuri, pagini, sectoare sau piste. La acest nivel se lucreaza cu "inregistrari interne" [Date 2005]. Schemele interne definesc tipurile de inregistrari memorate, indexurile, modul de reprezentare a campurilor, numerele de secventa s.a.m.d.

→ avem o singura BD cu o singura schema conceptuala globala. Tinand cont de schema de fragmentare si de cea de alocare schema conceptuala globala este implementata pe siturile sistemului distribuit. Fiecare sit prezinta propria schema interna si conceptuala, precum si o schema de transformare locala. Schemele externe sunt independente de SGBD si asigura interfata cu sistemul distribuit. Mai mult, ele confera suport pentru sistemele federative.

Arhitectura prezentata este una orientativa, de care se poate sau nu tine seama. In functie de specificul sistemului distribuit, o serie de componente ale acesteia pot fi ignorate.



[Connolly et al. 2001]

[Mohan et al. 1986]

[Connolly et al. 2001]

exemplu preluat din [Connolly et al. 2001], pagina 628





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate