2011-02-03 22 views
22

Estoy un poco confundido acerca de data consistency y data integrity. De Oracle Database Concepts:¿Hay alguna diferencia entre la integridad de los datos y la consistencia de los datos?

data integrity 
-------------- 
Business rules that dictate the standards for acceptable data. These rules 
are applied to a database by using integrity constraints and triggers to 
prevent invalid data entry. 

De Wikipedia

Consistency 
----------- 
Consistency states that only valid data will be written to the database. 

Entonces, ¿cuál es la diferencia entre data consistency y data integrity?

Gracias de antemano.

Respuesta

21

Ellos no sólo son diferentes, son ortogonales.

inconsistencia:
Una base de datos que informó el departamento del empleado Joe Shmoe como la venta pero que no enumeró Joe Shmoe entre los empleados del departamento de ventas sería incompatible.
Es una propiedad lógica de la base de datos, independiente de los datos reales.

Integridad:
Un DB que informa de que JOSe SaleS para ser un miembro del departamento de Shmoe carecería de integridad.
jOe SaleS no es un nombre de empleado válido y Shmoe no es un departamento válido.
Eso no es lógicamente inválido, pero no es válido en relación con las reglas que rigen el contenido de datos.

+0

Veo que la restricción de integridad de "clave principal" tiene la intención de eliminar el problema de coherencia que ha demostrado. Dice que el empleado tiene una clave externa que refiere un departamento, luego el departamento debe tener al empleado en la lista. Es como [la sintaxis puede de alguna manera imponer la integridad semántica] (http://cs.stackexchange.com/questions/51189/ambiguity-vs-context-sensitivity). –

+0

Quiero decir que si uno mejora al otro, entonces no podemos decir que son absolutamente ortogonales y no se correlacionan. Me refiero a que el reclamo de ortogonalidad y la cuestión de la diferencia entre dos necesita más aclaración. –

+0

Drivev downvote por algún sociópata en esta fecha. En cuanto a los comentarios anteriores, nunca dije nada sobre "absolutamente" o que no pueden "correlacionarse" ... por supuesto, hay instancias de soluciones que abordan ambos problemas; eso es un hecho para la ortogonalidad. –

5

Los datos pueden ser completamente consistentes y completamente incorrectos. La integridad de los datos se basa más en la calidad de los datos y va más allá de los sistemas de administración de bases de datos. Los DBMS proporcionan herramientas de coherencia de datos que pueden ayudar con la integridad de los datos; son una parte del problema más grande. Las restricciones de integridad y los factores desencadenantes ayudan a garantizar que un DBMS no se degrade (o, si usted es un pesimista, degrada aún más) la integridad de los datos que llegan.

La manera de analizar la jerga de Oracle es que las restricciones de integridad y los factores desencadenantes son una forma de implementar un subconjunto de las reglas comerciales que definen la integridad de los datos.

8

A grandes rasgos, mi 2c:

Integridad = tipos fuertes, no hay valores no válidos según lo determinado por el modelo de datos & limitaciones, llaves desvencijados, restricciones únicas y cosas por el estilo.

Consistencia = ser capaz de leer solo los datos confirmados en un punto dado en el tiempo, no en los pasos intermedios.

2
+4

Bienvenido a SO. Los enlaces simples generalmente son mejores como comentarios. Los enlaces a las fuentes en las respuestas están bien, pero normalmente deben incluirse con un motivo de relevancia y/o utilizarse como soporte de una respuesta (por ejemplo, resumen/razón para leer el enlace o extracto de la cita/paráfrasis se debe extraer). –

+0

He observado que los enlaces desnudos servirían mejor como comentarios. Desafortunadamente no tengo suficiente reputación. Gracias – gsk

1

De here

consistencia de los datos

Ejecución de transacción en el aislamiento conserva la consistencia de los datos. El valor de los datos almacenados en la base de datos debe cumplir ciertas restricciones de consistencia. Por ejemplo, el saldo en una cuenta no debe ser inferior a $ 100. Los comandos DDL proporcionan las facilidades para especificar tales restricciones. Los sistemas de base de datos verifican estas restricciones cada vez que se actualiza la base de datos. En general, puede ser un predicado arbitrario perteneciente a la base de datos. Para verificar la consistencia de la base de datos, la mayoría de los programadores dependen de las restricciones y, por lo general, son costosas de probar.

integridad de los datos

La integridad de los datos se refiere como "datos de todo en un solo lugar". Los datos están en forma de tablas y cada tabla tiene algunos atributos. Estos son los casos en los que queremos asegurarnos de que un valor que aparece en una relación para un determinado conjunto de atributos también debe aparecer para un determinado conjunto de atributos en otra relación (integridad referencial). La modificación de la base de datos puede causar una violación de la integridad. Cuando se viola la restricción de integridad, el procedimiento normal rechaza la acción que realmente ha causado la violación.

enter image description here

Usted puede leer first chapter de ACID.

1
  1. Consistencia: No tiene fechas, números y letras en la misma columna, pero solo una de ellas. Esto es forzado definiendo el tipo de columna, ej. número de identificación de columna (5) significa que no habrá fechas ni letras y números mayores que 99999
  2. Integridad: si tiene una tabla de empleados y departamentos y una columna department_id en ambos (con el significado de department_id en el empleado de bruja está funcionando) no habrá ningún empleado trabajando en el departamento que no exista en la tabla de departamentos. Esto es forzado por la restricción de integridad de referencia.
Cuestiones relacionadas