Las bases de datos relacionales están diseñadas con fiabilidad y consistencia en su núcleo. Los ingenieros que los desarrollaron se centraron en un modelo transaccional que garantiza que los cuatro principios del modelo ACID se mantengan siempre. Sin embargo, el advenimiento de un nuevo modelo de base de datos no estructurada está poniendo a ACID de cabeza. El modelo de base de datos NoSQL evita el modelo relacional altamente estructurado en favor de un enfoque flexible de almacenamiento de claves/valores. Este enfoque no estructurado de los datos requiere una alternativa al modelo ACID: el modelo BASE.
Principios básicos del modelo ACID
Hay cuatro principios básicos del modelo ACID:
- La atomicidad de las transacciones asegura que cada transacción de la base de datos es una sola unidad que adopta un enfoque de ejecución «todo o nada». Si alguna declaración de la transacción falla, la transacción completa se devuelve.
- Las bases de datos relacionales también aseguran la consistencia de cada transacción con las reglas de negocio de la base de datos. Si cualquier elemento de una transacción atómica perturbara la consistencia de la base de datos, toda la transacción fracasaría.
- El motor de base de datos aplica el aislamiento entre múltiples transacciones que ocurren al mismo tiempo o casi al mismo tiempo. Cada transacción ocurre antes o después de cada transacción y la vista de la base de datos que una transacción ve al principio sólo es alterada por la transacción misma antes de su conclusión. Ninguna transacción debería ver nunca el producto intermedio de otra transacción.
- El principio final de ACID, durabilidad , asegura que una vez que una transacción se compromete a la base de datos, se conserva permanentemente mediante el uso de copias de seguridad y registros de transacciones. En caso de fallo, estos mecanismos pueden utilizarse para restablecer las transacciones comprometidas.
Principios Básicos de BASE
Las bases de datos NoSQL, por otro lado, abarcan situaciones en las que el modelo ACID es excesivo o, de hecho, obstaculizaría el funcionamiento de la base de datos. En su lugar, NoSQL se basa en un modelo más suave conocido, apropiadamente, como el modelo BASE. Este modelo acomoda la flexibilidad ofrecida por NoSQL y enfoques similares a la gestión y conservación de datos no estructurados. BASE consta de tres principios:
- Disponibilidad básica . El enfoque de base de datos NoSQL se centra en la disponibilidad de los datos incluso en presencia de múltiples fallos. Para ello, utiliza un enfoque altamente distribuido de la gestión de bases de datos. En lugar de mantener un solo gran almacén de datos y centrarse en la tolerancia a fallos de ese almacén, las bases de datos NoSQL distribuyen los datos a través de muchos sistemas de almacenamiento con un alto grado de replicación. En el improbable caso de que una falla interrumpa el acceso a un segmento de datos, esto no necesariamente resulta en una interrupción completa de la base de datos.
- Estado blando . Las bases de datos BASE abandonan los requisitos de consistencia del modelo ACID casi por completo. Uno de los conceptos básicos detrás de BASE es que la consistencia de los datos es un problema del desarrollador y no debe ser manejada por la base de datos.
- Consistencia eventual . El único requisito que tienen las bases de datos NoSQL con respecto a la consistencia es requerir que en algún momento en el futuro, los datos converjan a un estado consistente. Sin embargo, no se dan garantías sobre cuándo ocurrirá esto. Se trata de una desviación completa del requisito de consistencia inmediata de ACID, que prohíbe que una transacción se ejecute hasta que se haya completado la transacción anterior y la base de datos haya convergido a un estado consistente.
El modelo BASE no es apropiado para todas las situaciones, pero ciertamente es una alternativa flexible al modelo ACID para bases de datos que no requieren una adhesión estricta a un modelo relacional.