miércoles, 29 de noviembre de 2017

El modelo de base de datos "ACID"

   

El modelo ACID de diseño de bases de datos es uno de los conceptos más antiguos e importantes de la teoría de bases de datos. Establece cuatro objetivos que todo sistema de gestión de bases de datos debe esforzarse por lograr: Atomicidad, consistencia, aislamiento y durabilidad. Una base de datos relacional que no cumple con ninguno de estos cuatro objetivos no puede considerarse confiable. Una base de datos que posee estas características se considera que cumple con ACID.

modelo acid


DEFINICIÓN DEL MODELO ACID


Tomemos un momento para examinar cada una de estas características en detalle:
  • Atomicidad: Indica que las modificaciones de la base de datos deben seguir una regla de "todo o nada". Se dice que cada transacción es "atómica". Si una parte de la transacción falla, toda la transacción falla. Es fundamental que el sistema de gestión de bases de datos mantenga la naturaleza atómica de las transacciones a pesar de cualquier DBMS, sistema operativo o falla de hardware.
  • La consistencia: Establece que solo se escribirán datos válidos en la base de datos. Si, por alguna razón, se ejecuta una transacción que infringe las reglas de coherencia de la base de datos, se revertirá toda la transacción y la base de datos se restaurará a un estado consistente con esas reglas. Por otro lado, si una transacción se ejecuta con éxito, llevará la base de datos de un estado que sea consistente con las reglas a otro estado que también sea consistente con las reglas.
  • El aislamiento: Requiere que las transacciones múltiples que ocurren al mismo tiempo no afecten la ejecución del otro. Por ejemplo, si Jose emite una transacción en una base de datos al mismo tiempo que Maria emite una transacción diferente, ambas transacciones deberían operar en la base de datos de manera aislada. La base de datos debe realizar toda la transacción de Jose antes de ejecutar transacción de Maria , o viceversa. Esto evita que la transacción de Jose lea datos intermedios producidos como un efecto secundario de una parte de la transacción de Maria que finalmente no se comprometerá con la base de datos. Tenga en cuenta que la propiedad de aislamiento no garantiza qué transacción se ejecutará primero, simplemente que las transacciones no interferirán entre sí.
  • La durabilidad: Asegura que cualquier transacción comprometida con la base de datos no se perderá. La durabilidad se garantiza a través del uso de copias de seguridad de la base de datos y registros de transacciones que facilitan la restauración de transacciones comprometidas a pesar de fallas subsiguientes de software o hardware.

CÓMO FUNCIONA ACID EN LA PRÁCTICA

Los administradores de bases de datos usan varias estrategias para hacer cumplir ACID.

Uno utilizado para reforzar la atomicidad y la durabilidad es el registro por escritura anticipada (WAL) en el que cualquier detalle de transacción se escribe primero en un registro que incluye tanto rehacer como deshacer información. Esto asegura que, dada una falla de base de datos de cualquier tipo, la base de datos puede verificar el registro y compara sus contenidos con el estado de la base de datos.

Otro método utilizado para abordar la atomicidad y la durabilidad es la búsqueda de sombras en la que se crea una página oculta cuando se van a modificar los datos. Las actualizaciones de la consulta se escriben en la página oculta en lugar de los datos reales en la base de datos. La base de datos en sí misma se modifica solo cuando se completa la edición.

Otra estrategia se llama  protocolo de confirmación en dos fases , especialmente útil en sistemas de bases de datos distribuidas. Este protocolo separa una solicitud para modificar datos en dos fases: una fase de solicitud de compromiso y una fase de compromiso.

En la fase de solicitud, todos los DBMS en una red que se ven afectados por la transacción deben confirmar que lo han recibido y tienen la capacidad de realizar la transacción. Una vez que se recibe la confirmación de todos los DBMS relevantes, se completa la fase de confirmación en la que los datos se modifican realmente.

Cesar GI

About Cesar GI

Lo que me importa es poder enseñar lo poco que se, por que asi como yo aprendo leyendo gracias a las personas que comparten sus conocimiento yo tambien quiero ayudar a la comunidad en español aportando lo poco que he aprendido hasta el momento.