SlideShare una empresa de Scribd logo
INSTITUTO TECNOLÓGICO DE
CIUDAD MADERO

Transacciones
Unidad 5
Dase de Datos
EQUIPO 4
Integrantes:
Gema Patricia Galicia Santos
Daniel Antonio Cruz
Manuel Cruz Díaz
5.1 CONCEPTOS BÁSICOS
Transacción
La 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.
TRANSACCIÓN
Una transacción es un conjunto de acciones llevadas a
cabo por un usuario o un programa de aplicación, que
acceden o cambian el contenido de la base de datos.
Transacción

Ejemplo

Las transacciones representan eventos del mundo real,
como:
Las características que se debe recoger de cada
transacción son las siguientes:

1. Datos que utiliza la transacción.
2. Características funcionales de la transacción.
3. Salida de la transacción.

4. Importancia para los usuarios.
5. Frecuencia de utilización.
Hay tres tipos de transacciones:
1. En las transacciones de recuperación se accede a los datos
para visualizarlos en la pantalla a modo de informe.
2. En las transacciones de actualización se insertan, borran o
actualizan datos de la base de datos.
3. En las transacciones mixtas se mezclan operaciones de
recuperación de datos y de actualización.
5.2 PROPIEDADES DE LAS
TRANSACCIONES
Las transacciones deben cumplir cuatro propiedades ACID:

1.
2.
3.
4.

Atomicidad (Atomicity)
Consistencia (Consistency)
Aislamiento (Isolation)
Permanencia (Durability):
Propiedades de las Transacciones
1. Atomicidad (Atomicity): 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.
2. Consistencia (Consistency): es la propiedad que asegura que
sólo se empieza aquello que se puede acabar. Por lo tanto, se
ejecutan aquellas operaciones que no van a romper la reglas y
directrices de integridad de la base de datos.
Propiedades de las Transacciones
3. Aislamiento (Isolation): 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
nunca generará ningún tipo de error.

4. Permanencia (Durability): es la propiedad que asegura que
una vez realizada la operación, ésta persistirá y no se podrá
deshacer aunque falle el sistema.
Nota: Si la transacción no se puede finalizar por cualquier motivo, el SGBD
garantiza que los cambios realizados por esta transacción son deshechos
ESTADOS DE UNA TRANSACCIÓN
• En cualquier momento una transacción sólo puede estar en uno de
los siguientes estados.
1. Activa (Active): el estado inicial; la transacción permanece en
este estado durante su ejecución.
2. Parcialmente comprometida (Uncommited): Después de
ejecutarse la ultima transacción.
3. Fallida (Failed): tras descubrir que no se puede continuar la
ejecución normal.
4. Abortada (Rolled Back): después de haber retrocedido la
transacción y restablecido la base de datos a su estado anterior
al comienzo de la transacción.
5. Comprometida (Commited): tras completarse con éxito.
Diagrama de estados de una transacción:
5.3 GRADOS DE
CONSISTENCIA
Consistencia es un término más amplio que el de integridad. Podría
definirse como la coherencia entre todos los datos de la base de
datos.
Cuando se pierde la integridad también se pierde la consistencia.
Pero la consistencia también puede perderse por razones de
funcionamiento.
5.3 GRADOS DE CONSISTENCIA
• Una transacción mantendrá la consistencia de la base de datos.
Esto es, si la base de datos se encuentra en un estado consistente
antes de ejecutar la transacción, una vez que ésta termine la
consistencia de la base de datos deberá conservarse. Por
consistente se debe entender, internamente consistente.
• Consistencia de datos: Eliminando o controlando las
redundancias de datos se reduce en gran medida el riesgo de que
haya inconsistencias. Si un dato está almacenado una sola vez,
cualquier actualización se debe realizar sólo una vez, y está
disponible para todos los usuarios inmediatamente. Si un dato
está duplicado y el sistema conoce esta redundancia, el propio
sistema puede encargarse de garantizar que todas las copias se
mantienen consistentes.
5.3 GRADOS DE CONSISTENCIA
En términos de base de datos esto significa que se satisfacen todas
las restricciones en cuanto a su integridad que incluyen:
• Todos los valores de la llave primaria son únicos.
• La base de datos mantiene integridad referencial lo que significa
que los registros solo referencian información que existe.
• Ciertos predicados se mantienen. Por ejemplo, la suma de los
gastos es menor o igual al presupuesto.
• A diferencia de la atomicidad, el aislamiento y la durabilidad, la
consistencia es una práctica de programación. La atomicidad, el
aislamiento y la durabilidad están aseguradas estén o no
programadas para preservar la consistencia. Es responsabilidad
del desarrollador de la aplicación asegurar que su programa
preserva la consistencia.
5.3 GRADOS DE CONSISTENCIA
Una transacción finalizada (confirmada parcialmente) puede no
confirmarse definitivamente (consistencia).
• Si se confirma definitivamente el sistema asegura la persistencia
de los cambios que ha efectuado en la base de datos.
• Si se anula los cambios que ha efectuado son deshechos.

La ejecución de una transacción debe conducir a un estado de la
base de datos consistente (que cumple todas las restricciones de
integridad definidas).
• Si se confirma definitivamente el sistema asegura la
persistencia de los cambios que ha efectuado en la base de
datos.
• Si se anula los cambios que ha efectuado son deshechos.
Una transacción que termina con éxito se dice que está comprometida
(commited), una transacción que haya sido comprometida llevará a la
base de datos a un nuevo estado consistente que debe permanecer
incluso si hay un fallo en el sistema
5.4 Niveles de
Aislamiento
¿Qué es Aislamiento?
• En bases de datos, el aislamiento es una propiedad que
define cómo y cuándo los cambios producidos por una
operación se hacen visibles para las demás operaciones
concurrentes. Aislamiento es una de las 4 propiedades
ACID
(Atomicidad,
Consistencia,
Aislamiento,
Durabilidad) aplicables a una base de datos
transaccional.
Niveles de Aislamiento
• De las cuatro propiedades ACID de un Sistema de gestión
de bases de datos relacionales (SGBDR) la de aislamiento
es la que más frecuentemente se relaja. Para obtener el
mayor nivel de aislamiento, un SGBDR generalmente
hace un bloqueo de los datos o implementa un Control de
concurrencia mediante versiones múltiples (MVCC), lo
que puede resultar en una pérdida de concurrencia. Por
ello se necesita añadir lógica adicional al programa que
accede a los datos para su funcionamiento correcto
SERIALIZABLE
• Este es el nivel de aislamiento más alto. Especifica que
todas las transacciones ocurran de modo aislado, o
dicho de otro modo, como si todas las transacciones se
ejecutaran de modo serie (una tras otra). La sensación
de ejecución simultánea de dos o más transacciones que
perciben los usuarios sería una ilusión producida por el
SGBD.
LECTURAS COMPROMETIDAS
(READ COMMITTED)
• En este nivel de aislamiento, un SGBDR que implemente
el control de concurrencia basado en bloqueos mantiene
los bloqueos de escritura -de los datos seleccionados hasta el final de la transacción, mientras que los bloqueos
de lectura se cancelan tan pronto como acaba la operación
de SELECT (por lo que el efecto de las lecturas no
repetibles puede ocurrir, como se explica más abajo). Al
igual ocurría en el nivel anterior, no se gestionan
los bloqueos de rango.
LECTURAS NO
COMPROMETIDAS (READ
UNCOMMITTED)
• Este es el menor nivel de aislamiento. En él se permiten
las lecturas sucias(ver más abajo), por lo que una
transacción pude ver cambios no cometidos aún por otra
transacción.
Nivel de aislamiento por
defecto
• El nivel de aislamiento por defecto de distintos SGBDR
varía ampliamente. La mayoría de bases de datos que
gestionan transacciones permiten al usuario establecer
cualquier nivel de aislamiento. Algunos SGBDR
requieren sintaxis especial cuando se realiza una
operación SELECT que efectúa bloqueos (e.g.SELECT ...
FOR UPDATE para bloquear para escritura aquéllas filas
accedidas)
5.5 Commit y
Rollback
¿Qué es commit?
• En el contexto de la Ciencia de la computación y
la gestión de datos, commit(acción de comprometer) se
refiere a la idea de consignar un conjunto de cambios
"tentativos, o no permanentes". Un uso popular es al
final de una transacción de base de datos.
Una sentencia COMMIT

• En SQL finaliza una transacción de base de datos dentro de
un sistema gestor de base de datos relacional (RDBMS) y
pone visibles todos los cambios a otros usuarios. El formato
general es emitir una sentencia BEGIN WORK, una o más
sentencias SQL, y entonces la sentencia COMMIT.
Alternativamente, una sentencia ROLLBACK se puede
emitir, la cual deshace todo el trabajo realizado desde que se
emitió BEGIN WORK. Una sentencia COMMIT publicará
cualquiera de los savepoints (puntos de recuperación)
existentes que puedan estar en uso.
Nota:

• En términos de transacciones, lo opuesto de commit
para descartar los cambios "en tentativa" de una
transacción, es un rollback.
¿Qué es rollback?
• En tecnologías de base de datos, un rollback es una operación
que devuelve a la base de datos a algún estado previo. Los
Rollbacks son importantes para la integridad de la base de
datos, a causa de que significan que la base de datos puede ser
restaurada a una copia limpia incluso después de que se han
realizado operaciones erróneas.

• Son cruciales para la recuperación de crashes de un servidor
de base de datos; realizando rollback(devuelto) cualquier
transacción que estuviera activa en el tiempo del crash, la base
de datos es restaurada a un estado consistente.
• En SQL, ROLLBACK es un comando que causa que
todos los cambios de datos desde la última
sentencia
BEGIN
WORK,
o
START
TRANSACTION sean descartados por el sistema de
gestión de base de datos relacional (RDBMS), para que el
estado de los datos sea "rolled back"(devuelto) a la forma
en que estaba antes de que aquellos cambios tuvieran
lugar.
Ejemplo:
Transacciones
5.5 COMMIT Y ROLLBACK
• COMMIT
Esta instrucción de SQL se utiliza para confirmar como permanentes las
modificaciones realizadas en una transacción.
• Begin tran
Insert into Mvtos Values (‘0150’, ‘Dep’, 1500, ’08-10-2008’)
Insert into Mvtos Values (‘7120’, ‘Ret’, 1500, ’08-10-2008’)
Update Cuentas Set Saldo = Saldo + 1 where Numero = ‘0150’
Update Cuentas Set Saldo = Saldo – 1 Where Numero = ‘7120’
• Commit tran
Con la instrucción commit tran se pone una marca para saber hasta que punto se
hizo la transacción.
•

Por defecto, MySQL se ejecuta con el modo autocommit activado. Esto significa que en
cuanto ejecute un comando que actualice (modifique) una tabla, MySQL almacena la
actualización en disco.
• Desactiva el comando autocommit SET AUTOCOMMIT=0;
• Tras deshabilitar el modo autocommit debe usar COMMIT para almacenar los cambios en
disco o ROLLBACK si quiere ignorar los cambios hechos desde el comienzo de la
transacción.
Si quiere deshabilitar el modo autocommit para una serie única de comandos, puede usar el
comando START TRANSACTION:
• START TRANSACTION;
• SELECT @A:=SUM(salary)
• FROM table1
• WHERE type=1;
• UPDATE table2 SET summary=@A WHERE type=1;
• COMMIT;
•

Con START TRANSACTION, autocommit permanece deshabilitado hasta el final de la
transacción con COMMIT o ROLLBACK. El modo autocommit vuelve a su estado previo.
•
•

•
•

•
•

Veremos un ejemplo completo, donde utilizaremos START TRANSACTION (no es necesario
AUTOCOMMIT en 0)
CREATE TABLE `departamentos` (
`CODIGO` INTEGER(11) NOT NULL DEFAULT ’0′,
`NOMBRE` VARCHAR(100),
`PRESUPUESTO` INTEGER(11) DEFAULT NULL,
PRIMARY KEY (`CODIGO`)
)ENGINE=InnoDB
Ahora, insertaremos registros de la tabla departamentos_externos a departamentos mediante una
transacción:
START TRANSACTION;
SELECT @A := presupuesto
FROM departamentos_externos
WHERE código =11;
INSERT INTO departamentos( código, nombre, presupuesto )
VALUES ( 11, ‘Department test’, @A );
COMMIT; // para aceptar la transaccion
ó
ROLLBACK;//si quieres cancelar la transaccion
En el ejemplo anterior se guardo el presupuesto del departamento externo 11 en la variable @A y luego fue
asignado al presupuesto en la tabla departamentos.
Al realizar una transacción SQL hay que tener en cuenta que apenas se realice un INSERT, UPDATE o
DELETE se genera un bloqueo sobre la tabla y que otros clientes no pueden acceder para escribir esta tabla.
Otros clientes podrán realizar SELECTs sobre la tabla, pero no podrán ver los datos del primer cliente hasta
que los mismos sean confirmados.
ROLLBACK
• Esta función del SQL se utiliza para deshacer todas las
modificaciones realizadas desde la última confirmación.
• Ejemplo
Begin tran
<Comandos SQL>
<Comandos SQL>
Save tran Puntoseg
<Comandos SQL>
<Comandos SQL>
If @@ERROR <> 0
Rollback tran Puntoseg (cancela todo desde aquí hasta el punto de
guardado)
Else
Commit tran
• Veamos un ejemplo.
• Disponemos de la tabla EMPLE, que está formada por los
campos que se muestran en la imagen.
• A continuación comenzamos una
• transacción con START
TRANSACTION.

Modificamos el salario de todos los empleados de la tabla EMPLE,
con la siguiente sentencia SQL.
update emple set salario=1000;
•

Y comprobamos a continuación que la tabla vuelve a su estado original.

 Si queremos validar los cambios en la base de datos, completaremos la transacción
con el uso de la sentencia COMMIT. Si ejecutamos ROLLBACK justo después de

hacer el COMMIT, los cambios realizados sobre la base de datos permanecerán,
debido a que anteriormente se validó la transacción, así que una ves utilizada la
sentencia COMMIT ya no puedes usar ROLLBACK.
• Observamos a continuación
que se ha modificado el
salario
de
todos
los
empleados

 Deshacemos el trabajo ya que nos
hemos equivocado. Para ello
utilizamos la sentencia ROLLBACK.
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Bibliografía:
•
•
•
•
•
•

http://es.wikipedia.org/wiki/ACID
http://es.wikipedia.org/wiki/Transacci%C3%B3n_(base_de_datos)
http://www.fdi.ucm.es/profesor/fernan/dbd/apuntestema07.pdf
http://www.paginasprodigy.com.mx/evaristopacheco/taller/Grados
Consistencia.html
http://es.wikipedia.org/wiki/Rollback
http://www.slideshare.net/nicola51980/postgresql-leccin-8manipulando-datos-y-transacciones

Más contenido relacionado

La actualidad más candente

Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
Mario Alberto Antonio Lopez
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
ROSA IMELDA GARCIA CHI
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
adriel91
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
Pablo Guerra
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
JC Alca Arequi
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
Ronie Martínez
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
Ivan Porras
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
Daniel Huerta Cruz
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
perlallamas
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
Victor Quintero
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
Angel Miguel Coria Lopez
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
Eduardo Suarez
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
Andhy H Palma
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
Eduardo J Onofre
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
Juan Anaya
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
basilioj
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
Vannesa Salazar
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
Mirna L. Torres Garcia
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
Daniel Vargas
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
kerlly villon
 

La actualidad más candente (20)

Unidad 2 concepto de Programa,Proceso y Procesador
Unidad 2  concepto de Programa,Proceso y ProcesadorUnidad 2  concepto de Programa,Proceso y Procesador
Unidad 2 concepto de Programa,Proceso y Procesador
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Analizador Sintáctico
Analizador SintácticoAnalizador Sintáctico
Analizador Sintáctico
 
Middleware en los sistemas distribuidos
Middleware en los sistemas distribuidosMiddleware en los sistemas distribuidos
Middleware en los sistemas distribuidos
 
Detección y Corrección de errores
Detección y Corrección de erroresDetección y Corrección de errores
Detección y Corrección de errores
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
 
Estructura de un compilador 2
Estructura de un compilador 2Estructura de un compilador 2
Estructura de un compilador 2
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Traductor y su estructura
Traductor y su estructuraTraductor y su estructura
Traductor y su estructura
 
Ciclo de instrucciones CPU
Ciclo de instrucciones CPUCiclo de instrucciones CPU
Ciclo de instrucciones CPU
 
Unidad 4 graficación
Unidad 4 graficaciónUnidad 4 graficación
Unidad 4 graficación
 
Protocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacionProtocolos de las capas sesion,presentacion y aplicacion
Protocolos de las capas sesion,presentacion y aplicacion
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Tipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relacionesTipos de atributos y tipos de relaciones
Tipos de atributos y tipos de relaciones
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Protocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modemProtocolos, estandares y tipos de modem
Protocolos, estandares y tipos de modem
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Sistema de-maquina-virtual
Sistema de-maquina-virtualSistema de-maquina-virtual
Sistema de-maquina-virtual
 

Similar a Transacciones

Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
José Antonio Sandoval Acosta
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
Mayito Pdg
 
Transaccion
TransaccionTransaccion
Transaccion
Jorge Mengelle
 
trabajo 5
trabajo 5trabajo 5
trabajo 5
Jorge Mengelle
 
Transaciones en mysql
Transaciones en mysqlTransaciones en mysql
Transaciones en mysql
Josafat Aguilar Olivares
 
T ransacciones
T ransaccionesT ransacciones
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
Victor
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
Victor
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
Lisbeth Ocaña Bueno
 
Consistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridadConsistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridad
Angel Sanchez Virgen
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
Jose Musett
 
RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
andres0p
 
transaction-management
transaction-managementtransaction-management
transaction-management
Shami Zama
 
Transacciones en SQL SERVER
Transacciones en SQL SERVERTransacciones en SQL SERVER
Transacciones en SQL SERVER
Jaime Aguilar Rafael
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Didier Granados
 
Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sql
Freddy Poma Inga
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
Julio Miron Carrillo
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
Julio Miron Carrillo
 
Concepto de transacciones
Concepto de transaccionesConcepto de transacciones
Concepto de transacciones
vjanet
 
Base datos
Base datosBase datos
Base datos
lucysantacaba
 

Similar a Transacciones (20)

Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Transaccion
TransaccionTransaccion
Transaccion
 
trabajo 5
trabajo 5trabajo 5
trabajo 5
 
Transaciones en mysql
Transaciones en mysqlTransaciones en mysql
Transaciones en mysql
 
T ransacciones
T ransaccionesT ransacciones
T ransacciones
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
Base de datos distribuidas
Base de datos distribuidasBase de datos distribuidas
Base de datos distribuidas
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
Consistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridadConsistencia es un término más amplio que el de integridad
Consistencia es un término más amplio que el de integridad
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
 
RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
 
transaction-management
transaction-managementtransaction-management
transaction-management
 
Transacciones en SQL SERVER
Transacciones en SQL SERVERTransacciones en SQL SERVER
Transacciones en SQL SERVER
 
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: TransaccionesDesarrollo de Aplicaciones Web II - Sesión 07: Transacciones
Desarrollo de Aplicaciones Web II - Sesión 07: Transacciones
 
Transacciones en transact sql
Transacciones en transact sqlTransacciones en transact sql
Transacciones en transact sql
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Concepto de transacciones
Concepto de transaccionesConcepto de transacciones
Concepto de transacciones
 
Base datos
Base datosBase datos
Base datos
 

Último

3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
Wilian24
 
Apuntes Unidad I Conceptos Básicos_compressed.pdf
Apuntes Unidad I Conceptos Básicos_compressed.pdfApuntes Unidad I Conceptos Básicos_compressed.pdf
Apuntes Unidad I Conceptos Básicos_compressed.pdf
VeronicaCabrera50
 
Filigramma #17, revista literaria del Círculo de Escritores Sabersinfin
Filigramma #17, revista literaria del Círculo de Escritores SabersinfinFiligramma #17, revista literaria del Círculo de Escritores Sabersinfin
Filigramma #17, revista literaria del Círculo de Escritores Sabersinfin
Sabersinfin Portal
 
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
FernandoEstebanLlont
 
Métodos Psicológicos de investigación (1) (2).pptx
Métodos Psicológicos de investigación (1) (2).pptxMétodos Psicológicos de investigación (1) (2).pptx
Métodos Psicológicos de investigación (1) (2).pptx
becerracurayalexandr
 
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
marluzsagar
 
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
FernandoEstebanLlont
 
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADOTEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
José Manuel Vera Santos
 
INSTRUMENTOS USADOS EN LA PSICOLOGÍA
INSTRUMENTOS USADOS EN LA PSICOLOGÍA INSTRUMENTOS USADOS EN LA PSICOLOGÍA
INSTRUMENTOS USADOS EN LA PSICOLOGÍA
Kiara Ocampo Apolo
 
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
JOHNNY SURI MAMANI
 
ACTIVIDAD riquezas de la region costa del peru
ACTIVIDAD riquezas de la region costa del peruACTIVIDAD riquezas de la region costa del peru
ACTIVIDAD riquezas de la region costa del peru
roxanariverom
 
Apuntes de Enfermería (para estudiantes)
Apuntes de Enfermería (para estudiantes)Apuntes de Enfermería (para estudiantes)
Apuntes de Enfermería (para estudiantes)
milyluna0207
 
Danzas peruanas festividades importantes .
Danzas peruanas festividades importantes .Danzas peruanas festividades importantes .
Danzas peruanas festividades importantes .
Juan Luis Cunya Vicente
 
Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024
Universidad de Deusto - Deustuko Unibertsitatea - University of Deusto
 
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptxPRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
glopezmaciel
 
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Lecciones 03 Esc. Sabática. Controversias.docx
Lecciones 03 Esc. Sabática. Controversias.docxLecciones 03 Esc. Sabática. Controversias.docx
Lecciones 03 Esc. Sabática. Controversias.docx
Alejandrino Halire Ccahuana
 
homeostasis.pptx. Enfermería técnica periodo 1
homeostasis.pptx. Enfermería técnica periodo 1homeostasis.pptx. Enfermería técnica periodo 1
homeostasis.pptx. Enfermería técnica periodo 1
NohemiLumiereLopezHu1
 
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 

Último (20)

3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
3° SES FECHA CIVICA CAPITAN ABELARDO QUIÑONES YESSENIA CARRASCO 933623393.docx
 
Apuntes Unidad I Conceptos Básicos_compressed.pdf
Apuntes Unidad I Conceptos Básicos_compressed.pdfApuntes Unidad I Conceptos Básicos_compressed.pdf
Apuntes Unidad I Conceptos Básicos_compressed.pdf
 
Filigramma #17, revista literaria del Círculo de Escritores Sabersinfin
Filigramma #17, revista literaria del Círculo de Escritores SabersinfinFiligramma #17, revista literaria del Círculo de Escritores Sabersinfin
Filigramma #17, revista literaria del Círculo de Escritores Sabersinfin
 
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
🔴 (AC-S18) Semana 18 -Tema 01Trabajo de Investigación - Contratos y franquici...
 
Métodos Psicológicos de investigación (1) (2).pptx
Métodos Psicológicos de investigación (1) (2).pptxMétodos Psicológicos de investigación (1) (2).pptx
Métodos Psicológicos de investigación (1) (2).pptx
 
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
ENFERMERIA TECNICA-FUNDAMENTOS DE SALUD.
 
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
🔴 (AC-S18) Semana 18 - Tema 01 - Tarea - Proyecto Final (terminado y revisado...
 
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADOTEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
TEMA 1 EL PROCESO DE FORMACIÓN DEL ESTADO
 
INSTRUMENTOS USADOS EN LA PSICOLOGÍA
INSTRUMENTOS USADOS EN LA PSICOLOGÍA INSTRUMENTOS USADOS EN LA PSICOLOGÍA
INSTRUMENTOS USADOS EN LA PSICOLOGÍA
 
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
FORMATO APA - JOHNNY FELIX SURI MAMANI 2024
 
ACTIVIDAD riquezas de la region costa del peru
ACTIVIDAD riquezas de la region costa del peruACTIVIDAD riquezas de la region costa del peru
ACTIVIDAD riquezas de la region costa del peru
 
Apuntes de Enfermería (para estudiantes)
Apuntes de Enfermería (para estudiantes)Apuntes de Enfermería (para estudiantes)
Apuntes de Enfermería (para estudiantes)
 
Danzas peruanas festividades importantes .
Danzas peruanas festividades importantes .Danzas peruanas festividades importantes .
Danzas peruanas festividades importantes .
 
Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024Revista Universidad de Deusto - Número 155 / Año 2024
Revista Universidad de Deusto - Número 155 / Año 2024
 
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptxPRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
PRESENTACIÓN TALLER INTENSIVO PARA DOCENTES JULIO 2024 WEB.pptx
 
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO-ARTE 2 - IE HONORIO DELGADO ESPINOZA
 
POR ENTRE AS ONDAS DO PARAÍSO .
POR ENTRE AS ONDAS DO PARAÍSO             .POR ENTRE AS ONDAS DO PARAÍSO             .
POR ENTRE AS ONDAS DO PARAÍSO .
 
Lecciones 03 Esc. Sabática. Controversias.docx
Lecciones 03 Esc. Sabática. Controversias.docxLecciones 03 Esc. Sabática. Controversias.docx
Lecciones 03 Esc. Sabática. Controversias.docx
 
homeostasis.pptx. Enfermería técnica periodo 1
homeostasis.pptx. Enfermería técnica periodo 1homeostasis.pptx. Enfermería técnica periodo 1
homeostasis.pptx. Enfermería técnica periodo 1
 
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
2024 DIA DEL LOGRO IE HONORIO DELGADO ESPINOZA
 

Transacciones

  • 1. INSTITUTO TECNOLÓGICO DE CIUDAD MADERO Transacciones Unidad 5 Dase de Datos
  • 2. EQUIPO 4 Integrantes: Gema Patricia Galicia Santos Daniel Antonio Cruz Manuel Cruz Díaz
  • 3. 5.1 CONCEPTOS BÁSICOS Transacción La 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.
  • 4. TRANSACCIÓN Una transacción es un conjunto de acciones llevadas a cabo por un usuario o un programa de aplicación, que acceden o cambian el contenido de la base de datos.
  • 6. Las características que se debe recoger de cada transacción son las siguientes: 1. Datos que utiliza la transacción. 2. Características funcionales de la transacción. 3. Salida de la transacción. 4. Importancia para los usuarios. 5. Frecuencia de utilización.
  • 7. Hay tres tipos de transacciones: 1. En las transacciones de recuperación se accede a los datos para visualizarlos en la pantalla a modo de informe. 2. En las transacciones de actualización se insertan, borran o actualizan datos de la base de datos. 3. En las transacciones mixtas se mezclan operaciones de recuperación de datos y de actualización.
  • 8. 5.2 PROPIEDADES DE LAS TRANSACCIONES Las transacciones deben cumplir cuatro propiedades ACID: 1. 2. 3. 4. Atomicidad (Atomicity) Consistencia (Consistency) Aislamiento (Isolation) Permanencia (Durability):
  • 9. Propiedades de las Transacciones 1. Atomicidad (Atomicity): 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. 2. Consistencia (Consistency): es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos.
  • 10. Propiedades de las Transacciones 3. Aislamiento (Isolation): 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 nunca generará ningún tipo de error. 4. Permanencia (Durability): es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema. Nota: Si la transacción no se puede finalizar por cualquier motivo, el SGBD garantiza que los cambios realizados por esta transacción son deshechos
  • 11. ESTADOS DE UNA TRANSACCIÓN • En cualquier momento una transacción sólo puede estar en uno de los siguientes estados. 1. Activa (Active): el estado inicial; la transacción permanece en este estado durante su ejecución. 2. Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción. 3. Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal. 4. Abortada (Rolled Back): después de haber retrocedido la transacción y restablecido la base de datos a su estado anterior al comienzo de la transacción. 5. Comprometida (Commited): tras completarse con éxito.
  • 12. Diagrama de estados de una transacción:
  • 13. 5.3 GRADOS DE CONSISTENCIA Consistencia es un término más amplio que el de integridad. Podría definirse como la coherencia entre todos los datos de la base de datos. Cuando se pierde la integridad también se pierde la consistencia. Pero la consistencia también puede perderse por razones de funcionamiento.
  • 14. 5.3 GRADOS DE CONSISTENCIA • Una transacción mantendrá la consistencia de la base de datos. Esto es, si la base de datos se encuentra en un estado consistente antes de ejecutar la transacción, una vez que ésta termine la consistencia de la base de datos deberá conservarse. Por consistente se debe entender, internamente consistente. • Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes.
  • 15. 5.3 GRADOS DE CONSISTENCIA En términos de base de datos esto significa que se satisfacen todas las restricciones en cuanto a su integridad que incluyen: • Todos los valores de la llave primaria son únicos. • La base de datos mantiene integridad referencial lo que significa que los registros solo referencian información que existe. • Ciertos predicados se mantienen. Por ejemplo, la suma de los gastos es menor o igual al presupuesto. • A diferencia de la atomicidad, el aislamiento y la durabilidad, la consistencia es una práctica de programación. La atomicidad, el aislamiento y la durabilidad están aseguradas estén o no programadas para preservar la consistencia. Es responsabilidad del desarrollador de la aplicación asegurar que su programa preserva la consistencia.
  • 16. 5.3 GRADOS DE CONSISTENCIA Una transacción finalizada (confirmada parcialmente) puede no confirmarse definitivamente (consistencia). • Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos. • Si se anula los cambios que ha efectuado son deshechos. La ejecución de una transacción debe conducir a un estado de la base de datos consistente (que cumple todas las restricciones de integridad definidas). • Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos. • Si se anula los cambios que ha efectuado son deshechos.
  • 17. Una transacción que termina con éxito se dice que está comprometida (commited), una transacción que haya sido comprometida llevará a la base de datos a un nuevo estado consistente que debe permanecer incluso si hay un fallo en el sistema
  • 19. ¿Qué es Aislamiento? • En bases de datos, el aislamiento es una propiedad que define cómo y cuándo los cambios producidos por una operación se hacen visibles para las demás operaciones concurrentes. Aislamiento es una de las 4 propiedades ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) aplicables a una base de datos transaccional.
  • 20. Niveles de Aislamiento • De las cuatro propiedades ACID de un Sistema de gestión de bases de datos relacionales (SGBDR) la de aislamiento es la que más frecuentemente se relaja. Para obtener el mayor nivel de aislamiento, un SGBDR generalmente hace un bloqueo de los datos o implementa un Control de concurrencia mediante versiones múltiples (MVCC), lo que puede resultar en una pérdida de concurrencia. Por ello se necesita añadir lógica adicional al programa que accede a los datos para su funcionamiento correcto
  • 21. SERIALIZABLE • Este es el nivel de aislamiento más alto. Especifica que todas las transacciones ocurran de modo aislado, o dicho de otro modo, como si todas las transacciones se ejecutaran de modo serie (una tras otra). La sensación de ejecución simultánea de dos o más transacciones que perciben los usuarios sería una ilusión producida por el SGBD.
  • 22. LECTURAS COMPROMETIDAS (READ COMMITTED) • En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de escritura -de los datos seleccionados hasta el final de la transacción, mientras que los bloqueos de lectura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles puede ocurrir, como se explica más abajo). Al igual ocurría en el nivel anterior, no se gestionan los bloqueos de rango.
  • 23. LECTURAS NO COMPROMETIDAS (READ UNCOMMITTED) • Este es el menor nivel de aislamiento. En él se permiten las lecturas sucias(ver más abajo), por lo que una transacción pude ver cambios no cometidos aún por otra transacción.
  • 24. Nivel de aislamiento por defecto • El nivel de aislamiento por defecto de distintos SGBDR varía ampliamente. La mayoría de bases de datos que gestionan transacciones permiten al usuario establecer cualquier nivel de aislamiento. Algunos SGBDR requieren sintaxis especial cuando se realiza una operación SELECT que efectúa bloqueos (e.g.SELECT ... FOR UPDATE para bloquear para escritura aquéllas filas accedidas)
  • 26. ¿Qué es commit? • En el contexto de la Ciencia de la computación y la gestión de datos, commit(acción de comprometer) se refiere a la idea de consignar un conjunto de cambios "tentativos, o no permanentes". Un uso popular es al final de una transacción de base de datos.
  • 27. Una sentencia COMMIT • En SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o más sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emitió BEGIN WORK. Una sentencia COMMIT publicará cualquiera de los savepoints (puntos de recuperación) existentes que puedan estar en uso.
  • 28. Nota: • En términos de transacciones, lo opuesto de commit para descartar los cambios "en tentativa" de una transacción, es un rollback.
  • 29. ¿Qué es rollback? • En tecnologías de base de datos, un rollback es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas. • Son cruciales para la recuperación de crashes de un servidor de base de datos; realizando rollback(devuelto) cualquier transacción que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente.
  • 30. • En SQL, ROLLBACK es un comando que causa que todos los cambios de datos desde la última sentencia BEGIN WORK, o START TRANSACTION sean descartados por el sistema de gestión de base de datos relacional (RDBMS), para que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba antes de que aquellos cambios tuvieran lugar.
  • 32. 5.5 COMMIT Y ROLLBACK • COMMIT Esta instrucción de SQL se utiliza para confirmar como permanentes las modificaciones realizadas en una transacción. • Begin tran Insert into Mvtos Values (‘0150’, ‘Dep’, 1500, ’08-10-2008’) Insert into Mvtos Values (‘7120’, ‘Ret’, 1500, ’08-10-2008’) Update Cuentas Set Saldo = Saldo + 1 where Numero = ‘0150’ Update Cuentas Set Saldo = Saldo – 1 Where Numero = ‘7120’ • Commit tran Con la instrucción commit tran se pone una marca para saber hasta que punto se hizo la transacción.
  • 33. • Por defecto, MySQL se ejecuta con el modo autocommit activado. Esto significa que en cuanto ejecute un comando que actualice (modifique) una tabla, MySQL almacena la actualización en disco. • Desactiva el comando autocommit SET AUTOCOMMIT=0; • Tras deshabilitar el modo autocommit debe usar COMMIT para almacenar los cambios en disco o ROLLBACK si quiere ignorar los cambios hechos desde el comienzo de la transacción. Si quiere deshabilitar el modo autocommit para una serie única de comandos, puede usar el comando START TRANSACTION: • START TRANSACTION; • SELECT @A:=SUM(salary) • FROM table1 • WHERE type=1; • UPDATE table2 SET summary=@A WHERE type=1; • COMMIT; • Con START TRANSACTION, autocommit permanece deshabilitado hasta el final de la transacción con COMMIT o ROLLBACK. El modo autocommit vuelve a su estado previo.
  • 34. • • • • • • Veremos un ejemplo completo, donde utilizaremos START TRANSACTION (no es necesario AUTOCOMMIT en 0) CREATE TABLE `departamentos` ( `CODIGO` INTEGER(11) NOT NULL DEFAULT ’0′, `NOMBRE` VARCHAR(100), `PRESUPUESTO` INTEGER(11) DEFAULT NULL, PRIMARY KEY (`CODIGO`) )ENGINE=InnoDB Ahora, insertaremos registros de la tabla departamentos_externos a departamentos mediante una transacción: START TRANSACTION; SELECT @A := presupuesto FROM departamentos_externos WHERE código =11; INSERT INTO departamentos( código, nombre, presupuesto ) VALUES ( 11, ‘Department test’, @A ); COMMIT; // para aceptar la transaccion ó ROLLBACK;//si quieres cancelar la transaccion En el ejemplo anterior se guardo el presupuesto del departamento externo 11 en la variable @A y luego fue asignado al presupuesto en la tabla departamentos. Al realizar una transacción SQL hay que tener en cuenta que apenas se realice un INSERT, UPDATE o DELETE se genera un bloqueo sobre la tabla y que otros clientes no pueden acceder para escribir esta tabla. Otros clientes podrán realizar SELECTs sobre la tabla, pero no podrán ver los datos del primer cliente hasta que los mismos sean confirmados.
  • 35. ROLLBACK • Esta función del SQL se utiliza para deshacer todas las modificaciones realizadas desde la última confirmación. • Ejemplo Begin tran <Comandos SQL> <Comandos SQL> Save tran Puntoseg <Comandos SQL> <Comandos SQL> If @@ERROR <> 0 Rollback tran Puntoseg (cancela todo desde aquí hasta el punto de guardado) Else Commit tran
  • 36. • Veamos un ejemplo. • Disponemos de la tabla EMPLE, que está formada por los campos que se muestran en la imagen.
  • 37. • A continuación comenzamos una • transacción con START TRANSACTION. Modificamos el salario de todos los empleados de la tabla EMPLE, con la siguiente sentencia SQL. update emple set salario=1000;
  • 38. • Y comprobamos a continuación que la tabla vuelve a su estado original.  Si queremos validar los cambios en la base de datos, completaremos la transacción con el uso de la sentencia COMMIT. Si ejecutamos ROLLBACK justo después de hacer el COMMIT, los cambios realizados sobre la base de datos permanecerán, debido a que anteriormente se validó la transacción, así que una ves utilizada la sentencia COMMIT ya no puedes usar ROLLBACK.
  • 39. • Observamos a continuación que se ha modificado el salario de todos los empleados  Deshacemos el trabajo ya que nos hemos equivocado. Para ello utilizamos la sentencia ROLLBACK.