UNIDAD 3 Transacciones Ing

Share Embed Donate


Short Description

Transacciones bd...

Description

UNIVERSIDAD UNIVERSIDAD TECNOLOGICA DE NEZAHUALCOYOTL NEZAHUALCOYOTL División de Informática y Computación Ingeniería en Tecnologías de información  Academia de Bases de Datos

UNIDAD III TRANSACCIONES EN LAS BASES DE DATOS

DESARROLLADO POR: Lic. PABLO JULIO GUTIÉRREZ ALARCÓN 

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

2

1

Procesamiento de Transacciones. La Administración de las Transacciones tiene como objetivo llevar el control para la recuperación y la concurrencia que están relacionadas con la cuestión general de la protección de los datos ; es decir, la protección contra la pérdida o daño de la información que está en la base de datos. En particular tienen que ver con problemas como: El sistema puede abortar cuando están ejecutando algún progra ma, con lo que dejaría a la BD en un estado desconocido. Dos programas que están ejecutándose al mismo tiempo (“en forma concurrente”) pueden interferir entre sí y en c onsecuencia, producir resultados incorrectos, ya sea dentro de la BD o fuera de ella. 

UTNeza –Acad. BD

Base de Datos para Aplicaciones - PJGA

3

Conceptos de transacciones 

Una transacción en una unidad de trabajo lógica. Considerándose como unidad lógica : Insert, delete, update a una tabla de la base de C.J. Date “Inrtoducción a los sistemas de BD”  datos.



Una transacción es una unidad de la ejecución de un programa que accede y posiblemente actualiza varios elementos de datos . Una transacción se inicia por la ejecución de un programa de usuario, escrito en lenguaje de manipulación de datos de al to nivel o en un korth-Silberschatz-Sudarshan “Fundamentos de BD”  lenguaje de programación.



Una Transacción es un conjunto de operaciones que van a ser tratadas como una única unidad. Estas transac ciones deben cumplir 4 propiedades fundamentales comúnmente conocidas como ACID Atomicidad, Consistencia, Aislamiento y Durabilidad ( Atomicity, Consistency, Isolation, Durability) .

UTNeza –Acad. BD

Christian Crovetto Huerta “Oracle 10g B.D” 

Base de Datos para Aplicaciones - PJGA

4

2

Propiedades de las transacciones

Base de Datos para Aplicaciones - PJGA

UTNeza –Acad. BD

5

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 LGWR Others

Parameter file

Data files

Control Redo files log files Archived log files

Password file UTNeza –Acad. BD

Database Base de Datos para Aplicaciones - PJGA

6

3

Estados de una transacción 1

2

3 5

4

UTNeza –Acad. BD

Base de Datos para Aplicaciones - PJGA

7

Bitácora de transacciones

UTNeza –Acad. BD

Base de Datos para Aplicaciones - PJGA

8

4

Recuperación de transacciones

UTNeza –Acad. BD

Base de Datos para Aplicaciones - PJGA

9

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

5

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

6

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 ROLLBACK to SAVEPOINT A 

Base de Datos para Aplicaciones - PJGA

14

7

COMMIT

Processing Instance SGA

1 Server process

Shared pool

Data buffer Redo log cache buffer

4

LGWR

3 Data files

2

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

8

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

9

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

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

19

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 statement:   

ROLLBACK

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 SELECT * FROM userA.employees;

changed and unchanged data before change “old” data

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:  



High level of data concurrency:   



Exclusive: Locks out other users Share: Allows other users to access 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 Edición. Addison Wesley. Shkuntala Atre. TÉCNICAS DE BASES DE DATOS. ESTRUCTURACIÓN EN DISEÑO Y ADMINISTRACIÓN. 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 ADMINISTRACIÓN EN CENTROS DE COMPUTO. Trillas, 1988. Korth., Silberschatz, Sudarshan FUNDAMENTOS DE BASES DE DATOS.01 McGrawHill, 4ta. Edición, 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, ADMINISTRACIÓN Y ANÁLISIS DE BASE DE DATOS Ed. Alfaomega – RaMa, México, 2003 Cesar Perez Lopez ORACLE 9I / SERVIDOR DE APLICACIONES RED Y PROGRAMACION Ed. Alfaomega – RaMa, México, 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 Colección USERS-libros.tectimes.com  MP Ediciones Bs. As.-Argentina Paul Dorsey, Joseph R. Hudicka ORACLE 8, DISEÑO DE BASES DE DATOS CON UML Oracle Press- McGrawHill, Mexico, 1999

UTNeza –Acad. BD

Base de Datos para Aplicaciones - PJGA

29

15

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF