0 evaluări0% au considerat acest document util (0 voturi)
27 vizualizări28 pagini
Este documento describe las transacciones en SQL y su uso con ADO.NET. Explica las propiedades ACID de las transacciones, incluida la atomicidad, consistencia, aislamiento y durabilidad. También cubre la creación de transacciones manuales y automáticas, y cómo implementar transacciones en ADO.NET usando objetos como Connection y Command.
Este documento describe las transacciones en SQL y su uso con ADO.NET. Explica las propiedades ACID de las transacciones, incluida la atomicidad, consistencia, aislamiento y durabilidad. También cubre la creación de transacciones manuales y automáticas, y cómo implementar transacciones en ADO.NET usando objetos como Connection y Command.
Este documento describe las transacciones en SQL y su uso con ADO.NET. Explica las propiedades ACID de las transacciones, incluida la atomicidad, consistencia, aislamiento y durabilidad. También cubre la creación de transacciones manuales y automáticas, y cómo implementar transacciones en ADO.NET usando objetos como Connection y Command.
Junio, 2017 TRANSACCIONES PARA LA INTEGRIDAD DE DATOS AGENDA Procesamiento de Transacciones Propiedades ACID Modelos de Transacciones Creacin de Transacciones en ADO.NET
DR. LUIS BOY CHAVIL
TRANSACCIONES Las transacciones se forman por un conjunto de tareas relacionadas que se realizan como una unidad. Las transacciones se confirman o se anulan. Reflejan operaciones que son activadas por eventos como: Comprar un producto Registrarse para un curso, o Hacer un depsito para una cuenta.
DR. LUIS BOY CHAVIL
TRANSACCIONES Una transaccin de ventas, podra requerir: Que se actualice la cuenta del cliente, Ajustar el inventario de productos, y Actualizar las cuentas por cobrar del vendedor. Todas las partes de un transaccin deben completarse de manera satisfactoria para evitar problemas de integridad de datos.
DR. LUIS BOY CHAVIL
TRANSACCIONES.- Ejemplo
DR. LUIS BOY CHAVIL
TRANSACCIONES.- Ejemplo El saldo del cliente de la tabla CLIENTE indica la cantidad total adeudada por el cliente. El saldo, aumenta cuando el cliente hace una compra a crdito y disminuye cuando hace un pago. La tabla MOVIMIENTOS registra todas las compras y pagos del cliente para dar seguimiento a los detalles de la actividad de su cuenta.
DR. LUIS BOY CHAVIL
TRANSACCIONES.- Ejemplo Suponga que se vende un producto a un cliente y que l puede cargar la compra a su cuenta; en este caso, la transaccin de venta contendra: Escribir una nueva Factura Reducir la cantidad disponible en el stock de producto. Actualizar las transacciones de la cuenta. Actualizar el saldo del cliente.
DR. LUIS BOY CHAVIL
TRANSACCIONES.- Ejemplo En trminos de bases de datos, una transaccin es cualquier accin que lea o escriba en una base de datos. Una transaccin es una unidad de trabajo lgica que debe estar totalmente terminada o abortada; no se aceptan estados intermedios.
DR. LUIS BOY CHAVIL
ESTADO CONSISTENTE Un estado consistente en una base de datos es aquel en el que se satisfacen todas las restricciones de integridad de datos. Una transaccin exitosa cambia la base de datos de un estado consistente a otro.
DR. LUIS BOY CHAVIL
ESTADO CONSISTENTE No todas las transacciones actualizan datos; veamos: --Examinar la tabla CLIENTE para determinar el saldo -- actual del cliente con nmero 1002. use FACTURAS go select c.CLI_numero as [N Cliente], c.CLI_saldo as SaldoCliente from CLIENTE c where c.CLI_numero=1002 go La base de datos permanece en estado consistente despus del acceso, porque la transaccin no la alter.
DR. LUIS BOY CHAVIL
CLUSULAS BEGIN TRAN Especifica que va a iniciar una transaccin COMMIT TRAN Le indica al motor de base de datos que puede considerar la transaccin completada con xito. ROLLBACK TRAN Indica que se ha alcanzado un fallo y que debe restablecer la base al punto de integridad.
DR. LUIS BOY CHAVIL
SINTAXIS BEGIN [TRAN | TRANSACTION] Nombre_Transaccin
COMMIT TRAN Nombre_Transaccin
ROLLBACK TRAN Nombre_Transaccin
DR. LUIS BOY CHAVIL
ESTADO CONSISTENTE --Insertar un movimiento nuevo, verificando que existe CLIENTE. if OBJECT_ID('MovimientoNew') is not null drop procedure dbo.MovimientoNew go create procedure MovimientoNew(@MOV_numero char(10), @MOV_fecha datetime, @MOV_tipotransacc char(08), @MOV_cantidad decimal(7,2), @CLI_apellido char(18), @CLI_nombre char(18)) AS begin transaction TransacMovimiento declare @CLI_numero int select @CLI_numero=CLI_numero from CLIENTE where CLI_apellido=@CLI_apellido and CLI_nombre=@CLI_nombre Insert into MOVIMIENTOS values(@MOV_numero, @MOV_fecha, @MOV_tipotransacc, @MOV_cantidad, @CLI_numero) if @@error=0 begin print 'Movimiento registrado exitosamente' commit tran TransacMovimiento end else begin print 'Ocurri error al insertar ...' rollback tran TransacMovimiento end go --Ejecucin del SP exec MovimientoNew '10220','18/01/2015', 'venta', 100.00, 'Perez Chavez', 'Daniel' go DR. LUIS BOY CHAVIL ESTADO CONSISTENTE Supongamos que el 18 de enero de 2017, se registra la venta a crdito de una unidad del producto K3-WRE-Q al cliente 4502 por la cantidad de S/. 277.55: Insert Into FACTURA values('10280012', 18/01/2017, 256.99, 20.56, 277.55, 'cred', 0.00, 277.55, 4502) Insert Into VENTAS values(1, '10280012', K3-WRE-Q', 1, 256.99, 256.99) Update PRODUCTO set PRO_stock=PRO_stock-1 where PRO_numero=K3-WRE-Q' Update CLIENTE set CLI_saldo=CLI_saldo+277.55 where CLI_numero=4502 Insert Into MOVIMIENTOS values('1005', 18/01/2017, 'cobro', 277.55, 4502) COMMIT; DR. LUIS BOY CHAVIL CARACTERSTICAS Propiedades ACID ACID Expresa la funcin que las transacciones desarrollan en aplicaciones crticas para una misin. Atomicity (Atomicidad) Consistency (Consistencia) Isolation (Aislamiento) Durability (Durabilidad)
DR. LUIS BOY CHAVIL
ATOMICIDAD Una Transaccin se ejecuta exactamente una vez y tiene carcter atmico; es decir, el trabajo se realiza en su totalidad o no se realiza en ningn caso. Si una Transaccin Tran1, tiene 4 solicitudes de SQL, las cuatro peticiones deben ejecutarse con xito; de lo contrario toda la transaccin se aborta. Por tanto, es una unidad de trabajo en la que se produce una serie de operaciones entre: Begin Transaction y End Transaction.
DR. LUIS BOY CHAVIL
CONSISTENCIA Una transaccin es una unidad integral porque mantiene la consistencia de los datos, transformando un estado consistente de datos en otro estado de datos igualmente consistente. La consistencia indica la permanencia del estado consistente de la base de datos.
DR. LUIS BOY CHAVIL
AISLAMIENTO Una transaccin es una unidad de aislamiento, permitiendo que transacciones concurrentes se comporten como si cada una fuera la nica transaccin que se ejecuta en el sistema. Una transaccin nunca debe ver las fases intermedias de otra transaccin.
DR. LUIS BOY CHAVIL
DURABILIDAD Una transaccin tambin es una unidad de recuperacin. Si una transaccin se realiza satisfactoriamente, el sistema garantiza que sus actualizaciones se mantienen aunque el equipo falle inmediatamente despus de la confirmacin.
DR. LUIS BOY CHAVIL
TRANSACCIONES CON ADO NET MODELOS Transacciones Manuales Transacciones Automticas
DR. LUIS BOY CHAVIL
TRANSACCIONES MANUALES Permiten comenzar de forma explcita una transaccin, controlar cada una de las inscripciones de recursos y conexiones dentro del lmite de la transaccin, determinar el resultado de la misma (confirmacin o anulacin) y finalizarla. Tipos: Transacciones de ADO .NET Transacciones de Colas de Mensajes Cuando se trabaja con aplicaciones distribuidas con COM+
DR. LUIS BOY CHAVIL
TRANSACCIONES AUTOMTICAS Admitidas por: Microsoft Transaction Server (MTS) COM+ Common Lenguaje Runtime Una vez que una pgina de ASP .NET, un mtodo de servicio web XML, o una clase de .NET Framework se marcan para participar en una transaccin, se ejecutan automticamente en el mbito de la misma. Tipos: Transacciones de ASP .NET Transacciones de servicios Web XML Transacciones de servicios empresariales .NET DR. LUIS BOY CHAVIL TRANSACCIONES EN ADO.NET Para comenzar una transaccin local, usaremos el objeto de conexin de ADO.NET: Connection.BeginTransaction Inscribiremos un comando en esa transaccin mediante la propiedad Transaction del objeto Command. Luego, podremos utilizar el objeto Transaction para confirmar o deshacer las modificaciones realizadas en el origen de datos, en funcin del xito o de los errores de los componentes de la transaccin
DR. LUIS BOY CHAVIL
TRANSACCIONES EN ADO.NET Declarar una variable de tipo SqlTransaction Dim Tran As SqlTransaction Definir una estructura Try..Catch..Finally que maneje los posibles errores de ejecucin de comandos: En Try, abrir la conexin: Cnn.Open() Crear la transaccin: Tran = Cnn.BeginTransaction Configurar la propiedad Transaction de todos los comandos que se desean en la transaccin oComando.Transaction = Tran DR. LUIS BOY CHAVIL TRANSACCIONES EN ADO.NET Ejecutar los comandos con ExecuteNonQuery oComando.ExecuteNonQuery Si ningn comando genera una excepcin, realizar la transaccin mediante Commit: Tran.Commit() Si algn comando genera un error, anular la transaccin con Rollback dentro de Catch: Tran.Rollback() Cerrar la coneccin si est abierta, dentro de Finally: If cnn.State=ConnectionState.Open then Cnn.Close()
DR. LUIS BOY CHAVIL
TRANSACCIONES EN SQL Escuela de Ingeniera De Sistemas