Un'operazione atomica, in informatica, consiste in un'operazione di esecuzione indivisibile dal punto di vista logico.

In generale, un'operazione si dice atomica se è indivisibile, ovvero se nessun'altra operazione può cominciare prima che la prima sia finita, e quindi non può esserci interleaving. Il risultato di quella operazione è sempre lo stesso se parte dalle stesse condizioni iniziali.

Esecuzione atomica nelle basi di dati

modifica

Le operazioni atomiche sono tipiche dei DBMS e la proprietà di atomicità è infatti la prima delle proprietà ACID delle basi di dati.

Una simile caratteristica esiste per permettere la corretta esecuzione di operazioni concorrenti o correlate ed è garantita dal DBMS che, quando trasforma le operazioni richieste in un linguaggio di alto livello in operazioni elementari di basso livello, le raggruppa in transazioni atomiche.

Una transazione atomica è costituita dal seguente schema[1]:

  1. Start transaction
  2. Operazioni da eseguire
  3. Direttive commit o roll back ossia di convalida o di disfacimento dell'intera transazione.
  4. End transaction

In pratica si eseguono i vari punti che compongono la transazione e successivamente si verifica se si è verificato qualche errore o conflitto. Se la transazione è andata a buon fine la si rende effettiva (commit) altrimenti la si annulla nella sua totalità riportando il sistema, operazione per operazione, allo stato iniziale (rollback).

Esempio

modifica

Per meglio comprendere l'utilità di una transazione atomica occorre procedere con un esempio esterno alle basi di dati.

Si immagini un'operazione bancaria effettuata su una base di dati dove un soggetto A deve versare dei soldi sul conto corrente di un altro soggetto B e chiamiamola versamento.

Un'operazione del genere consisterebbe in:

  1. Scalare i soldi dal conto corrente del soggetto A;
  2. Accreditarli sul conto corrente del soggetto B;

Ora immaginiamo che il conto corrente di B non dovesse esistere e che quindi durante l'esecuzione della sotto-operazione 2 dell'operazione di versamento si dovesse verificare un errore.

Quello che accadrebbe è che:

  • Con una transazione di versamento atomica verrebbe eseguito il rollback sia di 2 che di 1 e quindi i soldi scalati dal conto corrente del soggetto A verrebbero riaccreditati.
  • Con una transazione di versamento non atomica, dopo l'errore durante l'esecuzione di 2 non sarebbe più possibile annullare l'operazione 1 che sarebbe oramai stata eseguita con conseguente perdita del denaro di A.

Quindi, in sintesi, la proprietà di atomicità, quando c'è, garantisce la corretta esecuzione di operazioni multiple ma logicamente correlate perché le riferisce ad un'operazione unica ed indivisibile.

Il problema mostrato non si verificherebbe direttamente implementando l'operazione di versamento in un linguaggio di alto livello quale SQL ma si verificherebbe durante la sua effettiva esecuzione da parte del DBMS che la scomporrebbe in molte sotto-operazioni elementari passibili di errore o conflitto con altri comandi.

Note

modifica
  1. ^ "Basi di dati: architetture e linee di evoluzione" di P.Atzeni, S.Ceri, P.Fraternali, S.Paraboschi ed. McGraw-Hill ISBN 978-88-386-6370-3

Bibliografia

modifica
  • Basi di dati: architetture e linee di evoluzione di P. Atzeni, S. Ceri, P. Fraternali, S. Paraboschi ed. McGraw-Hill ISBN 978-88-386-6370-3

Voci correlate

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Structured Query Language

transazione si utilizza il comando COMMIT. Con esso tutte le modifiche effettuate sui dati in precedenza vengono memorizzate. COMMIT [TRANSACTION] [transaction_name];

Subversion

metadati dei file sono sotto controllo versione. Le commit sono vere transazioni atomiche. Una commit interrotta non lascia il repository in uno stato di

Controllo versione

controllo versione con commit di modifiche multiple atomiche, una changelist identifica un insieme di changes fatti in un singolo commit. Check-Out un check-out

Unione europea

Europea. Mito o realtà?, Italian University Press, Genova 2010. Giuliano F. Commito, Quel sogno chiamato Europa. Il lungo addio di un progetto politico...

Episodi di The George Burns and Gracie Allen Show (terza stagione)

with George Burns' 11 dicembre 1952 11 Gracie Thinks George Is Going to Commit Suicide 18 dicembre 1952 12 Von Zell Dates Married Woman/Jealous Husband

Business Process Execution Language

l'insieme di attività che compone una transazione atomica, ovvero un processo che può terminare con un "commit" o un "abort", senza stati intermedi, nel quale

Rosemary (wrestler)

agosto 2018. ^ Stuart Carapola, COMPLETE IMPACT WRESTLING REPORT: THE OGz COMMIT VEHICULAR ASSAULT AGAINST A TEN YEAR OLD, PENTAGON JR AND SAMI CALLIHAN

BigTable

arriva direttamente al tablet server che: segna sul LOG la richiesta dopo il commit successivo ad un'operazione di scrittura, il contenuto viene inserito nella