2012-09-30 11 views
12

¿Cuál es la diferencia entre la atomicidad y la consistencia? me parece que ambos están diciendo lo mismo en diferentes palabras.coherencia de atomicidad de la base de datos

atomicidad

Todas las tareas de una transacción se llevan a cabo o ninguno de ellos son. No hay transacciones parciales. Por ejemplo, si una transacción comienza a actualizar 100 filas, pero el sistema falla después de 20 actualizaciones, la base de datos retrotrae los cambios a estas 20 filas.

consistencia

La transacción se lleva a la base de datos de un estado coherente a otro estado coherente. Por ejemplo, en una transacción bancaria que carga una cuenta de ahorro y acredita una cuenta de cheques, una falla no debe hacer que la base de datos acredite solo una cuenta, lo que daría lugar a datos incoherentes.

+1

No atómico, consistente: una transacción parcial puede dejar el sistema en un estado consistente. Atómico, no consistente: 2 partes del sistema pueden mantener la atomicidad sin ser consistentes (la transacción se registra en una y no en la otra). – nhahtdh

Respuesta

14

La atomicidad de hecho dice que cada transacción es todo o nada, lo que significa que se ejecutan todas o ninguna de sus acciones y que no hay operaciones parciales.

Sin embargo, la consistencia se refiere a garantizar que cualquier transacción lleve la base de datos de un estado válido a otro. Cualquier dato escrito en la base de datos debe ser válido de acuerdo con todas las reglas definidas, incluidas, entre otras, restricciones, cascadas, activadores y cualquier combinación de los mismos (taken from Wikipedia). Eso básicamente significa que solo se escriben estados válidos en la base de datos, y que una transacción se ejecutará si no infringe la coherencia de los datos o si se revierte.

Espero que aclare las cosas para usted.

0

simple explain Para consistencia: si un tipo de campo en la base de datos es Integer, debería aceptar únicamente valores enteros y no otro tipo.Si desea almacenar otros tipos en este campo, se viola la coherencia. En esta condición, la transacción se revertirá.

0

atomicidad:
Manojo de declaración que acaba de tomar un ejemplo de 100 declaraciones que se pueden insertar declaración también, en su caso de la instrucción fallaron mientras que el procesamiento debe invertir de nuevo comunicado restante, lo que significa que la base de datos debería volver originales estado.

cita en bloque

confirmación automática = false

try{ 
    statement one ; 
    statement two ; 
    `enter code here` 
    `enter code here` 
    `enter code here` 
    statement three; 
    } 
    catch(){rollback;} 
    finally(){commit;} t 

Consistencia: Si su tratando de insertar la fecha en la base de datos que necesitan ser satisfacer las restricciones, cascadas, desencadena como mientras Intenta insertar los datos en la base de datos, pero la tabla tiene restricciones de clave principal, por lo que los datos que planea insertar deben ser satisfactorios. fy con restricción de clave primaria.

Aislamiento: si se están ejecutando dos procesos en la base de datos, supongamos que uno está leyendo y otro está escribiendo los datos en la base de datos. el hilo de la lectura debe leer datos sólo cometidos, no debe ser datos en memoria

Durabilidad: vez que los datos de transacciones confirmadas en la base de datos debe ser el mismo escenario, se debe no afecta a la de corte de corriente o fallo del sistema cualquier otro

Cuestiones relacionadas