Premessa

Portale di appartenenza: Basi di dati.

Cosa troverai in questa nota:

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:

  1. Inizio: prima di eseguire una transazione, si notifica al DBMS l’inizio delle operazioni.
  2. Esecuzione: si eseguono le operazioni di interrogazione (ed eventuali modifiche) dei dati.
  3. 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: