Download - Unidad 5 Trans Acci Ones
![Page 1: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/1.jpg)
UNIDAD IV TRANSACCIONES
MTI EDUARDO VAZQUEZ ZAYAS
MTI EDUARDO VAZQUEZ ZAYAS
![Page 2: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/2.jpg)
DEFINICION DE TRANSACCION En informática, se llama transacción a la operación que
modifica el estado de una base de datos, sin que los datosen sí mismos pierdan consistencia alguna.
Las transacciones fueron originalmente desarrolladaspara ser utilizadas dentro de los sistemas de base dedatos, donde se usaba para ayudar en el mantenimientode los datos de las aplicaciones y que dependían de laconsistencia de la información almacenada.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 3: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/3.jpg)
CONTINUACION. DEFINICION DE TRANSACCION
La palabra transacción describe una secuencia de operacionescon uno o más recursos que transforman su estado actual enun nuevo estado de consistencia.
Se quiere asegurar que la base de datos no entre en un estadode inconsistencia, pero durante la ejecución de unatransacción, la base de datos puede estar temporalmente enun estado inconsistente. Lo importante aquí es asegurar quela base de datos vuelva aun estado consistente al concluir laejecución de una transacción.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 4: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/4.jpg)
PROPIEDADES DE LAS TRANSACCIONES ACID
Atomicidad:
Una transacción es tratada como una unidad de operación. Por lo tantotodas las acciones de la transacción se llevan a cabo o ninguna de ellas serealiza .La atomicidad requiere que si una transacción se interrumpe poruna falla, sus resultados parciales deben ser deshechos. Se efectúan todaslas transacciones, pero en caso de fallas no se realiza ninguna. Unatransacción debe concluir comprometida o abortada. En el caso delcompromiso se instalan todas las actualizaciones y en el aborto sedescartan todas las actualizaciones.
En pocas palabras todas las operaciones se realizan o ninguna.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 5: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/5.jpg)
Consistencia :
Una transacción es un programa correcto que lleva labase de datos de un estado consistente a otro con lamisma característica. Gracias a esto, las transacciones noviolan las reglas de integridad de una base de datos.
Los invariantes de la BD se conservan antes y después dela ejecución de la transacción.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 6: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/6.jpg)
Aislamiento :
Durante la ejecución de una transacción, esta no debe revelarsus resultados a otras transacciones concurrentes antes de sucompromiso. Si varias transacciones se ejecutanconcurrentemente, los resultados deben ser los mismos quesi ellas se hubieran ejecutado en forma secuencial(Seriabilidad). La Seriabilidad consiste en asegurarse que loscambios siguen un orden adecuado.
No importa que se ejecuten transacciones concurrentemente,desde el punto de vista del usuario lucen secuenciales (unasno afectan la ejecución de las otras)
MTI EDUARDO VAZQUEZ ZAYAS
![Page 7: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/7.jpg)
Durabilidad :
Es la propiedad de las transacciones que asegura que unavez que una transacción realiza su compromiso, susresultados son permanentes y no pueden ser borrados dela base de datos, se asegura que los resultados de unatransacción sobrevivirán a fallas del sistema.
Los cambios comprometidos perduran en el tiempo.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 8: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/8.jpg)
INSTRUCCIONES COMMIT Y ROLLBACK
Ventajas de las sentencias COMMIT y ROLLBACK
Asegurar la consistencia de datos.
Ver previamente los cambios de los datos antes de hacerlos permanentes.
Agrupar operaciones lógicamente relacionadas.
Control explicito del control de transacciones
Se puede controlar la lógica de transacciones con el usode las sentencias COMMIT, SAVEPOINT y ROLLBACK.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 9: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/9.jpg)
INSTRUCCIONES COMMIT Y ROLLBACK
MTI EDUARDO VAZQUEZ ZAYAS
![Page 10: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/10.jpg)
Para asegurarnos que tenemos soporte para el tipo de
tablas InnoDB podemos ejecutar la siguiente sentencia:
MTI EDUARDO VAZQUEZ ZAYAS
EJEMPLO:
![Page 11: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/11.jpg)
CONSISTENCIA Y AISLAMIENTO
MTI EDUARDO VAZQUEZ ZAYAS
La consistencia y el grado de aislamiento se puede ver mediante el comando:
SELECT @@global.tx_isolation;SELECT @@tx_isolation;
![Page 12: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/12.jpg)
Por default las tablas que creamos son repeatable-read con estemétodo podemos hacer varios selects sobre la misma lectura y todosserian consistentes entre si.Podemos cambiar los niveles de aislamiento según sean las necesidades de accesibilidad.
MTI EDUARDO VAZQUEZ ZAYAS
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL{READ UNCOMMITTED | READ COMMITTED| REPEATABLE READ | SERIALIZABLE}
![Page 13: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/13.jpg)
MTI EDUARDO VAZQUEZ ZAYAS
READ UNCOMMITTEDLas sentencias SELECT son ejecutadas sin realizar bloqueos, pero podría usarseuna versión anterior de un registro. Por lo tanto, las lecturas no son consistentesal usar este nivel de aislamiento. Esto también se denomina “lectura sucia” (dirtyread). En otro caso, este nivel de aislamiento funciona igual que READCOMMITTED.
READ COMMITTEDTodas las sentencias SELECT… FOR UPDATE y SELECT… LOCK IN SHAREMODE bloquean solamente los registros de índice, no los espacios vacíos que lospreceden, por lo tanto se permite la libre inserción de nuevos registros junto a losbloqueados. Las sentencias UPDATE and DELETE que empleen un índice únicocon una condición de búsqueda única bloquean solamente el registro de índicehallado, no el espacio que lo precede. En las sentencias UPDATE y DELETE queactúan sobre rangos de registros, InnoDB debe bloquear los espacios vacíos ybloquear las inserciones de otros usuarios en los espacios vacíos que hay dentrodel rango. Esto es necesario debido a que las “filas fantasma” deben serbloqueadas para que funcionen la replicación y recuperación en MySQL.
![Page 14: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/14.jpg)
MTI EDUARDO VAZQUEZ ZAYAS
REPEATABLE READEste es el nivel de aislamiento predeterminado de InnoDB. Las sentencias SELECT… FOR UPDATE, SELECT… LOCK IN SHARE MODE, UPDATE, y DELETE que utilicen un índice único con una condición de búsqueda única, bloquean solamente el registro de índice hallado, no el espacio vacío que lo precede.Con otras condiciones de búsqueda, estas operaciones emplean bloqueo de clavesiguiente (next-key), bloqueando el rango de índice cubierto por la operaciónincluyendo los espacios vacíos, y bloqueando las nuevas inserciones por parte deotros usuarios.
SERIALIZABLEEste nivel es similar a REPEATABLE READ, pero todas las sentencias SELECT son convertidas implícitamente a SELECT… LOCK IN SHARE MODE
![Page 15: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/15.jpg)
Set {session|global} transaction isolation level READ UNCOMMITEDMTI EDUARDO VAZQUEZ ZAYAS
![Page 16: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/16.jpg)
También conocido como “dirty read”
En lo anterior no se pueden hacer consultas consistentes bajo este nivelsu contraparte seria READ COMMITTED
Set {session|global} transaction isolation level READ COMMITEDMTI EDUARDO VAZQUEZ ZAYAS
![Page 17: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/17.jpg)
El método anterior es muy usado ya que sus lecturas son muyconsistente y permite hacer varias lecturas simultaneas y permitiendoleer y escribir dentro de su propia copia
MTI EDUARDO VAZQUEZ ZAYAS
![Page 18: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/18.jpg)
MTI EDUARDO VAZQUEZ ZAYAS
![Page 19: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/19.jpg)
Inicio de Transacción . Con BEGIN; o START TRANSACTION;
MTI EDUARDO VAZQUEZ ZAYAS
![Page 20: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/20.jpg)
Si en este momento insertamos un ROLLBACK , la transacción no se completara y no se guardaran los cambios.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 21: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/21.jpg)
Ahora vamos a ver que sucede si perdemos la conexión al servidor antes de que la transacción sea completada
MTI EDUARDO VAZQUEZ ZAYAS
![Page 22: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/22.jpg)
Cuando obtenemos de nuevo la conexión, podemos verificar que el registro no se insertó el dato, ya que la transacción no fue completada.
MTI EDUARDO VAZQUEZ ZAYAS
La atomicidad requiere que si una transacción se interrumpe por una falla, sus resultados parciales sean anulados.
![Page 23: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/23.jpg)
Ahora utilizamos la instrucción commit
MTI EDUARDO VAZQUEZ ZAYAS
![Page 24: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/24.jpg)
Consistencia La consistencia de una transacción es simplemente su correctitud.
MTI EDUARDO VAZQUEZ ZAYAS
![Page 25: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/25.jpg)
Ejemplo 2
MTI EDUARDO VAZQUEZ ZAYAS
SAVEPOINTROLLBACK TO SAVEPOINT
SAVEPOINT [identifier]
ROLLBACK TO SAVEPOINT [identifier]
![Page 26: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/26.jpg)
use depa;BEGIN;
select * from project;SAVEPOINT PRINCIPAL;
INSERT INTO PROJECT VALUES ('BD3111','PROGRAM','E21','000530','3','1982-02-01','1983-10-01','BD3110');SAVEPOINT PRIMERO;select * from project;INSERT INTO PROJECT VALUES ('EF4121','PAY','D00','000260','2','1982-01-01','1983-02-01','NULL');UPDATE PROJECT SET PRSTAFF=PRSTAFF+2;
SAVEPOINT SEGUNDO;select * from project;DELETE FROM PROJECT WHERE DEPTNO='C01';DELETE FROM PROJECT WHERE DEPTNO='D21';
ROLLBACK TO SAVEPOINT SEGUNDO;select * from project;
ROLLBACK TO SAVEPOINT PRIMERO;select * from project;
COMMIT;
MTI EDUARDO VAZQUEZ ZAYAS
![Page 27: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/27.jpg)
1
MTI EDUARDO VAZQUEZ ZAYAS
![Page 28: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/28.jpg)
2
MTI EDUARDO VAZQUEZ ZAYAS
![Page 29: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/29.jpg)
3
MTI EDUARDO VAZQUEZ ZAYAS
![Page 30: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/30.jpg)
4
MTI EDUARDO VAZQUEZ ZAYAS
![Page 31: Unidad 5 Trans Acci Ones](https://reader033.vdocuments.net/reader033/viewer/2022051419/55cf9922550346d0339bcb2d/html5/thumbnails/31.jpg)
MTI EDUARDO VAZQUEZ ZAYAS