Agrupación de varias operaciones en una transacción

Completado

Si un cambio en un fragmento de datos debe tener como resultado un cambio en otro, una aplicación tendrá que agrupar una serie de actualizaciones de datos. Puede usar transacciones para agrupar estas actualizaciones. En una transacción, si se produce un error en un evento de una serie de actualizaciones, toda la serie se puede revertir o deshacer.

Un ejemplo es un minorista en línea que usa una transacción para realizar un pedido, verificar los pagos y actualizar el inventario de productos. La agrupación de los eventos relacionados garantiza que los niveles de inventario no se reducen hasta que se recibe un método de pago autorizado.

A continuación, aprenderá qué son las transacciones y cuándo son necesarias para los datos.

¿Qué es una transacción?

Una transacción es un grupo lógico de operaciones de base de datos que se ejecutan juntas.

Esta es la pregunta que debe hacerse respecto a si necesita usar transacciones en la aplicación: ¿el cambio en un fragmento de datos del conjunto de datos afectará a otro? Si la respuesta es afirmativa, necesitará compatibilidad con las transacciones en el servicio de base de datos.

Las transacciones se definen a menudo mediante un conjunto de cuatro requisitos denominados garantías ACID. ACID son las siglas en inglés de atomicidad, coherencia, aislamiento y durabilidad.

  • Atomicidad significa que una transacción se debe ejecutar exactamente una vez y que debe ser atómica. O bien se realiza el trabajo en su totalidad, o no se realiza. Las operaciones implicadas en una transacción suelen compartir una intención común y son interdependientes.
  • La coherencia garantiza que los datos sean coherentes tanto antes como después de la transacción.
  • El aislamiento garantiza que cada transacción no se vea afectada por otras transacciones.
  • La durabilidad significa que los cambios realizados como resultado de una transacción se guardan de forma permanente en el sistema. El sistema guarda los datos confirmados de modo que, incluso en caso de error o reinicio del sistema, están disponibles en su estado correcto.

Cuando una base de datos ofrece garantías ACID, estos principios se aplican a todas las transacciones de manera coherente.

Diferencias entre OLTP y OLAP

Las bases de datos transaccionales se conocen con frecuencia como sistemas de procesamiento de transacciones en línea (OLTP). Los sistemas OLTP normalmente admiten muchos usuarios, tienen tiempos de respuesta rápidos y controlan grandes volúmenes de datos. También son de alta disponibilidad, lo que significa que tienen un tiempo de inactividad mínimo. Normalmente, los sistemas OLTP controlan transacciones pequeñas o relativamente sencillas.

Un ejemplo de un servicio de Azure que admite OLTP es Azure SQL Database.

Los sistemas OLAP (Procesamiento analítico en línea) normalmente admiten menos usuarios, tienen tiempos de respuesta más largos, su disponibilidad puede ser menor y, por lo general, controlan transacciones grandes y complejas.

Un ejemplo de un servicio de Azure que admite OLAP es Azure Analysis Services.

Los términos OLTP y OLAP no se usan con tanta frecuencia como antes, pero comprenderlos hace que sea más fácil clasificar las necesidades de la aplicación.

Transacciones: evaluación de los tipos de datos

Garantizar que los datos están en el estado correcto no siempre es una tarea fácil. Las transacciones pueden ayudar al imponer requisitos de integridad sobre los datos. Si los datos se benefician de los principios de ACID, elija una solución de almacenamiento que admita las transacciones.

Ahora se examinará cada uno de los conjuntos de datos del escenario de comercio minorista en línea para determinar la necesidad de transacciones.

Datos del catálogo de productos

Los datos del catálogo de productos deben almacenarse en una base de datos transaccional. Cuando un usuario hace un pedido y se comprueba el pago, se debe actualizar el inventario del artículo. Del mismo modo, si la tarjeta de crédito del cliente se rechaza, el pedido debería revertirse y el inventario no se debería actualizar. Estas relaciones necesitan transacciones.

Fotografías y vídeos

Las fotos y los vídeos de un catálogo de productos no requieren compatibilidad con transacciones. Estos archivos se modifican únicamente cuando se realiza una actualización o se agregan nuevos archivos. Aunque hay una relación entre la imagen y los datos del producto real, no es transaccional por naturaleza.

Datos empresariales

Como los datos empresariales son históricos y no cambian, la compatibilidad transaccional no es obligatoria. Los analistas de negocios que trabajan con los datos también tienen necesidades de consulta únicas. Suelen trabajar con agregados en sus consultas, para poder trabajar con los totales de otros puntos de datos más pequeños.

Comprobación de conocimientos

1.

¿Qué tipo de sistema de base de datos transaccional funcionaría mejor para los datos de productos?

2.

Imagine que las operaciones de actualización de inventario y procesamiento de pagos de una tienda están en la misma transacción. Un usuario intenta aplicar un vale de compra de 30 USD a un pedido desde un portátil y realiza el mismo pedido exacto con el vale de compra (para la cantidad completa) desde el teléfono. Se reciben dos pedidos idénticos. La base de datos en segundo plano es compatible con ACID. ¿Qué sucederá?