Modelos de consistencia ACID y BASE

Hablemos de los modelos de consistencia ACID y BASE.

ACID

El término ACID se refiere a Atomicidad, Consistencia, Aislamiento y Durabilidad. Las propiedades ACID se utilizan para mantener la integridad de los datos durante el procesamiento de transacciones.

Para mantener la consistencia antes y después de una transacción, las bases de datos relacionales siguen las propiedades ACID. Veamos cada uno de estos términos:

  • Atómico: todas las operaciones de una transacción tienen éxito o todas se revierten.
  • Consistente: la consistencia implica que todas las reglas de la base de datos se cumplen o la transacción se revierte. (aquí la consistencia tiene un significado diferente al habitual).
  • Aislado: las transacciones no compiten entre sí. El acceso conflictivo a los datos es gestionado por la base de datos para que las transacciones parezcan ejecutarse de forma secuencial.
  • Duradero: una vez que la transacción se ha completado, permanecerá en el sistema incluso si ocurre un fallo del sistema.

BASE

Para aumentar la escalabilidad y, al mismo tiempo, garantizar una alta disponibilidad, se traslada la lógica de la base de datos a servidores separados. De esta manera, la base de datos se vuelve más independiente y se centra en el proceso real de almacenamiento de datos.

En el mundo de las bases de datos NoSQL, las transacciones ACID son menos comunes, ya que algunas Bases de Datos han relajado los requisitos de consistencia inmediata, frescura y precisión de los datos para obtener otros beneficios, como escalabilidad y resiliencia.

Las propiedades BASE son mucho más flexibles que las garantías ACID, pero no existe una correspondencia directa entre ambos modelos de consistencia. Veamos cada uno de los términos:

  • Disponibilidad Básica: la base de datos parece funcionar la mayor parte del tiempo.
  • Estado Blando: los almacenes no tienen que ser consistentes para escrituras, ni las diferentes réplicas tienen que ser mutuamente consistentes todo el tiempo.
  • Consistencia Eventual: los datos pueden no ser consistentes de inmediato, pero eventualmente lo serán. Las lecturas pueden no devolver datos frescos.

Compromisos entre ACID y BASE

No existe una respuesta correcta sobre si nuestra aplicación necesita un modelo de consistencia ACID o BASE. Ambos modelos han sido diseñados para satisfacer diferentes requisitos. Al elegir una base de datos, debemos tener en cuenta las propiedades de ambos modelos y los requisitos de nuestra aplicación.

Dada la consistencia flexible de BASE, los desarrolladores deben ser más rigurosos y estar bien informados sobre cómo garantizar datos consistentes si optan por un almacén BASE para su aplicación. Es esencial familiarizarse con el comportamiento BASE de la base de datos elegida y trabajar dentro de esas limitaciones.

Por otro lado, planificar en torno a las limitaciones de BASE puede ser una gran desventaja en comparación con la simplicidad de las transacciones ACID. Una base de datos totalmente ACID es la opción perfecta para casos de uso donde la confiabilidad y la consistencia de los datos son esenciales.