Premessa
Portale di appartenenza: Basi di dati.
Cosa troverai in questa nota:
- Unβintroduzione al concetto di transazione, al motivo della sua importanza e la sua struttura.
- La definizione delle proprietΓ ACID che ogni transazione deve rispettare.
Prerequisiti: per comprendere pienamente il contenuto di questa nota, oltre le conoscenze minime che do per scontato che tu sappia giΓ , ti consiglio di aver letto in precedenza queste altre note:
Buona lettura! βοΈπ€
Il DBMS fa da tramite nella comunicazione tra lβutente e il database. In particolare, si occupa di gestire la concorrenza tra le interrogazioni che gli vengono rivolte e, di conseguenza, garantisce la consistenza dei dati verificando il rispetto dei vincoli di integritΓ .
Queste considerazioni hanno portato i progettisti dei DBMS a disciplinare il comportamento e gli effetti delle interrogazioni per evitare problemi di questa natura: da qui lβintroduzione delle transazioni.
Definizione: transazione
Una transazione Γ¨ una sequenza atomica e isolata di operazioni di lettura e scrittura su un database, che lo trasforma da uno stato consistente a un altro stato consistente, rispettando le proprietΓ ACID.
Un tipico flusso di esecuzione di una transazione Γ¨ il seguente:
- Inizio: prima di eseguire una transazione, si notifica al DBMS lβinizio delle operazioni.
- Esecuzione: si eseguono le operazioni di interrogazione (ed eventuali modifiche) dei dati.
- Termine: la transazione puΓ² avere due esiti:
- Rollback: se si riscontra qualche anomalia di modifica o semplicemente si decide di annullare le modifiche, si esegue unβistruzione per abortire la transazione che produce un meccanismo di rollback.
- Commit: se si sono eseguite tutte le operazioni senza riscontrare anomalie di modifica, si esegue unβistruzione di commit per confermare la transazione.
Vediamo nel dettaglio in cosa consistono i due esiti possibili di una transazione.
Definizione: rollback
In una transazione, il meccanismo di rollback permette di eliminare tutte le modifiche che si stanno effettuando sul database per riportarlo allo stato immediatamente precedente e assicurare la sua consistenza.
Definizione: commit
In una transazione, il meccanismo di commit permette di confermare tutte le modifiche che si stanno effettuando sul database, rendendole effettive e durabili.
1 - Le proprietΓ ACID
Vediamo cosa sono queste proprietΓ ACID citate nella definizione di transazione.
Definizione: proprietΓ ACID
Le proprietΓ ACID sono le 4 proprietΓ che una transazione deve rispettare per mantenere un database in uno stato consistente:
- AtomicitΓ : una transazione deve o eseguire tutte le azioni che la compongono, o nessuna di queste.
- Consistenza: se il database era consistente prima della transazione, lo deve essere anche dopo.
- Isolamento: lβesecuzione concorrente di piΓΉ transazioni deve produrre lo stesso effetto di unβesecuzione seriale.
- DurabilitΓ : una volta completata con successo una transazione, le modifiche persistono anche in caso di crash del sistema.
Fonti
- π« Lezioni e slide del Prof. Pensa Ruggero Gaetano del corso di Basi di Dati (canale B), Corso di Laurea in Informatica presso lβUniversitΓ di Torino, A.A. 2024-25: