Este artículo o sección necesitareferencias que aparezcan en unapublicación acreditada. Busca fuentes:«ACID» –noticias ·libros ·académico ·imágenes Este aviso fue puesto el 25 de octubre de 2017. |
En bases de datos se denominaACID a las características de los parámetros que permiten clasificar lastransacciones de lossistemas de gestión de bases de datos. Cuando se dice que una acción esACID compliant se indica -en diversos grados- que ésta permite realizar transacciones.
En concreto,ACID es un acrónimo en inglés deAtomicity,Consistency,Isolation andDurability: Atomicidad, Consistencia, Aislamiento y Durabilidad, en español.
Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser consideradoACID Compliant.
Poner las características ACID en ejecución no es tan sencillo. El proceso de una transacción requiere a menudo un número de cambios pequeños al ser realizado, incluyendo la puesta al día de losíndices que son utilizados en el sistema para acelerar búsquedas. Esta secuencia de operaciones puede fallar por un número de razones; por ejemplo, el sistema puede no tener ningún sitio disponible en sus accionamientos de disco, o puede haber sobrepasado sutiempo de CPU asignado.
ACID sugiere que la base de datos pueda realizar todas estas operaciones inmediatamente. De hecho esto es difícil de conseguir. Hay dos clases de técnicas populares: escribir a un registro antes de continuar y la paginación de la sombra. En ambos casos, losbloqueos se deben implantar antes que la información sea actualizada, y dependiendo de la técnica puesta en práctica, todos los datos se tienen que haber leído. Enescribir a un registro antes de continuar, la atomicidad es garantizada asegurándose que toda la información esté escrita a un registro antes de que se escriba a la base de datos. Eso permite que la base de datos vuelva a un estado anterior en caso de un desplome. Ensombrear, las actualizaciones se aplican a una copia de la base de datos, y se activa la nueva copia cuando la transacción sea confiable. La copia refiere a partes sin cambios de la vieja versión de la base de datos, en vez de ser un duplicado entero.
Esto significa que debe realizarse un bloqueo en cualquier momento antes de procesar datos en una base de datos, incluso en operaciones leídas. Mantener una gran cantidad de bloqueos da lugar a un aumento substancial indirecto de los procesos así como a una alteración de la concurrencia de ellos. Si el usuario A está procesando una transacción que ha leído unafila de los datos que el usuario B desea modificar, por ejemplo, el usuario B debe esperar hasta que el otro usuario acabe..
Una alternativa a la fijación es mantener copias separadas de cualquier dato que se modifique. Esto permite a usuarios leer datos sin adquirir ningún bloqueo. Usando de nuevo el ejemplo anterior, cuando la transacción del usuario consigue los datos que el usuario B ha modificado, la base de datos puede recuperar la versión exacta de los datos para que el usuario A comience su transacción. Esto asegura que el usuario A consiga una vista constante de la base de datos aunque otros usuarios estén cambiando datos.
Es difícil garantizar las características ACID en un ambiente de red. Las conexiones de red pueden fallar, o dos usuarios pueden utilizar la misma parte de la base de datos al mismo tiempo.
El Concepto ACID se describe en ISO/IEC 10026-1: 1992 sección 4.