Transacción (informática)

Transacción (informática)

Una transacción es una interacción con una estructura de datos compleja, compuesta por varios procesos que se han de aplicar uno después del otro. La transacción debe realizarse de una sola vez y sin que la estructura a medio manipular pueda ser alcanzada por el resto del sistema hasta que se hayan finalizado todos sus procesos.

Contenido

Ejemplo

La transferencia de fondos entre dos cuentas corrientes de un banco. Si queremos transferir, supongamos 5000€ de la cuenta corriente de A y B y las cuentas tienen, respectivamente, 20000€ y 0€ de saldo los pasos lógicos serían:

  1. Comprobar si en la cuenta A hay dinero suficiente.
  2. Restar 5000€ de la cuenta de A, con lo que su saldo pasa a ser de 15000€.
  3. Sumar 5000€ a la cuenta de B, con lo que los saldos quedan A= 15000€ y B= 5000€

Ahora bien, si entre el paso 2 y el 3 el sistema sufre una parada o error inesperado las cuentas quedarían como A= 15000 y B= 0 con lo cual se han volatilizado 5000€ y presumiblemente ni A ni B estarán contentos, y hubiesen preferido que la transacción nunca hubiese sido iniciada.

Este ejemplo ilustra por qué las transacciones tienen un comportamiento deseado de Todo o nada, o se realiza completamente o no debe tener ningún efecto.

Propiedades

Las transacciones deben cumplir cuatro propiedades ACID:

  1. Atomicidad (Atomicity): es la propiedad que asegura que la operación se ha realizado o no, y por lo tanto ante un fallo del sistema no puede quedar a medias.
  2. Consistencia (Consistency): es la propiedad que asegura que sólo se empieza aquello que se puede acabar. Por lo tanto, se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos.
  3. Aislamiento (Isolation): es la propiedad que asegura que una operación no puede afectar a otras. Esto asegura que la realización de dos transacciones sobre la misma información nunca generará ningún tipo de error.
  4. Permanencia (Durability): es la propiedad que asegura que una vez realizada la operación, ésta persistirá y no se podrá deshacer aunque falle el sistema.

La atomicidad frente a fallos se suele implementar con mecanismos de journaling, y la protección frente a accesos concurrentes mediante bloqueos en las estructuras afectadas. La serialibilidad viene garantizada por la atomicidad. La permanencia se suele implementar forzando a los periféricos encargados de almacenar los cambios a confirmar la completa y definitiva transmisión de los datos al medio (generalmente, el disco).

La forma algorítmica que suelen tener las transacciones es la siguiente:

iniciar transacción (lista de recursos a bloquear)
ejecución de las operaciones individuales.
if (todo_ok){
 aplicar_cambios
}
else{
 cancelar_cambios
}

En cualquier momento, el programa podría decidir que es necesario hacer fallar la transacción, con lo que el sistema deberá revertir todos los cambios hechos por las operaciones ya hechas. En el lenguaje SQL se denomina COMMIT a aplicar_cambios y ROLLBACK a cancelar_cambios.

Las transacciones suelen verse implementadas en sistemas de bases de datos y, más recientemente, se han visto incorporadas a como gestiona un sistema operativo la interacción con un sistema de archivos (como varias características de las bases de datos, debido a que son muy similares arquitectónicamente).

Véase también

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Mira otros diccionarios:

  • Transacción (base de datos) — Se ha sugerido que este artículo o sección sea fusionado con Transacción (informática) (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí. Una transacción en un Sistema de Gestión de Bases de Datos …   Wikipedia Español

  • Transacción — puede referirse a: Transacción en derecho. Transacción en finanzas. Transacción a través de HTTP. Transacción en informática. Transacción electrónica segura en seguridad informática: protocolo estándar para proporcionar seguridad a una… …   Wikipedia Español

  • Tarjeta bip! — Validador de tarjetas en un bus de Transantiago. Es aquí donde se debe utilizar la tarjeta bip!. La tarjeta bip! es el importante medio de pago, con formato …   Wikipedia Español

  • Seguridad de la información — Este artículo o sección necesita ser wikificado con un formato acorde a las convenciones de estilo. Por favor, edítalo para que las cumpla. Mientras tanto, no elimines este aviso. También puedes ayudar wikificando otros artículos o cambiando este …   Wikipedia Español

  • ABAP — (Advanced Business Application Programming) es un lenguaje de cuarta generación, propiedad de SAP, que se utiliza para programar la mayoría de sus productos (R/3, mySAP Business suite...). Utiliza sentencias de Open SQL para conectarse con… …   Wikipedia Español

  • La era de las máquinas espirituales — (The Age of Spiritual Machines) es un libro de Ray Kurzweil (1998), de gran contenido filosófico, tecnológico, informático y científico que habla de la historia de la evolución y su relación con la vida natural y la tecnología, así como el papel… …   Wikipedia Español

  • Microcontrolador — Motorola 68HC11 y chips de soporte. Un microcontrolador (abreviado μC,UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea …   Wikipedia Español

  • Online Certificate Status Protocol — (OCSP) es un método para determinar el estado de revocación de un certificado digital X.509 usando otros medios que no sean el uso de CRL (Listas de Revocación de Certificados). Este protocolo se describe en el RFC 2560 y está en el registro de… …   Wikipedia Español

  • Sistema de información — (SI) es un conjunto de elementos orientados al tratamiento y administración de datos e información, organizados y listos para su posterior uso, generados para cubrir una necesidad (objetivo). Dichos elementos formarán parte de alguna de estas… …   Wikipedia Español

  • Universidad Tecnológica de México — Para otros usos de este término, véase UNITEC (desambiguación). Universidad Tecnológica de México Universidad Tecnológica de México Acrónimo UNITEC Lema «Ciencia y Técnica con Humanismo» …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”