[TEMAS SELECTOS PARA LAS BASES DE DATOS]
Tema VI
TRANSACCIONES, CONTROL DE CONCURRENCIA, TRANSACIONES ATÓMICAS, PROBLEMAS DE PÉRDIDAS EN LA ACTUALIZACIÓN
El respaldo y la recuperación de Bases de Datos procesadas concurrentemente requiere que los programas de aplicación definan límites de transacciones para el DBMS. Dichos límites se llaman transacciones lógicas o unidades lógicas de trabajo y definen un conjunto de acciones atómicas. Con la palabra atómico, hacemos referencia a que se ejecutan todas las acciones o ninguna de ellas. Para comprender la necesidad de atomicidad, vamos a suponer para nuestra clase que un usuario está ingresando datos para un nuevo trabajo y que después de que se han creado varias transacciones, falla el sistema de computadora. En este caso, se ha introducido a la base de datos una parte de trabajo; cuando el sistema se recupera y el usuario vuelva a ingresar el trabajo, es posible que se hayan duplicado algunas transacciones. Para evitar que lo anterior suceda, el programa de aplicación puede definir de atomicidad para el DBMS. Los medios con los que esto se hace, varían de un producto DBMS a otro. En general, antes de procesar transacciones, la aplicación emite un comando start transaction (iniciar transacción) u otro similar. El programa de aplicación procesa las solicitudes del usuario hasta el punto final lógicamente consiste (por ejemplo: el final del objeto trabajo). Si todo el procesamiento se ha realizado en forma correcta, el programa de aplicación emitirá un comando end transaction, commit (final de transacción, ejecutar) o algún otro parecido. En este punto el DBMS hace permanentes todos los cambios en la base de datos. Si ha existido un problema durante el procesamiento, el programa de aplicación emitirá un comando roll back (recuperación regresiva), lo que indica al DBMS que elimine todos los cambio realizados desde el comando start transaction. Si el programa de aplicación terminó en forma anormal debido a una falla del sistema o a que el programa se interrumpió de un modo abrupto, no se recibirá un comando end transaction y el DBMS eliminará los cambios provisionales.
Editado por Sandra Pérez Díaz
1