En los sistemas de bases de datos , la consistencia (o corrección ) se refiere al requisito de que cualquier transacción de base de datos dada debe cambiar los datos afectados solo de las formas permitidas. Todos los datos escritos en la base de datos deben ser válidos de acuerdo con todas las reglas definidas, incluidas las restricciones , las cascadas , los disparadores y cualquier combinación de las mismas. Esto no garantiza la corrección de la transacción en todas las formas que el programador de la aplicación podría haber deseado (eso es responsabilidad del código a nivel de aplicación), sino simplemente que cualquier error de programación no puede resultar en la violación de ninguna restricción de base de datos definida. [1]
En un sistema distribuido, haciendo referencia al teorema CAP , la consistencia también puede entenderse como que después de una escritura, actualización o eliminación exitosa de un registro, cualquier solicitud de lectura recibe inmediatamente el último valor del registro.
La coherencia es una de las cuatro garantías que definen las transacciones ACID ; sin embargo, existe una ambigüedad significativa sobre la naturaleza de esta garantía. Se define de diversas maneras:
Como estas diversas definiciones no son mutuamente excluyentes, es posible diseñar un sistema que garantice la "consistencia" en todos los sentidos de la palabra, como lo hacen posiblemente la mayoría de los sistemas de gestión de bases de datos relacionales de uso común en la actualidad.
El teorema CAP se basa en tres disyuntivas, una de las cuales es la "consistencia atómica" (abreviada como "consistencia" por el acrónimo), sobre la cual los autores señalan: "Discutir la consistencia atómica es algo diferente a hablar sobre una base de datos ACID, ya que la consistencia de la base de datos se refiere a las transacciones, mientras que la consistencia atómica se refiere solo a una propiedad de una secuencia de operación de solicitud/respuesta única. Y tiene un significado diferente al de Atómico en ACID, ya que subsume las nociones de base de datos tanto de Atómico como de Consistente". [7] En el teorema CAP, solo puede tener dos de las siguientes tres propiedades: consistencia, disponibilidad o tolerancia a la partición. Por lo tanto, es posible que deba haber un equilibrio entre la consistencia en algunos sistemas de bases de datos.