Articulo de referencia

Atomicidad (sistemas de bases de datos)

En los sistemas de bases de datos , la atomicidad ( /ˌætəˈmɪsəti /; del griego antiguo: ἄτομος, romanizado: átomos, lit. 'indivisible') es una de las propiedades de transacción...

En los sistemas de bases de datos , la atomicidad ( /ˌætəˈmɪsəti /; del griego antiguo: ἄτομος, romanizado:  átomos, lit. 'indivisible') es una de las propiedades de transacción ACID ( atomicidad , consistencia , aislamiento , durabilidad ) . Una transacción atómica es una serie indivisible e irreducible de operaciones de base de datos de manera que todas ocurren o ninguna ocurre . [ 1 ] Una garantía de atomicidad evita que se produzcan actualizaciones parciales de la base de datos, porque pueden causar mayores problemas que rechazar toda la serie por completo. Como consecuencia, otro cliente de base de datos no puede observar que la transacción está en progreso. En un momento dado, aún no ha sucedido, y en el siguiente ya ha ocurrido en su totalidad (o no ha sucedido nada si la transacción se canceló en progreso).

Un ejemplo de una transacción atómica es una transferencia monetaria de la cuenta bancaria A a la cuenta B. Consiste en dos operaciones, retirar el dinero de la cuenta A y guardarlo en la cuenta B. Realizar estas operaciones en una transacción atómica garantiza que la base de datos permanezca en un estado consistente , es decir, no se pierde ni se crea dinero si alguna de esas dos operaciones falla. [2]

El mismo término también se utiliza en la definición de Primera forma normal en sistemas de bases de datos, donde en cambio se refiere al concepto de que los valores de los campos no pueden consistir en múltiples valores más pequeños para descomponer, como una cadena en la que se pueden empaquetar múltiples nombres, números, fechas u otros tipos.

Ortogonalidad

La atomicidad no se comporta de manera completamente ortogonal con respecto a las demás propiedades ACID de las transacciones. Por ejemplo, el aislamiento depende de la atomicidad para revertir la transacción que la contiene en caso de una violación del aislamiento, como un bloqueo ; la consistencia también depende de la atomicidad para revertir la transacción que la contiene en caso de una violación de la consistencia por parte de una transacción ilegal.

Como resultado de esto, no detectar una violación y revertir la transacción adjunta puede causar una falla de aislamiento o de consistencia.

Implementación

Por lo general, los sistemas implementan la atomicidad proporcionando algún mecanismo para indicar qué transacciones han comenzado y cuáles han finalizado; o manteniendo una copia de los datos antes de que se produjeran cambios ( lectura-copia-actualización ). Varios sistemas de archivos han desarrollado métodos para evitar la necesidad de mantener múltiples copias de datos, utilizando el registro en diario (consulte el sistema de archivos con registro en diario ). Las bases de datos generalmente implementan esto utilizando alguna forma de registro/registro en diario para rastrear los cambios. El sistema sincroniza los registros (a menudo los metadatos ) según sea necesario después de que se hayan realizado correctamente los cambios. Posteriormente, la recuperación de fallas ignora las entradas incompletas. Aunque las implementaciones varían según factores como problemas de concurrencia, el principio de atomicidad, es decir, éxito completo o fracaso completo, permanece.

En última instancia, cualquier implementación a nivel de aplicación depende de la funcionalidad del sistema operativo . A nivel del sistema de archivos, los sistemas compatibles con POSIX proporcionan llamadas al sistema como open(2)y flock(2)que permiten a las aplicaciones abrir o bloquear un archivo de forma atómica. A nivel de proceso, los subprocesos POSIX proporcionan primitivas de sincronización adecuadas.

El nivel de hardware requiere operaciones atómicas como Test-and-set , Fetch-and-add , Compare-and-swap o Load-Link/Store-Conditional , junto con barreras de memoria . Los sistemas operativos portátiles no pueden simplemente bloquear las interrupciones para implementar la sincronización, ya que el hardware que carece de ejecución concurrente como hyper-threading o multiprocesamiento es ahora extremadamente raro. [ cita requerida ]

Véase también

Referencias

  1. ^ "Operación atómica". Biblioteca web. 25 de noviembre de 2003. Consultado el 23 de marzo de 2011. Operación durante la cual un procesador puede leer una ubicación y escribirla simultáneamente en la misma operación de bus . Esto evita que cualquier otro procesador o dispositivo de E/S escriba o lea la memoria hasta que se complete la operación.
  2. ^ Amsterdam, Jonathan. "Atomic File Transactions, Part 1". O'Reilly . Archivado desde el original el 3 de marzo de 2016. Consultado el 28 de febrero de 2016 .
Obtenido de "https://es.wikipedia.org/w/index.php?title=Atómica_(sistemas_de_bases_de_datos)&oldid=1253969470"