2009-06-10 13 views

risposta

27

"Una serie di istruzioni di manipolazione dei dati che devono sia completamente completo o completamente fallire, lasciando il database in uno stato coerente"

+2

Non solo database. Possiamo estendere questo concetto ad altri componenti, come il servizio di accodamento o lo stato di sistemi esterni. Quindi, "Una serie di istruzioni di manipolazione dei dati che devono essere completate completamente o completamente fallite, lasciando il sistema in uno stato coerente" –

+0

. Ben detto. – Rad

23

Ecco una spiegazione semplice. Avete bisogno di trasferire 100 dollari dal conto A rendere conto B. È possibile farlo:

accountA -= 100; 
accountB += 100; 

o

accountB += 100; 
accountA -= 100; 

Se qualcosa va storto tra la prima e la seconda operazione della coppia di avere un problema: 100 dollari sono scomparsi o sono comparsi dal nulla.

Una transazione è un meccanismo che consente di contrassegnare un gruppo di operazioni ed eseguirle in modo che vengano eseguite tutte (commit) oppure lo stato del sistema sarà come se non si fosse iniziato a eseguire affatto (rollback).

beginTransaction; 
accountB += 100; 
accountA -= 100; 
commitTransaction; 

trasferirà 100 dollari o lascerà entrambi i conti nello stato iniziale.

58

Una transazione è un modo di rappresentare un cambiamento di stato. Le operazioni hanno idealmente quattro proprietà, comunemente noto come acido:

  • atomica (se il cambiamento è commesso, accade in un sol colpo, non si può mai vedere "mezza cambiamento")
  • coerente (il cambiamento può solo se il nuovo stato del sistema sarà valido, qualsiasi tentativo di eseguire una modifica non valida avrà esito negativo, lasciando il sistema nel suo stato valido precedente)
  • Isolato (nessun altro vede alcuna parte della transazione finché non viene impegnata
  • Durevole (una volta avvenuta la modifica, se il sistema conferma che la transazione è stata eseguita, il client non deve preoccuparsi di t "irrigare" il sistema per rendere la "chiavetta" di modifica)

Vedere la voce Wikipedia ACID per ulteriori dettagli.

Anche se questo è in genere applicato ai database, non deve essere. (In particolare, vedere Software Transactional Memory.)

169

Una transazione è un'unità di lavoro che si desidera trattare come "un intero". Deve accadere per intero o per niente.

Un esempio classico è il trasferimento di denaro da un conto bancario a un altro. Per fare ciò devi prima prelevare l'importo dall'account di origine e quindi depositarlo nell'account di destinazione. L'operazione deve riuscire pienamente. Se ti fermi a metà strada, i soldi andranno persi, e questo è molto cattivo.

Nelle moderne banche dati le transazioni fanno anche altre cose, ad esempio assicurarsi di non poter accedere ai dati che un'altra persona ha scritto a metà. Ma l'idea di base è la stessa: le transazioni ci sono per garantire che, indipendentemente da ciò che accade, i dati con cui lavori saranno in uno stato ragionevole. Garantiscono che NON ci sarà una situazione in cui il denaro viene prelevato da un account, ma non depositato su un altro.

+9

+1 per l'esempio !! –

+1

Questa risposta dovrebbe essere accettata. – user1205577

+0

Grazie per l'esempio molto semplice – Nomadme

1

Suggerirei che una definizione di "elaborazione delle transazioni" sarebbe più utile, in quanto copre le transazioni come un concetto in informatica.

Da wikipedia:

In informatica, elaborazione delle transazioni è di elaborazione delle informazioni che è diviso in singole, operazioni indivisibili, chiamati transazioni. Ogni transazione deve avere successo o fallire come unità completa; non può rimanere in uno stato intermedio.

http://en.wikipedia.org/wiki/Transaction_processing#Implementations

0

penso una transazione è un'azione atomica in termini di DBMS.

significa che non può essere separato. sì, in una trascrizione, potrebbero esserci diverse istruzioni per l'esecuzione del sistema. ma sono legati insieme per completare un singolo compito di base.

per esempio. devi attraversare un ponte (trattiamolo come una trascrizione) e per fare questo, ad esempio, hai bisogno di 100 passi. nel complesso, questi passaggi non possono essere separati. quando ne hai fatto la metà, c'è solo una scelta per te: continua a finirli tutti e torna al punto di partenza. è proprio come il risultato di una transazione: successo (impegnato) e fallito (rollback)

1

Oltre alle risposte di cui sopra, si deve notare che non vi è, almeno in teoria, nessuna restrizione su quale tipo di risorse sono coinvolte in una transazione.

La maggior parte delle volte, si tratta solo di un database o di più database distinti, ma è anche possibile che una stampante partecipi a una transazione e possa causare il fallimento di tale transazione, ad esempio in caso di inceppamento della carta .

8

Una transazione è una sequenza di una o più operazioni SQL trattate come un'unità.

In particolare, ogni transazione sembra essere eseguita separatamente e inoltre, in caso di errore del sistema, ciascuna transazione viene eseguita interamente o non interamente.

Il concetto di transazioni è motivato da due preoccupazioni completamente indipendenti. Uno ha a che fare con l'accesso simultaneo al database da più client e l'altro deve fare con un sistema che resiliente agli errori del sistema.

transazione supporta ciò che è noto come le proprietà ACID:

  • A: Atomicità;
  • C: Coerenza;
  • I: isolamento;
  • D: Durata.
0

transazione è un'unità inscindibile del trattamento dei dati transazioni -Tutti devono avere le proprietà ACID:

cioè: Atomicità, Consistenza, Isolamento e durevole transazione è tutto o niente, ma non intermidiate (che significa, se trasferisci i tuoi soldi da un account a un altro account, un account deve perdere molto e l'altro deve ottenere tale importo, ma se trasferisci denaro da un account e un altro account è ancora vuoto che non sarà una transazione)

7

Proprietà delle transazioni:

operazioni sono le seguenti quattro proprietà standard, solitamente indicato con l'acronimo ACID:

Atomicity: ensures that all operations within the work unit are completed 
      successfully; otherwise, the transaction is aborted at the point of 
      failure, and previous operations are rolled back to their former state. 

Consistency: ensures that the database properly changes states upon a successfully 
      committed transaction. 

Isolation: enables transactions to operate independently of and transparent to 
      each other. 

Durability: ensures that the result or effect of a committed transaction persists 
      in case of a system failure. 

controllo Transazione:

Esistono seguenti comandi utilizzati per controllare operazioni:

COMMIT: to save the changes. 

ROLLBACK: to rollback the changes. 

SAVEPOINT: creates points within groups of transactions in which to ROLLBACK 

SET TRANSACTION: Places a name on a transaction. 
0

Transazione può essere definito come una raccolta di attività che sono considerate come unità di elaborazione minima. Ogni unità di elaborazione minima non può essere ulteriormente divisa.

L'operazione principale di una transazione viene letta e scritta.

Tutte le transazioni devono contenere quattro proprietà comunemente note come proprietà ACID allo scopo di garantire l'accuratezza, la completezza e l'integrità dei dati.