ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

INGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN


Enviado por   •  13 de Junio de 2017  •  Ensayos  •  1.807 Palabras (8 Páginas)  •  154 Visitas

Página 1 de 8

[pic 1]

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE SISTEMAS

INGENIERÍA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

PERÍODO ACADÉMICO:  2015-A

ASIGNATURA:   SIC426 BASES DE DATOS                 GRUPO:  GR1

PROFESOR:  MSc. Ing. Rosa Navarrete

TIPO DE INSTRUMENTO:  TRABAJO

DESCRIPCIÓN:  Resumen de los documentos acerca de los niveles de aislamiento

FECHA DE ENTREGA LÍMITE:  12/07/2015

GRUPO:  EPSILON

INTEGRANTES:  Javier Tinoco, Jaime Yerovi, Daniel Naula

NIVELES DE AISLAMIENTO DE UNA TRANSACCIÓN

El nivel de aislamiento de una transacción es una parte muy importante en el desarrollo de aplicaciones de bases de datos, ya que define el grado en que se bloquea una transacción de las  modificaciones de recursos o datos realizadas por otras transacciones, es decir afecta a los tipos y duración de bloqueos, los cuales tienen efectos directos con el rendimiento y el tiempo de consultas y transacciones, también permite controlar el motor de la base de datos en cuanto a lecturas sucias, lecturas no repetibles, o lecturas fantasmas es decir el asilamiento nos ayuda en solucionar problemas de concurrencia de una base de datos

 SQL Server 2005 (y SQL Server2008) tiene seis niveles de aislamiento diferentes que se los puede dividir en dos categorías:

  • Niveles de Aislamiento basados en bloqueos

En este grupo se puede dividir en 4 niveles de aislamiento que son:

READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ y SERIALIZABLE ya que estos modos de aislamientos están basados en bloqueo cubiertos en la norma SQL-99.

  • Niveles de Aislamiento basados en versionado de filas (row versioning - similar a ORACLE).

En este se encuentran dos niveles de aislamiento y son las siguientes:

READ COMMITTED SNAPSHOT y SNAPSHOT. Estos niveles de aislamiento se basan versionando filas es decir reduciendo los bloqueos que se producen en la base de datos para tener un mejor rendimiento.

Niveles de Aislamiento basados en bloqueos.

READ UNCOMMITTED.

Este nivel de aislamiento permite leer modificaciones no confirmadas llamadas lecturas de datos sucios, otra característica de este nivel es que las transacciones en este nivel no emiten bloqueos  que impidan que otras transacciones no puedan modificar los datos leídos por una transacción actual, Las transacciones READ UNCOMMITTED tampoco se bloquean mediante bloqueos exclusivos que impedirían que la transacción actual leyese las filas modificadas pero no confirmadas por otras transacciones.

Los valores de los datos se pueden cambiar, y las filas pueden aparecer o desaparecer en el conjunto de datos antes de que finalice la transacción.

READ COMMITTED.

Este nivel posee instrucciones que permite no leer datos que han sido modificados pero no confirmados por otras tansacciones gracias a este nivel se pueden evitar lecturas de datos sucios, Otras transacciones pueden cambiar datos entre cada una de las instrucciones de la transacción actual, dando como resultado lecturas no repetibles o datos fantasma.

REPEATABLE READ.

Tiene instrucciones que no permite leer datos que han sido modificadas pero aun no confirmadas por otras transacciones y también que ninguna transacción puede modificar los datos leidos por la transacción actual hasta que termine con su ejecución.

Se aplican bloqueos compartidos a todos los datos leídos por cada instrucción de la transacción, y se mantienen hasta que la transacción finaliza. De esta forma, se evita que otras transacciones modifiquen las filas que han sido leídas por la transacción actual, Otras transacciones pueden insertar filas nuevas que coincidan con las condiciones de búsqueda de las instrucciones emitidas por la transacción actual. Si la transacción actual vuelve a ejecutar la instrucción, recuperará las filas nuevas, dando como resultado lecturas fantasmas.

SERIALIZABLE

Especifica lo siguiente:

  • Las instrucciones no pueden leer datos que hayan sido modificados, pero aún no confirmados, por otras transacciones.
  • Ninguna otra transacción puede modificar los datos leídos por la transacción actual hasta que la transacción actual finalice.
  • Otras transacciones no pueden insertar filas nuevas con valores de clave que pudieran estar incluidos en el intervalo de claves leído por las instrucciones de la transacción actual hasta que ésta finalice.

Tiempo de espera en bloqueos

Al trabajar con modos de aislamiento basados en bloqueo, es muy importante recordar que el tiempo de espera por un bloqueo por defecto en SQL Server es infinito.

Con la sentencia SET LOCK_TIMEOUT se puede especificar el tiempo máximo de espera por bloqueo.

Niveles de aislamiento basados en versionado de filas (row versioning)

SNAPSHOT.

Las transacciones SNAPSHOT no solicitan bloqueos al leer los datos, excepto cuando se recupera una base de datos. 

Las transacciones SNAPSHOT que leen datos no bloquean la escritura de datos de otras transacciones. Las transacciones que escriben datos no bloquean la lectura de datos de las transacciones SNAPSHOT.

Especifica que los datos leídos por cualquier instrucción de una transacción sean la versión coherente, desde el punto de vista transaccional, de los datos existentes al comienzo de la transacción.

La transacción únicamente puede reconocer las modificaciones de datos confirmadas antes del comienzo de la misma, las instrucciones que se ejecuten en la transacción actual no verán las modificaciones de datos efectuadas por otras transacciones después del inicio de la transacción actual. El efecto es el mismo que se obtendría si las instrucciones de una transacción obtuviesen una instantánea de los datos confirmados tal como se encontraban al comienzo de la transacción.

No es posible establecer en el nivel de aislamiento SNAPSHOT una transacción que se inició con otro nivel de aislamiento.

READ COMMITTED SNAPSHOT.

Este nivel de aislamiento es una combinación entre READ COMMITTED y SNAPSHOT, ya que tiene la ventaja de utilizar el versionado de filas, de tal modo, que las lecturas no son bloqueadas por las escrituras y viceversa. Sin embargo, pueden producirse lecturas no repetibles  y lecturas fantasmas. Es también importante tener en cuenta que en este modo de aislamiento, no se produce error en caso de conflictos de actualización. Al establecer la opción READ_COMMITTED_SNAPSHOT, sólo se permite en la base de datos la conexión que ejecuta el comando ALTER DATABASE. No debe haber ninguna otra conexión abierta en la base de datos hasta que ALTER DATABASE haya finalizado.

...

Descargar como (para miembros actualizados)  txt (11.8 Kb)   pdf (827.3 Kb)   docx (1.7 Mb)  
Leer 7 páginas más »
Disponible sólo en Clubensayos.com