Transacción
Una transacción es una unidad de la ejecución de un
programa que lee y escribe datos a y desde la Base de Datos. Puede consistir en
varias operaciones de acceso a la base de datos. Una Transacción está
delimitada por instrucciones de inicio transacción y fin transacción (la transacción consiste en todas las
operaciones que se ejecutan entre inicio transacción y fin transacción
ACID
· Atomicidad
La Atomicidad
requiere que cada transacción sea "todo o nada": si una parte de la
transacción falla, todas las operaciones de la transacción fallan, y por lo
tanto la base de datos no sufre cambios. Un sistema atómico tiene que
garantizar la atomicidad en cualquier operación y situación, incluyendo fallas
de alimentación eléctrica, errores y caidas del sistema.
· Consistencia
La propiedad de
Consistencia se asegura que cualquier transacción llevará a la base de datos de
un estado válido a otro estado válido. Cualquier dato que se escriba en la base
de datos tiene que ser válido de acuerdo a todas las reglas definidas,
incluyendo (pero no limitado a) los constraints, los cascades, los triggers, y
cualquier combinación de estos.
· aIslamiento
El aislamiento
("Isolation" en inglés) se asegura que la ejecución concurrente de
las transacciones resulte en un estado del sistema que se obtendría si estas
transacciones fueran ejecutadas una atrás de otra. Cada transacción debe
ejecutarse en aislamiento total; por ejemplo, si T1 y T2 se ejecutan
concurrentemente, luego cada una debe mantenerse independiente de la otra.
· Durabilidad
La durabilidad
significa que una vez que se confirmó una transacción (commit), quedará
persistida, incluso ante eventos como pérdida de alimentación eléctrica,
errores y caidas del sistema. Por ejemplo, en las bases de datos relacionales,
una vez que se ejecuta un grupo de sentencias SQL, los resultados tienen que
almacenarse inmediatamente (incluso si la base de datos se cae inmediatamente
luego).
ROLLBACK
Después de
haber deshabilitado el autocomit , el rollback se utiliza cuando el usuario no
quiere almacenar los cambios en el
disco, lo que realiza es ignorar los cambios hechos desde el comienzo de la
transaccion.
Integridad
Integridad
de datosLa exigencia de integridad de los datos garantiza la calidad de los
datos de la base de datos. Por ejemplo, si se especifica para un empleado el
valor de identificador de 123, la base de datos no debe permitir que ningún
otro empleado tenga el mismo valor de identificador. Si tiene una columna
employee_rating para la que se prevean valores entre 1 y 5, la base de datos no
debe aceptar valores fuera de ese intervalo. Si en la tabla hay una columna
dept_id en la que se almacena el número de departamento del empleado, la base
de datos sólo debe permitir valores que correspondan a los números de
departamento de la empresa.Dos pasos importantes en el diseño de las tablas son
la identificación de valores válidos para una columna y la determinación de
cómo forzar la integridad de los datos en la columna
Concurrencia
El termino concurrencia sí refiere
al Hecho de Que los DBMS (SISTEMAS DE ADMINISTRACIO N DEBD)
PermisoEn que los muchas Transacciones puedan accesar a UnaMisma AGRIS a
la Vez.En Un Sistema de ESTOS SE necesitan algun pisos de Mecanismos de control
de concurrencia párr asegurar Que las transaccione s concurrentes no
interfieran Entre si.en Sistemas multiusuario, esNecesario
sin MECANISMO párrafo Controlar la concurrencia. Sepueden Producir
inconsistencias Importantes Derivadas del Accesoconcurrente, COMO EJEMPLO
porción, elProblema de la Operación perdida
Consistencia
La consistencia de una transacción es simplemente su correctitud
Consistencia es un término más amplio que el de integridad. Podría
definirse como la coherencia entre
todos los datos de la base de datos. Cuando se pierde la
integridad también se pierde la consistencia. Pero la
consistencia también puede perderse por razones de
funcionamiento.
Una transacción finalizada (confirmada parcialmente) puede no
confirmarse definitivamente (consistencia).
Si se confirma definitivamente el sistema asegura la persistencia
de los cambios que ha efectuado en la base de datos.
Si se anula los cambios que ha efectuado son deshechos.
La ejecución de una transacción debe conducir a un estado de la
base de datos consistente (que cumple todas las restricciones de integridad
definidas).
Si se confirma definitivamente el sistema asegura la persistencia
de los cambios que ha efectuado en la base de datos.
Si se anula los cambios que ha efectuado son deshechos.
Activa (Active): el estado inicial; la transacción permanece
en este estado durante su ejecución.
Parcialmente comprometida (Uncommited): Después de ejecutarse la ultima transacción.
Fallida (Failed): tras descubrir que no se puede continuar la ejecución normal.
Abortada (Rolled Back): después de haber retrocedido la transacción y restablecido la
base de datos a su estado anterior al comienzo de la transacción.
Comprometida (Commited): tras completarse con éxito.
Aspectos
relacionados al procesamiento de transacciones
Los
siguientes son los aspectos más importantes relacionados con el procesamiento
de transacciones:
Modelo de estructura de
transacciones. Es importante considerar si las
transacciones son planas o pueden estar anidadas.
Consistencia de la base de
datos interna. Los algoritmos de control de
datos semántico tienen que satisfacer siempre las restricciones de integridad
cuando una transacción pretende hacer un commit.
Protocolos de confiabilidad. En transacciones distribuidas es necesario introducir medios de
comunicación entre los diferentes nodos de una red para garantizar la
atomicidad y durabilidad de las transacciones. Así también, se requieren
protocolos para la recuperación local y para efectuar los compromisos (commit)
globales.
Algoritmos de control de concurrencia. Los algoritmos de control de concurrencia deben sincronizar la
ejecución de transacciones concurrentes bajo el criterio de correctitud. La
consistencia entre transacciones se garantiza mediante el aislamiento de las
mismas.
Protocolos de control de
réplicas. El control de réplicas se refiere a cómo
garantizar la consistencia mutua de datos replicados. Por ejemplo se puede
seguir la estrategia read-one-write-all (ROWA).
No hay comentarios:
Publicar un comentario