stringtranslate.com

Transacción anidada

Una transacción anidada es una transacción de base de datos que se inicia mediante una instrucción dentro del alcance de una transacción ya iniciada.

Las transacciones anidadas se implementan de forma diferente en distintas bases de datos. Sin embargo, tienen en común que los cambios no se hacen visibles para ninguna transacción no relacionada hasta que se confirma la transacción más externa. Esto significa que una confirmación en una transacción interna no necesariamente conserva las actualizaciones en el sistema.

En algunas bases de datos, los cambios realizados por la transacción anidada no son vistos por la transacción "host" hasta que se confirma la transacción anidada. Según algunos, [¿ quién? ] esto se desprende de la propiedad de aislamiento de las transacciones.

La capacidad de manejar transacciones anidadas correctamente es un prerrequisito para las arquitecturas de aplicaciones basadas en componentes reales. En una arquitectura encapsulada basada en componentes, las transacciones anidadas pueden ocurrir sin que el programador lo sepa. Una función de componente puede o no contener una transacción de base de datos (este es el secreto encapsulado del componente. Consulte Ocultación de información ). Si se realiza una llamada a una función de componente de este tipo dentro de un corchete BEGIN - COMMIT, se producen transacciones anidadas. Dado que las bases de datos populares como MySQL [1] no permiten anidar corchetes BEGIN - COMMIT, se necesita un marco o un monitor de transacciones para manejar esto. Cuando hablamos de transacciones anidadas, debe quedar claro que esta característica depende del DBMS y no está disponible para todas las bases de datos.

La teoría de transacciones anidadas es similar a la teoría de transacciones planas. [2]

La industria bancaria generalmente procesa las transacciones financieras utilizando transacciones anidadas abiertas , [ cita requerida ] que es una variante más flexible del modelo de transacciones anidadas que proporciona un mayor rendimiento al tiempo que acepta las compensaciones de inconsistencia que lo acompañan. [3]

Lectura adicional

Referencias

  1. ^ "Declaraciones que provocan una confirmación implícita". Manual de referencia de MySQL 4.1 . Oracle . Consultado el 5 de diciembre de 2010 .
  2. ^ Resende, RF; El Abbadi, A. (25 de mayo de 1994). "Sobre el teorema de serialización para transacciones anidadas". Information Processing Letters . 50 (4): 177–183. CiteSeerX 10.1.1.43.6470 . doi :10.1016/0020-0190(94)00033-6. 
  3. ^ Weikum, Gerhard; Hans-J. Schek (1992). Conceptos y aplicaciones de transacciones multinivel y transacciones anidadas abiertas. Morgan Kaufmann. págs. 515–553. CiteSeerX 10.1.1.17.7962 . ISBN.  978-1-55860-214-4. {{cite book}}: |journal=ignorado ( ayuda )