Post on 05-Oct-2015
description
1UNIDAD III
TRANSACCIONES EN LAS BASES DE DATOS
UNIVERSIDAD TECNOLOGICA DE NEZAHUALCOYOTL
Divisin de Informtica y Computacin
Ingeniera en Tecnologas de informacin
Academia de Bases de Datos
DESARROLLADO POR: Lic. PABLO JULIO GUTIRREZ ALARCN
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 2
Contenido
Procesamiento de Transacciones. Conceptos de transacciones. Propiedades de las Transacciones. Planes y recuperabilidad. Seriabilidad de los Planes. Transacciones en SQL.
2UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 3
Procesamiento de Transacciones.
La Administracin de las Transacciones tiene como objetivo llevar el control para la recuperacin y la concurrencia que
estn relacionadas con la cuestin general de la proteccin de los datos; es decir, la proteccin contra la prdida o dao de la informacin que est en la base de datos. En particular tienen
que ver con problemas como:El sistema puede abortar cuando estn ejecutando algn programa, con lo que dejara a la BD en un estado desconocido.Dos programas que estn ejecutndose al mismo tiempo (en forma concurrente) pueden interferir entre s y en consecuencia, producir resultados incorrectos, ya sea dentro de la BD o fuera de ella.
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 4
Conceptos de transacciones
Una transaccin en una unidad de trabajo lgica. Considerndose como unidad lgica : Insert, delete, update a una tabla de la base de datos. C.J. Date Inrtoduccin a los sistemas de BD
Una transaccin es una unidad de la ejecucin de un programa que accede y posiblemente actualiza varios elementos de datos. Una transaccin se inicia por la ejecucin de un programa de usuario, escrito en lenguaje de manipulacin de datos de alto nivel o en un lenguaje de programacin. korth-Silberschatz-Sudarshan Fundamentos de BD
Una Transaccin es un conjunto de operaciones que van a ser tratadas como una nica unidad. Estas transacciones deben cumplir 4 propiedades fundamentales comnmente conocidas como ACID Atomicidad, Consistencia, Aislamiento y Durabilidad (Atomicity, Consistency, Isolation, Durability). Christian Crovetto Huerta Oracle 10g B.D
3UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 5
Propiedades de las transacciones
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 6
Database
Redolog files
Control files
Data files
Userprocess
Serverprocess
PGA
Archived log files
Parameterfile
Passwordfile
Instance
SGA
Redo logbuffer
Data buffercache
Shared pool
Data dict.cache
Librarycache
PMONDBW0SMON LGWRCKPT Others
Overview
4UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 7
Estados de una transaccin1
2 3
4 5
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 8
Bitcora de transacciones
5UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 9
Recuperacin de transacciones
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 10
Database Transactions
A database transaction consists of one of the following: DML statements which constitute one consistent change to
the data One DDL statement One DCL statement
6UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 11
Transacciones en SQL
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 12
Database Transactions
Begin when the first DML SQL statement is executed End with one of the following events:
A COMMIT or ROLLBACK statement is issued A DDL or DCL statement executes (automatic commit) The user exits iSQL*Plus The system crashes
7UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 13
With COMMIT and ROLLBACK statements, you can: Ensure data consistency Preview data changes before making changes permanent Group logically related operations
Advantages of COMMITand ROLLBACK Statements
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 14
SAVEPOINT B
SAVEPOINT A
DELETE
INSERT
UPDATE
INSERT
COMMITTime
Transaction
ROLLBACK to SAVEPOINT B
ROLLBACK to SAVEPOINT A
ROLLBACK
Controlling Transactions
8UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 15
SGA
Redo logbuffer
Data buffercache
Shared pool
LGWR
Instance
Database
Redolog files
Control files
Data files
1
23
4
Userprocess
Serverprocess
COMMIT Processing
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 16
UPDATE...SAVEPOINT update_done;Savepoint created.INSERT...ROLLBACK TO update_done;Rollback complete.
Create a marker in a current transaction by using the SAVEPOINT statement.
Roll back to that marker by using the ROLLBACK TOSAVEPOINT statement.
Rolling Back Changes to a Marker
9UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 17
DML statement
Old image
New image
Rollback segment
Table
Rollback Segment
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 18
An automatic commit occurs under the following circumstances: DDL statement is issued DCL statement is issued Normal exit from iSQL*Plus, without explicitly issuing COMMIT or ROLLBACK statements
An automatic rollback occurs under an abnormal termination of iSQL*Plus or a system failure.
Implicit Transaction Processing
10
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 19
The previous state of the data can be recovered. The current user can review the results of the DML operations by
using the SELECT statement. Other users cannot view the results of the DML statements by the
current user. The affected rows are locked; other users cannot change the data
within the affected rows.
State of the Data Before COMMIT or ROLLBACK
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 20
Data changes are made permanent in the database. The previous state of the data is permanently lost. All users can view the results. Locks on the affected rows are released; those rows are
available for other users to manipulate. All savepoints are erased.
State of the Data after COMMIT
11
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 21
COMMIT;Commit complete.
Make the changes.
Commit the changes.
DELETE FROM employeesWHERE employee_id = 99999;1 row deleted.
INSERT INTO departments VALUES (290, 'Corporate Tax', NULL, 1700);1 row inserted.
Committing Data
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 22
Discard all pending changes by using the ROLLBACKstatement: Data changes are undone. Previous state of the data is restored. Locks on the affected rows are released.
DELETE FROM copy_emp;22 rows deleted.ROLLBACK;Rollback complete.
State of the Data After ROLLBACK
12
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 23
If a single DML statement fails during execution, only that statement is rolled back.
The Oracle server implements an implicit savepoint. All other changes are retained. The user should terminate transactions explicitly by
executing a COMMIT or ROLLBACK statement.
Statement-Level Rollback
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 24
Read consistency guarantees a consistent view of the data at all times.
Changes made by one user do not conflict with changes made by another user.
Read consistency ensures that on the same data: Readers do not wait for writers. Writers do not wait for readers.
Read Consistency
13
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 25
SELECT *FROM userA.employees;
UPDATE employeesSET salary = 7000WHERE last_name = 'Goyal';
Datablocks
Rollbacksegments
changedand unchanged databefore changeold data
User A
User B
Readconsistentimage
Implementation of Read Consistency
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 26
Output Time Session 1 Session 2
t1
t2
t3
t4
t5
SELECT salary FROM employeesWHERE last_name='King';24000
UPDATE employeesSET salary=salary+10000WHERE last_name='King';
24000
COMMIT;
34000
SELECT salary FROM employeesWHERE last_name='King';
SELECT salary FROM employeesWHERE last_name='King';
Read Consistency Example
14
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 27
In an Oracle database, locks: Prevent destructive interaction between concurrent
transactions Require no user action Automatically use the lowest level of restrictiveness Are held for the duration of the transaction Are of two types: explicit locking and implicit locking
Locking
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 28
Two lock modes: Exclusive: Locks out other users Share: Allows other users to access
High level of data concurrency: DML: Table share, row exclusive Queries: No locks required DDL: Protects object definitions
Locks held until commit or rollback
Implicit Locking
15
UTNeza Acad. BD Base de Datos para Aplicaciones - PJGA 29
Bibliografia Date C. J. SISTEMAS DE BASES DE DATOS (VOLUMEN I). Quinta Edicin. Addison Wesley. Shkuntala Atre. TCNICAS DE BASES DE DATOS. ESTRUCTURACIN EN DISEO Y ADMINISTRACIN. Trillas, 1991. Nelson T. Dinerstein. SISTEMAS DE MANEJOS DE ARCHIVOS Y BASES DE DATOS PARA MICROCOMPUTADORAS. CECSA, 1990. Rose Deakin. BASES DE DATOS. USO Y ADMINISTRACIN EN CENTROS DE COMPUTO. Trillas, 1988. Korth., Silberschatz, Sudarshan FUNDAMENTOS DE BASES DE DATOS.01 McGrawHill, 4ta. Edicin, Mexico, 2002 Adad Ruben, Medina Miguel A. y Careaga Alfredo. FUNDAMENTOS DE LAS ESTRUCTURAS DE DATOS RELACIONALES. Megabyte. Noriega Editores, 1992. Cesar Perez Lopez ORACLE 9I, ADMINISTRACIN Y ANLISIS DE BASE DE DATOS Ed. Alfaomega RaMa, Mxico, 2003 Cesar Perez Lopez ORACLE 9I / SERVIDOR DE APLICACIONES RED Y PROGRAMACION Ed. Alfaomega RaMa, Mxico, 2003
Michael Abbey, Mike Corey, Ian Abramson ORACLE 9i , GUIA DE APRENDISAJE Mc Graw Hill- Osborne, Oracle Press, Mexico, 2002 Javier Lopez H. ORACLE, FUNDAMENTOS PARA EL DESARROLLO DE APLICACIONES WEB Coleccin USERS-libros.tectimes.com MP Ediciones Bs. As.-Argentina Paul Dorsey, Joseph R. Hudicka ORACLE 8, DISEO DE BASES DE DATOS CON UML Oracle Press- McGrawHill, Mexico, 1999