Condividi tramite


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.

Vedere anche

Concetti

Programmazione dell'accesso ai dati