Sunteți pe pagina 1din 12

utilizarea -----1detectarea interblocariilor -----2alg bolcarii initiale ----problemele indicate 3de concurenta ----3nf ----prelucrarea interogarilor

Calcul rela ional pe tuple

1972 de E.F.Codd interpretarea formulelor: 1. Variabilele se asociaz tuplelor; 2. Termeni: y constante asociate valorilor domeniilor corespunz toare atributelor (de exemplu RO U) y atributele care se noteaz calificat sub forma V.A, unde V este variabila ata at tuplelor, A nume atribut, de exemplu V.CULOARE. 3. Predicatele permit compara ii {=, >,}. 4. Definirea unei variabile ata ate tuplelor unei rela ii, sub forma V(R). Elementul esen ial - asocierea ntre tuplele unei rela ii i variabile.
Defini ie. Calculul rela ional pe tuple = limbajul de interogare - permite exprimarea cererilor pornind de la wff, unde variabilele sunt definite pe tuplele rela iilor. Limbajul QUEL

Zook 1977 pentru INGRES [Stonbraker 76], Berkeley i comercializat cu PDP -11 i VAX, ma ini de BD, exemplu IDM. QUEL - caracteristici: y calcul rela ional pe tuple + sintaxa englez y nu se utilizeaz cuantificatorii  sau  y variabila care nu apare n criteriu de proiec ie, nu se utilizeaz direct n compunerea rezultatului unei cereri, este implicit calificat cu  (cuantificator existen ial).
Declararea variabilelor

QUEL separ definirea variabilelor de expresia care indic cererea. Definirea variabilei se realizeaz prin clauza: RANGE OF variabil IS nume-de-rela ie Observa ii: 1. Variabila se asociaz unei rela ii. 2. Prin RANGE se pot asocia mai multe variabile mai multor rela ii. 3. Variabila i p streaz sensul pn la o nou defini ie de variabil / la sfr it de sesiune.

Calcul rela ional pe domenii

Pirote 1982: y se deduce din calculul predicatelor y variabilele - asociate domeniilor atributelor y interpretarea wff asem n tor ca la CR pe tuple. y predicatele = compara ii ntre: o variabile-constante o variabile-variabile y definirea variabilelor pe domeniile atributelor.
Calcul rela ional pe Domenii (CR) limbaj de interogare exprim cererile pornind de la wff - variabilele sunt ata ate domeniilor unui atribut dintr -o rela ie. Limbajul QBE

Query-By-Examples [Moshe Zloff 1977 IBM Yorktown Heights] comercializat de IBM din 1980. Se bazeaz pe reprezentare tabelar + calcul rela ional pe domenii.

Ideea este de a formula o cerere a utilizatorului pe baza unui exemplu de r spuns posibil la cerere. Pentru aceasta utilizatorul provoac afi area schemei rela iei pentru care dore te s pun ntrebarea (sub forma unui tablou gol). n urma tast rii numelui rela iei un tabel n care n antet apar numele atributelor ei.
1. Controlul accesului concurent Controlul concuren ei = partea SGBD -ului - asigur ca executarea simultan a tranzac iilor acela i rezultat ca i executarea serial (secven ial ) face partajarea datelor transparent utilizatorilor.

Sistem simplu & ineficient de blocare, de exemplu blocarea BD (Exemplu USE EXCLUSIVE VFP); performan ele sistemului scad exponen ial cu num rul de utilizatori - inacceptabil algoritmi simplii dar eficien i pentru gestiunea concuren ei = Problem complex multe solu ii par iale i incomplete. 2. Integritatea datelor BD accesat de procese concurente probleme importante: y asigurarea concordan ei lumii reale cu BD care o modeleaz y ob inerea unei BD coerente. i a dat

Schema BD = structura + restric iile de integritate. Restric ii de integritate = aser iuni care vor trebui verificate de date la un moment dat. BD coerent (consistent ) = BD n care sunt respectate restric iile de integritate implicite sau explicite. 3. Tranzac ie n contextul BD

n prelucrarea unei BD aceasta trece printr -o stare tranzitorie, n care nu se respect anumite restric ii de integritate. Tranzac ie = unitate de prelucrare secven ial , executat n contul unui utilizator, care se aplic unei BD coerente i o las ntr-o stare coerent Tranzac ie unitate de prelucrare atomic acceptat integral sau refuzat integral. Restric iile de integritate invariante pentru tranzac ii. SGBD execut secven e de tranzac ii pentru diver i utilizatori. Problemele de concuren apar n interac iunea dintre tranzac iile care partajeaz datele. Tranzac iile formate din ac iuni. Ac iune = unitate indivizibil (atomic ) executat n carul unei tranzac ii. Exemplu citirea unei date din memoria extern (Read X) / scrierea ei (Write X). 4. Problemele ridicate de concuren Pierderi de opera ii Execu ia simultan Inconsisten pierderi de opera ii. nc lcarea restric iilor de integritate:A=B

Distrugere incoeren Introducerea inconsisten ei n BD Citiri nereproductibile Tranzac ii care fac citirea nereproductibil , citind consecutiv de dou ori o valoarea din memoria auxiliar g se te valori diferite.

5. Caracteristicile execu iei f r conflict

concepte de baz

Controler (Scheduler) = modul care controleaz accesul concurent la date. Granul = Unitate din BD controlat individual de controler. Opera ie = ir de ac iuni care realizeaz - o func ie asupra unei granule cu respectarea integrit ii. Rezultatul unei opera ii = starea granulei de dup opera ie + efectele de bord ale efectu rii opera iei. 6. Execu ie serializabil

Execu ii pierdere de opera ii / inconsisten e. Scopul controlului inconsisten elor & execu ie f r pierdere de opera ii.

eliminarea

Observa ie. Dac execu ia tranzac iilor succesiv (serial ) nu sunt inconsisten e sau pierderi. Absen a conflictului nu se accept dect execu ii care dau acela i rezultat ca o execu ie independent pentru orice tranzac ie. Execu ie serializabil = E (eventual simultan ) - acela i rezultat ca o succesiune (execu ie independent ).

Controlul concuren ei = un sistem centralizat / distribuit asigur numai execu ii serializabile. Este condi ie suficient nu i necesar . 7. Grafe de preceden Preceden a poate fi definit n orice execu ie f r opera ii simultane, de exemplu n urma separ rii opera iilor compatibile. D. Preceden a = execu ie f r opera ii simultane. T i precede Tj (notat T i < Tj) opera ii nepermutabile O i i Oj ca Oi din T i precede pe O j din T j. No iunea de preceden graf de preceden . exist dou

Graful de preceden < Tj).

vrfuri = tranzac ii & exist un arc ntre T i i Tj Ti precede T j (adic Ti

1. Algoritmul ordon rii ini iale (totale) - tampilele tranzac iilor ( tamplie temporale) Prima metod : y mpiedicarea execu iilor neserializabile prin ordonare la lansare n execu ie y verificarea execu iei conflictuale pe aceea i granul se efectueaz ntr-o ordine prededfinit fiecare tranzac ie prime te o referin determinarea ordinii alese. unic tampil a tranzac iei, care permite

tampila tranzac iei (Transaction timestamp) = Valoare numeric asociat unei tranzac ii & care permite ordonarea acesteia n raport cu alte tranzac ii. n sistemele centralizate tampilele pot fi generate automat de server - mai dificil pentru sistemele distribuite. 2. Algoritmul de ordonare par ial Ordonan area total ordoneaz toate opera iile. n realitate trebuie ordonate numai cele nepermutabile: READ/WRITE, WRITE/READ, WRITE/ WRITE numai acestea combina ii trebuie verificate.

La fiecare granul se asociaz 2 tampile R & W, adic tampila tranzac iei cele mai noi care a executat citirea / scrierea pe granul . La READ se verific corectitudinea s -a fa de WRITE deci ultima tampil W. La WRITE se verific corectitudinea fa de READ & WRITE.

3. Algoritmul de ordonare par ial cu mai multe versiuni

Ordonarea par ial sistemul ntre ine:

ameliorat prin utilizarea mai multor granule. Pentru fiecare granul g

y un ansamblu de tampile de scriere {WW i(g)} cu valorile asociate {V i(g)}, fiecare dintre acesta corespunznd unei versiuni i; y o mul ime de tampile de citire {RR i(g)}

Algoritmul de blocare n dou faze

Controlul tranzac iilor s-a f cut prin controlul granulelor - execu iile tranzac iilor s fie ntr-o ordine predefinit . Dac nu se respect ordinea se suspend temporar unele dintre tranzac iile care au intervenit n conflict metoda const n detectarea execu iilor neserializabile & suspendarea tranzac iilor. O a doua strategie bazat pe blocare = prevederea gener rii de execu ii incorecte trecnd n a teptare tranzac iile care ar dori s efectuez opera ii conflictuale pe aceea i granul . Primul obiectiv = nu las s se execute deodat dect opera ii compatibile. D. Mod de operare = clas a unei opera ii care determin compatibilitatea cu altele.

4.2. Protocolul de blocare

Controler-ul nu permite executarea simultan pe aceea i granul dect a opera iilor compatibile trebuie s cunoasc : y nceputul execut rii unei opera ii asupra unei granule y modul de operare y terminarea execu iei opera iei. D. Protocol de blocare (Locking protocol) protocol de acces la granul caracterizat prin cereri de autorizare a opera iilor & semnalarea sfr itului acestor opera ii. 4.3. Algoritmi de blocare Algoritmul de blocare necesit definirea unei strategii n cazul n care modurile de operare cerute de executarea unui LOCK nu sunt compatibile cu cele care se execut pe granul . Metoda cea mai simpl este de a returna un r spuns granula ocupat . O strategie corect este de a bloca tranzac ia pn cnd se elibereaz granula. Pentru fiecare granul ocupat se ata eaz un fir de a teptare Q[g]. Acest fir con ine cererile de blocare (identificatorii tranzac iilor) n a teptare n ordinea priorit ilor (n general FIFO). 4.4. Blocarea n 2 faze Algoritmii de blocare permit executarea simult an pe o granul numai a opera iilor compatibile. Opera iile trebuie executate astfel ca execu ia tranzac iilor s fie serializabil (s dea acela i rezultat ca executarea n succesiune a tranzac iilor) trebuie s se restrng

ordinea de execu ie a opera iilor LOCK i UNLOCK. Aceast restric ie se nume te blocartea n 2 faze .

5. Problema interbloc rii / a blocajului mortal

D. Interblocarea (Deadlock) situa ia n care granulele au fost blocate de un grup de tranzac ii astfel ca s aib loc 2 condi ii: y Fiecare tranzac ie din grup este blocat a teptnd o granul ; y Tranzac iile grupului nu pot fi deblocate dect de o tranzac ie extern . Interblocarea este o problem de blocare dificil de rezolvat. Exist 3 modalit i de rezolvare: y Evitarea anticipat a cererilor cunoscnd granulele care vor fi accesate practic imposibil n sistemele tranzac ionale; y Prevenirea; y Detectarea pe baz de grafe.

1. Graful de a teptare

G(T, ) T ansamblul tranzac iilor concurente T={T 1, T2, , T n} partajnd granulele g 1, g2, , gm & rela ia a teapt definit prin T p a teapt Tq Tp a tept blocarea unei granule g i care a fost blocat de T q.

T. Situa ia de interblocare are loc

graful de a teptare are un ciclu.

2. Graful de preceden

& rela ia cu cel de a teptare

Preceden a poate fi definit n orice execu ie f r opera ii simultane, n urma separ rii opera iilor compatibile.

D. Preceden a S execu ie f r opera ii simultane. T i precede Tj (se noteaz cu T i < Tj) exist dou opera ii nepermutabile Oi & Oj ca Oi din T i precede pe O j din T j. Pornind de la no iunea de preceden tranzac iile dintr-o execu ie. se poate construi un graf care s caracterizeze

T. O condi ie suficient ca o execu ie s fie serializabil este ca graful de precede n cicluri.

f r

3. Graful de alocare

Este format din dou mul imi de vrfuri: y Mul imea T de tranzac ii; y G de granule.

Un arc care leag granula Gi de tranzac ia Tp Tp a cerut & n-a ob inut alocarea granulei; arcul este valuat cu modul de opera ie cerut. T. Condi ia necesar de existen alocare. a unui interblocaj este existen a unui circuit n graful de

4. Prevenirea interbloc rii

Prevenirea interbloc rii const n eliminar ea uneia dintre condi iile care duc la interblocare. Exist dou metode: y preordonarea resurselor (granulelor); y preordonarea tranzac iilor.

Prima metod - dificil de pus n practic deoarece ntr -o BD - un num r mare de granule. A doua metod 2 abord ri sub denumirea de DIE-WAIT & WOUND-WAIT. n cele 2 abord ri se folosesc tampile pentru preordonarea tranzac iilor.

5. Detectarea interblocajelor

Se bazeaz pe algoritmii de detectare a ciclurilor care apar n grafele de a teptare / de alocare. Algoritmul n esen se bazeaz pe testarea faptului c graful este f r cicluri & eliminarea succesiv a unor vrfuri libere . Un vrf din graful de a teptare este considerat liber dac tranzac ia aferent lui nu a teapt blocarea nici unei granule.

6. Rezisten a la pan & securitatea datelor

Domeniu vast protec ia la pene hard & utilizare gre it a datelor. n acest domeniu intr : y securitatea datelor n caz de pan hard reluarea bazei de date dintr-o stare coerent & reexecutarea proceselor pierdute; y autorizarea accesului la BD. Multe aspecte specifice: securitatea BD statistice, criptografierea etc.

6.1. Principiile rezisten ei la pene

Model redus: SGBD = sistem tranzac ional + memoria auxiliar .

Cauzate de pan : umiditate, erori de programare, func ionara gre it a echipamentului etc. Tipuri de pene: y pan de ac iune executarea gre it a unei comenzi SGBD detectat de sistem care returneaz un cod de eroare programului de aplica ii; se corecteaz eroarea & se continu tranzac ia; y pana unei tranzac ie tranzac ia nu poate continua ca urmare a erorilor de programare / interblocajului / a unei ordon ri gre ite la acces concurent - o pan nerecuperabli ; se anuleaz punerile la zi f cute de tranzac ie; y pan de sistem se opre te sistemul; de regul nu afecteaz memoria auxiliar , dar se pierd tranzac ii din memorie;

y pene de memorie auxiliar din cauza hard / a unor scrieri gre ite par ial a datelor - eroare catastrofal .

distrugerea

6.2. Obiectivele rezisten ei la pene

Obiectiv central simplificarea muncii de recuperare a datelor dup pan . In general unitatea de tratare atomic tranzac ia. De exemplu, un transfer de bani la banc <A A -x, B+x B> / se execut amndou / niciuna. primul obiectiv = furnizarea unui protocol care s permit efectuarea, anularea / reluarea tranzac iilor (protocol do, undo, redo). Rezult c protocolul se compune din 3 ac iuni atomice acceptate integral / respinse integral. Cele 3 ac iuni corespund la validare (commitment a comite/consemna, consolidation & confirmation), anulare (abandon / abort) & reluare (restaurare / re -execu ie).

6.3. Validarea tranzac iei (Transaction Commitment)

Executarea unei ac iuni atomice speciale COMMIT, n general la sfr itul tranzac iei, care are ca efect integrarea tuturor modific rilor n BD.

6.4. Anularea tranzac iei (Tranzsaction Abort)

Executarea unei ac iuni atomice ABORT, n general dup o pan , anuleaz toate punerile la zi din BD efectuate de tranzac ii.

Se observ c anularea unei tranzac ii nevalidate este mult mai simpl dect a uneia deja validate.

6.5. Reluarea tranzac iei (Transaction Recovery)

Executarea unei ac iuni atomice speciale RECOVERY, care permite refacerea modific rilor efectuate de o tranzac ie anulat n prealabil. 6.6. Elemente utilizate pentru rezisten a la pan

Memorie stabil /sigur (Stable Memory) memorie fizic mp r it n pagini care fie se scriu integral corect, fie nu se scriu deloc de regul se bazeaz pe dubl scriere. n general SGBD-urile lucreaz cu astfel de memorii.

Jurnale (Log) metoda cea mai uzual de anulare / reluare a unei tranzac ii. Jurnal cu Imaginea Dinainte (Before Image Log) Jurnal cu Imagini de dup (Before Image Log) y Salvare (Backup Copy) copiere a unei BD n stare coerent de regul la nceput de s pt mn , zi, or , etc. Pentru salvare nici o tranzac ie nu trebuie s fie activ . Se utilizeaz un mecanism sofisticat de blocare. Punct de reluare sistem (System checkpoint)

Prelucrarea interog rilor = activit i implicate n reg sirea datelor din BD. Scop: y Transformare interog rii declarative dintr-un limbaj de nivel nalt (SQL) ntr -o strategie eficient de acces la nivel sc zut (de implementare a algebrei rela ionale). y Aplicarea strategiei pentru reg sirea datelor. Optimizarea interg rilor = Alegerea unei strategii eficiente pentru prelucrarea interog rii. Probleme referitoare la optimizarea interog rii: y minimizarea resurselor utilizate y minimizarea timpului global de execu ie a opera iilor care o formeaz y maximizarea num rului de opera ii paralele (distribuire)

y suboptimizarea. Rolul & problemele statisticilor n evaluarea strategiilor de optimizare (informa ii despre: rela ii, atribute & indec i): y statistici memeorate n dic ionar (cardinalitatea rela iilor, num rul valorilor distinctre ale atributelor, num rul nivelelor de indec i etc. y complexitatea eviden ei ntre inerea periodic .

S-ar putea să vă placă și