Transacciones anidadas

Ir a: navegación, búsqueda de

A transacciones anidadas es un transacciones de bases de datos se inicia mediante una instrucción en el ámbito de una transacción ya ha empezado.

Transacciones anidadas se implementan diferentemente en diferentes bases de datos. Sin embargo, tienen en común que los cambios no se hacen visibles para cualquier transacción relacionada hasta que la transacción ultraperiférica ha cometido. Esto significa que un commit en una transacción interna no necesario persistir las actualizaciones a la base de datos.

En algunas bases de datos, los cambios realizados por la transacción anidada no son vistos por la transacción 'host' hasta que la transacción anidada está comprometida. Según algunos,[¿Quién?] Esto se deduce la propiedad de aislamiento de transacciones.

La capacidad de manejar transacciones anidadas apropiadamente es un prerrequisito para cierto componente basado en arquitecturas de aplicación. En una arquitectura basada en componentes de encapsulado, transacciones anidadas pueden ocurrir sin saberlo el programador. La función de un componente puede o no contener una transacción de base de datos (este es el secreto encapsulado del componente. Ver Ocultar información). Si se realiza una llamada a una función tal componente dentro de un BEGIN, COMMIT del soporte, se producen transacciones anidadas. Desde bases de datos populares como MySQL[1] no permiten anidar BEGIN, COMMIT soportes, un marco o un monitor de transacciones es necesario manejar esto. Cuando hablamos de transacciones anidadas, se debe dejar en claro que esta característica es DBMS dependiente y no está disponible para todas las bases de datos.

Teoría para transacciones anidadas es similar a la teoría para transacciones de planas y fue introducida en el siguiente documento:

  • Resende, R.F.; El Abbadi, A. (25 / 05 / 1994). "En el teorema serializabilidad para transacciones anidadas". Letras de procesamiento de información 50 (4): 177-183. Doi:10.1016/0020-0190 (94) 00033-6.

La industria bancaria generalmente procesos de transacciones financieras utilizando Abrir transacciones anidadas, que es una variante más flexible del modelo de transacción anidada que proporciona un rendimiento más alto mientras que aceptan las compensaciones acompañamiento de inconsistencia. Se discuten las transacciones anidadas abiertas en el siguiente documento:

  • Weikum, Gerhard; Hans-J. Tschiang (1992). "Conceptos y aplicaciones de niveles múltiples transacciones y transacciones anidadas abiertas". Modelos de transacción de base de datos para aplicaciones avanzadas (Morgan Kaufmann): 515 – 553. ISBN1-55860-214-3. 2007-11-13.

Lectura adicional

  • Gerhard Weikum, Gottfried Vossen, Sistemas de información transaccional: teoría, algoritmos y la práctica del control de concurrencia y recuperación, Morgan Kaufmann, 2002, ISBN 1-55860-508-8

Referencias

  1. ^ "Las declaraciones que causan un Commit implícito". Manual de referencia de MySQL 4.1. Oracle. 5 de diciembre 2010.

Otras Páginas

Obtenido de"https://en.copro.org/w/index.php?title=Nested_transaction&oldid=617455530"