database concurrency transactions theory failover

database - ¿Qué es una transacción de base de datos?



concurrency transactions (12)

¿Puede alguien proporcionar una explicación directa (pero no más simple que posible) de una transacción aplicada a la informática (incluso si se copia de Wikipedia)?


"Una serie de declaraciones de manipulación de datos que deben completarse o fallar por completo, dejando la base de datos en un estado consistente"


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

La mayoría de las veces, es solo una base de datos, o varias bases de datos distintas, pero también es concebible que una impresora tome parte en una transacción y puede hacer que esa transacción falle, por ejemplo, en el caso de un atasco de papel.


Aquí hay una explicación simple. Debe transferir 100 dólares de la cuenta A a la cuenta B. Puede hacer lo siguiente:

accountA -= 100; accountB += 100;

o

accountB += 100; accountA -= 100;

Si algo sale mal entre la primera y la segunda operación del par, tienes un 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 (rollback).

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

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


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 (reversión)


La transacción es una unidad indivisible de procesamiento de datos. Todas las transacciones deben tener las propiedades ACID:

es decir: Atomicidad, consistencia, aislamiento y transacción duradera es todo o nada, pero no es intermedio (significa que si transfiere su dinero de una cuenta a otra, una cuenta tiene que perder tanto y otra tiene que ganar esa cantidad, pero si transfieres dinero de una cuenta y otra aún está vacía y no será una transacción)


La 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 que comúnmente se conocen como propiedades ACID con el fin de garantizar la precisión, la integridad y la integridad de los datos.


Propiedades de las transacciones:

Las transacciones tienen las siguientes cuatro propiedades estándar, generalmente denominadas por el acrónimo 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.

Control de transacciones:

Existen los siguientes comandos utilizados 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.


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 la wikipedia:

En informática, el procesamiento de transacciones es un proceso de información que se divide en operaciones individuales e indivisibles, llamadas transacciones. 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


Una transacción es una forma de representar un cambio de estado. Las transacciones idealmente tienen cuatro propiedades, comúnmente conocidas como ACID:

  • Atómico (si el cambio se comete, sucede de una sola vez, nunca se puede ver "medio cambio")
  • Consistente (el cambio solo puede ocurrir si el nuevo estado del sistema será válido; cualquier intento de cometer un cambio no vá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)
  • Duradero (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 por "enjuagar" el sistema para hacer que el cambio se "admita")

Vea la entrada de Wikipedia ACID para más detalles.

Aunque esto se aplica generalmente a las bases de datos, no tiene por qué ser así. (En particular, consulte Memoria transaccional de software ).


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 aisladamente 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 concurrente a la base de datos por parte de múltiples clientes, y el otro tiene que ver con tener un sistema que sea resistente a las fallas del sistema.

La transacción admite lo que se conoce como las propiedades ACID:

  • A: Atomicidad;
  • C: consistencia;
  • I: Aislamiento;
  • D: Durabilidad.

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 transferir 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 hasta la mitad. 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.