Sunteți pe pagina 1din 2

hermosaprogramacion.

com

http://www.hermosaprogramacion.com/2014/05/sql-transaccion-que-es/

Que es una transaccin en SQL?


James
Revelo

Una transaccin es un conjunto secuencial de cambios a una base de datos. Las transacciones se emplean
como mecanismo de peticin para bases de datos de multiusuarios (concurrencia).
Los ejemplos mas bsicos de transacciones son la insercin, borrado y actualizacin de los datos de una tabla.
Aunque puede generarse una transaccin mas compleja que contenga una serie de pasos con respecto a
informacin particular de la base de datos.

Un ejemplo de una transaccin popular sera un retiro bancario, donde se deben consultar los datos y fondos del
usuario, luego determinar si es posible retirar el dinero o no, seguido actualizar la cuenta y finalmente salir de la
cuenta.
Esta transaccin asegura que ningn dato se pierda y mucho menos se pierda el dinero. Aunque otros usuarios
acceden en ese momento desde otra parte del pas a la base de datos del banco, el sistema gestor de bases de
datos administra la ejecucin de mltiples transacciones concurrentes para darte tu dinero sin problemas.

Propiedades de una transaccin


Las transacciones deben poseer las siguientes caractersticas para ser exitosas e integrales:
Atomicidad : Todas las sentencias dentro de la transaccin deben ejecutarse sin errores. Si por algn
motivo no se cumplen, la transaccin aborta en el punto de ruptura y deshace todo los cambios realizados.
Como quien dice O todo o Nada!.
Consistencia: Se debe asegurar que todos los cambios en la base de datos sean correctos y estn
guardados.
Aislamiento: La transaccin debe actuar independientemente de otra, dos transacciones no pueden estar
visualizando la misma informacin a tiempo.
Durabilidad: La transaccin debe asegurar que los cambios que har persistirn aunque el sistema falle.

Control de una transaccin


Para dirigir el flujo de una transaccin con efectividad y mantener sus propiedades, existen las siguientes
sentencias en SQL. La sintaxis y etiqueta dependen de cada gestor de bases de datos:
COMMIT : guarda los cambios.
ROLLBACK: deshace los cambios.
SAVEPOINT: crea un punto de restauracin dentro de un conjunto de transacciones para luego deshacer los
cambios si es necesario.

Iniciar una transaccin


Para sincronizar las actividades es necesario indicarle al SGBD que vamos a iniciar una transaccin. Depende
del sistema la forma de inicializar una transaccin.
En SQL SERVER 2008 podemos inicializar una transaccin mediante BEGIN TRAN y en MYSQL con el comando

START TRANSACTION.
Ejemplo SQL SERVER 2008
A continuacin veremos una transaccin completa en SQL SERVER 2008 extrada del libro SQL Server 2008
SQL, Transact SQL: Diseo y creacin de una base de datos Escrito por Jrome Gabillaud. La transaccin
consiste en un aumento de tarifas para ciertos productos de una base de datos comercial. Veamos:
BEGIN TRAN aumento
UPDATE ARTICULOS
SET preciounit_art = preciounit_art*2
WHERE codigo_cat=01
SAVE TRAN P1
UPDATE ARTICULOS
SET preciounit_art = preciounit_art*1.1
WHERE codigo_cat=02
El aumento en la categoria 01 se conserva
ROLLBACK TRAN P1
Validacion
COMMIT TRAN aumento
En el ejemplo anterior vemos todas las sentencias de control de transaccin. Iniciamos la transaccin con BEGIN
TRAN y terminamos confirmando y guardando con COMMIT TRAN.

S-ar putea să vă placă și