UNIDAD 3 Transacciones Ing

download UNIDAD 3 Transacciones Ing

of 15

description

Transacciones bd

Transcript of UNIDAD 3 Transacciones Ing

  • 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