O GoConqr está de visual novo! Conte para nós o que você achou.

Slides

transacción de base de datos.

ALEXIS GODOY RAMIREZ Espanhol 20 slides

transacción de base de datos.

Slides do conjunto (20)

  1. Transacción de base de datos

    • Transacción de base de datos
    • Legenda: GODOY RAMIREZ JOSE ABRAHAM ALEXIS
  2. Definicion de transacción de base de datos

    • Una transacción en un Sistema de Gestión de Bases de Datos (SGBD), es un conjunto de órdenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
    • 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.
    • Definicion de transacción de base de datos
  3. Caracteristicas de transacción de DB

    • Características de administración de transacciones que exigen la atomicidad y coherencia de la transacción. Una vez iniciada una transacción, debe concluirse correctamente; en caso contrario, la instancia de Motor de base de datos deshará todas las modificaciones de datos realizadas desde que se inició la transacción.
  4. Slide 4

    • 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 y Durability).
  5. ejemplo

    • create or replace procedure prueba (nfilas number)
    • as
    • begin
    • savepoint ninguna;
    • insert into tmp values ('primera fila');
    • savepoint una;
    • insert into tmp values ('segunda fila');
    • savepoint dos;
    • if nfilas=1 then
    • rollback to una;
    • else if nfilas=2 then
    • rollback to dos;
    • else
    • rollback to ninguna;
    • end if;
    • commit;
    • exception
    • when other then
    • rollback
    • end prueba;
  6. COMMIT

    • la gestión de datos, commit (acción de comprometer) se refiere a la idea de consignar un conjunto de cambios provisionales de forma permanente. Un uso popular es al final de una transacción de base de datos.
    • Una sentencia COMMIT en SQL finaliza una transacción de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o más sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACKse puede emitir, la cual deshace todo el trabajo realizado desde que se emitió BEGIN WORK. Una sentencia COMMIT eliminará cualquiera de los savepoints (puntos de recuperación) existentes que puedan estar en uso.
    • En términos de transacciones, lo opuesto de commit para descartar los cambios "en tentativa" de una transacción, es un rollback.
  7. COMMIT

    • Sintaxis
    • .-WORK-.
    • >>-COMMIT--+------+--------------------------------------------><
    • Descripción
    • Finaliza la unidad de trabajo en la que se ejecuta la sentencia COMMIT y se inicia una nueva unidad de trabajo. Se confirman todos los cambios realizados por las siguientes sentencias ejecutadas durante la unidad de trabajo: ALTER, COMMENT, CREATE, DROP, GRANT, LOCK TABLE, REVOKE, SET INTEGRITY, SET Variable y las sentencias de cambio de datos (INSERT, DELETE, MERGE, UPDATE), incluidas las anidadas en una consulta.
    • Sin embargo, las sentencias siguientes no están bajo el control de la transacción y los cambios que éstas realizan son independientes de la sentencia COMMIT:
    • SET CONNECTION
    • SET CURRENT DEFAULT TRANSFORM GROUP
    • SET CURRENT DEGREE
    • SET CURRENT EXPLAIN MODE
    • SET CURRENT EXPLAIN SNAPSHOT
    • SET CURRENT LOCK TIMEOUT
    • SET CURRENT PACKAGESET
    • SET CURRENT QUERY OPTIMIZATION
    • SET CURRENT REFRESH AGE
    • SET EVENT MONITOR STATE
    • SET PASSTHRU
  8. COMMIT

    • Notas
    • Se recomienda encarecidamente que cada proceso de aplicación finalice explícitamente su unidad de trabajo antes de terminar. Si el programa de aplicación finaliza normalmente sin una sentencia COMMIT ni ROLLBACK entonces el gestor de bases de datos intenta una confirmación o retrotracción según el entorno de aplicación.
    • Para obtener información acerca del efecto de COMMIT en las sentencias de SQL dinámico colocadas en la antememoria, consulte "EXECUTE".
    • Para obtener información acerca de los posibles efectos de COMMIT en las tablas temporales declaradas, consulte "DECLARE GLOBAL TEMPORARY TABLE".
    • Ejemplo
    • Confirme las modificaciones en la base de datos efectuadas desde el último punto de confirmación.
    • COMMIT WORK
  9. COMMIT

    • Ejemplo
    • BEGIN TRANSACTION;
    • DELETE FROM HumanResources.JobCandidate
    • WHERE JobCandidateID = 13;
    • COMMIT TRANSACTION;
  10. ROLLBACK

    • un rollback o reversión es una operación que devuelve a la base de datos a algún estado previo. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas. Son cruciales para la recuperación de crashes de un servidor de base de datos; realizando rollback(devuelto) cualquier transacción que estuviera activa en el tiempo del crash, la base de datos es restaurada a un estado consistente.
    • En SQL, ROLLBACK es un comando que causa que todos los cambios de datos desde la última sentencia BEGIN WORK, o START TRANSACTION sean descartados por el sistema de gestión de base de datos relacional (RDBMS), para que el estado de los datos sea "rolled back"(devuelto) a la forma en que estaba antes de que aquellos cambios tuvieran lugar.
    • Una sentencia ROLLBACK también publicará cualquier savepoint existente que puediera estar en uso.
    • En muchos dialectos de SQL, ROLLBACKs son específicos de la conexión. Esto significa que si se hicieron dos conexiones a la misma base de datos, un ROLLBACK hecho sobre una conexión no afectará a cualesquiera otras conexiones. Esto es vital para el buen funcionamiento de la Concurrencia.
  11. ROLLBACK

    • Sintaxis
    • .-WORK-.
    • >>-ROLLBACK--+------+-------------------------------------------> >--+--------------------------------------------+--------------><
    • '-TO SAVEPOINT--+--------------------------+-'
    • '-nombre-punto-salvaguarda-'
    • Descripción
    • La unidad de trabajo en la que se ejecuta la sentencia ROLLBACK se termina y se inicia una nueva unidad de trabajo. Se restituyen todos los cambios realizados en la base de datos durante la unidad de trabajo.
    • Sin embargo, las sentencias siguientes no están bajo el control de la transacción y los cambios que realicen serán independientes de la emisión de la sentencia ROLLBACK:
    • SET CONNECTION
    • SET CURRENT DEFAULT TRANSFORM GROUP
    • SET CURRENT DEGREE
    • SET CURRENT EXPLAIN MODE
    • SET CURRENT EXPLAIN SNAPSHOT
    • SET CURRENT LOCK TIMEOUT
    • SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION
    • SET CURRENT PACKAGESET
    • SET CURRENT QUERY OPTIMIZATION
    • SET CURRENT REFRESH AGE
    • SET ENCRYPTION PASSWORD
    • SET EVENT MONITOR STATE
    • SET PASSTHRU
  12. ROLLBACK

    • Notas
    • Cuando se ejecuta un ROLLBACK de la unidad de trabajo se liberan todos los bloqueos retenidos. Se cierran todos los cursores abiertos. Se liberan todos los localizadores de LOB.
    • La ejecución de la sentencia ROLLBACK no afecta a las sentencias SET que cambian los valores del registro especial ni a la sentencia RELEASE.
    • Si el programa finaliza de forma anómala, la unidad de trabajo se retrotrae implícitamente.
    • La colocación de sentencias en antememoria se ve afectada por la operación de retrotracción.
    • El efecto que una sentencia ROLLBACK TO SAVEPOINT tiene sobre los cursores depende de las sentencias contenidas en el punto de salvaguarda.
    • Si el punto de salvaguarda contiene un DDL del cual depende un cursor, el cursor se marca como no válido. Los intentos para utilizar ese cursor dan lugar a un error (SQLSTATE 57007).
    • En otro caso:
    • Si se hace referencia al cursor en el punto de salvaguarda, el cursor permanece abierto y se coloca delante de la primera fila lógica de la tabla de resultados. (FETCH debe realizarse antes de emitirse una sentencia UPDATE o DELETE con posición.)
    • En otro caso, el cursor no queda afectado por ROLLBACK TO SAVEPOINT (permanece abierto y posicionado).
    • Los nombres de sentencias preparadas dinámicamente siguen siendo válidos, aunque la sentencia puede volver a prepararse implícitamente, como resultado de operaciones DDL que se retrotraen dentro del punto de salvaguarda.
    • Las operaciones ROLLBACK TO SAVEPOINT eliminan cualquier tabla temporal declarada que aparezca mencionada dentro del punto de salvaguarda. Si una tabla temporal declarada se modifica dentro del punto de salvaguarda, se suprimen todas las filas de la tabla.
    • Después de una sentencia ROLLBACK TO SAVEPOINT se conservan todos los bloqueos.
    • Después de una operación ROLLBACK TO SAVEPOINT se conservan todos los localizadores de LOB.
  13. ROLLBACK

    • Ejemplos
    • El siguiente ejemplo muestra el efecto de retrotraer una transacción con nombre. Después de crear una tabla, las siguientes declaraciones inician una transacción con nombre, insertan dos filas y luego retrotraen la transacción nombrada en la variable @TransactionName. Otra instrucción fuera de la transacción nombrada inserta dos filas. La consulta devuelve los resultados de las declaraciones anteriores.
    • USE tempdb;
    • GO
    • CREATE TABLE ValueTable ([value] int);
    • GO
    • DECLARE @TransactionName varchar(20) = 'Transaction1';
    • BEGIN TRAN @TransactionName
    • INSERT INTO ValueTable VALUES(1), (2);
    • ROLLBACK TRAN @TransactionName;
    • INSERT INTO ValueTable VALUES(3),(4);
    • SELECT [value] FROM ValueTable;
    • DROP TABLE ValueTable;
    • value
    • -----
    • 3
    • 4
  14. SAVE POINT

    • Un savepoint (en español, punto de recuperación) es una forma de implementar sub-transacciones (también conocidas como transacciones anidadas) dentro de un sistema gestor de base de datos relacional indicando un punto dentro de una transacción de base de datos que puede ser "rolled back" (restaurado) sin afectar a cualquier trabajo realizado en la transacción antes de que el punto de recuperación fuera creado. Varios savepoints pueden existir dentro de una transacción individual. Los savepoints son útiles para implementar recuperación de errores complejos en aplicaciones de base de datos —si ocurre un error en el medio de una transacción de múltiples sentencias, la aplicación puede ser capaz de recuperarse del error (devolviendo, "roll back", hasta un savepoint) sin necesidad de abortar la transacción completa.
    • Un savepoint puede estar declarado emitiendo una sentencia SAVEPOINT name. Todos los cambios realizados después de que un savepoint haya sido declarado pueden ser deshechos emitiendo un comando ROLLBACK TO SAVEPOINT name command. Emitiendo RELEASE SAVEPOINT name causará que el savepoint concreto sea descartado, pero no afectará a nada más. Emitiendo los comandos ROLLBACK o COMMIT también descartará cualesquiera savepoints creados desde el inicio de la transacción principal.
    • Los savepoints son soportados de alguna u otra forma en sistemas de bases de datos tales como PostgreSQL, Oracle, Microsoft SQL Server, MySQL, DB2, y Firebird. Los Savepoints están también definidos en el estándar SQL.
  15. SAVE POINT

    • Invocación
    • Esta sentencia puede incorporarse en un programa de aplicación (también en procedimientos) o emitirse de forma interactiva. Se trata de una sentencia ejecutable que puede prepararse de forma dinámica.
    • Autorización
    • No se necesita.
    • Sintaxis
    • >>-SAVEPOINT--nombre-punto-salvaguarda--+--------+-------------->
    • '-UNIQUE-'
    • .-ON ROLLBACK RETAIN LOCKS-.
    • >--ON ROLLBACK RETAIN CURSORS--+--------------------------+----><
  16. SAVE POINT

    • Descripción
    • nombre-punto-salvaguarda
    • Especifica el nombre de un punto de salvaguarda. El nombre-puntosalvaguarda no puede empezar por 'SYS' (SQLSTATE 42939). Si ya se ha definido un punto de salvaguarda con este nombre como UNIQUE dentro de este nivel de punto de salvaguarda, se devuelve un error (SQLSTATE 3B501).
    • UNIQUE
    • Especifica que la aplicación no tiene la intención de volver a utilizar este nombre de punto de salvaguarda mientras la salvaguarda esté activa en el nivel de salvaguarda actual. Si ya existe un savepoint-name dentro de este nivel de punto de salvaguarda, se devuelve un error (SQLSTATE 3B501).
    • ON ROLLBACK RETAIN CURSORS
    • Especifica la respuesta del sistema al realizar una retrotracción hasta este punto de salvaguarda, con respecto a las sentencias OPEN CURSOR procesadas después de la sentencia SAVEPOINT. Esta cláusula indica que, siempre que es posible, los cursores no se ven afectados por una retrotracción en una operación de punto de salvaguarda. Para situaciones en las que los cursores se vean afectados por la retrotracción en el punto de salvaguarda, consulte "ROLLBACK".
    • ON ROLLBACK RETAIN LOCKS
    • Especifica la respuesta del sistema al realizar una retrotracción hasta este punto de salvaguarda, con respecto a los bloqueos adquiridos después de definir el punto de salvaguarda. No se hace un seguimiento de los bloqueos adquiridos a partir del punto de salvaguarda y no se retrotraen (liberan) al retrotraer hasta el punto de salvaguarda.
  17. SAVE POINT

    • Ejemplo SAVE POINT
    • UPDATE T_PEDIDOS
    • SET NOMBRE='jorge'
    • WHERE CODPEDIDO=125;
    • SAVEPOINT solouno;
    • UPDATE T_PEDIDOS
    • SET NOMBRE = 'jorge';
    • SAVEPOINT todos;
    • SELECT * FROM T_PEDIDOS;
    • ROLLBACK TO SAVEPOINT todos;
    • COMMIT;
    • Solo guardamos la primera modificación.
  18. SET TRANSACTION

    • El lenguaje de programación Transact-SQL ofrece varias instrucciones SET que cambian el tratamiento de información específica por parte de la sesión actual. Las instrucciones SET se agrupan en las categorías que figuran en la siguiente tabla.
    • Propósito
    • Utilice la SET TRANSACTIONinstrucción para establecer la transacción actual como de solo lectura o de lectura / escritura, establezca su nivel de aislamiento o asígnela a un segmento de reversión especificado.
    • Las operaciones realizadas por una SET TRANSACTIONdeclaración afectan solo a su transacción actual, no a otros usuarios u otras transacciones. Su transacción termina siempre que ejecuta una COMMITo ROLLBACKdeclaración. Oracle Database confirma implícitamente la transacción actual antes y después de ejecutar un enunciado de lenguaje de definición de datos (DDL).
  19. SET TRANSACTION

    • Ejemplos
    • Configuración de transacciones: ejemplos Las siguientes declaraciones se podrían ejecutar a la medianoche del último día de cada mes para contar los productos y las cantidades disponibles en el almacén de Toronto en el oeesquema de muestra de entrada de pedidos ( ). Este informe no se verá afectado por ningún otro usuario que pueda agregar o eliminar inventario en un almacén diferente.
    • COMETER;
    • SET TRANSACTION LEA SOLO EL NOMBRE 'Toronto';
    • SELECCIONE product_id, quantity_on_hand FROM inventarios
    • DONDE warehouse_id = 5
    • ORDER BY product_id;
    • COMETER;
    • La primera COMMITdeclaración asegura que SET TRANSACTIONes la primera declaración en la transacción. La última COMMITdeclaración en realidad no hace cambios permanentes a la base de datos. Simplemente finaliza la transacción de solo lectura.
  20. SET TRANSACTION

    • Si usa una SET TRANSACTIONdeclaración, entonces debe ser la primera declaración en su transacción. Sin embargo, una transacción no necesita tener una SET TRANSACTIONdeclaración.
    • Sintaxis
    • set_transaction :: =
    • SET TRANSACTION

Informações

Descrição
transacción de base de datos.
Visualizações
61
Avaliação

Fale Conosco

Sobre o que é sua mensagem?

O que você acha do novo visual?

Você gostou?