Procesarea tranzacției
In informatica teoretica , prelucrarea tranzactiilor este metoda de gestionare a datelor care realizeaza propria prelucrare prin impartirea acesteia in operatiuni unice si indivizibile numite tranzactii . Caracteristica particulară este că fiecare tranzacție trebuie să se completeze în mod unic cu un succes sau un eșec al operațiunilor asociate, neputând rămâne niciodată într-o etapă intermediară (de exemplu, într-o stare de așteptare , într-o buclă etc.).
Descriere
Un proces de tranzacție este un tip de procesare care se referă de obicei la o bază de date , deși definiția nu poate fi limitată doar la acest domeniu. Mai general, referindu-ne la domeniul informaticii teoretice , se poate spune că acest tip de procesare este destinat interacțiunii cu sisteme stabile într-o stare cunoscută , procesul fiind epuizat prin iterații finite și auto-consistente (vezi definiția de mai sus).
Un exemplu interesant este procesul care implică o tranzacție tipică de transfer bancar . Luați în considerare ipoteza unui bărbat care intenționează să transfere 100,00 EUR din contul său curent în altul. Potrivit băncii , această tranzacție este o singură operațiune , dar implică în același timp două operațiuni separate în ceea ce privește procesarea informatică: taxarea clientului pentru cei 100 de euro asumați și creditarea aceleiași sume către destinatarul transferului bancar. Daca debitul este reusit dar nu creditul (sau invers), ar exista o eroare in unul dintre cele doua sisteme informatice ale bancilor implicate. Prin urmare, este necesar să ne asigurăm că ambele procese reușesc sau că ambele eșuează, astfel încât să nu existe niciodată contradicții în baza de date a băncii sau băncilor implicate.
Structurarea teoretică a procesării tranzacțiilor este menită să ofere garanția coerenței în ceea ce privește prelucrarea de acest fel; diferitele operațiuni ale fiecărei părți a prelucrării, legate de o funcție , sunt automat legate între ele ca o singură tranzacție indivizibilă.
Sistemul de procesare se asigură că toate procesele individuale dintr-o tranzacție sunt finalizate fără eroare, altfel niciunul dintre ele nu va fi finalizat. Dacă unele procese s-au finalizat într-adevăr, dar unul dintre ele este, de asemenea, defect, va exista o operațiune de rollback completă pentru toate procesele, inclusiv pentru cele care au fost finalizate cu succes, iar tranzacția nu va fi executată. Starea sistemului este readusă la starea anterioară cunoscută , fără memorie a operațiunilor încercate sau finalizate în cadrul tranzacției în sine. În caz contrar, dacă toate operațiunile așteptate pentru o tranzacție sunt finalizate cu succes, tranzacția este definită ca „ committed ” și starea sistemului trece la următoarea. Toate modificările bazelor de date implicate devin permanente (definitive) și acum nu este posibilă derularea sistemului.
Un proces de tranzacție garantează procesarea împotriva erorilor hardware sau software care ar putea bloca procesarea unei tranzacții într-o fază intermediară, parțială, lăsând sistemul într-o stare necunoscută , numită și inconsistentă . De fapt, dacă un server sau un computer se blochează în mijlocul unei tranzacții, de îndată ce sistemul este din nou disponibil, toate operațiunile necommitate (nefinalizate în toate părțile lor) vor fi anulate prin derularea fiecăreia dintre ele.
Procesele de tranzacție sunt procesate de sistem într-o ordine strict cronologică. Dacă tranzacția n+1 afectează aceeași porțiune a bazei de date ca și tranzacția n , tranzacția n+1 nu începe până când tranzacția n este comisă . Mai general, pentru ca o tranzacție să fie angajată în sistem , toate celelalte tranzacții care implică aceeași parte a sistemului trebuie să fie angajate ; nu pot exista „ goluri ” în succesiunea tranzacțiilor care o preced.
Bibliografie
- Jim Gray , Andreas Reuter, Procesarea tranzacțiilor - Concepte și tehnici, 1993, Morgan Kaufmann, ISBN 1-55860-190-2
- Philip A. Bernstein, Eric Newcomer, Principiile procesării tranzacțiilor, 1997, Morgan Kaufmann, ISBN 1-55860-415-4
- Ahmed K. Elmagarmid (Editor), Modele de tranzacții pentru aplicații avansate de baze de date, Morgan-Kaufmann, 1992, ISBN 1-55860-214-3
Articole înrudite
- Sistemul de management al informației
- ACID
- Sistem de management al controlului aplicațiilor
- Sistemul de control al informațiilor despre clienți
- Java EE
- JTA
- Tranzacție (baze de date)
- Sistemul de procesare a tranzacțiilor
- OLTP
Link- uri externe
- ( RO ) Jim Gray - Procesarea tranzacțiilor - Concepte și tehnici , pe books.google.it .
- ( RO ) Transaction Processing Performance Council , pe tpc.org .