Actualizare amânată vs Actualizare imediată
Actualizarea amânată și Actualizarea imediată sunt două tehnici utilizate pentru a menține fișierele jurnal de tranzacții ale sistemelor de gestionare a bazelor de date (DBMS). Jurnalul de tranzacții (numit și jurnalul de jurnal sau jurnalul de refacere) este un fișier fizic care stochează ID-ul tranzacției, marca temporală a tranzacției, valoarea veche și noile valori ale datelor. Acest lucru permite SGBD-ului să țină evidența datelor înainte și după fiecare tranzacție. Când tranzacțiile sunt comise și baza de date este returnată la o stare consecventă, jurnalul poate fi trunchiat pentru a elimina tranzacțiile comise.
Actualizare amânată
Actualizarea amânată numită și NO-UNDO/REDO este o tehnică utilizată pentru a recupera/sprijină erorile tranzacțiilor care apar din cauza defecțiunilor sistemului de operare, energiei, memoriei sau mașinii. Când se execută o tranzacție, orice actualizări sau modificări aduse bazei de date de către tranzacție nu se efectuează imediat. Acestea sunt înregistrate în fișierul jurnal. Modificările datelor înregistrate în fișierul jurnal sunt aplicate bazei de date la comitere. Acest proces se numește „Re-face”. La rollback, orice modificări aduse datelor înregistrate în fișierul jurnal sunt eliminate; prin urmare, nu se vor aplica modificări bazei de date. Dacă o tranzacție eșuează și nu este comisă din cauza vreunuia dintre motivele menționate mai sus, înregistrările din fișierul jurnal sunt eliminate și tranzacția este repornită. Dacă modificările dintr-o tranzacție sunt comise înainte de blocarea, atunci după repornirea sistemului, modificările înregistrate în fișierul jurnal sunt aplicate bazei de date.
Actualizare imediată
Actualizarea imediată numită și UNDO/REDO, este, de asemenea, o altă tehnică folosită pentru a recupera/suporta erorile tranzacțiilor care apar din cauza defecțiunilor sistemului de operare, energiei, memoriei sau mașinii. Când se execută o tranzacție, oricare dintre actualizările sau modificările efectuate de tranzacție sunt scrise direct în baza de date. Atât valorile originale, cât și noile valori sunt, de asemenea, înregistrate în fișierul jurnal înainte ca modificările să fie făcute în baza de date. La comitere, toate modificările făcute în baza de date devin permanente și înregistrările din fișierul jurnal sunt eliminate. La rollback, valorile vechi sunt restaurate în baza de date folosind valorile vechi stocate în fișierul jurnal. Toate modificările efectuate prin tranzacții în baza de date sunt eliminate și acest proces se numește „Anulare”. Când sistemul repornește după o blocare, toate modificările bazei de date devin permanente pentru tranzacțiile comise. Pentru tranzacțiile neangajate, valorile inițiale sunt restaurate folosind valorile din fișierul jurnal.
Care este diferența dintre Actualizarea amânată și Actualizarea imediată
Chiar dacă Actualizarea amânată și Actualizarea imediată sunt două metode de recuperare după o defecțiune a sistemului, procesul pe care îl folosește fiecare metodă este diferit. În metoda de actualizare diferită, orice modificări aduse datelor printr-o tranzacție sunt mai întâi înregistrate într-un fișier jurnal și aplicate bazei de date la comitere. În metoda de actualizare imediată, modificările efectuate de o tranzacție sunt aplicate direct în baza de date, iar valorile vechi și noile sunt înregistrate în fișierul jurnal. Aceste înregistrări sunt folosite pentru a restabili valorile vechi la derulare. În metoda de actualizare diferită, înregistrările din fișierul jurnal sunt eliminate la derulare înapoi și nu sunt niciodată aplicate bazei de date. Un dezavantaj al metodei de actualizare amânată este timpul crescut de recuperare în cazul unei defecțiuni a sistemului. Pe de altă parte, operațiunile frecvente de I/O în timp ce tranzacția este activă, reprezintă un dezavantaj în metoda de actualizare imediată.