5° Anno TEORIA 5. Architettura di un DBMS | Page 4

17. Architettura di un DBMS Vers.2.0 – Maggio 2020 Gli stati di avanzamento (nel tempo) di una transazione possono essere riassunti grazie al seguente diagramma degli stati: la prima azione T. ATTIVATA T. IN ESECUZIONE Errori o eventi imprevisti Eseguita l’ultima azione T. FALLITA Errori o eventi imprevisti T. PARZIALMENTE COMPLETATA Comando ROLLBACK Comando COMMIT T. ABORTITA T. COMPLEATATA CON SUCCESSO Dopo essere stata attivata (“started”), una transazione si trova in stato di esecuzione nel quale vengono eseguite le azioni elementari di cui è composta. Quando viene eseguita l’ultima azione elementare la transazione si dice parzialmente completata. Se invece prima dell’esecuzione dell'ultima azione si verifica qualche errore o qualche evento imprevisto la transazione si dice fallita (”failed”). Quando una transazione è parzialmente completata non è detto che diventi completata con successo (“committed”) poiché potrebbero intervenire imprevisti durante la fase di scrittura definitiva su disco. Quando si verifica un fallimento vengono intraprese opportune azioni dette di rotolamento all’indietro (“rollback”) per arrivare allo stato finale nel quale la transazione si definisce abortita (“aborted”) annullando tutti gli effetti parziali prodotti dalle azioni elementari. Prima di dichiarare il completo successo di una transazione occorre che il sistema abbia avuto il tempo di registrare una serie di informazioni sul giornale delle modifiche o database log file o più semplicemente file di log. Nel file di log si registrano eventi riguardanti la transazione del tipo: - è stata attivata la transazione - è stata completata la transazione - è fallita la transazione ma anche: - è stata inserita la riga la - è stata cancellata la riga la > - è stata modificata la riga la con Autore: Rio Chierego (email: [email protected] - sito web: www.riochierego.it) Pag. 4