Apartado 3 - Ejemplo 1

De FdIwiki ABD
Saltar a: navegación, buscar

Basándote en el ejemplo de ejecución de Oracle visto en clase, vas a hacer dos Ejemplos de ejecución siguiendo los pasos indicados abajo. Para cada ejemplo, ejecuta en dos sesiones concurrentes, las mismas operaciones de consulta y actualización usando la BDejemplo. El objetivo es provocar dos comportamientos distintos cuando usas los dos niveles de aislamiento : Read Commited y Serializable

- Ejemplo-1: las dos sesiones con Read Commited

PASO 1

   - SESIÓN 1:
  Resultado obtenido: transaction ISOLATION correcto.
   - SESIÓN 2:
  Resultado obtenido: transaction ISOLATION correcto.

PASO 2

   - SESIÓN 1:
   SELECT tienda 
   FROM COMPRAS 
   WHERE importe = '5'
   Resultado obtenido: TIENDA : tienda1
   UPDATE COMPRAS
   SET tienda = 'tiendaX'
   WHERE importe = '5'
   Resultado obtenido: 1fila actualizada.

Al consultar la misma fila y el mismo atributo, después de haber realizado el UPDATE obtenemos el resultado siguiente, que es el que hemos modificado: TIENDA : tiendaX.

   - SESIÓN 2: 
  Resultado Obtenido: TIENDA : tienda1.

No se ven los cambios realizados porque están en la sesión1 y no se ha realizado un COMMIT. Al intentar actualizar la misma fila y el mismo atributo Oracle no responde, porque está bloqueado hasta que la sesión1 haga COMMIT.

PASO 3

   - SESIÓN 1:
  Se confirman los cambios.
   -SESIÓN 2:
  La sesión dos responde actualizando la fila que hemos intentado cambiar en el paso 2, respondiendo que el
  cambio se ha actualizado correctamente. 

PASO 4

   - SESIÓN 1: 
  Al consultar los datos de esa fila y ese atributo aparecen los cambios realizados con el UPDATE realizado en
  la sesión 2. Se han perdido los cambios realizados en la sesión 1 tras haber realizado un COMMIT en la
  segunda sesión.