Nozioni fondamentali sull'elaborazione delle transazioni
Una transazione consiste in una serie di operazioni correlate che costituiscono una singola unità, la quale può solo riuscire perfettamente o essere completamente annullata. Nella terminologia dell'elaborazione delle transazioni, queste due possibilità vengono definite commit e interruzione della transazione. Per ottenere il commit di una transazione è necessario che tutti i partecipanti garantiscano la stabilità di eventuali modifiche apportate ai dati. È necessario che le modifiche siano permanenti, indipendentemente da eventuali interruzioni del sistema o altri eventi imprevisti.
Se anche un unico partecipante non è in grado di garantire questo requisito, l'intera transazione verrà annullata. Tutte le modifiche apportate ai dati nell'ambito della transazione verranno annullate in modo da ripristinare la situazione iniziale.
Le transazioni associano più operazioni differenti. Si supponga, ad esempio, che una pagina ASP.NET esegua due operazioni. Innanzitutto, crea una nuova tabella in un database. Quindi, richiama un oggetto specializzato per riunire, formattare e inserire dati nella nuova tabella. Queste due operazioni sono correlate e addirittura interdipendenti, in quanto l'intenzione è quella di non creare la nuova tabella se non è possibile inserirvi i dati. L'esecuzione di entrambe le operazioni nell'ambito di un'unica transazione stabilisce una connessione tra di esse. Se la seconda operazione ha esito negativo, la prima viene annullata fino a ripristinare la situazione esistente prima della creazione della nuova tabella.
Come illustrato da questo esempio, una transazione può essere confinata a un'unica risorsa di dati, quale un database o una coda di messaggi. È normale che queste risorse di dati offrano funzionalità di transazione locale. Controllate dalla risorsa di dati, queste transazioni sono efficaci e facili da gestire.
Le transazioni possono inoltre interessare più risorse di dati. Le transazioni distribuite consentono di incorporare varie operazioni distinte eseguite su sistemi differenti in un'unica azione che può riuscire o fallire.
Vedere anche
Elaborazione delle transazioni | Proprietà ACID | Limiti delle transazioni | Transazioni distribuite