Procesarea tranzacției

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În informatică teoretică , procesarea tranzacțiilor este metoda de gestionare a datelor care își realizează propria prelucrare prin împărțirea în operațiuni unice și indivizibile numite tranzacții . Particularitatea este că fiecare tranzacție trebuie finalizată în mod unic cu succesul sau eșecul 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 de obicei referit la o bază de date , deși definiția nu poate fi limitată doar la această zonă. Mai general, referindu-ne la domeniul informaticii teoretice , se poate spune că acest tip de procesare este destinat interacțiunii cu sisteme stabile la 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 om care intenționează să transfere 100,00 EUR din contul său curent la altul. Această tranzacție este o singură operațiune conform băncii , dar implică simultan două operațiuni separate în ceea ce privește prelucrarea IT: taxarea clientului pentru cei 100 de euro presupuși și creditarea aceleiași sume către destinatarul transferului bancar . Dacă debitul are succes, dar nu creditul (sau invers), ar exista o eroare în unul dintre cele două sisteme IT ale băncilor 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ă vreo contradicție în baza de date a băncii sau a băncilor implicate.

Structurarea teoretică a procesării tranzacțiilor este destinată să ofere garanția consistenței în ceea ce privește procesarea de acest fel; diferitele operațiuni ale fiecărei părți ale procesării, legate de o funcție , sunt conectate automat împreună ca o singură tranzacție indivizibilă.

Sistemul de procesare se asigură că toate procesele individuale dintr-o tranzacție sunt finalizate fără erori, altfel niciunul dintre ele nu va fi finalizat. Dacă unele procese s-au finalizat într-adevăr, dar unul dintre ele este și el defect, va exista o operațiune de revenire completă pentru toate procesele, inclusiv 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 „ angajată ” și starea sistemului trece la următoarea. Toate modificările aduse bazelor de date implicate sunt făcute permanente (definitive), iar acum nu este posibilă restabilirea 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 disponibil din nou, toate operațiunile neangajate (care nu sunt finalizate în toate părțile lor) vor fi anulate prin retragerea fiecăreia dintre ele.

Procesele tranzacției sunt procesate de sistem într-o ordine strict cronologică. Dacă tranzacția n + 1 afectează aceeași porțiune a bazei de date ca tranzacția n , tranzacția n + 1 nu începe până când tranzacția n este angajată . Mai general, pentru ca o tranzacție să fie angajată în sistem, toate celelalte tranzacții care implică aceeași parte a sistemului trebuie angajate ; nu pot exista „ lacune ” î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

Elemente conexe

linkuri externe

Controlul autorității LCCN ( EN ) sh89002252