Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
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
REZISTENTA LA PANA SI SECURITATEA DATELOR
Domeniu vast - protectia la pene hard si utilizare gresita a datelor. In acest domeniu intra:
Multe aspecte specifice: securitatea BD statistice, criptografierea etc.
Model redus: SGBD = sistem tranzactional + memoria auxiliara.
Cauzate: umiditate, erori de programare, functionara gresita a echipamentului etc. Tipuri de pene:
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.
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.
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.
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.
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:
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.
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:
Dezavantajele fragmentarii:
Fragmentele rezultate trebuie sa indeplineasca conditiile:
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.
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:
In proiectarea fragmentelor se tine cont de aspectul logic si cel statistic.
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.
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:
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:
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 -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, ,an(σp(R)) sau Fj: σp(Πa1, a2, ,an(R))
|
|
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 - 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.
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.
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.
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:
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 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.
Copyright © 2024 - Toate drepturile rezervate