You are on page 1of 15

UNIVERSIDAD TECNOLOGICA DE NEZAHUALCOYOTL

Divisin de Informtica y Computacin


Ingeniera en Tecnologas de informacin
Academia de Bases de Datos

UNIDAD III
TRANSACCIONES EN LAS BASES DE
DATOS

DESARROLLADO POR: Lic. PABLO JULIO GUTIRREZ ALARCN

Contenido







Procesamiento de Transacciones.
Conceptos de transacciones.
Propiedades de las Transacciones.
Planes y recuperabilidad.
Seriabilidad de los Planes.
Transacciones en SQL.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

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

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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

Propiedades de las transacciones

Base de Datos para Aplicaciones - PJGA

UTNeza Acad. BD

Overview
User
process

Instance
SGA
Data buffer
cache

Server
process
PGA

Redo log
buffer

Shared pool
Library
cache
Data dict.
cache

SMON DBW0 PMON CKPT

Parameter
file

Data
files

Control
files

LGWR Others

Redo
log files
Archived
log files

Password
file
UTNeza Acad. BD

Database
Base de Datos para Aplicaciones - PJGA

Estados de una transaccin


1

3
5

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

Bitcora de transacciones

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

Recuperacin de transacciones

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

10

Transacciones en SQL

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

11

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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

12

Advantages of COMMIT
and ROLLBACK Statements
With COMMIT and ROLLBACK statements, you can:
 Ensure data consistency
 Preview data changes before making changes permanent
 Group logically related operations

Base de Datos para Aplicaciones - PJGA

UTNeza Acad. BD

13

Controlling Transactions
Time

COMMIT

Transaction
DELETE
SAVEPOINT A

INSERT

UPDATE
SAVEPOINT B

INSERT
UTNeza Acad. BD

ROLLBACK
to SAVEPOINT B

ROLLBACK
to SAVEPOINT A

Base de Datos para Aplicaciones - PJGA

ROLLBACK
14

COMMIT Processing
Instance
SGA

1
Server
process

Shared pool

Data buffer Redo log


cache
buffer

LGWR

2
Data
files

Control Redo
files log files

User
process
Database
UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

15

Rolling Back Changes


to a Marker
 Create a marker in a current transaction by using the

SAVEPOINT statement.
 Roll back to that marker by using the ROLLBACK TO
SAVEPOINT statement.
UPDATE...
SAVEPOINT update_done;
Savepoint created.
INSERT...
ROLLBACK TO update_done;
Rollback complete.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

16

Rollback Segment
Old image

New
image

Table
Rollback segment

DML statement
UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

17

Implicit Transaction Processing


 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

18

State of the Data


Before COMMIT or ROLLBACK
 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

19

State of the Data after COMMIT


 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

20

10

Committing Data
 Make the changes.
DELETE FROM employees
WHERE employee_id = 99999;
1 row deleted.
INSERT INTO departments
VALUES (290, 'Corporate Tax', NULL, 1700);
1 row inserted.
 Commit the changes.
COMMIT;
Commit complete.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

21

State of the Data After ROLLBACK


Discard all pending changes by using the ROLLBACK
statement:
 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

22

11

Statement-Level Rollback
 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

23

Read Consistency
 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.

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

24

12

Implementation of Read Consistency


User A
Data
blocks

UPDATE employees
SET
salary = 7000
WHERE last_name = 'Goyal';

Rollback
segments
changed
and
unchanged
data
before
change
old data

SELECT *
FROM userA.employees; Read

consistent
image

User B
UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

25

Read Consistency Example


Output
24000

Time
t1
t2

24000

t3

Session 1

Session 2

SELECT salary FROM employees


WHERE last_name='King';
UPDATE employees
SET
salary=salary+10000
WHERE last_name='King';
SELECT salary FROM employees
WHERE last_name='King';

t4
34000

t5

UTNeza Acad. BD

COMMIT;
SELECT salary FROM employees
WHERE last_name='King';

Base de Datos para Aplicaciones - PJGA

26

13

Locking
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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

27

Implicit Locking
 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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

28

14

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

UTNeza Acad. BD

Base de Datos para Aplicaciones - PJGA

29

15

You might also like