Actualizare pierdută
Î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