modele tranzacționale. Conceptul și definiția tranzacției
O tranzacție este o secvență de operații efectuate pe baza de date și transformă baza de date de la o stare consistentă (coerentă) la o altă stare consistentă (consistentă).
Tranzacția este considerată ca o acțiune indivizibilă asupra bazei de date semnificative din punctul de vedere al utilizatorului. În același timp, este o unitate logică a sistemului. Luați în considerare câteva exemple. Ceea ce ar putea fi numit tranzacția? Cine determină ce succesiune de operații pe baza de date a tranzacției? Desigur, acesta este cu siguranta un dezvoltator determină ce secvență de operații este parte integrantă și anume tranzacție,. Înscrieri¶ sau proceduri stocate, aceasta definește pe baza datelor sens, și anume semantica operațiunilor agregate pe baza de date, care simulează perspectiva unui dezvoltator unele o lucrare inseparabile, și a tranzacției. Să presupunem că vom selecta lucrările privind punerea pe cărți de date primite, cărți noi, care nu au fost anterior în bibliotecă. Apoi, această operație poate fi împărțită în două secvențe: primele date de intrare despre carte - este o nouă linie în tabelul de cărți, și apoi de intrare toate copiile unei noi cărți - un nou set de rânduri de intrare în exemplar tabelul într-o cantitate egală cu suma primită de exemplare ale cărții. Dacă această secvență va fi întreruptă, baza noastră de date nu corespunde obiectului real, de aceea este recomandabil să-l efectueze ca un singur loc de muncă în baza de date.
modele tranzacționale. Proprietățile tranzacțiilor
- Atomicitate (atomicitate) proprietate este reflectată în faptul că tranzacția trebuie să fie executate în totalitate sau nu efectuat deloc.
- coerență proprietății (Coerența) se asigură că după finalizarea tranzacției de mutare a datelor de la un stat la altul consecvent - tranzacția nu distruge coerența reciprocă a datelor.
- Izolarea proprietate (izolare) înseamnă că, în competiție pentru accesul la tranzacția de bază de date este prelucrată fizic secvențial, în mod izolat unul de celălalt, dar pentru utilizator se pare ca în cazul în care acestea sunt executate în paralel.
- Proprietate durabilitate (durabilitate) este interpretat după cum urmează: în cazul în care tranzacția este finalizată cu succes, atunci schimbările din datele care au fost făcute nu poate fi pierdut în nici un caz (chiar și în cazul unor erori ulterioare).
modele tranzacționale. Metode de finalizare
Două variante ale tranzacției. În cazul în care toți operatorii au încheiat cu succes și în procesul de tranzacție a fost nici un hardware sau software eșec, tranzacția este comisă.
Încredințează tranzacția - un act care prevede modificări de baze de date de scriere pe disc, care au fost făcute în cursul tranzacției.
Până la tranzacția nu este angajată, permisă anularea acestor modificări, restaurarea bazei de date la starea în care era la începutul tranzacției. Commit tranzacție înseamnă că toate rezultatele tranzacției devin permanente. Acestea vor fi vizibile pentru alte tranzacții numai după tranzacție este angajat. Până la acest punct toate datele afectate de tranzacție, va fi „vizibil“ pentru utilizator într-o stare la începutul tranzacției curente.
Dacă în cursul tranzacției sa întâmplat ceva care face imposibilă rezilierea normală, baza de date trebuie să fie returnate în starea inițială. Restabiliți tranzacția - un act care prevede anularea tuturor modificărilor de date care au fost făcute declarații SQL în corpul tranzacției incomplete curente.
Fiecare declarație într-o tranzacție își îndeplinește partea sa de muncă, dar pentru finalizarea cu succes a lucrărilor în ansamblul său este necesară finalizarea necondiționată a tuturor operatorilor lor. Gruparea declarații în baza de date de tranzacție raportează că acest grup întreg trebuie să fie format integral, în care o astfel de performanță să fie menținută în mod automat.
Standardul ANSI / ISO SQL definește modelul de tranzacție și funcția COMMIT și ROLLBACK. Standardul specifică faptul că o tranzacție începe cu prima SQL declarație, inițiat de către un utilizator sau conținute în program pentru a schimba starea curentă a bazei de date. Toate ulterioare SQL-operatorii alcătuiesc corpul tranzacției. Tranzacția este finalizată într-una din cele patru moduri posibile (Figura 11.1.):
Fig. 11.1. Modelul de tranzacție ANSI / ISO
1. COMMIT indică finalizarea cu succes a tranzacției; utilizarea acestuia face modificări permanente în baza de date, ca parte a tranzacției curente;
2. ROLLBACK termină tranzacția, anulează modificările aduse bazei de date în cadrul acestei tranzacții; O nouă tranzacție începe imediat după utilizare ROLLBACK;
3. Finalizarea cu succes a programului, în care a fost inițiat tranzacția curentă, este finalizarea cu succes a unei tranzacții (ca și în cazul în care a fost utilizată o declarație COMMIT);
4. completarea eronată a programului aborts tranzacției (ca și în cazul în care a fost utilizată ROLLBACK).
În acest model, fiecare operator, care se schimbă starea bazei de date, este considerată o tranzacție, astfel încât finalizarea cu succes a operatorului bazei de date intră într-o nouă stare stabilă.
Primele versiuni ale bazei de date comerciale a fost pus în aplicare modelul de tranzacție ANSI / ISO. Mai târziu, în baza de date Sybase a fost pus în aplicare modelul de tranzacție extins, care include o serie de operațiuni suplimentare. SYBASE Modelul utilizează următoarele patru afirmații: