¿Alguien puede 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)?¿Qué es una transacción de base de datos?
Respuesta
http://en.wikipedia.org/wiki/Database_transaction
http://en.wikipedia.org/wiki/ACID
ACID = Un tomicity, C OHERENCIA, I solation, D urability
Cuando desee para múltiples recursos transaccionales a estar involucrados en una sola transacción, necesitarás usar algo como una solución two-phase commit. XA es ampliamente compatible.
"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"
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" –
De hecho. Bien dicho. – Rad
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.
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.)
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.
+1 para el ejemplo !! –
Esta respuesta debe ser aceptada. – user1205577
Gracias por el ejemplo muy simple – Nomadme
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
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)
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 .
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.
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)
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.
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.
- 1. ¿Qué es una "transacción distribuida"?
- 2. ¿Qué es una sesión de base de datos?
- 3. Transacción de base de datos de Magento
- 4. ¿Qué es una "base de datos generalizada"?
- 5. base de datos de Contabilidad - almacenar una transacción
- 6. ¿Qué es una transacción zombie?
- 7. ¿Qué sucede si no comprometes una transacción a una base de datos (por ejemplo, SQL Server)?
- 8. ¿Por qué obtengo una transacción abierta cuando solo selecciono desde una base de datos Vista?
- 9. ¿Diferencia entre una transacción de hibernación y una transacción de base de datos realizada mediante consultas SQL?
- 10. cómo controlar la transacción de la base de datos?
- 11. ¿Qué es una base de datos en columnas?
- 12. ¿Qué es DEMASIADO GRANDE para una base de datos?
- 13. ¿Qué es una secuencia (Base de datos)? ¿Cuándo lo necesitaríamos?
- 14. ¿Cómo puedo ejecutar una operación de base de datos fuera de una transacción en Rails/ActiveRecord
- 15. ¿Es necesaria una reversión de transacción explícita?
- 16. ¿Qué significa aspirar una base de datos?
- 17. ¿Por qué necesitamos una base de datos temporal?
- 18. Buscando una base de datos de objetos
- 19. ¿Qué ventajas tiene una base de datos basada en documentos sobre una base de datos relacional?
- 20. Cómo revertir una transacción de base de datos cuando se prueban servicios con Spring en JUnit?
- 21. Servidor SQL: ¿Cómo saber si una base de datos es una base de datos del sistema?
- 22. ¿Qué es un nombre de base de datos PostgreSQL válido?
- 23. ¿Qué tan peligroso es almacenar datos JSON en una base de datos?
- 24. ¿Qué es una forma mantenible de guardar "calificación por estrellas" en una base de datos?
- 25. ¿Qué es una clase completa de Android Database Helper para una base de datos SQLite existente?
- 26. ¿Es "malo" almacenar XML en una base de datos?
- 27. ¿Crear una base de datos desde otra base de datos?
- 28. SQL Server 2008 - Transacción por segundo para una base de datos específica
- 29. Diferencia entre estrategias de base de datos de truncamiento, transacción y eliminación
- 30. ¿Es una vista en la base de datos actualizable?
todos de ACID. – van