Transacción

Fiabilidad

?Qué es una transacción?

Una transacción es una secuencia de operaciones relacionadas con una base de datos que un sistema de gestión de bases de datos (DBMS) trata como una sola unidad de trabajo. Las transacciones garantizan que grupos designados de operaciones se ejecuten juntos. Esto es importante en escenarios donde múltiples pasos dependen unos de otros.

Las transacciones de bases de datos deben cumplir con cuatro propiedades importantes: atomicidad, consistencia, aislamiento y durabilidad (ACID). El objetivo es asegurarse de que la base de datos nunca se quede en un estado inconsistente.

  • La atomicidad garantiza que cada transacción se realice o falle por completo.
  • La consistencia asegura que las transacciones sigan tanto las reglas integradas del DBMS como cualquier regla de negocio implementada por los desarrolladores.
  • El aislamiento evita que las transacciones en curso interactúen entre sí.
  • La durabilidad asegura que las transacciones comprometidas se guarden de forma permanente.

?Qué es una base de datos transaccional?

El término ?base de datos transaccional? puede utilizarse para describir cualquier base de datos que cumpla plenamente los principios ACID.

Las bases de datos transaccionales garantizan que, cuando se realizan varias operaciones a la vez, se tratan como una sola unidad de trabajo, y todas tienen éxito o ninguna lo tiene. Esto evita actualizaciones parciales o incoherencias que podrían corromper los datos.

La mayoría de las bases de datos relacionales cumplen con el estándar ACID porque las filas y columnas proporcionan un marco sólido para definir y hacer cumplir las reglas (consistencia), realizar un seguimiento de los cambios (atomicidad y durabilidad) y gestionar el acceso simultáneo (aislamiento).

Otros tipos de bases de datos no son tan adecuados. Por ejemplo, Redis es un almacén de valores clave en memoria dise?ado para ofrecer velocidad y alta disponibilidad. Redis admite operaciones atómicas, pero no garantiza la durabilidad. Si el servidor Redis se bloquea o se reinicia inesperadamente, existe la posibilidad de pérdida de datos, especialmente en el caso de escrituras recientes de las que no se haya hecho copia de seguridad.

?Cómo funcionan las transacciones de bases de datos?

Los desarrolladores de aplicaciones de software programan qué secuencias de operaciones deben agruparse como una transacción en el código fuente y, a continuación, el DBMS se encarga de la ejecución de los comandos.

Si todas las operaciones de una transacción se ejecutan según lo previsto, el DBMS confirma la transacción y los cambios se confirman (se registran en la base de datos). Sin embargo, si falla una sola operación, se revierte toda la transacción para evitar incoherencias y no se realizan cambios en la base de datos.

Las transacciones utilizan bloqueos de acceso, marcas de tiempo y otros mecanismos para gestionar el acceso a los datos y garantizar que las operaciones simultáneas no interfieran entre sí.

Cabe se?alar que algunos SGBD permiten a los desarrolladores habilitar el autoconsignación dentro del código de su aplicación, lo que permite tratar cada operación como si fuera una transacción. Si un desarrollador utiliza un SGBD con autoconsignación habilitada por defecto, tendrá que deshabilitarla en el código antes de definir los límites de la transacción.

?Cómo definen las transacciones los desarrolladores?

Los desarrolladores de software definen las transacciones de bases de datos agrupando varias operaciones de bases de datos. Para transferir 100 $ entre dos cuentas bancarias vinculadas, por ejemplo, las instrucciones de la transacción podrían ser como estas:

INICIAR TRANSACCIóN;
ACTUALIZAR cuentas ESTABLECER saldo = saldo – 100 DONDE id = 1;
ACTUALIZAR cuentas ESTABLECER saldo = saldo + 100 DONDE id = 2;
COMMIT;

Ciclo de vida de una transacción

Las transacciones tienen un ciclo de vida que se define por cuatro estados: inicio, ejecución, confirmación y reversión.

  • El inicio marca el comienzo de la transacción.
  • La ejecución realiza las operaciones de la base de datos (comandos DML).
  • La confirmación finaliza la transacción y hace que todos los cambios sean permanentes.
  • La reversión deshace todas las operaciones si se produce un error y restaura la base de datos a su estado inicial.

4 tipos de transacciones

Los diferentes tipos de transacciones de bases de datos pueden clasificarse en función de su finalidad, alcance y forma de ejecución.

A continuación se presentan cuatro tipos diferentes de transacciones que se utilizan habitualmente:

Transacciones de un solo estado
Sentencias SQL individuales que se tratan como transacciones.
Transacciones distribuidas
Transacciones que abarcan varios sistemas de bases de datos. Las transacciones distribuidas suelen utilizar un protocolo de confirmación en dos fases (2PC) para garantizar la coherencia en todos los sistemas.
Transacciones anidadas
Estructuradas jerárquicamente, con subtransacciones anidadas dentro de una transacción principal. Si una subtransacción falla, sus cambios pueden revertirse independientemente de la transacción principal.
Transacciones pesimistas
Bloquee recursos en varios niveles de aislamiento para evitar conflictos. Los bloqueos impiden que otras transacciones accedan a los mismos datos o los modifiquen hasta que se confirma la transacción. Se pueden utilizar diferentes niveles de aislamiento para controlar lo estricto que es el bloqueo.

Casos de uso de transacciones

Cuando incluso las inconsistencias o errores menores en los datos pueden tener consecuencias significativas, las transacciones que cumplen con ACID proporcionan un mecanismo fiable para garantizar la integridad de los datos, la coherencia y la fiabilidad.

Los casos de uso más comunes incluyen:

  • Sistemas financieros
  • Comercio electrónico
  • Atención sanitaria
  • Sistemas gubernamentales y jurídicos
  • Fabricación y logística
  • Telecomunicaciones
  • Venta al por menor
  • Educación
  • Transporte
  • Servicios públicos
  • Cadena de suministro
  • Juegos
  • Detección de fraudes

Ventajas y desventajas de las transacciones

La ejecución de operaciones relacionadas con bases de datos como una sola transacción tiene sus ventajas, pero también conlleva compensaciones:

Pros pros

  • Se pueden utilizar para simplificar la lógica de las aplicaciones.
  • Ayudan a garantizar que la base de datos se mantenga siempre en un estado coherente.
  • Si algo sale mal, una transacción puede revertirse a su estado inicial y evitar cambios parciales.
  • Los mecanismos de aislamiento de transacciones permiten a los usuarios concurrentes utilizar la base de datos sin conflictos.
  • Una vez que se confirma una transacción, los cambios son permanentes.

Cons cons

  • La sobrecarga de las transacciones puede ralentizar los problemas de rendimiento cuando se ejecutan muchas transacciones al mismo tiempo.
  • Las transacciones distribuidas en múltiples sistemas necesitan protocolos de coordinación complejos, lo que es difícil de gestionar.
  • Los altos niveles de aislamiento pueden bloquear temporalmente otras operaciones y reducir el rendimiento.
  • Los niveles de aislamiento mal dise?ados pueden comprometer la integridad de los datos al crear problemas como lecturas fantasma.

Conclusión

Una transacción, por definición, es una acción única. Las transacciones de bases de datos son grupos de tareas relacionadas que se tratan como una acción única.

Las transacciones de bases de datos utilizan un enfoque de todo o nada: o bien todas las operaciones dentro de la transacción se confirman en la base de datos, o bien no se aplica ninguno de los cambios.

Preguntas frecuentes

?Qué es una transacción?

?Qué hace una transacción de BD?

?Cuál es un ejemplo de base de datos transaccional?

?Qué es una transacción de base de datos frente a una operación?

Temas relacionados

Margaret Rouse
Technology Expert
Margaret Rouse
Experta en tecnología

Margaret Rouse es una galardonada escritora técnica y profesora conocida por su habilidad para explicar temas técnicos complejos a una audiencia de negocios no técnica. Durante los últimos veinte a?os, sus explicaciones han aparecido en sitios web de TechTarget y ha sido citada como autoridad en artículos del New York Times, Time Magazine, USA Today, ZDNet, PC Magazine y Discovery Magazine. La idea de diversión de Margaret es ayudar a profesionales de TI y negocios a aprender a hablar los idiomas altamente especializados de cada uno. Si tienes una sugerencia para una nueva definición o cómo mejorar una explicación técnica,…

',a='';if(l){t=t.replace('data-lazy-','');t=t.replace('loading="lazy"','');t=t.replace(/