Transacciones BD
Slides in this set (10)
-
- Una transacción es una secuencia de operaciones realizadas como una sola
- unidad lógica de trabajo. Una unidad lógica de trabajo debe exhibir cuatro
- propiedades, conocidas como propiedades de atomicidad, coherencia, aislamiento
- y durabilidad (ACID), para ser calificada como transacción.
-
- Atomicidad
- Una transacción debe ser una unidad atómica de trabajo, tanto si se realizan todas sus modificaciones en los datos, como si no se realiza ninguna de ellas.
- Coherencia
- Cuando finaliza, una transacción debe dejar todos los datos en un estado coherente. En una base de datos relacional, se deben aplicar todas las reglas a las modificaciones de la transacción para mantener la integridad de todos los datos. Todas las estructuras internas de datos, como índices de árbol b o listas doblemente vinculadas, deben estar correctas al final de la transacción.
- Aislamiento
- Las modificaciones realizadas por transacciones simultáneas se deben aislar de las modificaciones llevadas a cabo por otras transacciones simultáneas. Una transacción reconoce los datos en el estado en que estaban antes de que otra transacción simultánea los modificara o después de que la segunda transacción haya concluido, pero no reconoce un estado intermedio. Esto se conoce como seriabilidad, ya que deriva en la capacidad de volver a cargar los datos iniciales y reproducir una serie de transacciones para finalizar con los datos en el mismo estado en que estaban después de realizar las transacciones originales.
- Durabilidad
- Una vez concluida una transacción, sus efectos son permanentes en el sistema. Las modificaciones persisten aún en el caso de producirse un error del sistema.
- https://technet.microsoft.com/es-es/library/ms190612(v=sql.105).aspx
-
- Una transacción es una unidad de trabajo compuesta por
- diversas tareas, cuyo resultado final debe ser que se ejecuten todas o ninguna
- de ellas.
- Por regla general en un sistema de base de datos todas las
- operaciones relacionadas entre sí que se ejecuten dentro un mismo flujo lógico
- de trabajo, deben ejecutarse en bloque. De esta manera si todas funcionan la
- operación conjunta de bloque tiene éxito, pero si falla cualquiera de ellas,
- deberán retrocederse todas las anteriores que ya se hayan realizado. De esta
- forma evitamos que el sistema de datos quede en un estado incongruente.
- http://www.campusmvp.es/recursos/post/Fundamentos-de-SQL-Transacciones.aspx
-
- Propiedades ACID
- Una transacción, para cumplir con su propósito y protegernos
- de todos los problemas que hemos visto, debe presentar las siguientes
- características:
- Atomicidad:
- las operaciones que componen una transacción deben considerarse como una
- sola.
- Consistencia:
- una operación nunca deberá dejar datos inconsistentes.
- Aislamiento:
- los datos "sucios" deben estar aislados, y evitar que los
- usuarios utilicen información que aún no está confirmada o validada. (por
- ejemplo: ¿sigue siendo válido el saldo mientras realizo la operación?)
- Durabilidad:
- una vez completada la transacción los datos actualizados ya serán
- permanentes y confirmados.
- A estas propiedades se las suele conocer como propiedades
- ACID (de sus siglas en inglés: Atomicity, Consistency, Isolation yDurability).
-
- Por regla general en los gestores de datos relacionales modernos
- disponemos de tres tipos de transacciones según la forma de iniciarlas:
- De
- confirmación automática: el gestor de datos inicia una transacción
- automáticamente por cada operación que actualice datos. De este modo
- mantiene siempre la consistencia de la base de datos, aunque puede generar
- bloqueos.
- Implícitas:
- cuando el gestor de datos comienza una transacción automáticamente cada
- vez que se produce una actualización de datos, pero el que dicha
- transacción se confirme o se deshaga, lo debe indicar el programador.
- Explícitas:
- son las que iniciamos nosotros "a mano" mediante instrucciones
- SQ. somos nosotros, los programadores, los que indicamos qué operacio0nes
- va a abarcar.
-
- Inicio de Transacción: Operación que marca el momento en el que una transacción comienza a ejecutarse.
- Leer o Escribir: Operaciones de lectura/escritura de elementos de la base de datos.
- Fin de la Transacción: Se verifica si la transacción debe abortarse por alguna razón.
- Confirmar (COMMIT): La operación termino con éxito.
- Abortar (ROLLBACK): La transacción termino sin éxito.
-
- Regularmente las transacciones comienzan con un BEGIN WORK y finalizan con unCOMMIT/COMMIT
- WORK o ROLLBACK/ROLLBACK WORK.
- BEGIN WORK
- UPDATE Tabla SET dato = '15' WHERE dato2 = 'Manolo'
- ...
- ...
- ...
- DELETE FROM dato = 'Manolo'
- COMMIT WORK
-
- Hay otra manera de escribir una transacción estas son las transacciones ANSI, estas comienzan cuando inicia cualquier sentencia
- SQL y finaliza con un COMMIT o ROLLBACK.
- UPDATE Tabla SET dato = '15' WHERE dato2 = 'Manolo'
- ...
- ...
- ...
- DELETE FROM dato = 'Manolo'
- COMMIT
-
- Sintaxis
- SAVEPOINT savepoint_nombre
- Ejemplo:
- BEGIN; INSERT INTO table1 VALUES (1); SAVEPOINT my_savepoint; INSERT INTO table1 VALUES (2); ROLLBACK TO SAVEPOINT
- my_savepoint; INSERT INTO table1 VALUES (3); COMMIT;
-
- SET TRANSACTION transaction_mode [, ...] SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...] where
- transaction_mode is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
- READ WRITE | READ ONLY
- Ejemplo: SET TRANSACTION ISOLATION LEVEL REPEATABLE READ; BEGIN TRANSACTION; SELECT COUNT(*) AS TotalProblems,
- SUM(CASE WHEN Problem LIKE '%Kenny%' THEN 1 END) AS [Kenny's Problems], SUM(CASE WHEN Problem LIKE '%printer%'THEN 1
- END) AS [Printer Problems] FROM Tickets WHERE ID BETWEEN 0 AND 100000;
Information
- Description
- Una pequeña presentación sobre las transacciones de bases de datos y como realizarlas y que son en general
- Created by
- Eduardo Campos Corona
- Views
- 51
- Tags
- Rating