¿Qué significa que una base de datos es compatible con ACID?
En informática, ACID (atomicidad, consistencia, aislamiento, durabilidad) es un conjunto de propiedades de las transacciones de bases de datos destinadas a garantizar la validez de los datos a pesar de errores, fallos de alimentación y otros contratiempos. En el contexto de las bases de datos, una secuencia de operaciones de base de datos que satisface las propiedades ACID (que puede percibirse como una única operación lógica sobre los datos) se denomina transacción. Por ejemplo, una transferencia de fondos de una cuenta bancaria a otra, aunque implique múltiples cambios como el cargo en una cuenta y el abono en otra, es una única transacción.

En 1983, Andreas Reuter y Theo Härder acuñaron el acrónimo ACID, basándose en un trabajo anterior de Jim Gray, que denominó atomicidad, consistencia y durabilidad, pero no aislamiento, al caracterizar el concepto de transacción. Estas cuatro propiedades son las principales garantías del paradigma transaccional, que ha influido en muchos aspectos del desarrollo de los sistemas de bases de datos.

Según Gray y Reuter, el Sistema de Gestión de la Información de IBM ya admitía transacciones ACID en 1973 (aunque el acrónimo se creó más tarde).

Atomicidad
Artículo principal: Atomicidad (sistemas de bases de datos)
Las transacciones suelen estar compuestas por varias sentencias. La atomicidad garantiza que cada transacción se trate como una única "unidad", que o bien tiene éxito por completo o bien falla por completo: si alguna de las sentencias que constituyen una transacción no se completa, falla toda la transacción y la base de datos no sufre ningún cambio. Un sistema atómico debe garantizar la atomicidad en todas y cada una de las situaciones, incluidos los fallos de alimentación, los errores y las caídas. Una garantía de atomicidad impide que las actualizaciones de la base de datos se produzcan sólo parcialmente, lo que puede causar mayores problemas que rechazar de plano toda la serie. Como consecuencia, otro cliente de la base de datos no puede observar que la transacción está en curso. En un momento dado, aún no ha ocurrido, y en el siguiente, ya ha ocurrido en su totalidad (o no ha ocurrido nada si la transacción se canceló en curso).

Consistencia
Artículo principal: Consistencia (sistemas de bases de datos)
La consistencia garantiza que una transacción sólo puede llevar a la base de datos de un estado consistente a otro, preservando los invariantes de la base de datos: cualquier dato escrito en la base de datos debe ser válido según todas las reglas definidas, incluyendo restricciones, cascadas, desencadenantes y cualquier combinación de ellos. Esto evita la corrupción de la base de datos por una transacción ilegal. La integridad referencial garantiza la relación clave primaria-llave externa.

Aislamiento
Artículo principal: Aislamiento (sistemas de bases de datos)
Las transacciones se ejecutan a menudo de forma concurrente (por ejemplo, varias transacciones leen y escriben en una tabla al mismo tiempo). El aislamiento garantiza que la ejecución concurrente de transacciones deje la base de datos en el mismo estado que se habría obtenido si las transacciones se hubieran ejecutado secuencialmente. El aislamiento es el principal objetivo del control de la concurrencia; dependiendo del nivel de aislamiento utilizado, los efectos de una transacción incompleta pueden no ser visibles para otras transacciones.

Durabilidad
Artículo principal: Durabilidad (sistemas de bases de datos)
La durabilidad garantiza que una vez que una transacción se ha consignado, seguirá consignada incluso en caso de fallo del sistema (por ejemplo, corte de energía o caída). Esto suele significar que las transacciones completadas (o sus efectos) se registran en una memoria no volátil.
ACID es un acrónimo de Atomicidad, Consistencia, Aislamiento y Durabilidad.
Atomicidad significa que las acciones se producen por completo o no se producen en absoluto; no hay escrituras parciales ni situaciones en las que sólo se haya completado parte de una acción. Para una base de datos, esto significa que si los datos se escribieron en una única transacción, esa transacción se completa por completo o falla por completo sin que queden datos en un estado parcial o corrupto.
Consistencia significa que las transacciones llevan el estado de un estado válido a otro estado válido, sin que haya forma de entrar en un estado no válido.
Aislamiento significa que varios lectores/escritores de la misma base de datos no interfieren entre sí y pueden proceder sin preocuparse de los efectos de que se produzca otra acción.
Durabilidad significa que el estado se conserva a pesar de fallos y cierres, por ejemplo, que el estado se persiste en un almacenamiento permanente.
What does it mean if a database is ACID compliant?
In computer science, ACID (atomicity, consistency, isolation, durability) is a set of properties of database transactions intended to guarantee data validity despite errors, power failures, and other mishaps. In the context of databases, a sequence of database operations that satisfies the ACID properties (which can be perceived as a single logical operation on the data) is called a transaction. For example, a transfer of funds from one bank account to another, even involving multiple changes such as debiting one account and crediting another, is a single transaction.

In 1983, Andreas Reuter and Theo Härder coined the acronym ACID, building on earlier work by Jim Gray who named atomicity, consistency, and durability, but not isolation, when characterizing the transaction concept. These four properties are the major guarantees of the transaction paradigm, which has influenced many aspects of development in database systems.

According to Gray and Reuter, the IBM Information Management System supported ACID transactions as early as 1973 (although the acronym was created later).

Atomicity
Main article: Atomicity (database systems)
Transactions are often composed of multiple statements. Atomicity guarantees that each transaction is treated as a single "unit", which either succeeds completely or fails completely: if any of the statements constituting a transaction fails to complete, the entire transaction fails and the database is left unchanged. An atomic system must guarantee atomicity in each and every situation, including power failures, errors, and crashes.[5] A guarantee of atomicity prevents updates to the database from occurring only partially, which can cause greater problems than rejecting the whole series outright. As a consequence, the transaction cannot be observed to be in progress by another database client. At one moment in time, it has not yet happened, and at the next, it has already occurred in whole (or nothing happened if the transaction was canceled in progress).

Consistency
Main article: Consistency (database systems)
Consistency ensures that a transaction can only bring the database from one consistent state to another, preserving database invariants: any data written to the database must be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof. This prevents database corruption by an illegal transaction. Referential integrity guarantees the primary key–foreign key relationship.[6]

Isolation
Main article: Isolation (database systems)
Transactions are often executed concurrently (e.g., multiple transactions reading and writing to a table at the same time). Isolation ensures that concurrent execution of transactions leaves the database in the same state that would have been obtained if the transactions were executed sequentially. Isolation is the main goal of concurrency control; depending on the isolation level used, the effects of an incomplete transaction might not be visible to other transactions.[7]

Durability
Main article: Durability (database systems)
Durability guarantees that once a transaction has been committed, it will remain committed even in the case of a system failure (e.g., power outage or crash). This usually means that completed transactions (or their effects) are recorded in non-volatile memory.
ACID is an acronym that stands for Atomicity, Consistency, Isolation, and Durability.
Atomicity means that actions occur either entirely or not at all; there is no partial write or situation where only part of an action was completed. For a database, this means that if data was written in a single transaction, that transaction either completes entirely or fails completely with no data left behind in a partial or corrupt state.
Consistency means that transactions take the state from one valid state to another valid state, with no way to enter an invalid state.
Isolation means that multiple readers/writers to the same database do not interfere with each other and can proceed without worrying about the effects of another action occurring.
Durability means that state is preserved across failures and shutdowns, e.g. that state is persisted to permanent storage.