Transacciones

Páginas: 7 (1502 palabras) Publicado: 10 de diciembre de 2015
TRANSACCIONES
EN SQL SERVER

Cóncepto
Una
transacción
en
un
Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de
órdenes que se ejecutan formando una unidad de trabajo, es decir,
en forma indivisible o atómica.
Un SGBD se dice transaccional, si es capaz de mantener la
integridad de los datos, haciendo que estas transacciones no
puedan finalizar en un estado intermedio. Cuando por algunacausa
el sistema debe cancelar la transacción, empieza a deshacer las
órdenes ejecutadas hasta dejar la base de datos en su estado inicial
(llamado punto de integridad), como si la orden de la transacción
nunca se hubiese realizado.










Para esto, el lenguaje de consulta de datos SQL (Structured
Query Language), provee los mecanismos para especificar que
un conjunto de acciones debenconstituir una transacción.
BEGIN TRAN: Especifica que va a empezar una transacción.
COMMIT TRAN: Le indica al motor que puede considerar la
transacción completada con éxito.
ROLLBACK TRAN: Indica que se ha alcanzado un fallo y que debe
restablecer la base al punto de integridad.
En un sistema ideal, las transacciones deberían garantizar todas
las propiedades ACID; en la práctica, a veces algunade estas
propiedades se simplifica o debilita con vistas a obtener un
mejor rendimiento.



Atomicidad: es la propiedad que asegura que la operación se ha
realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a
medias.



Consistencia: Integridad. Es la propiedad que asegura que sólo se
empieza aquello que se puede acabar. Por lo tanto se ejecutan aquellas
operaciones que novan a romper las reglas y directrices de integridad
de la base de datos.



Aislamiento: es la propiedad que asegura que una operación no puede
afectar a otras. Esto asegura que la realización de dos transacciones
sobre la misma información sean independientes y no generen ningún
tipo de error.



Durabilidad: es la propiedad que asegura que una vez realizada la
operación, ésta persistirá y no sepodrá deshacer aunque falle el
sistema.

Un ejemplo Básico
de transacción
Un ejemplo habitual de transacción es el traspaso de una
cantidad de dinero entre cuentas bancarias. Normalmente se
realiza mediante dos operaciones distintas, una en la que se
decremento el saldo de la cuenta origen y otra en la que
incrementamos el saldo de la cuenta destino. Para garantizar la
atomicidad del sistema (esdecir, para que no aparezca o
desaparezca dinero), las dos operaciones deben ser atómicas, es
decir, el sistema debe garantizar que, bajo cualquier
circunstancia (incluso una caída del sistema), el resultado final
es que, o bien se han realizado las dos operaciones, o bien no se
realizado ninguna.

Trabajaremos con la base de datos Northwind en nuestros ejemplos.
Vamos a realizar una transacciónque modifica el precio de dos productos
de la base de datos:
USE NorthWind
DECLARE @Error int
-- Declaramos una variable que utilizaremos para almacenar un
posible código de error
BEGIN TRAN
BEGIN TRAN
--Iniciamos la transacción
UPDATE Products SET UnitPrice=20 WHERE ProductName =’Chai’
--Ejecutamos la primera sentencia
SET @Error=@@ERROR
--Si ocurre un error almacenamos su código en @Error
--ysaltamos al trozo de código que deshara la transacción. 
IF (@Error<>0) GOTO TratarError
--Si la primera sentencia se ejecuta con éxito, pasamos a la segunda
UPDATE Products SET UnitPrice=20 WHERE ProductName=’Chang’
SET @Error=@@ERROR























-Y si hay un error hacemos como antes
IF (@Error<>0) GOTO TratarError
--Si llegamos hasta aquí es que los dos UPDATE sehan completado
con
--éxito y podemos "guardar" la transacción en la base de datos
COMMIT TRAN
TratarError:
--Si ha ocurrido algún error llegamos hasta aquí
If @@Error<>0 THEN
BEGIN
PRINT ‘Ha ecorrido un error. Abortamos la transacción’
--Se lo comunicamos al usuario y deshacemos la transacción
--todo volverá a estar como si nada hubiera ocurrido
ROLLBACK TRAN
END
Si tenemos dos sentencias dentro...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Transacciones
  • Transacciones
  • transacciones
  • Transacciones
  • LAS TRANSACCIONES
  • Transacciones
  • Transaccion
  • transaccion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS