b"\n_START_ARTICLE_\nProtezione dai guasti (basi di dati)\n_START_PARAGRAPH_\nIn informatica, in particolare parlando di basi di dati, con il termine di protezione dai guasti si intendono tutte quelle procedure attuate al fine di mantenere il database il pi\xc3\xb9 possibile integro a fronte di possibili malfunzionamenti.\n_START_SECTION_\nTransaction Abort\n_START_PARAGRAPH_\nIl Transaction Abort \xc3\xa8 un'interruzione di una transazione che non comporta la perdita di dati n\xc3\xa9 in memoria temporanea n\xc3\xa9 in memoria permanente. Questo malfunzionamento \xc3\xa8 causato da una situazione prevista (come una violazione di vincoli di integrit\xc3\xa0 o un tentativo di accesso a dati di cui non abbiamo i privilegi) ed \xc3\xa8 correttamente rilevata dal Transaction Manager.\n_START_SECTION_\nComportamento a fronte di Transaction Abort\n_START_PARAGRAPH_\nUn Transaction Abort viene gestito con l'uso dei Log (vedi log manager)._NEWLINE_Per ogni azione eseguita da una transazione, il data manager provvede a salvare sia il nuovo stato del database, sia un Log dell'azione eseguita che ha portato il vecchio stato nel nuovo. Il Log, comparato con il nuovo stato, ci fornisce la Before Image del database._NEWLINE_Per ogni azione abortita, si effettua un rollback. La gestione del rollback avviene dapprima scrivendo sul Log un abort record (contenente l'ID della transazione che l'ha causato). In seguito vengono disfatte tutte le operazioni precedentemente eseguite dalla transazione che ha causato l'abort.\n_START_SECTION_\nProtocollo Write Ahead Log\n_START_PARAGRAPH_\nIl protocollo Write Ahead Log prevede che, se una transazione deve essere disfatta, sia indispensabile che la before image sia salvata nel Log \xe2\x80\x98'prima'\xe2\x80\x99 che le relative modifiche sul database vengano rese permanenti.\n_START_SECTION_\nSystem Abort\n_START_PARAGRAPH_\nIl System Abort \xc3\xa8 un'interruzione di transazioni attive dovuta a un'anomalia hardware o software dell'unit\xc3\xa0 centrale o di una periferica (ad esempio un blackout). Si assume che il contenuto della memoria permanente sopravviva mentre quello nella memoria temporanea venga perso.\n_START_SECTION_\nComportamento a fronte di System Abort\n_START_PARAGRAPH_\nUna transazione si pu\xc3\xb2 dire terminata solo quando viene memorizzato sul Log il relativo commit record. Solo in questo caso i suoi lock possono essere rilasciati e la transazone \xc3\xa8 completamente terminata._NEWLINE_In caso di System Abort, il recovery manager attiva la procedura di Restart._NEWLINE_Questa procedura serve a portare la base di dati ad uno stato consistente, effettuando l'operazione di UnDo di tutte le transazioni attive all'atto del guasto. Queste ultime sono riconoscibili dal fatto che non hanno un commit record nel Log.\n_START_SECTION_\nPolitica dell'update ritardato\n_START_PARAGRAPH_\nPolitica applicata da DBMS che non permettono l'operazione UnDo (ad esempio Ingres)._NEWLINE_L'after image di una pagina non viene memorizzata subito nel database ma solo nel Log._NEWLINE_L'esecuzione del commit avviene scrivendo il commit record sul Log e, solo in seguito, copiando l'after image sulla base di dati._NEWLINE_Con questa politica si migliorano le prestazioni del sistema nel caso di frequenti Transaction e System Abort, incorrendo per\xc3\xb2 in una maggiore complessit\xc3\xa0 dei commit.\n_START_SECTION_\nSystem Crash\n_START_PARAGRAPH_\nIl System Crash \xc3\xa8 un'anomalia che danneggia la memoria permanente del sistema.\n_START_SECTION_\nComportamento a fronte di System Crash\n_START_PARAGRAPH_\nL'unica modo in cui sia possibile effettuare il recovery da una situazione di System Crash \xc3\xa8 nel caso in cui sia integro il Log._NEWLINE_A tal scopo il Log viene sempre mantenuto in duplice copia."