2010-09-18 34 views

Respuesta

193

ACID es un conjunto de propiedades que le gustaría aplicar al modificar una base de datos.

  • atomicidad
  • consistencia
  • Aislamiento
  • Durabilidad

Una transacción es un conjunto de cambios relacionados que se utilizan para lograr algunas de las propiedades ACID. Las transacciones son herramientas para lograr las propiedades ACID.

Atomicity significa que usted puede garantizar que ocurra toda una transacción, o nada de eso; puede realizar operaciones complejas como una sola unidad, todo o nada, y un bloqueo, falla de energía, error o cualquier otra cosa no le permitirá estar en un estado en el que solo hayan ocurrido algunos de los cambios relacionados.

La consistencia significa que usted garantiza que sus datos serán consistentes; ninguna de las restricciones que tiene sobre los datos relacionados se violará alguna vez.

Aislamiento significa que una transacción no puede leer datos de otra transacción que aún no se ha completado. Si dos transacciones se están ejecutando simultáneamente, cada una verá el mundo como si se estuvieran ejecutando secuencialmente, y si uno necesita leer datos escritos por otra persona, tendrá que esperar hasta que la otra finalice.

Durabilidad significa que una vez que se completa una transacción, se garantiza que todos los cambios se hayan registrado en un medio duradero (como un disco duro) y que también se haya registrado la transacción.

Por lo tanto, las transacciones son un mecanismo para garantizar estas propiedades; son una forma de agrupar acciones relacionadas de manera tal que, en conjunto, un grupo de operaciones puede ser atómico, producir resultados consistentes, aislarse de otras operaciones y registrarse de forma duradera.

+6

usted dice "la consistencia significa que usted garantiza que sus datos serán consisten ent; ninguna de las restricciones que tiene sobre datos relacionados se violará alguna vez. "Si por restricciones, se refiere a las definidas en la base de datos (por ejemplo, restricciones de verificación), ¿qué tiene que ver la administración de transacciones para evitar que se violen? Ellos siempre están en vigencia? Me parece que la C en ACID debe tener otro significado. –

+12

@MarcRochkind Una transacción le permite aplicar controles de coherencia, incluso si las operaciones individuales dentro de la transacción violarían las restricciones de coherencia. Por ejemplo, si usted está al actualizar un sistema de contabilidad de doble entrada, es posible que deba cargar varias cuentas y acreditar en varias cuentas al mismo tiempo. Sin transacciones, debería verificar las restricciones después de cada extracto, y fallaría porque las declaraciones individuales no conservan la coherencia . Con las transacciones, aunque las declaraciones individuales no conservan la coherencia, la transacción como un todo lo hace. –

+0

@BrianCampbell afte r leyendo el último párrafo de su respuesta y [el primer párrafo de Wiki] (http://en.wikipedia.org/wiki/ACID) Encuentro que el wiki tiene una perspectiva opuesta a la suya, es decir, las propiedades de ACID garantizan una transacción confiable y no a la inversa. – KNU

4

Para citar Wikipedia:

ACID (atomicidad, coherencia, aislamiento, durabilidad) es un conjunto de propiedades que garanticen las transacciones de bases de datos se procesan de forma fiable.

Un DBMS que soportan transacciones se esforzará para apoyar todas estas propiedades - cualquier DBMS comerciales (así como varios DBMS de código abierto) proporcionar pleno 'apoyo' ACID - aunque a menudo es posible (por ejemplo, con diferentes niveles de aislamiento en MSSQL) para disminuir la ACIDness, perdiendo así la garantía de un comportamiento completamente transaccional.

24

ACID son propiedades deseables de cualquier motor de procesamiento de transacciones.

Un DBMS es (si es que sirve) un tipo particular de motor de procesamiento de transacciones que expone, por lo general en gran medida pero no del todo, esas propiedades.

Pero existen otros motores que también pueden exponer esas propiedades. El tipo de software que solía llamarse "monitores TP" es un buen ejemplo (hoy en día "equivale en su mayoría a servidores web").

Dichos monitores TP pueden acceder a otros recursos además de un DBMS (por ejemplo, una impresora), y aún así garantizan ACID a sus usuarios. Como un ejemplo de lo ÁCIDO podría significar cuando una impresora está involucrado en una transacción:

  • atomicidad: todo un documento se imprime o nada en absoluto
  • Consistencia: al final de la transacción, la alimentación de papel es posicionado en la parte superior de la página
  • Aislamiento: no se mezclan dos documentos durante la impresión
  • Durabilidad: la impresora puede garantizar que no esté "imprimiendo" con los cartuchos vacíos.
+3

excelentes ejemplos de impresoras concisas. – lakesare

+1

Buen ejemplo. Aunque no entiendo la parte de "Consistencia". En mi opinión, un mejor ejemplo es "La impresora no acepta papel de más de 10 pulgadas". – skeller88

+0

EDITAR - "papel más ancho que 10 pulgadas". – skeller88

0

propiedades ACID de las transacciones En el contexto de procesamiento de transacciones, el ácido acrónimo refiere a las cuatro propiedades clave de una transacción: atomicidad, consistencia, aislamiento y durabilidad.

Atomicity Todos los cambios en los datos se realizan como si fueran una sola operación. Es decir, todos los cambios se realizan o ninguno de ellos. Por ejemplo, en una aplicación que transfiere fondos de una cuenta a otra, la propiedad de atomicidad asegura que, si un débito se realiza con éxito de una cuenta, el crédito correspondiente se hace a la otra cuenta. La consistencia de datos está en un estado consistente cuando se inicia una transacción y cuando termina. Por ejemplo, en una aplicación que transfiere fondos de una cuenta a otra, la propiedad consistencia asegura que el valor total de los fondos en las cuentas ambos es el mismo al comienzo y al final de cada transacción. Aislamiento El estado intermedio de una transacción es invisible para otras transacciones. Como resultado, las transacciones que se ejecutan simultáneamente aparecen ser serializadas. Por ejemplo, en una aplicación que transfiere fondos de una cuenta a otra, la propiedad de aislamiento asegura que otra transacción ve los fondos transferidos en una cuenta o la otra, pero no en ambas, ni en ninguno de ellos. Durabilidad Después de una transacción se completa con éxito, persisten cambios en los datos y no se deshacen, incluso en el caso de un fallo del sistema. Por ejemplo, en una aplicación que transfiere fondos de una cuenta a otra, la propiedad durabilidad asegura que los cambios realizados en cada cuenta no serán invertidas.

2

[Gray] introdujo las propiedades de ACD para una transacción en 1981. En 1983 [Haerder] agregó la propiedad de aislamiento. En mi opinión, las propiedades de ACD tendrían un conjunto más útil de propiedades para discutir. Una interpretación de Atomicity (que la transacción debe ser atómica como se ve desde cualquier cliente en cualquier momento) implicaría en realidad la propiedad de aislamiento. La propiedad "aislamiento" es útil cuando la transacción es no aislada; cuando la propiedad de aislamiento está relajada. En ANSI SQL speak: si el nivel de aislamiento es más débil que SERIALIZABLE. Pero cuando el nivel de aislamiento es SERIALIZABLE, la propiedad de aislamiento no es realmente de interés.

He escrito más sobre esto en una publicación de blog: "ACID no tiene sentido".

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html

[Gris] El concepto de transacción, Jim Gray, 1981. http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf

[Haerder] Principios de la transacción de base de datos orientada a la recuperación, Haerder y Reuter, 1983. http://www.stanford.edu/class/cs340v/papers/recovery.pdf

6

propiedades ACID son muy antiguas e importante concepto de la teoría de la base de datos. Sé que puedes encontrar muchas publicaciones sobre este tema, pero aún así me gustaría comenzar a compartir respuestas porque es un tema muy importante de RDBMS.

Sistema de base de datos juega con muchos tipos diferentes de transacciones donde todas las transacciones tienen ciertas características. Esta característica se conoce como ACID Properties. ACID Properties toma concesionario para todas las transacciones de bases de datos para llevar a cabo todas las tareas.

Atomicity: O cometer todo o nada.

Consistencia: Realice un registro consistente en términos de validar todas las reglas y limitaciones de la transacción.

Aislamiento: asegúrese de que dos transacciones no se conozcan entre sí.

Durabilidad: datos confirmados almacenados para siempre. Reference taken from this article:

0

La transacción se puede definir como una colección de tareas que se consideran unidades de procesamiento mínimas. Cada unidad mínima de procesamiento no puede dividirse más.

Todas las transacciones deben contener cuatro propiedades conocidas comúnmente como propiedades ACID. es decir, el ÁCIDO es el grupo de propiedades de cualquier transacción.

  • atomicidad:
  • consistencia
  • Aislamiento
  • Durabilidad
3

he modificado ligeramente el ejemplo de la impresora para que sea más explicable

1 documento que tenía 2 páginas de contenido ha sido enviado a la impresora

Transacción - documento enviado a la impresora

  • atomicidad - impresora imprime 2 páginas de un documento o ninguno
  • consistencia - impresora imprime la mitad de la página y la página se queda atascado.La impresora se reinicia e imprime 2 páginas en todos los contenidos
  • aislamiento - mientras que había demasiadas imprime en curso - impresora imprime el contenido correcto del documento
  • durabilidad - durante la impresión, había un poder cut-impresora imprime documentos de nuevo sin ningún error

Espero que esto ayude a alguien para conseguir la caída del concepto de ACID

Cuestiones relacionadas