ADO Transaciones Version2012
Acrónimo A.C.I.D
Atomicidad: Todas las operaciones deben unificarse
como si fuera una sola.
Consistencia: Cualquier operación realizada no debe
romper la integridad de los datos.Isolation Level (nivel de aislamiento): la base de
datos debe aislar los datos “sucios” para evitar que
otros usuarios los usen.
Durabilidad: los datos confirmados no pueden
perderse.
Transacciones
Brevereseña del concepto
Ejemplo: (un usuario intenta ejecutar una serie
de comandos que representan una
transferencia de $100 de una cuenta a la
otra):
Ocurre un error
al intentar
1) Restar de la cuenta A$100
ejecutar esta
operación
2) Sumar en la cuenta B $100
Resultado: Los datos quedan inconsistentes y
el cliente pierde $100 en su balance
Transacciones
Breve reseña del concepto
Ejemplo: (unusuario intenta ejecutar una serie
de comandos que representan una
transferencia de $100 de una cuenta a la
otra):
Ocurre un error al
intentar ejecutar esta
1) Restar de la cuenta A $100
operación y todaslas
operaciones de la
2) Sumar en la cuenta B $100
transacción quedan
Transacción
sin efecto
Resultado: Los datos quedan consistentes y
vuelven a su estado original. El cliente
mantiene intacto subalance
Transacciones
Breve reseña del concepto
Otro caso puede darse con operaciones concurrentes.
Por ejemplo, si un usuario desea comprar 100 unidades
de un producto, lee el stock, verifica quehay
suficiente, y mientras coloca el pedido, otro usuario
realiza una compra similar dejando en 0 el stock.
El negocio no tendrá mercadería para hacer frente al
pedido del usuario que colocó el pedidoonline (y
que quizás ya pagó) .
Para que esto no ocurra debería existir cierto nivel de
bloqueo de los datos leídos y/o modificados hasta
tanto la operación (el conjunto de comandos) se
termine deprocesar totalmente.
Transacciones
ADO.NET provee soporte para transacciones
mediante el objeto DbTransaction.
Este objeto también es dependiente del
proveedor de datos. Para MS SQL Server se
llama...
Regístrate para leer el documento completo.