database - propiedades - transacciones mysql
ACID y transacciones de base de datos? (9)
¿Cuál es la relación entre ACID y la transacción de base de datos?
En una base de datos relacional, cada instrucción SQL debe ejecutarse en el ámbito de una transacción.
Sin definir los límites de la transacción explícitamente, la base de datos va a utilizar una transacción implícita que se ajusta a cada declaración individual.
La transacción implícita comienza antes de que se ejecute la instrucción y finalice (confirmación o reversión) después de que se ejecute la instrucción. El modo de transacción implícito se conoce comúnmente como autocommit.
Como se explica en este artículo , una transacción es una colección de operaciones de lectura / escritura que tiene éxito solo si todas las operaciones contenidas tienen éxito.
Inherentemente, una transacción se caracteriza por cuatro propiedades (comúnmente denominadas ACID):
- Atomicidad
- Consistencia
- Aislamiento
- Durabilidad
¿ACID da la transacción de la base de datos o es la misma cosa?
Para un sistema de base de datos relacional, esto es cierto porque el estándar SQL especifica que una transacción debe proporcionar las garantías ACID:
Atomicidad
La atomicidad toma operaciones individuales y las convierte en una unidad de trabajo de todo o nada, teniendo éxito si y solo si todas las operaciones contenidas tienen éxito.
Una transacción puede encapsular un cambio de estado (a menos que sea de solo lectura). Una transacción siempre debe dejar el sistema en un estado coherente, sin importar cuántas transacciones concurrentes se intercalan en un momento dado.
Consistencia
La consistencia significa que las restricciones se aplican para cada transacción comprometida. Eso implica que todas las claves, los tipos de datos, las comprobaciones y el desencadenador tienen éxito y no se activa ninguna violación de restricción.
Aislamiento
Las transacciones requieren mecanismos de control de concurrencia y garantizan la corrección incluso cuando se intercalan. El aislamiento nos brinda el beneficio de ocultar los cambios de estado no comprometidos del mundo exterior, ya que las transacciones fallidas nunca deberían corromper el estado del sistema. El aislamiento se logra a través del control de concurrencia utilizando mecanismos de bloqueo pesimistas u optimistas.
Durabilidad
Una transacción exitosa debe cambiar permanentemente el estado de un sistema, y antes de finalizarlo, los cambios de estado se registran en un registro de transacciones persistentes. Si nuestro sistema se ve repentinamente afectado por un bloqueo del sistema o un corte de energía, todas las transacciones confirmadas no finalizadas pueden reproducirse.
Para obtener más información sobre Durabilidad y el Registro de rehacer, consulte este artículo .
¿Cuál es la relación entre ACID y la transacción de base de datos?
¿ACID da la transacción de la base de datos o es la misma cosa?
¿Podría alguien aclarar este tema?
ÁCIDO 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 recursos que no sean DBMS (por ejemplo, una impresora), y aún así garantizan ACID a sus usuarios. Como un ejemplo de lo que ACID podría significar cuando una impresora está involucrada en una transacción:
- Atomicidad: se imprime un documento completo o nada en absoluto
- Consistencia: al final de la transacción, el avance del papel se coloca en la parte superior de la página
- Aislamiento: no se mezclan dos documentos mientras se imprime
- Durabilidad: la impresora puede garantizar que no esté "imprimiendo" con cartuchos vacíos.
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 que comúnmente se conocen como propiedades ACID. es decir, ÁCIDO son el grupo de propiedades de cualquier transacción.
- Atomicidad:
- Consistencia
- Aislamiento
- Durabilidad
Las propiedades ACID son conceptos muy antiguos e importantes de la teoría de bases 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.
El 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. Las propiedades de ACID hacen que el beneficiario de todas las transacciones de la base de datos logre todas las tareas.
Atomicity: O cometer todo o nada.
Consistencia: haga un registro consistente en términos de validar todas las reglas y restricciones de la transacción.
Aislamiento: asegúrese de que dos transacciones no se conozcan entre sí.
Durabilidad: datos comprometidos almacenados para siempre. Referencia tomada de este artículo:
Modifiqué ligeramente el ejemplo de la impresora para hacerlo más explicable
1 documento que tenía 2 páginas de contenido enviado a la impresora
Transacción : documento enviado a la impresora
- atomicity - la impresora imprime 2 páginas de un documento o ninguna
- consistencia : la impresora imprime media página y la página se atasca. La impresora se reinicia e imprime 2 páginas con todo el contenido
- aislamiento : mientras había demasiadas impresiones en progreso, la impresora imprime el contenido correcto del documento
- durabilidad : durante la impresión, hubo un corte de energía: la impresora vuelve a imprimir documentos sin ningún error
Espero que esto ayude a alguien a entender el concepto de ACID
Para citar ACID :
ACID (atomicidad, consistencia, aislamiento, durabilidad) es un conjunto de propiedades que garantiza que las transacciones de la base de datos se procesen de manera confiable.
Un DBMS que admita transacciones se esforzará por respaldar todas estas propiedades: cualquier DBMS comercial (así como varios DBMS de código abierto) proporcionan el "soporte" total de ACID, aunque a menudo es posible (por ejemplo, con niveles de aislamiento variables en MSSQL) disminuir la ACIDness, perdiendo así la garantía de un comportamiento completamente transaccional.
Propiedades ÁCIDAS de las transacciones En el contexto del procesamiento de transacciones, el acrónimo ACID se refiere a las cuatro propiedades clave de una transacción: atomicidad, consistencia, aislamiento y durabilidad.
Atomicidad 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 desde una cuenta, el crédito correspondiente se realiza a la otra cuenta. Los datos de consistencia se encuentran 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 de coherencia garantiza que el valor total de los fondos en ambas cuentas sea el mismo al inicio 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 vea los fondos transferidos en una cuenta u otra, pero no en ambas, ni en ninguna de las dos. Durabilidad Después de que una transacción se completa con éxito, los cambios a los datos persisten y no se deshacen, incluso en el caso de una falla del sistema. Por ejemplo, en una aplicación que transfiere fondos de una cuenta a otra, la propiedad de durabilidad garantiza que los cambios realizados en cada cuenta no se revertirán.
[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 no está 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] The Transaction Concept, Jim Gray, 1981. http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf
[Haerder] Principios de Recuperación de Base de Datos Orientado a las Transacciones, Haerder y Reuter, 1983. http://www.stanford.edu/class/cs340v/papers/recovery.pdf
ACID es un conjunto de propiedades que le gustaría aplicar cuando modifica una base de datos.
- Atomicidad
- Consistencia
- Aislamiento
- Durabilidad
Una transacción es un conjunto de cambios relacionados que se utiliza para lograr algunas de las propiedades de ACID. Las transacciones son herramientas para lograr las propiedades ACID.
La atomicidad significa que 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 registre el hecho de que la transacción se completó.
Entonces, 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.