option
Cuestiones
ayuda
daypo
buscar.php

tai 384

COMENTARIOS ESTADÍSTICAS RÉCORDS
REALIZAR TEST
Título del Test:
tai 384

Descripción:
modelo entidad relacion, modelo relacional y aislamiento (ACID) parte 26

Fecha de Creación: 2016/09/26

Categoría: Otros

Número Preguntas: 62

Valoración:(0)
COMPARTE EL TEST
Nuevo ComentarioNuevo Comentario
Comentarios
NO HAY REGISTROS
Temario:

En bases de datos, el aislamiento...   es una propiedad que define cómo y cuándo los cambios producidos por una operación se hacen visibles para las demás operaciones concurrentes  .   es una propiedad que define cómo y cuándo los cambios producidos por una sentencia select se hacen visibles para las demás operaciones concurrentes  .

En bases de datos, el aislamiento es una propiedad que define cómo y cuándo los cambios producidos por una operación se hacen visibles para las demás operaciones concurrentes.   El aislamiento es una de las 4 propiedades ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) aplicables a una base de datos transaccional  .   El aislamiento es una de las 4 propiedades ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) aplicables a una base de datos OLAP  .   El aislamiento es una de las 4 propiedades Z80 (Atomicidad, Consistencia, Aislamiento, Durabilidad) aplicables a una base de datos transaccional  .

SGBDR significa... Sistema Gestor de Bases de Datos Relacionales. Sistema Gestor de Bases de Datos Random. Sistema Gestor de Bases de Datos Runtime.

De las cuatro propiedades ACID de un Sistema de gestión de bases de datos relacionales (SGBDR) la de ... es la que más frecuentemente se relaja. aislamiento. atomicidad. consistencia. durabilidad.

MVCC significa... MultiVersion Concurrency Control. Multiple Version Concurrency Control Stack.

Para obtener el mayor nivel de aislamiento, un SGBDR generalmente: hace un bloqueo de los datos. implementa un Control de concurrencia mediante versiones múltiples (MVCC). usa variables globales.

Para obtener el mayor nivel de aislamiento, un SGBDR generalmente hace un bloqueo de los datos o implementa un Control de concurrencia mediante versiones múltiples (MVCC),. lo que puede resultar en una pérdida de concurrencia. lo que puede resultar en un aumento de la concurrencia.

Para obtener el mayor nivel de aislamiento, un SGBDR generalmente hace un bloqueo de los datos o implementa un Control de concurrencia mediante versiones múltiples (MVCC), lo que puede resultar en una pérdida de concurrencia.   Por ello se necesita añadir lógica adicional al programa que accede a los datos para su funcionamiento correcto  .   Por ello no se necesita añadir lógica adicional al programa que accede a los datos para su funcionamiento correcto  .

La mayor parte de los SGBDR ofrecen ciertos niveles de aislamiento que controlan el grado de bloqueo durante el acceso a los datos: Serializable. Lecturas repetibles. Lecturas comprometidas (read committed). Lecturas no comprometidas (read uncommitted). Lecturas indexadas.

La mayor parte de los SGBDR ofrecen ciertos niveles de aislamiento que controlan el grado de bloqueo durante el acceso a los datos.   Para la mayor parte de aplicaciones, el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento (en especial el nivel SERIALIZABLE), reduciendo así la sobrecarga debida a la necesidad de bloqueos por el sistema  .   Para la mayor parte de aplicaciones, el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento (en especial el nivel SERIALIZABLE), aumentando así la sobrecarga debida a la necesidad de bloqueos por el sistema  .   Para la mayor parte de aplicaciones, el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento (en especial el nivel SERIALIZABLE), reduciendo así la la necesidad de instanciar objetos debida a la necesidad de bloqueos por el sistema  .

La mayor parte de los SGBDR ofrecen ciertos niveles de aislamiento que controlan el grado de bloqueo durante el acceso a los datos. Para la mayor parte de aplicaciones, el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento (i.e. nivel SERIALIZABLE), reduciendo así la sobrecarga debida a la necesidad de bloqueos por el sistema. ... . Recíprocamente, si se usan altos niveles de aislamiento la posibilidad de bloqueo aumenta, lo que también requiere análisis cuidadoso del código.   El programador debe analizar detenidamente el código que accede a la base de datos para asegurarse de que el descenso del nivel de aislamiento que ofrece el SGBD no produce errores en el programa  .   El programador debe analizar detenidamente el código que accede a la base de datos para asegurarse de que el aumento del nivel de aislamiento que ofrece el SGBD no produce errores en el programa  .

La mayor parte de los SGBDR ofrecen ciertos niveles de aislamiento que controlan el grado de bloqueo durante el acceso a los datos. Para la mayor parte de aplicaciones, el acceso a los datos se puede realizar de modo que se eviten altos niveles de aislamiento (i.e. nivel SERIALIZABLE), reduciendo así la sobrecarga debida a la necesidad de bloqueos por el sistema. El programador debe analizar detenidamente el código que accede a la base de datos para asegurarse de que el descenso del nivel de aislamiento que ofrece el SGBD no produce errores en el programa.   Recíprocamente, si se usan altos niveles de aislamiento la posibilidad de bloqueo aumenta, lo que también requiere análisis cuidadoso del código  .   Recíprocamente, si se usan altos niveles de aislamiento la posibilidad de bloqueo disminuye, lo que también requiere análisis cuidadoso del código  .

Los niveles de aislamiento (serializable, lectura repetible, lectura comprometida (read committed) y lectura no comprometida (read uncommitted)) están definidos por... ANSI/ISO SQL. ETSI SQL.

El nivel de aislamiento más alto es: Serializable. Lecturas repetibles. Lecturas comprometidas (read committed). Lecturas no comprometidas (read uncommitted).

Nivel de aislamiento: Serializable: Este es el nivel de aislamiento más alto. Este es el nivel de aislamiento más bajo.

Nivel de aislamiento: Serializable: ... . La sensación de ejecución simultánea de dos o más transacciones que perciben los usuarios sería una ilusión producida por el SGBD.   Especifica que todas las transacciones ocurran de modo aislado, o dicho de otro modo, como si todas las transacciones se ejecutaran en serie (una detrás de otra)  .   Especifica que todas las transacciones ocurran de modo concurrente, o dicho de otro modo, como si todas las transacciones se ejecutaran en paralelo (una detrás de otra)  .

Nivel de aislamiento: Serializable: Especifica que todas las transacciones ocurran de modo aislado, o dicho de otro modo, como si todas las transacciones se ejecutaran en serie (una detrás de otra).   La sensación de ejecución simultánea de dos o más transacciones que perciben los usuarios sería una ilusión producida por el SGBD  .   La sensación de ejecución simultánea de dos o más transacciones que perciben los usuarios sería una ilusión producida por el sistema operativo  .

Nivel de aislamiento: Serializable:   Si el SGBDR hace una implementación basada en bloqueos, la serialización requiere que los bloques de lectura y escritura se liberen al final de la transacción  .   Si el SGBDR hace una implementación basada en bloqueos, la serialización requiere que los bloques de lectura y escritura no se liberen nunca  .

Nivel de aislamiento: Serializable: Si el SGBDR hace una implementación basada en bloqueos, la serialización requiere que los bloques de lectura y escritura se liberen al final de la transacción.   Del mismo modo deben realizarse bloqueos de rango -sobre los datos seleccionados con SELECT usando WHERE- para evitar el efecto de las lecturas fantasma  .   Del mismo modo deben realizarse bloqueos de registros individuales -sobre los datos seleccionados con SELECT usando WHERE- para evitar el efecto de las lecturas fantasma  .   Del mismo modo deben realizarse bloqueos de rango -sobre los datos seleccionados con SELECT usando WHERE- para evitar el efecto de las lecturas sucias  .   Del mismo modo deben realizarse bloqueos de rango -sobre los datos seleccionados con SELECT usando WHERE- para evitar el efecto de las lecturas no repetibles  .

Nivel de aislamiento: Serializable:   Cuando se hace una implementación no basada en bloqueos, si el SGBDR detecta una colisión de escritura entre transacciones sólo a una de ellas se le autoriza hacer commit  .   Cuando se hace una implementación no basada en bloqueos, si el SGBDR detecta una colisión de escritura entre transacciones se les autoriza hacer commit a todas las transacciones  .

Nivel de aislamiento: Lecturas repetibles: En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene ... . Sin embargo, no se gestionan los bloqueos de rango, por lo que las lecturas fantasma pueden ocurrir. los bloqueos de lectura y escritura -de los datos seleccionados- hasta el final de la transacción. los bloqueos de escritura -de los datos seleccionados- hasta el final de la transacción.

Nivel de aislamiento: Lecturas repetibles: En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de lectura y escritura -de los datos seleccionados- ... . Sin embargo, no se gestionan los bloqueos de rango, por lo que las lecturas fantasma pueden ocurrir. hasta el final de la transacción. hasta que el SGBD llama a un método.

Nivel de aislamiento: Lecturas repetibles: En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de lectura y escritura -de los datos seleccionados- hasta el final de la transacción.   Sin embargo, no se gestionan los bloqueos de rango, por lo que las lecturas fantasma pueden ocurrir  .   Y además, se gestionan los bloqueos de rango, por lo que las lecturas fantasma no pueden ocurrir  .

Nivel de aislamiento: Lecturas comprometidas (read committed): ... . Al igual que ocurría en el nivel anterior, no se gestionan los bloqueos de rango.   En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de escritura -de los datos seleccionados- hasta el final de la transacción, mientras que los bloqueos de lectura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles puede ocurrir)  .   En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de lectura -de los datos seleccionados- hasta el final de la transacción, mientras que los bloqueos de escritura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles puede ocurrir)  .   En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de escritura -de los datos seleccionados- hasta el final de la transacción, mientras que los bloqueos de lectura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles no puede ocurrir)  .   En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de lectura -de los datos seleccionados- hasta el final de la transacción, mientras que los bloqueos de escritura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles no puede ocurrir)  .

Nivel de aislamiento: Lecturas comprometidas (read committed): En este nivel de aislamiento, un SGBDR que implemente el control de concurrencia basado en bloqueos mantiene los bloqueos de escritura -de los datos selecciondos- hasta el final de la transacción, mientras que los bloqueos de lectura se cancelan tan pronto como acaba la operación de SELECT (por lo que el efecto de las lecturas no repetibles puede ocurrir).   Al igual que ocurría en el nivel anterior, no se gestionan los bloqueos de rango por lo tanto pueden ocurrir las lecturas fantasma  .   Al igual que ocurría en el nivel anterior, se gestionan los bloqueos de rango por lo tanto no pueden ocurrir las lecturas fantasma  .

Nivel de aislamiento: Lecturas no comprometidas (Read uncommitted): ... . En él se permiten las lecturas sucias (ver más abajo), por lo que una transacción puede ver cambios no cometidos aún por otra transacción. Este es el menor nivel de aislamiento. Este es el mayor nivel de aislamiento.

Nivel de aislamiento: Lecturas no comprometidas (Read uncommitted): Este es el menor nivel de aislamiento.   Pueden ocurrir las lecturas sucias, esto está asociado con el hecho de que una transacción puede ver cambios no cometidos aún por otra transacción Además pueden ocurrir las lecturas no repetibles y las lecturas fantasmas  .   Pueden ocurrir las lecturas sucias, esto está asociado con el hecho de que una transacción no puede ver cambios no cometidos aún por otra transacción Además pueden ocurrir las lecturas fantasmas  .

Indica la correcta: El nivel de aislamiento por defecto de distintos SGBDR varía ampliamente. El nivel de aislamiento por defecto de distintos SGBDR casi no varía.

El nivel de aislamiento por defecto de distintos SGBDR varía ampliamente.   La mayoría de bases de datos que gestionan transacciones permiten al usuario establecer cualquier nivel de aislamiento  .   La mayoría de bases de datos que gestionan transacciones permiten al usuario establecer solo el nivel de aislamiento serializable  .

El nivel de aislamiento por defecto de distintos SGBDR varía ampliamente. La mayoría de bases de datos que gestionan transacciones permiten al usuario establecer cualquier nivel de aislamiento. ... SGBDR requieren sintaxis especial cuando se realiza una operación SELECT que efectúa bloqueos (e.g. SELECT ... FOR UPDATE para bloquear para escritura aquéllas filas accedidas). Algunos. Todos los.

Los niveles de aislamiento ANSI/ISO SQL han sido criticados en el artículo A Critique of ANSI SQL Isolation Levels por... ambiguos. precisos.

Los niveles de aislamiento ANSI/ISO SQL han sido criticados en el artículo A Critique of ANSI SQL Isolation Levels por ambiguos y por no reflejar de modo preciso el aislamiento proporcionado por muchas bases de datos:   El artículo muestra las debilidades en la definición de los niveles de aislamiento. Los tres efectos ANSI son ambiguos. Incluso su interpretación más amplia no excluye el comportamiento anormal. Esto lleva a resultados no intuitivos. En concreto, los niveles de aislamiento basados en bloqueos tienen distintas características que sus equivalentes ANSI. Esto desconcierta ya que los sistemas comerciales típicamente usan bloqueos. Además, los efectos ANSI no distinguen entre los múltiples niveles de aislamiento de los sistemas comerciales  .   El artículo muestra las debilidades en la definición de los niveles de aislamiento. Los tres efectos ANSI son ambiguos. Incluso su interpretación más amplia no excluye el comportamiento anormal. Esto lleva a resultados no intuitivos. En concreto, los niveles de aislamiento basados en bloqueos tienen distintas características que sus equivalentes ANSI. Esto desconcierta ya que los sistemas comerciales no suelen usar bloqueos. Además, los efectos ANSI no distinguen entre los múltiples niveles de aislamiento de los sistemas comerciales  .

Hay también otras críticas sobre las definiciones de aislamiento SQL de ANSI, en cuanto a que incita a los implementadores a realizar "trabajos sucios":   (...) se basa de manera subrepticia en que se usa un esquema de bloqueo para control de concurrencia, de modo opuesto a un sistema de concurrencia optimista o de versión múltiple (MVCC). Esto implica que la semántica propuesta está mal definida.  .   (...) se basa de manera subrepticia en que se usa un esquema de bloqueo para el control de la durabilidad, de modo opuesto a un sistema de concurrencia optimista o de versión múltiple (MVCC). Esto implica que la semántica propuesta está bien definida.  .

Indica la correcta:   El estándar ANSI/ISO SQL se refiere a tres efectos de lectura diferentes cuando la transacción 1 lee datos que podría haber cambiado la transacción 2  .   El estándar ANSI/ISO SQL se refiere a tres efectos de lectura diferentes cuando la transacción 2 lee datos que podría haber cambiado la transacción 1  .

Indica la correcta:   En los ejemplos se ejecutan dos transacciones. La primera transacción ejecuta la consulta 1. Entonces una segunda transacción ejecuta la consulta 2 y la comete (commit o bien hace un rollback, deshace todos los cambios). Por último, la primera transacción ejecuta la consulta 1 de nuevo  .   En los ejemplos se ejecutan dos transacciones. La primera transacción ejecuta la consulta 1. Entonces una segunda transacción ejecuta la consulta 2 y la comete (commit o bien hace un rollback, deshace todos los cambios). Por último, la primera transacción define unas variables integer  .

Dime que efecto en la lectura se produce aquí: lectura sucia. lectura no repetible. lectura fantasma.

Dime que efecto en la lectura se produce aquí: lectura sucia. lectura no repetible. lectura fantasma.

Dime que efecto en la lectura se produce aquí: lectura sucia. lectura no repetible. lectura fantasma.

Estamos haciendo los ejemplos con esta tabla. Una lectura sucia es que...   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, sin que la transacción 2 haga commit  .   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, después de que la transacción 2 haya hecho commit  .   durante una transacción, se ejecutan dos consultas idénticas, y los resultados de la segunda son distintos de los de la primera. Esto puede ocurrir cuando no se realizan bloqueos de rango al realizar una operación SELECT ... WHERE  .

Estamos haciendo los ejemplos con esta tabla. Una lectura no repetible es que...   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, después de que la transacción 2 haya hecho commit  .   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, sin que la transacción 2 haga commit  .   durante una transacción, se ejecutan dos consultas idénticas, y los resultados de la segunda son distintos de los de la primera. Esto puede ocurrir cuando no se realizan bloqueos de rango al realizar una operación SELECT ... WHERE  .

Estamos haciendo los ejemplos con esta tabla. Una lectura fantasma es que...   durante una transacción, se ejecutan dos consultas idénticas, y los resultados de la segunda son distintos de los de la primera. Esto puede ocurrir cuando no se realizan bloqueos de rango al realizar una operación SELECT ... WHERE  .   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, sin que la transacción 2 haga commit  .   en el curso de una transacción una fila se lee dos veces y los valores no coinciden, después de que la transacción 2 haya hecho commit  .

Una lectura sucia ocurre cuando se le permite a una transacción la lectura de una fila que ha sido modificada por otra transacción concurrente pero todavía no ha sido cometida. Las lecturas sucias funcionan de modo similar a las lecturas no repetibles; sin embargo la segunda transacción no necesita ser cometida para que la primera dé un resultado diferente. Lo único que se puede prevenir en el nivel de aislamiento LECTURAS NO COMETIDAS (que es el más bajo)...   es que las actualizaciones aparezcan en desorden en el resultado; esto es, que las primeras actualizaciones siempre aparecerán antes que las actualizaciones posteriores  .   es que las actualizaciones aparezcan en orden en el resultado; esto es, que las primeras actualizaciones nunca aparecerán antes que las actualizaciones posteriores  .

Indica lo que ocurre aquí:   La transacción 2 cambia una fila, pero no comete los cambios. La transacción 1 entonces lee los datos sin cometer. Si ahora la transacción 2 deshace sus cambios (ya leídos por la transacción 1) o realiza otros cambios, entonces los datos que ha recuperado la transacción 1 serán erróneos, porque lee 21 años y no hay ya ningún usuario que tenga 21 años en la base de datos  .   La transacción 1 cambia una fila, pero no comete los cambios. La transacción 2 entonces lee los datos sin cometer. Si ahora la transacción 1 deshace sus cambios (ya leídos por la transacción 2) o realiza otros cambios, entonces los datos que ha recuperado la transacción 2 serán erróneos, porque lee 21 años y no hay ya ningún usuario que tenga 21 años en la base de datos  .

Una lectura no repetible ocurre cuando en el curso de una transacción una fila se lee dos veces y los valores no coinciden. El efecto de lecturas no repetible puede ocurrir en una implementación de concurrencia mediante bloqueos cuando no se efectúan éstos al hacer un SELECT, o cuando los bloqueos se liberan nada más terminar la operación SELECT. Cuando se usa el método MVCC, las lecturas no repetibles pueden aparecer cuando se relaja el requisito de que al cometer una transacción afectada por un conflicto... ésta debe deshacerse. ésta no debe deshacerse.

Indica lo que ocurre aquí:   La transacción 2 comete correctamente, lo que significa que sus cambios a la fila con id 1 deberían hacerse visibles. Sin embargo, la transacción 1 ya ha leído un valor distinto para edad en esa fila. En los niveles de aislamiento SERIALIZABLE y REPEATABLE READ, el SGBDR debería devolver el valor antiguo. En los niveles READ COMMITTED y READ UNCOMMITTED, el SGBDR debería devolver el valor nuevo; esto es una lectura no repetible: no se lee las dos veces lo mismo  .   La transacción 1 comete correctamente, lo que significa que sus cambios a la fila con id 1 deberían hacerse visibles. Sin embargo, la transacción 2 ya ha leído un valor distinto para edad en esa fila. En los niveles de aislamiento SERIALIZABLE y REPEATABLE READ, el SGBDR debería devolver el valor antiguo. En los niveles READ COMMITTED y READ UNCOMMITTED, el SGBDR debería devolver el valor nuevo; esto es una lectura no repetible: no se lee las dos veces lo mismo  .

Hay dos estrategias básicas para prevenir las lecturas no repetibles:   Retrasar la ejecución de la transacción 2 hasta que la transacción 1 haya cometido o haya deshecho [es decir hasta que la t1 haya acabado, solo se puede acabar cometiendo o haciendo rollback] (Este método se usa con bloqueos, y es equivalente a la ejecución en serie T1, T2. La ejecución en serie no muestra efectos de lecturas no repetibles)  .   La estrategia usada en MVCC (MultiVersion Concurrency Control) consiste en que se permite cometer a la transacción 2 primero, lo que permite mejor concurrencia. Si embargo, la transacción 1, que comenzó antes que la transacción 2, debe continuar operando sobre una versión anterior de la base de datos —una instantánea del momento en que empezó. Cuando la transacción 1 intenta cometer, el SGBDR verifica si el resultado de cometer la transacción 1 sería equivalente a la ejecución serie T1, T2. Si fuera así la transacción 1 podría proceder. Si no fuera así, la transacción 1 fallaría y debería deshacerse  .   Retrasar la ejecución de la transacción 2 hasta que la transacción 1 haya cometido (Este método se usa con bloqueos, y es equivalente a la ejecución en serie T1, T2. La ejecución en serie no muestra efectos de lecturas no repetibles)  .   La estrategia usada en MVCC (MultiVersion Concurrency Control) consiste en que se permite cometer a la transacción 2 primero, lo que permite mejor concurrencia. Si embargo, la transacción 1, que comenzó antes que la transacción 2, debe continuar operando sobre una versión anterior de la base de datos —una instantánea del momento en que empezó. Cuando la transacción 1 intenta cometer, el SGBDR verifica si el resultado de cometer la transacción 1 sería equivalente a la ejecución serie T1, T2. Si fuera así la transacción 1 podría proceder  .

Lecturas no repetibles:   Usando control de concurencia mediante bloqueos, al nivel de aislamiento REPEATABLE READ, la fila con id 1 debería bloquearse, bloqueando de ese modo la consulta 2 hasta que la transacción 1 se cometa o deshaga. En el modo READ COMMITTED, la segunda vez que se ejecute la consulta 1, la edad habrá cambiado  .   Usando control de concurencia mediante bloqueos, al nivel de aislamiento REPEATABLE READ, la fila con id 1 debería bloquearse, bloqueando de ese modo la consulta 2 hasta que la transacción 1 se cometa o deshaga. En el modo READ COMMITTED, la segunda vez que se ejecute la consulta 1, la edad no habrá cambiado  .

Lecturas no repetibles:   Usando MVCC (MultiVersion Concurrency Control), al nivel de aislamiento SERIALIZABLE, ambas consultas SELECT ven una instantánea de la base de datos tomada al comienzo de la transacción 1. Por ello devuelven los mismo datos. Sin embargo, si la transacción 1 intenta entonces actualizar esa misma fila, ocurriría un fallo de serialización y la transacción 1 estaría forzada a deshacerse  .   Usando MVCC (MultiVersion Concurrency Control), al nivel de aislamiento SERIALIZABLE, ambas consultas SELECT ven una instantánea de la base de datos tomada al comienzo de la transacción 1. Por ello devuelven los mismo datos. Sin embargo, si la transacción 1 intenta entonces actualizar esa misma fila no ocurriría nada especial y podría hacerlo  .

Lecturas no repetibles:   Al nivel de aislamiento READ COMMITTED, cada consulta ve una instantánea de la base de datos tomada al principio de la consulta. Por ello, cada una ve datos distintos en la fila actualizada. No puede producirse fallo de serialización en este modo (ya que no se hace promesa de serializabilidad), y la transacción 1 no deberá reintentarse; y se produce la lectura no repetible  .   Al nivel de aislamiento READ COMMITTED, cada consulta ve una instantánea de la base de datos tomada al principio de la consulta. Por ello, cada una ve datos distintos en la fila actualizada. No puede producirse fallo de serialización en este modo (ya que no se hace promesa de serializabilidad), y la transacción 1 no deberá reintentarse; y no se produce la lectura no repetible  .

La anomalía de las lecturas fantasma es una caso particular de las ... cuando la transacción 1 repite una consulta acotada en rango SELECT ... WHERE y, entre ambas operaciones la transacción 2 crea (i.e. INSERT) nuevas filas (en la misma tabla) que entran dentro de esa cláusula WHERE. lecturas no repetibles. lecturas sucias.

Indica lo que ocurre aquí:   La transacción 1 repite una consulta acotada en rango SELECT ... WHERE y, entre ambas operaciones la transacción 2 crea (por ejemplo INSERT) nuevas filas (en la misma tabla) que entran dentro de esa cláusula WHERE  .   La transacción 2 repite una consulta acotada en rango SELECT ... WHERE y, entre ambas operaciones la transacción 1 crea (por ejemplo INSERT) nuevas filas (en la misma tabla) que entran dentro de esa cláusula WHERE  .

En la lectura fantasma la transacción 1 ejecuta la misma consulta dos veces. Si se mantuviera el mayor nivel de aislamiento, los resultados de ambas consultas coincidirían, de hecho es lo que se pide a una base de datos operando al nivel de aislamiento ... . Sin embargo, a niveles de aislamiento menores, pueden producirse lecturas fantasma. SERIALIZABLE. LECTURAS REPETIBLE. LECTURAS COMPROMETIDAS (COMMITTED). LECTURAS NO COMPROMETIDAS (UNCOMMITTED).

Lectura fantasma:   Al nivel de aislamiento SERIALIZABLE, la consulta 1 bloquearía todos los registros con edades comprendidas entre 10 y 30, de modo que la consulta 2 quedaría bloqueada hasta que se cometiera la transacción 1. En modo REPEATABLE READ, el rango de 10 a 30 no se bloquearía, permitiendo la inserción de modo que la segunda ejecución de la consulta 1 sí incluirá la nueva fila en sus resultados  .   Al nivel de aislamiento REPEATABLE READ, la consulta 1 bloquearía todos los registros con edades comprendidas entre 10 y 30, de modo que la consulta 2 quedaría bloqueada hasta que se cometiera la transacción 1. En modo SERIALIZABLE, el rango de 10 a 30 no se bloquearía, permitiendo la inserción de modo que la segunda ejecución de la consulta 1 sí incluirá la nueva fila en sus resultados  .

Dime que efectos de lectura pueden ocurrir en el nivel de aislamiento Lecturas no comprometidas (read uncommitted): lectura sucia. lectura no repetible. lectura fantasma.

Dime que efectos de lectura pueden ocurrir en el nivel de aislamiento Lecturas comprometidas (read committed): lectura sucia. lectura no repetible. lectura fantasma.

Dime que efectos de lectura pueden ocurrir en el nivel de aislamiento Lecturas repetibles (read committed): lectura sucia. lectura no repetible. lectura fantasma.

Dime que efectos de lectura pueden ocurrir en el nivel de aislamiento Serializable: lectura sucia. lectura no repetible. lectura fantasma.

Dime que bloqueos hago hasta el final de la transacción 1 (que será molestada por escritura de la transacción 2) en el nivel de aislamiento Lecturas no comprometidas (read uncommitted): Bloqueo de escritura. Bloqueo de lectura. Bloqueo de rango.

Dime que bloqueos hago hasta el final de la transacción 1 (que será molestada por escritura de la transacción 2) en el nivel de aislamiento Lecturas comprometidas (read committed): Bloqueo de escritura. Bloqueo de lectura. Bloqueo de rango.

Dime que bloqueos hago hasta el final de la transacción 1 (que será molestada por escritura de la transacción 2) en el nivel de aislamiento Lecturas repetibles: Bloqueo de escritura. Bloqueo de lectura. Bloqueo de rango.

Dime que bloqueos hago hasta el final de la transacción 1 (que será molestada por escritura de la transacción 2) en el nivel de aislamiento Serializable: Bloqueo de escritura. Bloqueo de lectura. Bloqueo de rango.

Indica la correcta:   Las operaciones de lectura (por ejemplo SELECT) pueden efectuar bloqueos (compartidos) en el nivel Lecturas comprometidas (read committed), pero se liberan inmediatamente tras la operación de lectura  .   Las operaciones de lectura (por ejemplo SELECT) pueden efectuar bloqueos (compartidos) en el nivel Lecturas comprometidas (read committed)  .

Denunciar Test