Академический Документы
Профессиональный Документы
Культура Документы
CIUDAD MADERO
Transacciones
Unidad 5
Dase de Datos
EQUIPO 4
Integrantes:
Gema Patricia Galicia Santos
Daniel Antonio Cruz
Manuel Cruz Daz
TRANSACCIN
Una transaccin es un conjunto de acciones llevadas a
cabo por un usuario o un programa de aplicacin, que
acceden o cambian el contenido de la base de datos.
Transaccin
Ejemplo
1.
2.
3.
4.
Atomicidad (Atomicity)
Consistencia (Consistency)
Aislamiento (Isolation)
Permanencia (Durability):
5.3 GRADOS DE
CONSISTENCIA
Consistencia es un trmino ms amplio que el de integridad. Podra
definirse como la coherencia entre todos los datos de la base de
datos.
Cuando se pierde la integridad tambin se pierde la consistencia.
Pero la consistencia tambin puede perderse por razones de
funcionamiento.
Una transaccin que termina con xito se dice que est comprometida
(commited), una transaccin 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 cmo y cundo los cambios producidos por una
operacin se hacen visibles para las dems 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 gestin
de bases de datos relacionales (SGBDR) la de aislamiento
es la que ms 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 mltiples (MVCC), lo
que puede resultar en una prdida de concurrencia. Por
ello se necesita aadir lgica adicional al programa que
accede a los datos para su funcionamiento correcto
SERIALIZABLE
Este es el nivel de aislamiento ms 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 sensacin
de ejecucin simultnea de dos o ms transacciones que
perciben los usuarios sera una ilusin 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 transaccin, mientras que los bloqueos
de lectura se cancelan tan pronto como acaba la operacin
de SELECT (por lo que el efecto de las lecturas no
repetibles puede ocurrir, como se explica ms abajo). Al
igual ocurra 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 ms abajo), por lo que una
transaccin pude ver cambios no cometidos an por otra
transaccin.
5.5 Commit y
Rollback
Qu es commit?
En el contexto de la Ciencia de la computacin y
la gestin de datos, commit(accin 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 transaccin de base de datos.
Nota:
Qu es rollback?
En tecnologas de base de datos, un rollback es una operacin
que devuelve a la base de datos a algn 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 despus de que se han
realizado operaciones errneas.
Ejemplo:
Transacciones
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
actualizacin 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
transaccin.
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;
ROLLBACK
Esta funcin del SQL se utiliza para deshacer todas las
modificaciones realizadas desde la ltima confirmacin.
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.
Observamos a continuacin
que se ha modificado el
salario
de
todos
los
empleados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Comandos Utilizados
Bibliografa:
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