Transazioni
Il concetto di transazione è stato sviluppato per gestire i casi in cui lo stato risultante del database dipende dalla corretta esecuzione globale di una serie di operazioni,quando operazioni successive devono modificare i risultati di operazioni precedenti.In tali casi, se una delle operazioni non viene eseguita correttamente, può risultare impossibile ottenere un risultato corretto.
Per risolvere questo problema, è possibile raggruppare in una transazione una serie di operazioni in modo da garantire l'integrità del risultato finale.Affinché l'intera transazione venga eseguita, tutte le operazioni devono essere eseguite correttamente e confermate, ovvero scritte nel database.L'annullamento della transazione viene definito rollback.Il rollback consente di ripristinare i dati quali erano prima delle modifiche e di riportare il database allo stato precedente la transazione.
Ad esempio, in una transazione bancaria automatica, se si trasferisce del denaro dal conto A al conto B, sia il prelievo da A che il deposito in B dovranno essere completati correttamente, altrimenti l'intera transazione non verrà eseguita.
Una transazione deve disporre delle proprietà ACID, ovvero:
Atomicità Le transazioni vengono eseguite un'unica volta e sono atomiche, ovvero vengono completate o annullate interamente.
Coerenza Una transazione preserva l'uniformità dei dati, trasformando uno stato coerente di dati in un altro stato coerente di dati.I dati associati da una transazione devono mantenere la stessa semantica.
Isolamento Le transazioni sono unità isolate e ognuna viene eseguita separatamente e in modo indipendente rispetto alle transazioni concorrenti.È importante che una transazione non sia mai interessata dalle fasi intermedie di un'altra transazione.
Durata Una transazione rappresenta inoltre un'unità di recupero.Se una transazione viene eseguita correttamente, gli aggiornamenti apportati persistono, anche nel caso in cui il sistema si blocchi o venga chiuso.Se una transazione non viene eseguita correttamente, il sistema rimane nello stato precedente la transazione.
Le transazioni sono supportate in OLE DB e in ODBC. Per informazioni, vedere Supporto delle transazioni in OLE DB e Transazione (ODBC).
Una transazione distribuita è una transazione che aggiorna dati distribuiti, ovvero dati memorizzati su più sistemi di computer connessi in rete. Se si desidera supportare le transazioni su un sistema distribuito, è necessario utilizzare Microsoft .NET Framework anziché il sistema di supporto delle transazioni di OLE DB.