Pagina documente » Informatica, Matematica » Managemantul tranzactiilor in baze de date relationale

Despre lucrare

lucrare-licenta-managemantul-tranzactiilor-in-baze-de-date-relationale
Aceasta lucrare poate fi descarcata doar daca ai statut PREMIUM si are scop consultativ. Pentru a descarca aceasta lucrare trebuie sa fii utilizator inregistrat.
lucrare-licenta-managemantul-tranzactiilor-in-baze-de-date-relationale


Cuprins

CUPRINS
Pag.
Capitolul I - Introducere...6
Capitolul II - Tranzactii...8
2.1 Conditii de terminare a tranzactiilor............10
2.2 Proprietatile tranzactiilor...........12
2.3 Formalizarea conceptului de tranzactie....14
Capitolul III - Controlul concurentei...17
3.1 Anomalii de interferenta..........18
3.2 Primitivele LOCK si UNLOCK.20
3.3 Unitati de acces......22
3.4 Serializabilitate......22
3.5 Formalizarea conceptului de serializabilitate..24
3.6 Algoritmi de control al concurentei in bazele de date centralizate........28
3.7 Gestiunea interblocarilor in baze de date centralizate.......41
Capitolul IV - Algebra relationala.......49
4.1 Algebra relationala........51
4.2 Calculul relational pe tupluri.....56
4.3 Reducerea algebrei relationale la calculul relational pe tupluri...........59
4.4 Calculul relational pe domenii...60
4.5 Reducerea calculului relational pe tupluri la calculul relational pe domenii...61
4.6 Reducerea calculului relational pe domenii la algebra relationala........62

EXTRAS DIN DOCUMENT

?

CAPITOLUL I

INTRODUCERE

Mecanismele tranzactionale nu sunt o noutate in lumea bazelor de date. În anii 70, la doar cateva sute de kilometri distanta, laboratoarele IBM de la San Jose si Universitatea Berkeley dezvoltau in paralel primele sisteme relationale, System R si Ingres, ambele cuprinzand anumite forme de procesare tranzactionala. Începand de atunci, toate SGBD-urile importante incorporeaza mecanisme tranzactionale.

Procesarea tranzactiilor are ca scop pastrarea integritatii bazei de date. Trebuie insa precizat ca mecanismele tranzactionale nu sunt singurele care se ocupa de pastrarea integritatii. Mai precis, procesarea tranzactiilor se refera doar la doua aspecte:

Recuperarea bazei de date dupa un incident (database recovery) – se bazeaza pe includerea unui anumit nivel de redundanta prin memorarea istoriei tranzactiilor intr-un asa-numit “jurnal” (log). Desi acest aspect nu face subiectul articolului de fata, anumite elemente tehnice privind jurnalizarea vor fi utilizate in continuare.

Controlul interferentelor care pot avea loc intre tranzactiile care se executa in mod concurent (concurrency control) – este un aspect critic in sistemele de aplicatii OLTP (On-Line Transaction Processing). Este vorba despre “controlul” (si nu neaparat “evitarea”) interferentelor deoarece, desi intotdeauna nedorite, aceste interferente pot fi permise – in anumite forme bine precizate – pentru a creste performentele sistemului.

Progresele informaticii, atat la nivel hardware cat si software: scaderea costului hardware-ului si cresterea considerabila a puterii de calcul au condus la o generalizare a utilizarii informaticii in toate domeniile de activitate.

În consecinta, in perioada ultimilor ani au aparut domenii de aplicatii mai putin clasice, ca de exemplu: CAD (Proiectarea asistata de computer), birotica, aplicatii pentru gestiunea datelor spatiale sau geografice etc. Aceste aplicatii, au scos in evidenta limitele modelului relational de date in ceea ce priveste reprezentarea, stocarea si prelucrarea informatiilor complexe.

Noile tipuri de date, precum sunetul, imaginea si grafica, din ce in ce mai frecvent utilizate nu pot fi prelucrate in cadrul sistemelor de gestiune de baze de date relationale.

Limitele modelului relational de date sunt generate pe de o parte de incapacitatea de reprezentare structurala a informatiilor si, pe de alta parte de imposibilitatea de a reprezenta in totalitate semantica acestor informatii.

Singura structura de date disponibila in modelul relational este tabloul cu doua dimensiuni, care materializeaza o relatie n-ara intre mai multe domenii elementare de valori, si care nu permite reprezentarea directa a obiectelor complexe care contin adesea mai multe nivele de imbricare, fiind necesara descompunerea obiectelor in mai multe relatii, iar reconstituirea obiectelor complexe pornind de la relatii este o operatie dificila.

De asemenea, datele stocate sunt pur descriptive, esenta semanticii asociata acestor date se gaseste in programele de prelucrare, doar restrictiile de integritate permit reprezentarea unui anumit nivel al semanticii asociata datelor.

Mai mult, sistemele relationale au inceput sa-si dezvaluie limitele si in ceea ce priveste puterea de calcul. Limbajele de interogare, in general declarative, nu permit exprimarea tuturor prelucrarilor.

O aplicatie clasica de gestiune a produselor complexe, formate din repere elementare si/sau compuse isi propune, de exemplu, calculul pretului unui produs, constituit din pretul de baza pentru reperele elementare si costul de asamblare pentru reperele compuse. Un astfel de calcul trebuie sa se aplice recursiv tuturor elementelor care intervin in componenta produsului considerat. Aceasta operatie nu poate fi realizata cu un limbaj de interogare declarativ precum SQL.

Programatorul aplicatiei este obligat sa utilizeze doua limbaje de programare: un limbaj imperativ (Cobol, Pascal, C) si un limbaj declarativ (SQL). Aceste doua limbaje utilizeaza concepte de programare diferite si nu comunica intre ele intr-un mod armonios: sistemele lor de tipuri sunt diferite, limbajul declarativ accesand un ansamblu de inregistrari, in timp ce limbajul imperativ acceseaza doar cate o singura inregistrare.

Limitele sistemelor relationale ar putea fi inlaturate prin anumite abordari ale orientarii obiect. Nu exista o terminologie stricta pentru a denumi modelele, limbajele si sistemele care se inspira din conceptul de obiect. Se pot utiliza deci, in egala masura termenii ?pe obiecte?, ?orientate obiect? sau simplu ?obiectuale? pentru a califica sistemele si limbajele evocate.

Cercetarea in domeniul bazelor de date s-a axat pe furnizarea de solutii pentru problemele expuse anterior. Au fost urmate in special doua directii de cercetare:

1) Elaborarea unor modele de date mai bogate si mai puternice decat modelul relational, care s-a concretizat prin doua abordari:

- Extinderea modelului relational prin eliminarea restrictiei de reprezentare a datelor sub forma de relatii care nu mai sunt in prima forma normala. De aici au rezultat mai multe propuneri care generalizeaza notiunea de relatie prin introducerea constructorilor “multime”, “tuplu” si „lista” oferind astfel posibilitatea modelarii multimilor de tupluri, dar si a multimilor de multimi etc. Aceste modele sunt numite in general modele complexe orientate pe obiecte .

- Definirea de noi modele de date, independente de cel relational. Aceste modele, numite modele semantice, utilizeaza concepte si mecanisme de abstractizare care permit o modelare mai fidela a realitatii, valorificand anumite tehnici ale inteligentei artificiale cu privire la reprezentarea cunostintelor.

2) Definirea limbajelor de programare pentru baze de date (LPBD), care reunesc functionalitatile limbajelor de programare si cele ale bazelor de date. Aceasta directie de cercetare a avut in vedere urmatoarele obiective importante:

- Diminuarea sau chiar eliminarea disfunctionalitatilor intre limbajul de programare si limbajul de interogare prin integrarea modelului de date intr-un limbaj de programare, experiente care au generat limbajele Pascal/R si Adaplex.

- Integrarea notiunii de persistenta in limbajele de programare, elaborandu-se astfel limbaje de programare persistente (LPP), ceea ce permite conservarea datelor prelucrate prin programe dupa executia lor, fara implicarea directa a utilizatorului. Limbajele de programare PS-Algol si Galileo se constituie printre primele realizari ale acestei abordari.

3) Aparitia si dezvoltarea limbajelor orientate obiect (LOO) a avut o influenta determinanta asupra dezvoltarii noilor sisteme, atat in domeniul bazelor de date cat si al limbajelor. Limbajele orientate obiect care utilizeaza primitive de modelare asemanatoare celor specifice modelelor semantice, ofera posibilitati superioare de integrare a bazelor de date si limbajelor de programare.

Ca rezultat al cercetarilor s-au conturat trei mari categorii de sisteme de baze date:

a) sistemele care vizeaza extinderea modelului relational, numite sisteme de gestiune a bazelor de date relationale extinse (SGBDRE), se caracterizeaza prin adaugarea unor noi instrumente de modelare si programare:

* tipurile abstracte de date si reguli;

* limbaje de programare de nivel inalt, limbajele de generatia a patra (L4G).

b) sistemele bazate pe noile modele de date, numite sisteme de gestiune a bazelor de date orientate obiect (SGBDOO), care se caracterizeaza prin:

* utilizarea notiunii de obiect complex si a conceptelor din modelele semantice;

* preluarea din domeniul limbajelor de programare a tipurilor abstracte de date si a numeroase concepte orientate obiect, beneficiind, de asemenea, de experienta limbajelor de programare persistente.

c) sistemele bazate pe programarea logica, numite sisteme de baze de date deductive, care utilizeaza reguli de inferenta pentru a deduce noi fapte pornind de la cele stocate in baza, prin intermediul limbajelor de programare logica, precum Prolog sau Datalog.

Aparitia modelului relational de date la inceputul anilor ‘70 si sistemele de baze de date relationale care formeaza generatia de sisteme a anilor ‘80, constituie o realizare majora in domeniul bazelor de date. Bazat pe teoria relatiilor si pe logica, modelul relational a constituit o revolutie in raport cu sistemele bazate pe modelul de date ierarhic si retea.

Sistemele relationale reprezinta, cu certitudine, un stadiu avansat in domeniul utilizarii bazelor de date si au permis dezvoltarea unei tehnologii relationale importante, bine fundamentata teoretic.

Am putea rezuma avantajele modelului relational de date prin:

- Simplitatea conceptelor si schemei, prin utilizarea notiunii de relatie si a teoriei normalizarii;

- Un inalt grad de independenta a datelor, prin asigurarea independentei fizica si logica a datelor;

- Un bun suport teoretic, bazat pe teoria matematica a multimilor si pe logica;

- Limbaje de manipulare de nivel inalt, prin caracterul lor declarativ;

- Posibilitatea optimizarii accesului la baza de date, prin exploatarea proprietatilor algebrice ale operatorilor;

- Ameliorarea integritatii si confidentialitatii, prin utilizarea unor limbaje de interogare de nivel inalt si prin specificarea restrictiilor de integritate;

- Manipularea booleana a datelor, care ofera prelucrarea globala a datelor, asigura o gestiune automata si o posibila utilizare a paralelismului.

Toate aceste caracteristici ale modelului relational de date constituie o referinta in tendinta de elaborare a altor modele de date, multe dintre acestea incercand sa valorifice achizitiile realizate in decurs de cateva decenii de catre modelul relational.