Transacciones y recuperacion

Solo disponible en BuenasTareas
  • Páginas : 6 (1358 palabras )
  • Descarga(s) : 0
  • Publicado : 15 de noviembre de 2010
Leer documento completo
Vista previa del texto
BASES DE DATOS

TRANSACCIONES

Transacción (transaction): Grupo de operaciones de base de datos combinadas en una unidad lógica de trabajo que se confirma o se deshace completamente. Una transacción es atómica, coherente, aislada y duradera.
Atómica: Deben ejecutarse todas las modificaciones de los datos de la transacción o ninguna de ellas.
Coherente: debe dejar la base de datos enun estado coherente despues de que se realiza o falla.
Aislada: no interactua ni entra en conflicto con ninguna otra transaccion.
Duradera: los efectos de su trabajo son permanentes solo al finalizar su ejecución independientemente de lo sucedido inmediatamente despues de su conclusión.

CONTROL DE LA CONCURRENCIA.

La mayoría de las BD es multiusuario, por lo tanto debe tener uncontrol de la concurrencia. En algún momento, más de un usuario accede a un determinado registro al mismo tiempo. El problema principal es la modificación de registros.

Casos que generan inconsistencias:

- Actualización perdida (lost update)
- Dependencia de una transacción no cometida (uncommitted transaction)
- Inconsistencia de análisis (analysis inconsistence)

Debido a loanterior, es necesario un mecanismo que evite que otros usuarios actualicen información mientras alguno está realizando esta tarea.

Uno de los mecanismos más utilizados es el "bloqueo". El control de concurrencia usualmente se hace a través de mecanismos de bloqueo.

Dependiendo del DBMS existen diversos tipos de bloqueos:

Bloquear la BD.
Bloquear la tabla o el archivo.
Bloquear el registro.Bloquear el dato.

Para realizar el bloqueo se debe conocer:

- Operación a realizar: modificación.
- Límites de la transacción (inicio y fin).

Se debe tratar de bloquear lo mínimo, lo más recomendable es a nivel de registro o dato. Si se bloquea a nivel de tabla se degrada el rendimiento de la BD (no se puede hacer ninguna otra operación sobre la tabla). Si se bloquea la BD, seda la sensación de inestabilidad.

Hoy día, el mecanismo de bloqueo más utilizado en DBMS’s se denomina "two-phase commit protocol" (protocolo de commit de dos fases).

Es importante notar que el bloqueo tiene un problema (similar a cualquier algoritmo de región crítica): se pueden producir deadlocks (abrazo mortal).

DEADLOCK (Abrazo Mortal): Se produce cuando dos o mas usuarios paraejecutar una transacción bloquean algún dato o registro que es necesario para otro usuario y a su vez necesitan para completar la transacción un dato que está bloqueado por otro usuario, el resultado es que ninguno de los involucrados podrá completar su transacción, esto es similar a cuando dos vehículos se encuentran frente a frente en una calle estrecha y ninguno de los conductores está dispuesto aretroceder, el resultado es una espera infinita.

Para controlar este problema se utiliza un mecanismo (monitor) que detecta los sujetos que están actuando en la BD y con que objetos, y conocida esa información le da privilegio a uno de los dos (por ejemplo: el que usa más CPU). De este modo, es posible abortar la transacción con menor privilegio.

El deadlock no se puede evitar, en vez deintentar evitarlo se deben tener mecanismos para deshacerlo.

RECUPERACION

Se debe contar con elementos que permitan recuperar la información cuando se pierde, se ingresa un dato erróneo, etc.
Un DBMS debe, normalmente, proveer las siguientes facilidades:
Respaldo periódico: El DBMS debe proveer un sistema de " vaciado" que produzca una copia de la BD, la que debe almacenarse en algún lugarseguro. La periodicidad depende de la importancia de los datos.
Bitácora de las Transacciones: Contiene un " diario" de todas las transacciones realizadas sobre los registros con los principales datos que se usaron en la transacción. Contiene los cambios que se han producido, teniendo una imagen del registro antes de ser modificado y una imagen del registro después de ser modificado (Archivo pre-...
tracking img