Transacciones en Bases de Datos(Aldo Raul Hernandez Rendon)
Slides do conjunto (8)
-
Transacciones en las bases de datos
-
Definición 1 Transacción (Bases de 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 un lenguaje
- de manipulación de datos de alto nivel o en un lenguaje
- de programación (por ejemplo SQL, COBOL, C, C++
- o Java).
- Silberschatz, A., Korth, H. F. y Susarshan, S. (2006). Fundamentos de bases de datos -5ª ed.- McGraw-Hill.

- Legenda: Transacción
-
Definición 2 Transacción (Bases de Datos)

- Una acción o serie de acciones llevada a cabo por un unico usuario o por un programa de aplicación y que lee y actualiza el contenido de la base de datos.
- Connolly, T. y Begg, C. E. (2005). Sistemas de bases de datos . Pearson Addison Wesley.
-
Caracteristicas de una Transacción
- Para asegurar la integridad de los datos se necesita
- que el sistema de base de datos mantenga las siguientes
- propiedades de las transacciones:
- • Atomicidad. O todas las operaciones de la transacción
- se realizan adecuadamente en la base de
- datos o ninguna de ellas.
- • Consistencia. La ejecución aislada de la transacción
- (es decir, sin otra transacción que se ejecute
- concurrentemente) conserva la consistencia de la
- base de datos.
- • Aislamiento. Aunque se ejecuten varias transacciones
- concurrentemente, el sistema garantiza que
- para cada par de transacciones Ti y Tj
- , se cumple
- que para los efectos de Ti
- , o bien Tj ha terminado
- su ejecución antes de que comience Ti , o bien que
- Tj ha comenzado su ejecución después de que Ti
- termine. De este modo, cada transacción ignora al
- resto de las transacciones que se ejecuten concurrentemente
- en el sistema.
- • Durabilidad. Tras la finalización con éxito de una
- transacción, los cambios realizados en la base de
- datos permanecen, incluso si hay fallos en el sistema
-
- Confirma la transacción actual. Todos los cambios realizados por la transacción se hacen visibles a los demás y están garantizados para ser duradero si se produce un accidente.
- SintaxisCOMMIT [WORK | TRANSACTION ]
- Ejemplo:
- BEGIN; UPDATE cuentas SET balance = balance - 100.00 WHERE nombre = 'Alicia';
- -- etc etc
- COMMIT;

-
- Deshace la transacción actual y provoca que todas las modificaciones originadas por la misma sean descartadas, es decir, restaura el estado anterior a la modificación.
- SintaxisROLLBACK [WORK | TRANSACTION ]
- Ejemplo:
- BEGIN;
- UPDATE
- cuentas SET balance = balance – 100 WHERE nombre = ‘Alice’;
- SAVEPOINT
- marcador1;
- UPDATE
- cuentas SET balance = balance + 100 WHERE nombre = ‘Bob’;
- ROLLBACK
- TO marcador1;
- UPDATE
- cuentas SET balance = balance + 100 WHERE nombre = ‘Wally’;
- COMMIT;

-
- Se utiliza para definir puntos de control en una transacción. Algunas transacciones, por su complejidad, pueden tener una gran cantidad de instrucciones que en caso de que falle una, habría que volver a comenzar con la transacción. El uso de SAVEPOINT ayuda a dividir el bloque de instrucciones de la transacción en bloque más pequeños que queremos mantener en caso de que algo salga mal más adelante.
- 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;

-
- El comando SET TRANSACTION establece las características de la operación actual. No tiene ningún efecto en las operaciones subsiguientes.CARACTERÍSTICAS SET SESSION determina las características de la operación por defecto para las posteriores operaciones de una sesión. Estos valores pueden ser anulados por SET TRANSACTION para una transacción determinada.Las características de las operaciones disponibles son el nivel de aislamiento, el modo de transacción de acceso (lectura / escritura o sólo lectura), y el modo diferible.
- El nivel de aislamiento de una transacción determina qué datos de la transacción puede ver cuando otras transacciones se están ejecutando al mismo tiempo.
- Sintaxis
- 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;
Informações
- Descrição
- Actividad Aprendizaje 1 MODULO 2
- Criado por
- Aldoo Hernandez · fev 2016
- Atualizado
- 12 jan 2017
- Visualizações
- 75
- Tags
- Avaliação
