SlideShare a Scribd company logo
1 of 43
Base de Datos II
Ing. Olga Zalamea P.
   Una colección de operaciones que forman
    una única unidad lógica de trabajo.

   Unidad de ejecución en un programa que
    accede y posiblemente actualiza varios
    elementos de datos.

   Ejm: Transferencia Bancaria
   Ejm: Transferencia Bancaria

   Inicio Transacción
    ◦ Cuenta A = A – 10
    ◦ Cuenta B = B + 10
   Fin Transacción
   Asegurar Integridad de los datos:

   ACID

   Atomicidad (Atomicity)
   Consistencia (Consistency)
   Aislamiento (Isolation)
   Durabilidad (Durability)
   Atomicidad:
    ◦ Todo o nada.
    ◦ (Gestor de transacciones).


   Consistencia:
    ◦ Ejecución aislada de la transacción conserva la
      consistencia de la Bases de Datos.
    ◦ (programador)
   Aislamiento:
    ◦ Ejecuten concurrente para cada par de
      transacciones Ti y Tj, se ejecutarán en diferentes
      tiempos.
    ◦ (componente de control de concurrencia)

   Durabilidad:
    ◦ En una transacción exitosa los cambios realizados a la base
      de datos permanecen, incluso si hay fallos en el sistema.
    ◦ (componente de gestión de recuperaciones)
   Leer(X):
   Transfiere el dato X de la base de datos a una
    memoria intermedia local perteneciente a la
    transacción que ejecuta la operación leer.

   Escribir(X):
   Transfiere el dato X de la memoria intermedia
    local a la base de la transacción que ejecuta la
    operación Escribir.
   Transferencia bancaria de la cuenta A a la cuenta
    B:

   Ti:                    Consistencia:
          Leer (A)         A = 1000, B = 2000
          A:=A – 50;       A + B = 3000
          Escribir (A)
          Leer (B)
          B:=B + 50;       A=950, B=2050
          Escribir (B)     A + B = 3000

          Durabilidad: Terminada la transferencia los
             saldos se mantienen.
   Ti:                  Atomicidad:
          Leer (A)       A = 1000, B = 2000
          A:=A – 50;     A + B = 3000
          Escribir (A)
          Leer (B)
          B:=B + 50;     A=950, B=2000
          Escribir (B)   A + B = 2950
   Aislamiento:

Ti:                              Tj:
        Leer (A)       A=1000          Leer (A)       A=1000
        A:=A – 50;     A=950           A:=A – 50;     A=950
        Escribir (A)   A:= 950         Escribir (A)   A:= 950

        Leer (B)       B=2000
        B:=B + 50;     B= 2050
        Escribir (B)   B:=2050
                                       Leer (B)       B=2050
                                       B:=B + 50;     B=2100
                                       Escribir (B)   B:=2100

                                       A+B = 3050
   Activa:
    ◦ Estado Inicial y durante su ejecución.
   Parcialmente comprometida:
    ◦ Una vez ejecutada ultima instrucción.
   Fallida:
    ◦ Error, no puede continuar.
   Abortada:
    ◦ Retrocede y vuelve al estado original.
   Comprometida:
    ◦ Transacción exitosa, cambios efectuados.
   Abortada:
    ◦ Reiniciar: Error HW, SW.
    ◦ Cancelar: Error lógico.

   Escrituras externas observables.
    ◦ Solo cuando esta comprometida

   Transacciones Compensadoras.
    ◦ Retiro de dinero en el cajero; restaurar el
      saldo.

   Transacciones de larga duración
   El encargado de esto es el componente de
    gestión de recuperaciones.

   Asume que una transacción está activa en
    cada momento y para esto hace copias
    sombra de la base de datos.

   Asume que la base de datos es un archivo
    en disco direccionado por un puntero
    llamado (puntero_bd).
Puntero_                                 Puntero_
       BD                                       BD
       Copia anterior    Copia anterior de la        Nueva copia
       de la base de       base de datos              de la base
           datos         (que será borrada)            de datos



a) Antes de la Actualización                b) Después de la Actualización
   Ejecuciones concurrentes provocan conflictos
   Más sencillo exigir que las transacciones se
    ejecuten secuencialmente.
   Razones para la concurrencia :
   Productividad y utilización de recursos
    mejoradas
    ◦ E/S y uso del CPU en paralelo.

   Tiempo de espera reducido
   Esquemas de control de concurrencia

   Planificación: Orden de Ejecución de las
    transacciones.
A=1000
A=950
B=2000
B=2050
    A=950
    temp=95
    A=855
    B=2050
    B=2145

A + B = 855+2145
        3000
A=1000
    temp=100
    A=900
    B=2000
    B=2100
 A=900
 A=950
 B=2100
 B=2150

A + B = 950+2150
        3000
A=1000
 A=950
    A=950
    temp=95
    A=855

 B=2000
 B=2050
    B=2050
    B=2145

A + B = 855+2145
         3000
A=1000
 A=950
    A=1000
    temp = 100
    A=900
    B=2000
    A=900
 A=950
 B=2000
 B=2050
    B=2100

A + B = 950+2100
         3050
   Ejemplo de transacción
    ◦ Explicar Atomicidad y Durabilidad
    ◦ Reglas de consistencia
    ◦ Ejemplo de Error de Aislamiento
   Estados de la transacción
    ◦ Explicar cuando esta en cada uno de los estados
    ◦ Ejemplo de Escrituras externas observables.
    ◦ Ejemplo de Transacción Compensadora
   Planificación
    ◦ Ejemplo de planificación secuencial.
    ◦ Ejemplo de planificación concurrente equivalente.
    ◦ Ejemplo de planificación concurrente inconsistente.
   N transacciones, n! planificaciones validas.

   Mucho mas de n! planificaciones posibles.

   No interesa todo tipo de operación, solo las
    de lectura y escritura.

   Secuencialidad en cuanto a conflictos

   Secuencialidad en cuanto a vistas
   Dado que tenemos la Planificación P, con
    transacciones Ti y Tj.

   Dos instrucciones Ii, Ij pertenecientes a Ti y Tj.

   Si Ii e Ij se refieren a elementos de datos
    diferentes entonces se pueden intercambiar.

   Si Ii e Ij se refieren al mismo elemento de datos
    entonces el orden de aparición se debe tener
    en cuenta para la planificación.
   Leer (Q), Leer (Q).
    ◦ No importa, leen el mismo valor

   Leer (Q), Escribir(Q).
   Escribir(Q), Leer (Q).
    ◦ Si importa

   Escribir(Q), Escribir(Q).
   No importa para Ti y Tj, pero si para la
    siguiente lectura
   Ii e Ij están en conflicto si alguna de ella es
    escribir.
P3 y P5 son equivalentes en cuanto a
 conflictos.
P3 es secuenciable en cuanto a conflictos.
P7 no es secuenciable en cuanto a conflictos.
Ya que no es equivalente a T3, T4 o a T4, T3.
A=1000                        A=1000
A=950                         A=950
   B=2000                     B=2000
   B=1990                     B=2050
B=1990                            B=2050
B=2040                            B=2040
   A=950                          A=950
    A=960                         A=960

P8 no es secuenciable en cuanto a conflictos.
P8 es equivalente a T1, T3.
       Dadas dos planificaciones P y P’, son
        secuenciables en cuanto a vistas si:

    ◦    Si Ti lee el valor inicial de Q en P, Ti también lee el
         valor inicial de Q en P’.

    ◦    Si Tj escribe(Q) y Ti lee(Q) en P también Tj
         escribe(Q) y Ti lee(Q) en P’.

    ◦    Si Ti escribe el valor final de Q en P, Ti también
         escribe el valor final de Q en P’.
P1 NO es equivalente en cuanto a vistas a P2.
P1 SI es equivalente en cuanto a vistas a P3.
Una planificación P es secuenciable en cuanto a
 vistas si es equivalente en cuanto a vistas a una
 planificación secuencial.
   Toda planificacion secuenciable en cuanto a
    conflictos es secuenciable en cuanto a vistas,
    pero no al inverso.

   Si una planificacion en secuenciable en cuanto a
    vistas y no en cuanto a conflicto tiene escrituras
    a ciegas.
   Atomicidad: Si hay fallo, retroceder
    transacción.
   Si Tj depende de Ti, Tj también retrocede.
   Tj depende de Ti, si Tj lee lo que Ti escribe.
   Recuperables
    ◦ Si Tj depende de Ti, Tj se compromete después de Ti.
   Sin Casacada
    ◦ Para todo Ti y Tj, si Tj depende de Ti, Ti se
      compromete antes de la lectura de Tj.
   Esquemas de control de concurrencia
    ◦ Bloqueo BD.
   Planificaciones secuenciales en cuanto a
    conflictos o Vistas.
   Planificaciones con o sin cascada.
   Niveles de Aislamiento.
   Planificaciones secuenciales en cuanto a
    conflictos:
    ◦ Grafo de precedencia (Arista Ti  Tj)
      Ti escribe(Q) antes que Tj ejecute leer(Q)
      Tj lee(Q) antes que Tj ejecute escribir(Q)
      Ti escribe(Q) antes que Tj ejecute escribir(Q)


   Si tiene ciclo, no es secuenciable en cuanto a
    conflictos
   Orden topológico:
   Lectura sucia (dirty read):
       lee datos no comprometidos modificados por
       otra transacción.

   Lectura No Repetible (nonrepeatable read):
       lee datos dos veces y los resultados son
       diferentes.

   Lectura fantasma (phantom read):
       Realiza una consulta dos veces y el conjunto
       de filas devueltas es diferente.
Lectura     Lectura no   Lectura
                   sucia       repetible    Fantasma
    Read           SI          SI           SI
    uncommitted
    Read           NO          SI           SI
    committed
    Repeatable read NO         NO           SI
    Serializable   NO          NO           NO

   Read committed           (read uncommited)
   Serializable             (repeatable read)
   Repeatable read
   BEGIN TRANSACTION transaction_mode [, ...]

   SET SESSION CHARACTERISTICS AS
    TRANSACTION transaction_mode [, ...]

   transaction_mode: ISOLATION LEVEL {
    SERIALIZABLE | REPEATABLE READ |READ
    COMMITTED | READ UNCOMMITTED} READ
    WRITE | READ ONLY

More Related Content

What's hot

What's hot (20)

Diagrama de Componentes
Diagrama de ComponentesDiagrama de Componentes
Diagrama de Componentes
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Diagramas De Flujo
Diagramas De FlujoDiagramas De Flujo
Diagramas De Flujo
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Power designer-presentación
Power designer-presentaciónPower designer-presentación
Power designer-presentación
 
Diagramas de estados
Diagramas de estadosDiagramas de estados
Diagramas de estados
 
Programación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UMLProgramación Orientada a Objetos (POO) y UML
Programación Orientada a Objetos (POO) y UML
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
Estructuras iterativas
Estructuras iterativasEstructuras iterativas
Estructuras iterativas
 
Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)Ejercicios resueltos diagramas de claseaula (1)
Ejercicios resueltos diagramas de claseaula (1)
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Estructuras de control en la programación.
Estructuras de control en la programación.Estructuras de control en la programación.
Estructuras de control en la programación.
 
Bucles de Control Repetitivo Ciclos For
Bucles de Control Repetitivo  Ciclos ForBucles de Control Repetitivo  Ciclos For
Bucles de Control Repetitivo Ciclos For
 
Modelos de dominio
Modelos de dominioModelos de dominio
Modelos de dominio
 
Concurrencias BD
Concurrencias BDConcurrencias BD
Concurrencias BD
 
Modelo de datos
Modelo de datosModelo de datos
Modelo de datos
 
Procesamiento segmentado - INFORME
Procesamiento segmentado - INFORMEProcesamiento segmentado - INFORME
Procesamiento segmentado - INFORME
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 

Viewers also liked

Sintaxis de START TRANSACTION
Sintaxis de START TRANSACTIONSintaxis de START TRANSACTION
Sintaxis de START TRANSACTIONjuan
 
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014SolidQ
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2Velmuz Buzz
 
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...SpanishPASSVC
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)JOSE AHIAS LOPEZ PORTILLO
 
Conceptos Basicos de Bases de Datos Multiusuario
Conceptos Basicos de Bases de DatosMultiusuarioConceptos Basicos de Bases de DatosMultiusuario
Conceptos Basicos de Bases de Datos Multiusuarioheliozwt
 
Trampas Psicológicas en la Toma de Decisiones
Trampas Psicológicas en la Toma de DecisionesTrampas Psicológicas en la Toma de Decisiones
Trampas Psicológicas en la Toma de DecisionesMariaFernandaAndrade
 
Base de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorBase de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorJonathan
 
INTERBLOQUEOS Y NIVELES DE AISLAMIENTO
INTERBLOQUEOS Y NIVELES DE AISLAMIENTOINTERBLOQUEOS Y NIVELES DE AISLAMIENTO
INTERBLOQUEOS Y NIVELES DE AISLAMIENTOjuan
 
Sistema gestor de base de datos
Sistema gestor de base de datosSistema gestor de base de datos
Sistema gestor de base de datoskarlaaponte
 
Trampas psicologicas
Trampas psicologicasTrampas psicologicas
Trampas psicologicasyorvelis
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datosJose O- Vera
 
Trampas psicologicas en la toma de decisiones
Trampas psicologicas en la toma de decisionesTrampas psicologicas en la toma de decisiones
Trampas psicologicas en la toma de decisionesCiedith
 
APLICACIÓN DEL MÉTODO HARVARD - Conflicto: DEMANDA SALARIAL EN LA Empresa “L...
APLICACIÓN DEL MÉTODO HARVARD - Conflicto:  DEMANDA SALARIAL EN LA Empresa “L...APLICACIÓN DEL MÉTODO HARVARD - Conflicto:  DEMANDA SALARIAL EN LA Empresa “L...
APLICACIÓN DEL MÉTODO HARVARD - Conflicto: DEMANDA SALARIAL EN LA Empresa “L...jfortique
 
Transacciones en MySQL
Transacciones en MySQLTransacciones en MySQL
Transacciones en MySQLThekavenet
 

Viewers also liked (20)

Transaccion
TransaccionTransaccion
Transaccion
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Sintaxis de START TRANSACTION
Sintaxis de START TRANSACTIONSintaxis de START TRANSACTION
Sintaxis de START TRANSACTION
 
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014
Transacciones diferidas en SQL Server 2014 | SolidQ Summit 2014
 
Concurrencia bases datos 2
Concurrencia bases datos 2Concurrencia bases datos 2
Concurrencia bases datos 2
 
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
24 HOP edición Español - Durabilidad diferida de transacciones y mejoras en g...
 
Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)Sql Server - Troubleshooting De Bloqueos (Parte I)
Sql Server - Troubleshooting De Bloqueos (Parte I)
 
Conceptos Basicos de Bases de Datos Multiusuario
Conceptos Basicos de Bases de DatosMultiusuarioConceptos Basicos de Bases de DatosMultiusuario
Conceptos Basicos de Bases de Datos Multiusuario
 
Trampas Psicológicas en la Toma de Decisiones
Trampas Psicológicas en la Toma de DecisionesTrampas Psicológicas en la Toma de Decisiones
Trampas Psicológicas en la Toma de Decisiones
 
Base de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidorBase de datos: sistemas_clienteservidor
Base de datos: sistemas_clienteservidor
 
INTERBLOQUEOS Y NIVELES DE AISLAMIENTO
INTERBLOQUEOS Y NIVELES DE AISLAMIENTOINTERBLOQUEOS Y NIVELES DE AISLAMIENTO
INTERBLOQUEOS Y NIVELES DE AISLAMIENTO
 
Sistema gestor de base de datos
Sistema gestor de base de datosSistema gestor de base de datos
Sistema gestor de base de datos
 
Trampas psicologicas
Trampas psicologicasTrampas psicologicas
Trampas psicologicas
 
Trabajo 2 transacciones en base de datos
Trabajo 2   transacciones en base de datosTrabajo 2   transacciones en base de datos
Trabajo 2 transacciones en base de datos
 
Trampas psicologicas en la toma de decisiones
Trampas psicologicas en la toma de decisionesTrampas psicologicas en la toma de decisiones
Trampas psicologicas en la toma de decisiones
 
Transaccion
TransaccionTransaccion
Transaccion
 
Ejercicio 2 transacciones
Ejercicio 2 transaccionesEjercicio 2 transacciones
Ejercicio 2 transacciones
 
APLICACIÓN DEL MÉTODO HARVARD - Conflicto: DEMANDA SALARIAL EN LA Empresa “L...
APLICACIÓN DEL MÉTODO HARVARD - Conflicto:  DEMANDA SALARIAL EN LA Empresa “L...APLICACIÓN DEL MÉTODO HARVARD - Conflicto:  DEMANDA SALARIAL EN LA Empresa “L...
APLICACIÓN DEL MÉTODO HARVARD - Conflicto: DEMANDA SALARIAL EN LA Empresa “L...
 
Transacciones en MySQL
Transacciones en MySQLTransacciones en MySQL
Transacciones en MySQL
 
Por qué fracasan las empresas
Por qué fracasan las empresasPor qué fracasan las empresas
Por qué fracasan las empresas
 

Similar to Transacciones

acrónimo que representa atomicidad, consistencia, aislamiento y durabilidad
acrónimo que representa atomicidad, consistencia, aislamiento y durabilidadacrónimo que representa atomicidad, consistencia, aislamiento y durabilidad
acrónimo que representa atomicidad, consistencia, aislamiento y durabilidadHermesRR123
 
Transacciones y seguridad
Transacciones y seguridadTransacciones y seguridad
Transacciones y seguridadLuis Jherry
 
Transacciones y seguridad
Transacciones y seguridadTransacciones y seguridad
Transacciones y seguridadLuis Jherry
 
Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Luis Kyo
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...Anderson Urbina Coronado
 
Guiaunidad iii
Guiaunidad iiiGuiaunidad iii
Guiaunidad iiimayral
 
Gestion de transacciones_may-11
Gestion de transacciones_may-11Gestion de transacciones_may-11
Gestion de transacciones_may-11fernandocar12
 

Similar to Transacciones (11)

acrónimo que representa atomicidad, consistencia, aislamiento y durabilidad
acrónimo que representa atomicidad, consistencia, aislamiento y durabilidadacrónimo que representa atomicidad, consistencia, aislamiento y durabilidad
acrónimo que representa atomicidad, consistencia, aislamiento y durabilidad
 
Transacciones y seguridad
Transacciones y seguridadTransacciones y seguridad
Transacciones y seguridad
 
Transacciones y seguridad
Transacciones y seguridadTransacciones y seguridad
Transacciones y seguridad
 
Concurrencia
ConcurrenciaConcurrencia
Concurrencia
 
Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
 
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
1: funciones matematicas y cadena de caracteres 2:operacion de asignacion: ar...
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Guiaunidad iii
Guiaunidad iiiGuiaunidad iii
Guiaunidad iii
 
Abd clase 8
Abd clase 8Abd clase 8
Abd clase 8
 
Gestion de transacciones_may-11
Gestion de transacciones_may-11Gestion de transacciones_may-11
Gestion de transacciones_may-11
 

Transacciones

  • 1. Base de Datos II Ing. Olga Zalamea P.
  • 2. Una colección de operaciones que forman una única unidad lógica de trabajo.  Unidad de ejecución en un programa que accede y posiblemente actualiza varios elementos de datos.  Ejm: Transferencia Bancaria
  • 3. Ejm: Transferencia Bancaria  Inicio Transacción ◦ Cuenta A = A – 10 ◦ Cuenta B = B + 10  Fin Transacción
  • 4. Asegurar Integridad de los datos:  ACID  Atomicidad (Atomicity)  Consistencia (Consistency)  Aislamiento (Isolation)  Durabilidad (Durability)
  • 5. Atomicidad: ◦ Todo o nada. ◦ (Gestor de transacciones).  Consistencia: ◦ Ejecución aislada de la transacción conserva la consistencia de la Bases de Datos. ◦ (programador)
  • 6. Aislamiento: ◦ Ejecuten concurrente para cada par de transacciones Ti y Tj, se ejecutarán en diferentes tiempos. ◦ (componente de control de concurrencia)  Durabilidad: ◦ En una transacción exitosa los cambios realizados a la base de datos permanecen, incluso si hay fallos en el sistema. ◦ (componente de gestión de recuperaciones)
  • 7. Leer(X):  Transfiere el dato X de la base de datos a una memoria intermedia local perteneciente a la transacción que ejecuta la operación leer.  Escribir(X):  Transfiere el dato X de la memoria intermedia local a la base de la transacción que ejecuta la operación Escribir.
  • 8. Transferencia bancaria de la cuenta A a la cuenta B:  Ti: Consistencia: Leer (A) A = 1000, B = 2000 A:=A – 50; A + B = 3000 Escribir (A) Leer (B) B:=B + 50; A=950, B=2050 Escribir (B) A + B = 3000 Durabilidad: Terminada la transferencia los saldos se mantienen.
  • 9. Ti: Atomicidad: Leer (A) A = 1000, B = 2000 A:=A – 50; A + B = 3000 Escribir (A) Leer (B) B:=B + 50; A=950, B=2000 Escribir (B) A + B = 2950
  • 10. Aislamiento: Ti: Tj: Leer (A) A=1000 Leer (A) A=1000 A:=A – 50; A=950 A:=A – 50; A=950 Escribir (A) A:= 950 Escribir (A) A:= 950 Leer (B) B=2000 B:=B + 50; B= 2050 Escribir (B) B:=2050 Leer (B) B=2050 B:=B + 50; B=2100 Escribir (B) B:=2100 A+B = 3050
  • 11. Activa: ◦ Estado Inicial y durante su ejecución.  Parcialmente comprometida: ◦ Una vez ejecutada ultima instrucción.  Fallida: ◦ Error, no puede continuar.  Abortada: ◦ Retrocede y vuelve al estado original.  Comprometida: ◦ Transacción exitosa, cambios efectuados.
  • 12.
  • 13. Abortada: ◦ Reiniciar: Error HW, SW. ◦ Cancelar: Error lógico.  Escrituras externas observables. ◦ Solo cuando esta comprometida  Transacciones Compensadoras. ◦ Retiro de dinero en el cajero; restaurar el saldo.  Transacciones de larga duración
  • 14. El encargado de esto es el componente de gestión de recuperaciones.  Asume que una transacción está activa en cada momento y para esto hace copias sombra de la base de datos.  Asume que la base de datos es un archivo en disco direccionado por un puntero llamado (puntero_bd).
  • 15. Puntero_ Puntero_ BD BD Copia anterior Copia anterior de la Nueva copia de la base de base de datos de la base datos (que será borrada) de datos a) Antes de la Actualización b) Después de la Actualización
  • 16. Ejecuciones concurrentes provocan conflictos  Más sencillo exigir que las transacciones se ejecuten secuencialmente.  Razones para la concurrencia :  Productividad y utilización de recursos mejoradas ◦ E/S y uso del CPU en paralelo.  Tiempo de espera reducido
  • 17. Esquemas de control de concurrencia  Planificación: Orden de Ejecución de las transacciones.
  • 18. A=1000 A=950 B=2000 B=2050 A=950 temp=95 A=855 B=2050 B=2145 A + B = 855+2145 3000
  • 19. A=1000 temp=100 A=900 B=2000 B=2100 A=900 A=950 B=2100 B=2150 A + B = 950+2150 3000
  • 20. A=1000 A=950 A=950 temp=95 A=855 B=2000 B=2050 B=2050 B=2145 A + B = 855+2145 3000
  • 21. A=1000 A=950 A=1000 temp = 100 A=900 B=2000 A=900 A=950 B=2000 B=2050 B=2100 A + B = 950+2100 3050
  • 22. Ejemplo de transacción ◦ Explicar Atomicidad y Durabilidad ◦ Reglas de consistencia ◦ Ejemplo de Error de Aislamiento  Estados de la transacción ◦ Explicar cuando esta en cada uno de los estados ◦ Ejemplo de Escrituras externas observables. ◦ Ejemplo de Transacción Compensadora  Planificación ◦ Ejemplo de planificación secuencial. ◦ Ejemplo de planificación concurrente equivalente. ◦ Ejemplo de planificación concurrente inconsistente.
  • 23. N transacciones, n! planificaciones validas.  Mucho mas de n! planificaciones posibles.  No interesa todo tipo de operación, solo las de lectura y escritura.  Secuencialidad en cuanto a conflictos  Secuencialidad en cuanto a vistas
  • 24. Dado que tenemos la Planificación P, con transacciones Ti y Tj.  Dos instrucciones Ii, Ij pertenecientes a Ti y Tj.  Si Ii e Ij se refieren a elementos de datos diferentes entonces se pueden intercambiar.  Si Ii e Ij se refieren al mismo elemento de datos entonces el orden de aparición se debe tener en cuenta para la planificación.
  • 25. Leer (Q), Leer (Q). ◦ No importa, leen el mismo valor  Leer (Q), Escribir(Q).  Escribir(Q), Leer (Q). ◦ Si importa  Escribir(Q), Escribir(Q).  No importa para Ti y Tj, pero si para la siguiente lectura  Ii e Ij están en conflicto si alguna de ella es escribir.
  • 26.
  • 27. P3 y P5 son equivalentes en cuanto a conflictos.
  • 28. P3 es secuenciable en cuanto a conflictos.
  • 29. P7 no es secuenciable en cuanto a conflictos. Ya que no es equivalente a T3, T4 o a T4, T3.
  • 30. A=1000 A=1000 A=950 A=950 B=2000 B=2000 B=1990 B=2050 B=1990 B=2050 B=2040 B=2040 A=950 A=950 A=960 A=960 P8 no es secuenciable en cuanto a conflictos. P8 es equivalente a T1, T3.
  • 31. Dadas dos planificaciones P y P’, son secuenciables en cuanto a vistas si: ◦ Si Ti lee el valor inicial de Q en P, Ti también lee el valor inicial de Q en P’. ◦ Si Tj escribe(Q) y Ti lee(Q) en P también Tj escribe(Q) y Ti lee(Q) en P’. ◦ Si Ti escribe el valor final de Q en P, Ti también escribe el valor final de Q en P’.
  • 32. P1 NO es equivalente en cuanto a vistas a P2.
  • 33. P1 SI es equivalente en cuanto a vistas a P3. Una planificación P es secuenciable en cuanto a vistas si es equivalente en cuanto a vistas a una planificación secuencial.
  • 34. Toda planificacion secuenciable en cuanto a conflictos es secuenciable en cuanto a vistas, pero no al inverso.  Si una planificacion en secuenciable en cuanto a vistas y no en cuanto a conflicto tiene escrituras a ciegas.
  • 35. Atomicidad: Si hay fallo, retroceder transacción.  Si Tj depende de Ti, Tj también retrocede.  Tj depende de Ti, si Tj lee lo que Ti escribe.
  • 36. Recuperables ◦ Si Tj depende de Ti, Tj se compromete después de Ti.  Sin Casacada ◦ Para todo Ti y Tj, si Tj depende de Ti, Ti se compromete antes de la lectura de Tj.
  • 37. Esquemas de control de concurrencia ◦ Bloqueo BD.  Planificaciones secuenciales en cuanto a conflictos o Vistas.  Planificaciones con o sin cascada.  Niveles de Aislamiento.
  • 38. Planificaciones secuenciales en cuanto a conflictos: ◦ Grafo de precedencia (Arista Ti  Tj)  Ti escribe(Q) antes que Tj ejecute leer(Q)  Tj lee(Q) antes que Tj ejecute escribir(Q)  Ti escribe(Q) antes que Tj ejecute escribir(Q)  Si tiene ciclo, no es secuenciable en cuanto a conflictos
  • 39.
  • 40. Orden topológico:
  • 41. Lectura sucia (dirty read): lee datos no comprometidos modificados por otra transacción.  Lectura No Repetible (nonrepeatable read): lee datos dos veces y los resultados son diferentes.  Lectura fantasma (phantom read): Realiza una consulta dos veces y el conjunto de filas devueltas es diferente.
  • 42. Lectura Lectura no Lectura sucia repetible Fantasma Read SI SI SI uncommitted Read NO SI SI committed Repeatable read NO NO SI Serializable NO NO NO  Read committed (read uncommited)  Serializable (repeatable read)  Repeatable read
  • 43. BEGIN TRANSACTION transaction_mode [, ...]  SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]  transaction_mode: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ |READ COMMITTED | READ UNCOMMITTED} READ WRITE | READ ONLY