Per altri significati si veda la pagina di orientamento "Transazione".
In ambito informatico, il termine transazione indica un insieme di operazioni, di inquiry o di update, che devono essere effettuate in modo atomico, come se fossero una sola operazione.
Introduzione
La parola transazione è utilizzata solitamente in discussioni riguardanti databases e di altri ambienti transazionali quali il MainFrame.
Ogni transazione per essere considerata tale deve soddisfare i requisiti descritti e racchiusi nella sigla ACID.
ACID
Il termine ACID è la sigla utilizzata per descrivere le quattro proprietà, o caratteristiche, che ogni transazione deve soddisfare per essere considerata tale.
Proprietà
Le quattro proprietà fondamentali che ogni transazione deve soddisfare sono:
- Atomicity: l' Atomicità specifica che ogni transazione è indivisibile nella sua esecuzione e che questa deve essere o totale o nulla, non sono ammesse esecuzioni parziali;
- Consistency: la Coerenza indica che ogni transazione non deve violare eventuali vincoli di integrità dei dati elaborati, al termine dell'esecuzione lo stato del DB deve risultare essere 'coerente';
- Isolation: l' Isolamento richiede che l'esecuzione di ogni transazione deve risultare essere isolata e indipendente da altre transazioni e, quindi, l'eventuale fallimento di una transazione non deve interferire con le altre transazioni in esecuzione;
- Durability: la Durabilità, o Persistenza, specifica che dopo aver eseguito il comando commit i cambiamenti apportati ai dati non dovranno essere più persi.
Le Fasi di una Transazione
Per poter eseguire correttamente una transazione rispettando i vincoli ACID, in un tipico ambiente transazionale quale è MySQL 5 potrebbe essere necessario seguire le seguenti fasi:
- Prima di eseguire una transazione, si esegue l'istruzione di "inizio transazione" tramite il comando START TRANSACTION;
- Si eseguono le operazioni di interrogazione (istruzione SELECT) e modifica dei dati (istruzione UPDATE);
- Al verificarsi di qualunque errore o anomalia, per abortire la transazione , bisogna eseguire l'istruzione detta di rollback tramite il comando ROLLBACK;
- Se tutte le operazioni inserite nella transazione terminano l'esecuzione senza generare errori, si esegue l'istruzione di consolidamento dei dati tramite il comando COMMIT;
E' sempre auspicabile non dare per scontato il suddetto procedimento in quanto ogni Database può differenziarsi per la grammatica dei comandi da impartire e per meccanismi proprietari che possono prevedere configurazioni di auto-commit e di auto-rollback.
Fonti
Articolo a cura di mirkoagrati 15:20, Oct 21, 2009 (CEST)