¿Qué es el cumplimiento de ACID?
La presencia de cuatro componentes – atomicidad, consistencia, aislamiento y durabilidad – puede asegurar que una transacción de base de datos se complete de manera oportuna. Cuando las bases de datos poseen estos componentes, se dice que son compatibles con ACID. Pero, ¿qué es el cumplimiento de ACID y por qué debería importarle? Echemos un vistazo:
Atomicidad: Las transacciones de la base de datos, al igual que los átomos, pueden dividirse en partes más pequeñas. Cuando se trata de su base de datos, la atomicidad se refiere a la integridad de toda la transacción de la base de datos, no sólo de un componente de la misma. En otras palabras, si una parte de una transacción no funciona como se supone que debe hacerlo, la otra fallará como resultado, y viceversa. Por ejemplo, si está comprando en un sitio de comercio electrónico, debe tener un artículo en su cesta para poder pagarlo. Lo que no puede hacer es pagar algo que no está en su cesta. (Puedes añadir algo a tu cesta y no pagarlo, pero esa transacción de la base de datos no estará completa, y por tanto no será «atómica», hasta que lo pagues).
Consistencia: Para que cualquier base de datos funcione como debe hacerlo, debe seguir las reglas de validación de datos adecuadas. Por lo tanto, la consistencia significa que sólo se permite escribir en la base de datos los datos que siguen esas reglas. Si se produce una transacción que da lugar a datos que no siguen las reglas de la base de datos, ésta se «devolverá» a una iteración anterior de sí misma (o «estado») que cumpla las reglas. Por otro lado, tras una transacción exitosa, se añadirán nuevos datos a la base de datos y el estado resultante será consistente con las reglas existentes.
Aislamiento: Es seguro decir que en cualquier momento en Amazon, hay mucho más que una transacción ocurriendo en la plataforma. De hecho, una cantidad increíblemente enorme de transacciones de base de datos están ocurriendo simultáneamente. Para una base de datos, el aislamiento se refiere a la capacidad de procesar simultáneamente varias transacciones de manera que una no afecte a otra. Imagina que tú y tu vecino intentáis comprar algo en la misma plataforma de comercio electrónico al mismo tiempo. Hay 10 artículos a la venta: su vecino quiere cinco y usted seis. El aislamiento significa que una de esas transacciones se completará antes que la otra. En otras palabras, si su vecino hizo clic primero, obtendrá cinco artículos, y sólo quedarán cinco artículos en stock. Por lo tanto, sólo podrá comprar cinco artículos. Si usted hace clic primero, obtendrá los seis artículos que desea, y ellos sólo obtendrán cuatro. Así, el aislamiento garantiza que no se vendan once artículos cuando sólo existen diez.
Durabilidad: Toda tecnología falla de vez en cuando… el objetivo es que esos fallos sean invisibles para el usuario final. En las bases de datos que poseen durabilidad, los datos se guardan una vez que se ha completado una transacción, incluso si se produce un corte de energía o un fallo del sistema. Imagina que compras entradas para un concierto de gran demanda en un sitio similar a Ticketmaster.com. En el momento en que las entradas salen a la venta, usted está listo para hacer la compra. Después de estar atrapado en la sala de espera digital durante algún tiempo, por fin puede añadir esas entradas a su cesta. A continuación, realizas la compra y recibes la confirmación. Sin embargo, si esa base de datos carece de durabilidad, incluso después de que tu compra de entradas haya sido confirmada, si la base de datos sufre un incidente de fallo, ¡tu transacción se perdería! Como se puede esperar, esto es algo realmente malo para un sitio de comercio electrónico en línea, por lo que la durabilidad de las transacciones es un deber.
ClustrixDB, una base de datos en la nube NewSQL, ahora una parte de MariaDB viene con el beneficio añadido de la conformidad ACID, crítico para el éxito!