Integridad de datos y transacciones en bases de datos
Clasificado en Informática
Escrito el en español con un tamaño de 3,39 KB
Integridad de datos
Integridad de datos: se refiere a la corrección y complementación de los datos en una base de datos. Cuando los contenidos se modifican con sentencias INSERT, DELETE o UPDATE, la integridad de los datos almacenados puede perderse de muchas maneras diferentes.
Transacciones
Transacciones: es una unidad de ejecución que accede y posiblemente actualiza varios elementos de datos. Una transacción se inicia por la ejecución de un programa de usuario escrito en un lenguaje de manipulación de datos de alto nivel o de programación y está delimitado por las instrucciones Begin y End Transaccion.
Propiedades ACID
- Atomicidad: O todas las operaciones de la transacción se realizan adecuadamente en la base de datos o ninguna de ellas.
- Consistencia: La ejecución aislada de la transacción conserva la consistencia de la base de datos.
- Aislamiento: Aunque se ejecuten varias transacciones concurrentemente, el sistema garantiza que para cada transacción se ignora al resto de las transacciones del sistema.
- Durabilidad: Tras la finalización con éxito de una transacción, los cambios realizados en la base de datos permanecen, incluso si hay fallos en el sistema.
Ejemplo
Para comprender mejor las propiedades, considérese un sistema bancario simplificado con un conjunto de transacciones que acceden y actualizan dichas cuentas. Leer (X), que transfiere el dato X de la DB a la memoria intermedia. Escribir (X), que transfiere el dato X desde la memoria intermedia a la DB. Sea Ti una transacción para transferir $50 de la cuenta A a la cuenta B.
Estado Inconsistente
Cuando la DB deja de reflejar el estado real del mundo que modela.
Responsables de ACID
- Consistencia: Responsable de asegurar la consistencia de una Ti -> Programador.
- Atomicidad: Responsable de asegurar la atomicidad de una Ti -> SGDB con su Componente de Gestión de Transacciones.
- Durabilidad: Responsable de asegurar la durabilidad de una Ti -> SGDB con su Componente de Gestión de Recuperaciones.
- Aislamiento: Responsable de asegurar la aislamiento de una Ti -> SGDB con su Componente de Control de Concurrencia.
Estados de una Transacción
- Activa: es el estado inicial, la transacción permanece en este estado durante su ejecución.
- Parcialmente comprometida: después de ejecutarse la última instrucción.
- Fallida: tras descubrir que no puede continuar la ejecución normal.
- Abortada: Puede que no siempre termine su ejecución con éxito. En ese caso pasa al estado abortado. Una transacción abortada no debe tener efecto sobre la base de datos.
- Comprometida: Una transacción que termino con éxito se dice que está comprometida. Una transacción se dice que ha terminado si se ha comprometido o se ha abortado.
Cuando está en estado abortado, tenemos 2 opciones: |Reiniciar|: la transacción, pero solo si la transacción se ha abortado a causa de algún error hardware o software que no lo haya provocado la lógica interna de la transacción. |Cancelar la transacción|: Se hace esto si hay algún error interno lógico, es correglible. Una vez deshechos los cambios efectuados por una transacción abortada se dice que esta retrocedida.