Niveles de aislamiento en transacciones

Solo disponible en BuenasTareas
  • Páginas : 5 (1158 palabras )
  • Descarga(s) : 4
  • Publicado : 9 de enero de 2010
Leer documento completo
Vista previa del texto
INSTITUTO TECNOLOGICO SUPERIOR DE TACÁMBARO

TALLER DE BASE DE DATOS

CONTROL DE TRANSACCIONES

“RESUMEN: NIVEL DE AISLAMIENTO”

JOSÉ FLORES MIRANDA

INGENIERIA EN SISTEMAS COMPUTACIONALES.
QUINTO SEMESTRE.

TACAMBARO, MICHOACAN A 20 DE OCTUBRE DEL 2009.

INTRODUCCION
Las transacciones especifican un nivel de aislamiento que define el grado en que se debe aislar una transacción de lasmodificaciones de recursos o datos realizadas por otras transacciones. Los niveles de aislamiento se describen en función de los efectos secundarios de la simultaneidad que se permiten, como las lecturas de datos sucios o las lecturas fantasmas.
Los niveles de aislamiento de transacciones controlan lo siguiente:
* Si se realizan bloqueos cuando se leen los datos y qué tipos de bloqueos se solicitan.* Duración de los bloqueos de lectura.
* Si una operación de lectura que hace referencia a filas modificadas por otra transacción:
* Se bloquea hasta que se libera el bloqueo exclusivo de la fila.
* Recupera la versión confirmada de la fila que existía en el momento en el que se inició la instrucción o la transacción.
* Lee la modificación de los datos no confirmada.

Laselección de un nivel de aislamiento de transacción no afecta a los bloqueos adquiridos para proteger las modificaciones de datos. Siempre se obtiene un bloqueo exclusivo en los datos modificados de una transacción, bloqueo que se mantiene hasta que se completa la transacción, independientemente del nivel de aislamiento seleccionado para la misma. En el caso de las operaciones de lectura, losniveles de aislamiento de transacción definen básicamente el nivel de protección contra los efectos de las modificaciones que realizan otras transacciones.
Un nivel de aislamiento menor significa que los usuarios tienen un mayor acceso a los datos simultáneamente, con lo que aumentan los efectos de la simultaneidad que pueden experimentar, como las lecturas de datos sucios o la pérdida deactualizaciones. Por el contrario, un nivel de aislamiento mayor reduce los tipos de efectos de simultaneidad, pero requiere más recursos del sistema y aumenta las posibilidades de que una transacción bloquee a otra. El nivel de aislamiento apropiado depende del equilibrio entre los requisitos de integridad de los datos de la aplicación y la sobrecarga de cada nivel de aislamiento. El nivel de aislamientosuperior, que es serializable, garantiza que una transacción recuperará exactamente los mismos datos cada vez que repita una operación de lectura, aunque para ello aplicará un nivel de bloqueo que puede afectar a los demás usuarios en los sistemas multiusuario. El nivel de aislamiento menor, de lectura sin confirmar, puede recuperar datos que otras transacciones han modificado pero no confirmado.En este nivel se pueden producir todos los efectos secundarios de simultaneidad, pero no hay bloqueos ni versiones de lectura, por lo que la sobrecarga se reduce.

NIVEL DE AISLAMIENTO
En MySQL 5.0, InnoDB ofrece los cuatro niveles de aislamiento de transacciones descriptos por el estandar SQL. Se puede establecer el nivel predeterminado de aislamiento por todas las conexiones mediante el uso dela opción --transaction-isolation en la línea de comandos o en ficheros de opciones. Por ejemplo, se puede establecer la opción en la sección [mysqld] de my.cnf de este modo:
[mysqld]
Transaction-isolation = {READ-UNCOMMITTED | READ-COMMITTED
| REPEATABLE-READ | SERIALIZABLE}
Un usuario puede cambiar el nivel de aislamientode una sesión individual o de todas las nuevas conexiones con la sentencia SET TRANSACTION. Su sintaxis es la siguiente:
SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL
{READ UNCOMMITTED | READ COMMITTED
| REPEATABLE READ | SERIALIZABLE}
Nótese que se usan guiones en los nombres de niveles de la...
tracking img