2009-06-10 11 views

Respuesta

27

"Una serie de sentencias de manipulación de datos que debe ya sea totalmente completa o totalmente fallar, dejando la base de datos en un estado coherente"

+2

No solo la base de datos. Podemos extender este concepto a otros componentes, como el servicio de cola o el estado de los sistemas externos. Por lo tanto, "Una serie de instrucciones de manipulación de datos que deben completarse o fallar por completo, dejando el sistema en un estado coherente" –

+0

De hecho. Bien dicho. – Rad

23

Aquí hay una explicación sencilla. Tiene que transferir 100 dólares desde la cuenta A a la cuenta B. Puede hacerlo:

accountA -= 100; 
accountB += 100; 

o

accountB += 100; 
accountA -= 100; 

Si algo va mal entre la primera y la segunda operación en el par tiene una problema - o 100 dólares han desaparecido, o han aparecido de la nada.

Una transacción es un mecanismo que le permite marcar un grupo de operaciones y ejecutarlas de forma tal que todas ellas se ejecuten (commit), o el estado del sistema será como si no hubieran comenzado a ejecutarse en absoluto (Retroceder).

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

transferirá 100 dólares o dejará ambas cuentas en el estado inicial.

58

Una transacción es una forma de representar un cambio de estado. Transacciones idealmente tienen cuatro propiedades, comúnmente conocida como ácido:

  • Atómica (si se comete el cambio, ocurre de una sola vez, nunca se puede ver "la mitad de un cambio")
  • Consistente (El cambio puede solo ocurrirá si el nuevo estado del sistema será válido; cualquier intento de cometer un cambio inválido fallará, dejando el sistema en su estado válido anterior)
  • Aislado (nadie más ve ninguna parte de la transacción hasta que se haya comprometido))
  • Durable (una vez que se ha producido el cambio, si el sistema dice que la transacción se ha comprometido, el cliente no tiene que preocuparse) t "enjuagar" el sistema para hacer que el cambio "se adhiera")

Ver la entrada de Wikipedia ACID para obtener más detalles.

Aunque esto normalmente se aplica a bases de datos, no tiene que ser así. (En particular, consulte Software Transactional Memory.)

169

Una transacción es una unidad de trabajo que desea tratar como "un todo". Tiene que suceder completo o no.

Un ejemplo clásico es la transferencia de dinero de una cuenta bancaria a otra. Para hacerlo, primero debe retirar el importe de la cuenta de origen y luego depositarlo en la cuenta de destino. La operación tiene que tener éxito en su totalidad. Si se detiene a mitad de camino, se perderá el dinero, y eso es Muy Malo.

En las bases de datos modernas, las transacciones también hacen otras cosas, como asegurarse de que no puede acceder a los datos que otra persona ha escrito a medio camino. Pero la idea básica es la misma: las transacciones están ahí para garantizar que pase lo que pase, los datos con los que trabaja estarán en un estado sensible. Garantizan que NO habrá una situación en la que el dinero se retire de una cuenta, pero no se deposite en otra.

+9

+1 para el ejemplo !! –

+1

Esta respuesta debe ser aceptada. – user1205577

+0

Gracias por el ejemplo muy simple – Nomadme

1

Sugeriría que una definición de 'procesamiento de transacciones' sería más útil, ya que cubre las transacciones como un concepto en ciencias de la computación.

de Wikipedia:

En informática, procesamiento de transacciones es el procesamiento de la información que se divide en, operaciones indivisibles, llamadas transacciones individuales. Cada transacción debe tener éxito o fallar como una unidad completa; no puede permanecer en un estado intermedio.

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

0

creo que una transacción es una acción atómica en términos de DBMS.

eso significa que no se puede separar. sí, en una transición, puede haber varias instrucciones para que el sistema se ejecute. pero están unidos para terminar una sola tarea básica.

por ejemplo. necesitas caminar a través de un puente (vamos a tratar esto como una transición), y para hacer esto, digamos, necesitas 100 pasos. En general, estos pasos no se pueden separar. Cuando hayas hecho la mitad, solo hay dos opciones para ti: continuar finalizándolas todas, y volver al punto de inicio. es como el resultado de una transacción: éxito (comprometido) y error (retrotracción)

1

Además de las respuestas anteriores, se debe tener en cuenta que, al menos en teoría, no existe restricción alguna sobre qué tipo de recursos están involucrados en una transacción.

La mayoría de las veces, solo se trata de una base de datos o varias bases de datos distintas, pero también es concebible que una impresora participe en una transacción y pueda provocar una transacción falsa, por ejemplo, en caso de atasco de papel .

8

Una transacción es una secuencia de una o más operaciones SQL que se tratan como una unidad.

Específicamente, cada transacción parece ejecutarse de forma aislada y, además, si el sistema falla, cada transacción se ejecuta en su totalidad o no todas.

El concepto de transacciones está motivado por dos preocupaciones completamente independientes. Uno tiene que ver con el acceso simultáneo a la base de datos por varios clientes, y el otro tiene que hacer con un sistema que es resistente a las fallas del sistema.

Transacción apoya lo que se conoce como las propiedades ACID:

  • A: Atomicidad;
  • C: Consistencia;
  • I: Aislamiento;
  • D: Durabilidad.
0

transacción es una unidad indivisible de procesamiento de datos transacciones -Todos deben tener las propiedades ACID:

es decir: Atomicidad, Consistencia, Aislamiento y durable transacción es todo o nada, pero no intermidiate (que significa si transfiere su dinero de una cuenta a otra, una cuenta tiene que perder tanto y otra tiene que ganar esa cantidad, pero si transfiere dinero de una cuenta y otra aún está vacía, eso no será una transacción)

7

Propiedades de las transacciones:

transacciones tienen los siguientes cuatro propiedades estándar, por lo general se hace referencia por el ácido acrónimo:

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. 

transacción de control:

Hay siguientes comandos usados ​​para controlar las transacciones:

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

Transacción se puede definir como una colección de tareas que se consideran unidades de procesamiento mínimas. Cada unidad mínima de procesamiento no puede dividirse más.

La operación principal de una transacción es de lectura y escritura.

Todas las transacciones deben contener cuatro propiedades conocidas comúnmente como propiedades ACID con el fin de garantizar la precisión, la integridad y la integridad de los datos.

Cuestiones relacionadas