Actualizare pierdută

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

În informatică , termenul actualizare pierdută înseamnă o eroare în gestionarea concurenței dintre tranzacții datorită unei dependențe de scriere -> scriere .

Cu alte cuvinte, actualizarea pierdută este o pierdere a modificărilor cauzate de o tranzacție cauzată de o actualizare operată de o altă tranzacție.

Definiție

O actualizare pierdută are loc atunci când o tranzacție Ta citește un X dat cu versiunea 0, notată ca X (0), produce o nouă versiune X (1), iar o altă tranzacție Tb citește vechea versiune X (0) și produce X (2) .

Exemple

Exemplul 1

Tabelul prezintă un exemplu de actualizare pierdută:

Vreme Tranzacție Ta Tranzacție Tb
t (0) citiți [X (0)]
t (1) citiți [X (0)]
t (2) scrie [X (1)]
t (3) scrie [X (2)]

După cum putem vedea, tranzacția Ta efectuează o citire a datelor X (0) la momentul t (0). În timpul t (1) tranzacția Tb citește baza X (0). Ulterior, la momentul t (2) tranzacția Ta modifică baza de date X (0) atribuindu-i noua valoare X (1). În cele din urmă, în timpul t (3) tranzacția Tb atribuie o nouă valoare X (2) obținută luând ca intrare valoarea X (0) la momentul t (1). În acest exemplu există o actualizare pierdută a lui Ta.

Exemplul 2

Următorul tabel prezintă o actualizare pierdută în caz de revenire :

Vreme Tranzacție Ta Tranzacție Tb
t (0) citiți [X (0)]
t (1) citiți [X (0)]
t (2) scrie [X (1)]
t (3) scrie [X (2)]
t (4) revenire

În acest caz, modificarea făcută de Ta la momentul t (2) se pierde din cauza revenirii Tb la momentul t (4) care restabilește valoarea X (0) valabilă la momentul t (1).

Bibliografie

  • Paolo Ciaccia, Dario Mario, Lecții în baze de date, 2013, Editrice Esculapio, ISBN 978-8874887187

Elemente conexe