SlideShare uma empresa Scribd logo
1 de 60
Base de Datos:
      PROCESAMIENTO DE
     TRANSACCIONES Y SEGURIDAD
     EN LAS BD




Profesor:
MSC.
MSC Luis Serna Jherry
Objetivos del Día de Hoy

  Concurrencia
  Recuperación
  Seguridad
Procesamiento de Transacciones

    Transacción A              Transacción B
Traer R ($250)




                                                      tiempo
                                                      t
                           Traer R ($250)
Actualizar R=R-20 ($230)
A    li    R R 20
                           Actualizar R=R-30 ($220)

 “El problema de la modificación perdida”
Procesamiento de Transacciones
Para mantener la integridad de la base de
datos en ambientes multiusuario, el sistema
                                ,
relacional proporciona:
  Facilidades para el Control de Transacciones
  Mecanismos de Seguridad para el control de
  concurrencias
  Sistema de registro y recuperación para restaurar
  la base de datos después de una falla del sistema.
Procesamiento de Transacciones
                 Transacción
Unidad lógica de trabajo (LUW) o procesamiento. Debe
ser t t l
    totalmente completada o no realizada en absoluto.
             t        l t d            li d       b l t
Delimitado por declaraciones (o llamadas a función) de la
forma inicio de transacción y fin de transacción
La transacción consiste en todas las operaciones que se
ejecutan entre el inicio y el final de la transacción
Cuando una transacción no pudo ser completada el
servidor efectúa un rollback de la transacción incompleta,
removiendo toda evidencia de que comenzó alguna vez.
Procesamiento de Transacciones
Propiedades ACID:
 Atomicidad: se realizan todas las operaciones de la transacción, o
                                    p                           ,
 ninguna de ellas. (Gestor de Transacciones)
 Consistencia: La ejecución de la transacción conserva la
 consistencia de la BD. La BD debe ser consistente antes y después de
 una transacción ( programador de la aplicación)
 Aislamiento (Isolation): Aunque se ejecuten concurrentemente,
 cada transacción no afecta a ninguna otra, es decir ignora al resto
 qu
 que esté ejecutándose y no se puede ver a una transacción en su
           j u á do        o    pu d        u a a a ó             u
 estado intermedio. (Control de Concurrencia)
 Durabilidad: Tras la finalización exitosa de una transacción, los
 cambios en la BD permanecen, incluso si hay fallos en el sistema
 (Gestor de recuperaciones)
Procesamiento de
  Transacciones
  “Transferir 1000 dól
  “     f          dólares de la cuenta R a la
                           d l              l
  cuenta P.”
  Leer
  Lee el registro de la cuenta R
            egist o       c enta
  Actualizar el registro de la cuenta R , restándole 1000
  dólares
  Leer el registro de la cuenta P
  Actualizar el registro de la cuenta P, sumándole 1000
  dólares
Si fallara el último paso (p.ej. debido a una interrupción de la
   corriente eléctrica) y los previos se hubieran ejecutado la
                                                   ejecutado,
                     BD perdería consistencia.
Procesamiento de Transacciones
 2 retiros de 20 y 30
     Transacción A
              ó                 Transacción B
                                         ó
Begin transaction
Leer R ($250)
L
                           Begin transaction




                                                      tiemp
                           esperar




                                                          po
Actualizar R=R-20 ($230)   esperar
Commit                     esperar
                           Traer R ($230)
                           Actualizar R=R-30 ($200)
                                             ($   )
                           commit
Procesamiento de
   Transacciones
   T       i
                Incluyendo transferencia de R a P

    Transacción A                    Transacción B
Leer R ($250)
       ($    )
Actualizar R= R-20 ($230)




                                                             tiemp
                                Leer R ($230)




                                                                 po
Leer P ($600)
                                Actualizar R=R-30 ($200)
Actualizar P = P+20 ($620)
                                Leer P ($620)
                                Actualizar P = P+30 ($650)
Procesamiento de
 Transacciones

• El componente del DBMS encargado de lograr la
  culminación efectiva de las transacciones es conocido
  como el Subsistema de Recuperación
      CO
      COMMIT
     ROLLBACK
Transición de Estados de una
  Transacción
  T ansacción


Read/write
                              Parcialmente
                                             Commit
                               confirmada
             endTransaction                           Confirmada


                              Abort
   Activa

                                                      Terminada
                Abort
                                Fallida
Concurrencia: lanificadores
 Conc encia Pl ifi d

   Sean n transacciones, T1, T2, ..., Tn.
   Las llamadas a la BD de Ti son ci1, ci2, ..., ciimii
   Un planificador para T1, T2, ..., Tn es una disposición lineal
   de las cijj que preserva el orden de las llamadas dentro de
   cualquier transacción dada.
I.E. si
           d1, d2, ... es un planificador y
                             planificador,
           ds = cij, dt = cik, con j < k,
                 s<t
Concurrencia: Planificadores
                                                     C11: l R
                                                          leer

           T1                          T2            C12: actualizar R
 C11:   leer R       C21:         leer R             C21: leer R
 C12:   actualizar R C22:         actualizar R       C13: leer P
 C13:   leer P       C23:         leer P             C22: actualizar R
 C14:   actualizar P C24:         actualizar P
                                                     C14: actualizar P
                                                     C23: leer P
        Planificador
Las llamadas a la BD de Ti son ci1, ci2, ..., cimi   C24: actualizar P
Concurrencia: Tipos de Planificadores
 En Serie
   No hay intercalación de las operaciones de las
   transacciones en ejecución: primero T1 y después T2, o
   viceversa
 No en Serie
   Las operaciones de las transacciones en ejecución se
   intercalan de alguna manera
 Seriable
   Equivalente a algún plan en serie de las transacciones
   en ejecución
Concurrencia
- Planificador Seriable -

Un planificador para transacciones T1, T2, ..., Tn es
seriable si existe una permuta (i1, i2, ..., in) de (1, 2, ...,
                        p         (        ,        ( , , ,
n), tal que el estado de la BD que resulte de efectuar las
llamadas de BD en la secuencia del planificador es el
mismo que el alcanzado si se corren las transacciones en
aislamiento en el orden Ti1, Ti2, ..., Tin
El resultado será equivalente al de la ejecución en algún
orden arbitrario, escogido por la BD.
Concurrencia
 - Prueba de Seriabilidad por Conflictos -

Dos operaciones de un plan están en
conflicto si cumplen las siguientes
                p          g
condiciones:
  1.   Pertenecen a diferentes transacciones
  2.   Tienen acceso al mismo elemento
  3.
  3    Al menos una de las operaciones es de
       escritura
Concurrencia
- Prueba de Seriabilidad por Conflictos -
Crear un nodo Ti en el Grafo de Precedencia, para cada
transacción en el plan P
Cuando Tj ejecuta una orden read(X) después que Ti ejecute una
orden write(X) crear un arco (Ti Tj) en el grafo
Cuando Tj ejecuta una orden write(X) después que Ti ejecute una
orden read(X) crear un arco (Ti Tj) en el grafo
   d      d(X)                                l   f
Cuando Tj ejecuta una orden write(X) después que Ti ejecute una
orden write(X) crear un arco (Ti Tj) en el grafo
El plan P es serializable si y solo si el grafo de precedencia no
tiene ciclos
Planes y sus Grafos de
         Precedencia
            T1           T2
                                         PLAN A
         Read X
         X:= X-N
         Write X                    T1                  T2
tiempo   Read Y
         Y:= Y + N                           X
         Write Y
                     Read X      En T1 se transfieren reservas
                     X:= X + M   de un avión a otro
                     Write X
                                 En
                                 E T2 simplemente se reserva
                                        i l       t
                                 asientos en un avión
Planes y sus Grafos de
       Precedencia
          T1           T2
                                    PLAN B
                   Read X             X
                   X:= X + M
                   Write X
tiempo Read X                  T1            T2
       X:= X-N
       Write X
       Read
       R dY
       Y:= Y + N
       Write Y
Planes y sus Grafos de
         Precedencia
             T1          T2
                                         PLAN C
         Read X                                X
         X:= X-N
                     Read X
tiempo               X:= X + M     T1                      T2
         Write X                               X
         Read Y
                     Write X ***
         Y:= Y + N                 ***ACTUALIZACION
         Write Y                   PERDIDA: El valor de X
                                   es incorrecto, el numero de
                                   asientos es inconsitente
Planes y sus Grafos de
         Precedencia
            T1           T2
                                      PLAN D
         Read X
         X:= X-N
         Write X
tiempo               Read X
                      ead        T1            T2
                     X:= X + M
                                        X
                     Write X
         Read
         R dY
         Y:= Y + N
         Write Y
Control de Concurrencia

Métodos estándar para garantizar la seriabilidad:

            Bloqueos
            Marcas de Tiempo
            Multiversión
            Validación o Certificación
            (Protocolos optimistas)
Control de Concurrencia: Bloqueo

El bloqueo asegura que un objeto que va a ser utilizado por una transacción no
   cambie de manera impredecible, si esto puede afectar la confiabilidad del
   resultado. El efecto del bloqueo es no permitir que otras transacciones
   tengan acceso al objeto.
Bloqueo Exclusivo:
Si una Transacción A tiene un bloqueo X sobre el objeto R cualquier otra
                                                         R,
   Transacción B que solicite un bloqueo (de cualquier tipo) sobre R, entrará en
   un estado de espera, hasta que A libere el bloqueo sobre R.
Bloqueo Compartido:
Si una Transacción A tiene un bloqueo S sobre el objeto R:
                 ó
Si otra Transacción B solicita un bloqueo X sobre R, entrará en un estado de
   espera, hasta que A, libere a R.
Si en cambio B, solicita un bloqueo S, su solicitud será concedida

X: escritura, S:lectura
Control de Concurrencia

Bloqueo y operaciones sobre Registros

                   A        X            S
          B
               X            N            N
               S            N            S




N: Hay conflicto, la transacción B entra en espera.
S: Compatibilidad, se concede el bloqueo solicitado por B
Protocolos de Bloqueo

Reglas que indican el momento en que una transacción
puede bloquear o desbloquear un elemento de la BD.
Si Ti solicita un bloqueo de un tipo M sobre un elemento
R, se le concede si:
       No hay otra transacción con bloqueo sobre R que
       esté en conflicto con M
       No hay otra transacción esperando un bloqueo
       sobre R, solicitado antes que T
    Evita el fenómeno de inanición para Ti
Protocolos de Bloqueo

Bloqueo de dos fases:
  Fase de Crecimiento: una transacción puede obtener
  bloqueos pero no puede liberarlos ni rebajar su
  intensidad
  Fase de decrecimiento: una transacción puede liberar
  bloqueos pero no puede obtener ninguno nuevo.
Si se retienen los bloqueos hasta completar la transacción
   se conoce como bloqueo estricto de dos fases
Control de Concurrencia
    Bloqueo Mutuo, Punto Muerto o Interbloqueo :


     Transacción A                 Transacción B
Solicita bloqueo X sobre R1
- concedido -
                              Solicita bloqueo X sobre R2
                                          q




                                                            tiempo
                                                            t
                              - concedido -
Solicita bloqueo X sobre R2
Esperar                     Solicita bloqueo X sobre R1
esperar                     esperar
esperar                     esperar
--------                    --------
Control de Concurrencia


El problema de la “lectura sucia”.

     Transacción A
              ó                      Transacción B
                                              ó
Leer R ($250)
Actualizar R= R-20 ($230)




                                                          tiempo
                               Leer R ($230)




                                                               o
rollback
                               Actualizar R=R-30 ($200)
                               commiti
Solución de bloqueo para la “lectura sucia”
       Transacción A
               ió                   Transacción B
                                            ió
Obtener bloqueo S para R -
concedido
Leer R ($250)
Obtener bloqueo X para R –
concedido




                                                                  tiempo
                                                                  t
Actualizar R= R-20 ($230)
                             Obtener bloqueo S para R – esperar
rollback                     - esperar -
                             Bloqueo concedido
                             Leer R ($250)
                             L
                             Obtener bloqueo X para R -
                             concedido
                             Actualizar R=R-30 ($220)
                             commit
Control de Concurrencia


El problema de la “lectura irrepetible”

    Transacción A
    T       ió                  Transacción B
                                T       ió
Leer R ($250)
                            Leer R ($250)




                                                       tiempo
                            Actualizar R=R-30 ($220)
                            commitit
Leer R ($220)
¡interferencia detectada!
Solución de bloqueo para la “lectura irrepetible”
                     q    p                    p

         Transacción A                  Transacción B
Obtener bloqueo S para R –
concedido
Leer R ($250)
       ($   )
                               Obtener bloqueo S para R –




                                                                    tiemp
                               concedido
                               Leer R ($250)




                                                                        po
                               Obtener bloqueo X para R - esperar
Leer R ($250)                  esperar
(lectura repetible)
                               esperar
...............                ....................
Control de Concurrencia
   El problema de la aparición de “fantasmas”,
   resumen incompleto o análisis inconsistente
    Transacción 1            Transacción 2
Traer C1(40):Suma=40
        (40):Suma 40
Traer C2(50):Suma=90
                        Traer C3(30)




                                             tiempo
                        Actualizar C3(20)
                        Traer C1(40)
                        Actualizar C1(50)
                        A t li
                        COMMIT
Traer C3(20):Suma=110
Solución de bloqueo para el problema de la
 aparición d “f
     i ió de “fantasmas”
                       ”

         Transacción 1                   Transacción 2
Obtener bloqueo S sobre C -
concedido
Traer C1(40):Suma=40
Traer C2(50):Suma=90
                              Obtener bloqueo X sobre C - esperar
Traer C3(30):Suma=120         Esperar
commit                        esperar
                              Conceder bloqueo
                              ..............
                              ..............
Control de Concurrencia

El bloqueo estricto de dos fases evita los problemas de lectura sucia,
    lectura irrepetible y aparición de fantasmas, pero no evita el
    punto muerto o iinterbloqueo
                         bl

Niveles de Aislamiento:
Especifican la cantidad de interferencia tolerable:
     Lectura no Confirmada: Operación sin bloqueos y 3 violaciones
     Lectura Confirmada: Bloqueo X para actualizaciones, sin
        bloqueo S. Evita lectura sucia
                  S
     Lectura Repetible: Bloqueos X y S (sobre objetos individuales).
        Evita lectura sucia y no repetibles.
     Serializable: Bloquea criterios de búsqueda que evitan lecturas
                        q                     q     q
        sucias, lecturas no repetibles ni fantasmas
Nivel de Aislamiento /
 Interferencia
  Nivel de              Situación de Interferencia
Aislamiento          Lectura sucia
                     L t        i    Lectura no
                                     L t          Fantasma
                                                  F t
                                      repetible
   Lectura no           Posible       Posible      Posible
   registrada
Lectura registrada    No posible      Posible      Posible

Lectura repetible
L t         tibl      No
                      N posible
                           ibl       No
                                     N posible
                                          ibl      Posible
                                                   P ibl

     Seriable         No posible     No posible   No posible
Seriabilidad
   S i bilid d por marcas temporales
                          t      l

Asegura la secuencialidad asignando un orden entre
   todo par de transacciones:
   Por el reloj del sistema
   Usando un contador lógico
Si la marca de MT(Ti) es menor que MT(Tj), asegura
   que la planificación a ejecutar equivale a una
   secuencial, con Ti antes que Tj
            i l           t
        Asegura la ausencia de interbloqueos
Seriabilidad
   S i bilid d por marcas temporales
                          t      l

Se asocia a cada tupla dos valores de marca temporal:
tu es la marca temporal de la transacción más reciente
                   p
   que ha actualizado o creado la tupla
tr es la marca temporal de la transacción más reciente
   que h observado l tupla
        ha b      d la     l
             Obsérvese que siempre tu ≤ tr
  (una transacción siempre observa la tupla antes de
                      actualizarla)
Seriabilidad
   S i bilid d por marcas temporales
                          t      l

Si la transacción t solicita leer una tupla:
Si t >= tu    se ejecuta la operación leer y se actualiza
  tr por max (t, tr )
Si t < tu    una transacción más reciente (posterior en
  el tiempo) ya escribió el valor de la tupla, antes de
  que t tuviera oportunidad de leerla. T se retrocede y
  vuelve a iniciarse con una marca t’ más grande.
       l    i i i                         á      d
Seriabilidad
     S i bilid d por marcas temporales
                            t      l

Si t solicita actualizar una tupla:
Si t ≥ tr     se ejecuta la actualización, dado que ninguna
  transacción más reciente que t ha leído siquiera la tupla
Si t < tr ó t < tu    se retrocede (rollback) la transacción t y se
  reinicia con una marca temporal mayor, porque alguna
  transacción posterior a t ya leyó o escribió la tupla antes de
  que t pueda hacerlo
   Si un rollback comprende la reinstalación de valores p
                     p                                  previos, el
                                                               ,
   rollback debe tener una marca de hora nueva, que actualizará tu y
                       tr de la tupla reinstalada
Prevención de Interbloqueos
 P      ió d I t bl

Evitar esperas cíclicas, ordenando las peticiones de
bloqueo o exigiendo que todos los bloqueos se
adquieran juntos
Realizar retrocesos de las transacciones en lugar de
                                              g
esperar un bloqueo, si éste puede llevar
potencialmente a un interbloqueo.
Prevención de interbloqueos
     P      ió d i t bl

Esperar o Morir
Si Ti solicita un elemento que posee Tj, Ti puede esperar sólo si Ti < Tj (Ti es
más antigua que Tj) en otro caso Ti se retrocede (muere)
Herir o Esperar
Si Ti solicita un elemento que posee Tj, Ti espera sólo si Ti > Tj (Ti es más
reciente que Tj); en otro caso Tj se retrocede (Ti hiere a Tj).
No-espera
Si Ti no puede obtener un bloqueo se aborta de inmediato y se reinicia
después de un cierto lapso sin comprobar si ocurriría o no un bloqueo mortal
Espera Cautelosa
E        C t l
Si Ti solicita un elemento que posee Tj, Ti espera sólo si Tj no está detenida
(no está esperando que se libere ningún otro elemento bloqueado); en caso
contrario Tj aborta.
              aborta
Recuperación
            ó
               Transaction Log
               T       i L
Es una tabla del catálogo de la BD. Contiene una
lista
li t secuencial de todas las modificaciones a cada
              i ld t d l        difi i          d
objeto dentro de la BD (bitácora), así como también
toda la información necesaria para mantener la
integridad de los datos.
Es compartido por todos los usuarios de una BD
                                             BD.
Los datos se escriben primero en esta tabla y luego
en las tablas correspondientes de la BD.
Transaction Log
   Programa de
                       Se modifican
    Aplicación         los datos
                 (a)    Transaction
                                           (a)   (b)
                            Log
                 (b)
     DBMS


                                      (a) ante-imagen
     Acceso                           (b) post-imagen
                   Actualización
                   de los datos
    Base de
     Datos
Recuperación
Transaction Log con actualizaciones diferidas:
 Cuando comienza una transacción T se registra su inicio
                                            g
 en el log
 Durante la transacción, la escritura de un nuevo valor para
 cualquier registro provoca la escritura de un registro en el
 log.
 Cuando todas las acciones de T se ejecutan exitosamente,
                                       j                     ,
 se escribe el registro COMMIT en el log
 Por último, se realizan las operaciones de escritura en la
 BD desde los registros del log
Recuperación
Recuperación con actualizaciones diferidas:
Cuando ocurre un fallo, el DBMS examina el log para
                         ,                          gp
  determinar las transacciones que deben rehacerse
  (REDO):
  Si el log registra el inicio y el fin de la transacción T (hasta
  el commit), significa que la transacción T se debe volver a
  aplicar.
  Si no figura el commit en el log, la transacción T no se
  completó, y al reiniciar no es necesario tomar acción, pues
  la BD permanece consistente T tiene que reiniciarse
                      consistente.                reiniciarse.
Recuperación
Transaction Log con actualizaciones
  inmediatas:
1° Cuando comienza una transacción T se registra su inicio
  en el log
          g
2° Durante la transacción, la escritura de un nuevo valor
  para cualquier registro provoca la escritura de un registro
  en el log (primero) y luego en la BD
      ll ( i        ) l           l
3° Cuando todas las acciones de T se ejecutan exitosamente,
  se esc be e registro CO
     escribe el eg st o COMMIT e e log
                                  en el og
Recuperación
Recuperación con actualizaciones inmediatas:
Cuando ocurre un fallo, el DBMS examina el log para
  determinar las transacciones que deben rehacerse (REDO)
  o deshacerse (UNDO):
  Si el log registra el inicio y el fin de la transacción T (hasta
  el commit), significa que la transacción T se debe volver a
  aplicar (REDO)
  Si no figura el commit en el log, la transacción T no se
  completó, y al reiniciar es necesario restablecer los valores
  antiguos de los datos (UNDO). T tiene que reiniciarse.
Recuperación de la BD

Progresiva: Se restaura el último backup y se aplican
luego todas las transacciones válidas desde la bitácora,
aplicando las imágenes posteriores (post-imágenes).

Regresiva: Se deshacen los cambios efectuados por
transacciones erróneas o procesadas parcialmente,
mediante la aplicación de las imágenes anteriores. Las
transacciones válidas que estaban en proceso al momento
de la falla se vuelven a iniciar.
Recuperación

Recuperación del Sistema y de los Medios de
 Almacenamiento
   • Fallas del Sistema (por ejemplo corte del fluido eléctrico), las cuales
     afectan a todas las transacciones que se están efectuando pero no dañan
     los datos físicos en la base de datos.
   • Fallas de los medios de almacenamiento (por ejemplo pérdida de
     direcciones o pistas dañadas), que sí causan daño a la base de datos o a
     una porción de ella.
   • Falla computador (error de hardware o de software);
   • Error en transacción (división entre 0, overflow, malos parámetros, etc.);
   • Catástrofes.
Recuperación
      p
                    - Fallas del Sistema -


Se pierde el contenido de la memoria principal y de las áreas de
almacenamiento temporal. Por lo tanto, se perderá el estado preciso de la
transacción que se está ejecutando y no podrá ser completada con éxito.
Por este motivo será preciso anularla (retroceder) cuando se reinicie el
                     p                 (         )
sistema (aplicación de los registros ante-imagen desde el Log de
transacciones).

Para reducir este proceso, se introducen periódicamente Puntos de
Revisión o Verificación.
Recuperación
                    Fallas del Sistema

Punto de Revisión (checkpoint):
• Detiene el inicio de nuevas transacciones
• Escribe todos los registros del log de transacciones que radican
  en la memoria volátil (los buffers de la memoria principal), en
  almacenamiento estable (en disco)
• Graba físicamente un registro de Punto de Revisión especial en
  la bitácora física. Este incluye una lista de todas las
              física
  transacciones en ejecución en ese momento.
• Reactiva las transacciones en ejecución
Recuperación
                              tv                 tf
           T1
           T2
           T3
           T4
           T5
                           Punto de           Falla del
                          verificación        Sistema



• Deberá anularse las transacciones T3 y T5 (UNDO)
• D b á aplicarse nuevamente las transacciones T2 y T4 (REDO)
  Deberá li                   t l t         i
• La transacción T1 no interviene en el proceso de reinicio, porque
  sus modificaciones ya estaban grabadas en la BD en el momento
                      y          g
  tv, como parte del proceso de punto de revisión.
Recuperación
  Fallas de los Medios de Almacenamiento

Se pierden direcciones del disco o se producen averías en las
p
pistas o falla el controlador del disco. La consecuencia es la
destrucción física de una porción de la base de datos.
La recuperación de una falla semejante, implica en esencia,
cargar d nuevo o restaurar (restore) la base de datos a partir de
       de              t      ( t )l b         d d t        ti d
una copia de respaldo (backup) y después utilizar el transaction
log, para realizar de nuevo todas las transacciones terminadas
desde que se efectuó este último backup (aplicación de los
registros post-imagen)
Seguridad en Bases de Datos
Seguridad en la BD implica asegurar que los usuarios
están autorizados para llevar a cabo las tareas que tratan de
realizar
   Subsistema de Seguridad del DBMS
   Aspectos éticos y legales relativos al derecho de acceso a cierta
   información
   Políticas gubernamentales o institucionales relacionadas con la
   clase de información que no debe estar disponible para el público,
   como la clasificación de crédito o el historial médico: la empresa
   decide ié
   d id quiénes tienen acceso y a qué.
                   i                    é
   Identificación de niveles de seguridad y de clasificar los datos y
   usuarios según estos niveles: top secret, secreto, confidencial, no
   confidencial
Seguridad en el DBMS

Mecanismos de Seguridad:
  Discrecionales: conceden privilegios a los usuarios para
  acceder a elementos específicos de la BD en un
  determinado modo (lectura, escritura o actualización)
  Obligatorios: imponen seguridad de múltiples niveles
  Obli t i i                 id d d úl i l      i l
  clasificando los datos y los usuarios. Permitir a los
  usuarios de cierto nivel acceder a los elementos de
  información de su mismo nivel o de niveles inferiores
La seguridad de la BD y el
DBA
Creación de Cuentas
  Para crear cuentas y contraseñas para un usuario o
  grupo con el fin de que puedan acceder al DBMS
Concesión de Privilegios
                    g
  Para conceder (GRANT) ciertos privilegios
  (authority) a ciertas cuentas
Revocación de privilegios (REVOKE)
        ó
Asignación de niveles de seguridad
  Asigna cuentas de usuario al nivel de clasificación
  de seguridad apropiado
Protección de Acceso y Auditoría
de la
d l BD

 Cuando un usuario entra (log in), el DBMS puede
 registrar su nombre y asociarlo al terminal de donde
 se conectó. Todas las operaciones sobre la BD de ese
 terminal se asocian a la cuenta del usuario hasta que
                                                   q
 éste salga del sistema.
 Se puede modificar el log de transacciones (diario del
 sistema), ampliando las entradas para incluir la cuenta
  it     )      li d l       t d        i l i l        t
 de usuario y el terminal desde donde se aplicó cada
 operación. El diario del sistema se denomina en esos
   p
 casos diario de auditoría
Privilegios Discrecionales

 A Nivel de Cuenta
   Se asignan a cada cuenta de usuario,
         g                            ,
   independientemente de las relaciones de la BD
   Ejemplos: CREATE, ALTER, DROP, MODIFY, SELECT
 A Nivel de Relación (o tabla):
   Controla privilegios para acceder a cada relación
   individual de la base de datos o a columnas
   concretas de ellas.
   Ejemplos: SELECT (lectura), MODIFY (update, insert,
     j p               (      ),          ( p    ,   ,
   delete)
Seguridad – Consideraciones
Adicionales

Controles Físicos: Límite de accesos a la sala de
máquinas (servidores).
          (servidores)
Problemas Operativos: Mantenimiento de los passwords,
su confidencialidad y tiempo de validez.
                           p
Controles del equipo: Claves para protección de áreas de
almacenamiento.
Seguridad de Sistema Operativo: Mantenimiento de los
      d dd                                        d l
espacios de almacenamiento, compactación.
Bibliografia
 Fundamentos de Sistemas de Base de
 Datos. Ramez Elmasri, Shamkant
 Navathe

Mais conteúdo relacionado

Semelhante a Transacciones y seguridad

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
 
Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Luis Kyo
 
Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)ednaru
 
Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)ednaru
 
Administración de Bases de Datos - Concurrencia
Administración de Bases de Datos - ConcurrenciaAdministración de Bases de Datos - Concurrencia
Administración de Bases de Datos - Concurrenciaednaru
 

Semelhante a Transacciones y seguridad (8)

Abd clase 8
Abd clase 8Abd clase 8
Abd clase 8
 
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
 
Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010Clase practica de_transacciones_2_c2010
Clase practica de_transacciones_2_c2010
 
Concurrencias BD
Concurrencias BDConcurrencias BD
Concurrencias BD
 
Instrucciones avr
Instrucciones avrInstrucciones avr
Instrucciones avr
 
Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)
 
Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)Concurrencia en Bases de Datos (I)
Concurrencia en Bases de Datos (I)
 
Administración de Bases de Datos - Concurrencia
Administración de Bases de Datos - ConcurrenciaAdministración de Bases de Datos - Concurrencia
Administración de Bases de Datos - Concurrencia
 

Mais de Luis Jherry

Suscripciones de cable
Suscripciones de cableSuscripciones de cable
Suscripciones de cableLuis Jherry
 
Sistema de organización de eventos
Sistema de organización de eventosSistema de organización de eventos
Sistema de organización de eventosLuis Jherry
 
Sistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesSistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesLuis Jherry
 
Selección de personal
Selección de personalSelección de personal
Selección de personalLuis Jherry
 
Planificacion mensual en una industria medico
Planificacion mensual en una industria medicoPlanificacion mensual en una industria medico
Planificacion mensual en una industria medicoLuis Jherry
 
Pedidos en feria
Pedidos en feriaPedidos en feria
Pedidos en feriaLuis Jherry
 
Paquete turístico
Paquete turísticoPaquete turístico
Paquete turísticoLuis Jherry
 
Organización de congresos
Organización de congresosOrganización de congresos
Organización de congresosLuis Jherry
 
Obras de construcción
Obras de construcciónObras de construcción
Obras de construcciónLuis Jherry
 
Instituto de capacitación en ti
Instituto de capacitación en tiInstituto de capacitación en ti
Instituto de capacitación en tiLuis Jherry
 
Explotaciones mineras
Explotaciones minerasExplotaciones mineras
Explotaciones minerasLuis Jherry
 

Mais de Luis Jherry (20)

Tienda de ropa
Tienda de ropaTienda de ropa
Tienda de ropa
 
Telefonos
TelefonosTelefonos
Telefonos
 
Suscripciones
SuscripcionesSuscripciones
Suscripciones
 
Suscripciones de cable
Suscripciones de cableSuscripciones de cable
Suscripciones de cable
 
Software s
Software sSoftware s
Software s
 
Sistema escolar
Sistema escolarSistema escolar
Sistema escolar
 
Sistema de organización de eventos
Sistema de organización de eventosSistema de organización de eventos
Sistema de organización de eventos
 
Sistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renalesSistema de control y seguimiento de trasplantes renales
Sistema de control y seguimiento de trasplantes renales
 
Selección de personal
Selección de personalSelección de personal
Selección de personal
 
Planificacion mensual en una industria medico
Planificacion mensual en una industria medicoPlanificacion mensual en una industria medico
Planificacion mensual en una industria medico
 
Pedidos en feria
Pedidos en feriaPedidos en feria
Pedidos en feria
 
Paquete turístico
Paquete turísticoPaquete turístico
Paquete turístico
 
Organización de congresos
Organización de congresosOrganización de congresos
Organización de congresos
 
Obras de construcción
Obras de construcciónObras de construcción
Obras de construcción
 
Museo
MuseoMuseo
Museo
 
Instituto de capacitación en ti
Instituto de capacitación en tiInstituto de capacitación en ti
Instituto de capacitación en ti
 
Hostal
HostalHostal
Hostal
 
Hostal ii
Hostal iiHostal ii
Hostal ii
 
Gimnasio
GimnasioGimnasio
Gimnasio
 
Explotaciones mineras
Explotaciones minerasExplotaciones mineras
Explotaciones mineras
 

Último

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 

Último (20)

ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 

Transacciones y seguridad

  • 1. Base de Datos: PROCESAMIENTO DE TRANSACCIONES Y SEGURIDAD EN LAS BD Profesor: MSC. MSC Luis Serna Jherry
  • 2. Objetivos del Día de Hoy Concurrencia Recuperación Seguridad
  • 3. Procesamiento de Transacciones Transacción A Transacción B Traer R ($250) tiempo t Traer R ($250) Actualizar R=R-20 ($230) A li R R 20 Actualizar R=R-30 ($220) “El problema de la modificación perdida”
  • 4. Procesamiento de Transacciones Para mantener la integridad de la base de datos en ambientes multiusuario, el sistema , relacional proporciona: Facilidades para el Control de Transacciones Mecanismos de Seguridad para el control de concurrencias Sistema de registro y recuperación para restaurar la base de datos después de una falla del sistema.
  • 5. Procesamiento de Transacciones Transacción Unidad lógica de trabajo (LUW) o procesamiento. Debe ser t t l totalmente completada o no realizada en absoluto. t l t d li d b l t Delimitado por declaraciones (o llamadas a función) de la forma inicio de transacción y fin de transacción La transacción consiste en todas las operaciones que se ejecutan entre el inicio y el final de la transacción Cuando una transacción no pudo ser completada el servidor efectúa un rollback de la transacción incompleta, removiendo toda evidencia de que comenzó alguna vez.
  • 6. Procesamiento de Transacciones Propiedades ACID: Atomicidad: se realizan todas las operaciones de la transacción, o p , ninguna de ellas. (Gestor de Transacciones) Consistencia: La ejecución de la transacción conserva la consistencia de la BD. La BD debe ser consistente antes y después de una transacción ( programador de la aplicación) Aislamiento (Isolation): Aunque se ejecuten concurrentemente, cada transacción no afecta a ninguna otra, es decir ignora al resto qu que esté ejecutándose y no se puede ver a una transacción en su j u á do o pu d u a a a ó u estado intermedio. (Control de Concurrencia) Durabilidad: Tras la finalización exitosa de una transacción, los cambios en la BD permanecen, incluso si hay fallos en el sistema (Gestor de recuperaciones)
  • 7. Procesamiento de Transacciones “Transferir 1000 dól “ f dólares de la cuenta R a la d l l cuenta P.” Leer Lee el registro de la cuenta R egist o c enta Actualizar el registro de la cuenta R , restándole 1000 dólares Leer el registro de la cuenta P Actualizar el registro de la cuenta P, sumándole 1000 dólares Si fallara el último paso (p.ej. debido a una interrupción de la corriente eléctrica) y los previos se hubieran ejecutado la ejecutado, BD perdería consistencia.
  • 8. Procesamiento de Transacciones 2 retiros de 20 y 30 Transacción A ó Transacción B ó Begin transaction Leer R ($250) L Begin transaction tiemp esperar po Actualizar R=R-20 ($230) esperar Commit esperar Traer R ($230) Actualizar R=R-30 ($200) ($ ) commit
  • 9. Procesamiento de Transacciones T i Incluyendo transferencia de R a P Transacción A Transacción B Leer R ($250) ($ ) Actualizar R= R-20 ($230) tiemp Leer R ($230) po Leer P ($600) Actualizar R=R-30 ($200) Actualizar P = P+20 ($620) Leer P ($620) Actualizar P = P+30 ($650)
  • 10. Procesamiento de Transacciones • El componente del DBMS encargado de lograr la culminación efectiva de las transacciones es conocido como el Subsistema de Recuperación CO COMMIT ROLLBACK
  • 11. Transición de Estados de una Transacción T ansacción Read/write Parcialmente Commit confirmada endTransaction Confirmada Abort Activa Terminada Abort Fallida
  • 12. Concurrencia: lanificadores Conc encia Pl ifi d Sean n transacciones, T1, T2, ..., Tn. Las llamadas a la BD de Ti son ci1, ci2, ..., ciimii Un planificador para T1, T2, ..., Tn es una disposición lineal de las cijj que preserva el orden de las llamadas dentro de cualquier transacción dada. I.E. si d1, d2, ... es un planificador y planificador, ds = cij, dt = cik, con j < k, s<t
  • 13. Concurrencia: Planificadores C11: l R leer T1 T2 C12: actualizar R C11: leer R C21: leer R C21: leer R C12: actualizar R C22: actualizar R C13: leer P C13: leer P C23: leer P C22: actualizar R C14: actualizar P C24: actualizar P C14: actualizar P C23: leer P Planificador Las llamadas a la BD de Ti son ci1, ci2, ..., cimi C24: actualizar P
  • 14. Concurrencia: Tipos de Planificadores En Serie No hay intercalación de las operaciones de las transacciones en ejecución: primero T1 y después T2, o viceversa No en Serie Las operaciones de las transacciones en ejecución se intercalan de alguna manera Seriable Equivalente a algún plan en serie de las transacciones en ejecución
  • 15. Concurrencia - Planificador Seriable - Un planificador para transacciones T1, T2, ..., Tn es seriable si existe una permuta (i1, i2, ..., in) de (1, 2, ..., p ( , ( , , , n), tal que el estado de la BD que resulte de efectuar las llamadas de BD en la secuencia del planificador es el mismo que el alcanzado si se corren las transacciones en aislamiento en el orden Ti1, Ti2, ..., Tin El resultado será equivalente al de la ejecución en algún orden arbitrario, escogido por la BD.
  • 16. Concurrencia - Prueba de Seriabilidad por Conflictos - Dos operaciones de un plan están en conflicto si cumplen las siguientes p g condiciones: 1. Pertenecen a diferentes transacciones 2. Tienen acceso al mismo elemento 3. 3 Al menos una de las operaciones es de escritura
  • 17. Concurrencia - Prueba de Seriabilidad por Conflictos - Crear un nodo Ti en el Grafo de Precedencia, para cada transacción en el plan P Cuando Tj ejecuta una orden read(X) después que Ti ejecute una orden write(X) crear un arco (Ti Tj) en el grafo Cuando Tj ejecuta una orden write(X) después que Ti ejecute una orden read(X) crear un arco (Ti Tj) en el grafo d d(X) l f Cuando Tj ejecuta una orden write(X) después que Ti ejecute una orden write(X) crear un arco (Ti Tj) en el grafo El plan P es serializable si y solo si el grafo de precedencia no tiene ciclos
  • 18. Planes y sus Grafos de Precedencia T1 T2 PLAN A Read X X:= X-N Write X T1 T2 tiempo Read Y Y:= Y + N X Write Y Read X En T1 se transfieren reservas X:= X + M de un avión a otro Write X En E T2 simplemente se reserva i l t asientos en un avión
  • 19. Planes y sus Grafos de Precedencia T1 T2 PLAN B Read X X X:= X + M Write X tiempo Read X T1 T2 X:= X-N Write X Read R dY Y:= Y + N Write Y
  • 20. Planes y sus Grafos de Precedencia T1 T2 PLAN C Read X X X:= X-N Read X tiempo X:= X + M T1 T2 Write X X Read Y Write X *** Y:= Y + N ***ACTUALIZACION Write Y PERDIDA: El valor de X es incorrecto, el numero de asientos es inconsitente
  • 21. Planes y sus Grafos de Precedencia T1 T2 PLAN D Read X X:= X-N Write X tiempo Read X ead T1 T2 X:= X + M X Write X Read R dY Y:= Y + N Write Y
  • 22. Control de Concurrencia Métodos estándar para garantizar la seriabilidad: Bloqueos Marcas de Tiempo Multiversión Validación o Certificación (Protocolos optimistas)
  • 23. Control de Concurrencia: Bloqueo El bloqueo asegura que un objeto que va a ser utilizado por una transacción no cambie de manera impredecible, si esto puede afectar la confiabilidad del resultado. El efecto del bloqueo es no permitir que otras transacciones tengan acceso al objeto. Bloqueo Exclusivo: Si una Transacción A tiene un bloqueo X sobre el objeto R cualquier otra R, Transacción B que solicite un bloqueo (de cualquier tipo) sobre R, entrará en un estado de espera, hasta que A libere el bloqueo sobre R. Bloqueo Compartido: Si una Transacción A tiene un bloqueo S sobre el objeto R: ó Si otra Transacción B solicita un bloqueo X sobre R, entrará en un estado de espera, hasta que A, libere a R. Si en cambio B, solicita un bloqueo S, su solicitud será concedida X: escritura, S:lectura
  • 24. Control de Concurrencia Bloqueo y operaciones sobre Registros A X S B X N N S N S N: Hay conflicto, la transacción B entra en espera. S: Compatibilidad, se concede el bloqueo solicitado por B
  • 25. Protocolos de Bloqueo Reglas que indican el momento en que una transacción puede bloquear o desbloquear un elemento de la BD. Si Ti solicita un bloqueo de un tipo M sobre un elemento R, se le concede si: No hay otra transacción con bloqueo sobre R que esté en conflicto con M No hay otra transacción esperando un bloqueo sobre R, solicitado antes que T Evita el fenómeno de inanición para Ti
  • 26. Protocolos de Bloqueo Bloqueo de dos fases: Fase de Crecimiento: una transacción puede obtener bloqueos pero no puede liberarlos ni rebajar su intensidad Fase de decrecimiento: una transacción puede liberar bloqueos pero no puede obtener ninguno nuevo. Si se retienen los bloqueos hasta completar la transacción se conoce como bloqueo estricto de dos fases
  • 27. Control de Concurrencia Bloqueo Mutuo, Punto Muerto o Interbloqueo : Transacción A Transacción B Solicita bloqueo X sobre R1 - concedido - Solicita bloqueo X sobre R2 q tiempo t - concedido - Solicita bloqueo X sobre R2 Esperar Solicita bloqueo X sobre R1 esperar esperar esperar esperar -------- --------
  • 28. Control de Concurrencia El problema de la “lectura sucia”. Transacción A ó Transacción B ó Leer R ($250) Actualizar R= R-20 ($230) tiempo Leer R ($230) o rollback Actualizar R=R-30 ($200) commiti
  • 29. Solución de bloqueo para la “lectura sucia” Transacción A ió Transacción B ió Obtener bloqueo S para R - concedido Leer R ($250) Obtener bloqueo X para R – concedido tiempo t Actualizar R= R-20 ($230) Obtener bloqueo S para R – esperar rollback - esperar - Bloqueo concedido Leer R ($250) L Obtener bloqueo X para R - concedido Actualizar R=R-30 ($220) commit
  • 30. Control de Concurrencia El problema de la “lectura irrepetible” Transacción A T ió Transacción B T ió Leer R ($250) Leer R ($250) tiempo Actualizar R=R-30 ($220) commitit Leer R ($220) ¡interferencia detectada!
  • 31. Solución de bloqueo para la “lectura irrepetible” q p p Transacción A Transacción B Obtener bloqueo S para R – concedido Leer R ($250) ($ ) Obtener bloqueo S para R – tiemp concedido Leer R ($250) po Obtener bloqueo X para R - esperar Leer R ($250) esperar (lectura repetible) esperar ............... ....................
  • 32. Control de Concurrencia El problema de la aparición de “fantasmas”, resumen incompleto o análisis inconsistente Transacción 1 Transacción 2 Traer C1(40):Suma=40 (40):Suma 40 Traer C2(50):Suma=90 Traer C3(30) tiempo Actualizar C3(20) Traer C1(40) Actualizar C1(50) A t li COMMIT Traer C3(20):Suma=110
  • 33. Solución de bloqueo para el problema de la aparición d “f i ió de “fantasmas” ” Transacción 1 Transacción 2 Obtener bloqueo S sobre C - concedido Traer C1(40):Suma=40 Traer C2(50):Suma=90 Obtener bloqueo X sobre C - esperar Traer C3(30):Suma=120 Esperar commit esperar Conceder bloqueo .............. ..............
  • 34. Control de Concurrencia El bloqueo estricto de dos fases evita los problemas de lectura sucia, lectura irrepetible y aparición de fantasmas, pero no evita el punto muerto o iinterbloqueo bl Niveles de Aislamiento: Especifican la cantidad de interferencia tolerable: Lectura no Confirmada: Operación sin bloqueos y 3 violaciones Lectura Confirmada: Bloqueo X para actualizaciones, sin bloqueo S. Evita lectura sucia S Lectura Repetible: Bloqueos X y S (sobre objetos individuales). Evita lectura sucia y no repetibles. Serializable: Bloquea criterios de búsqueda que evitan lecturas q q q sucias, lecturas no repetibles ni fantasmas
  • 35. Nivel de Aislamiento / Interferencia Nivel de Situación de Interferencia Aislamiento Lectura sucia L t i Lectura no L t Fantasma F t repetible Lectura no Posible Posible Posible registrada Lectura registrada No posible Posible Posible Lectura repetible L t tibl No N posible ibl No N posible ibl Posible P ibl Seriable No posible No posible No posible
  • 36. Seriabilidad S i bilid d por marcas temporales t l Asegura la secuencialidad asignando un orden entre todo par de transacciones: Por el reloj del sistema Usando un contador lógico Si la marca de MT(Ti) es menor que MT(Tj), asegura que la planificación a ejecutar equivale a una secuencial, con Ti antes que Tj i l t Asegura la ausencia de interbloqueos
  • 37. Seriabilidad S i bilid d por marcas temporales t l Se asocia a cada tupla dos valores de marca temporal: tu es la marca temporal de la transacción más reciente p que ha actualizado o creado la tupla tr es la marca temporal de la transacción más reciente que h observado l tupla ha b d la l Obsérvese que siempre tu ≤ tr (una transacción siempre observa la tupla antes de actualizarla)
  • 38. Seriabilidad S i bilid d por marcas temporales t l Si la transacción t solicita leer una tupla: Si t >= tu se ejecuta la operación leer y se actualiza tr por max (t, tr ) Si t < tu una transacción más reciente (posterior en el tiempo) ya escribió el valor de la tupla, antes de que t tuviera oportunidad de leerla. T se retrocede y vuelve a iniciarse con una marca t’ más grande. l i i i á d
  • 39. Seriabilidad S i bilid d por marcas temporales t l Si t solicita actualizar una tupla: Si t ≥ tr se ejecuta la actualización, dado que ninguna transacción más reciente que t ha leído siquiera la tupla Si t < tr ó t < tu se retrocede (rollback) la transacción t y se reinicia con una marca temporal mayor, porque alguna transacción posterior a t ya leyó o escribió la tupla antes de que t pueda hacerlo Si un rollback comprende la reinstalación de valores p p previos, el , rollback debe tener una marca de hora nueva, que actualizará tu y tr de la tupla reinstalada
  • 40. Prevención de Interbloqueos P ió d I t bl Evitar esperas cíclicas, ordenando las peticiones de bloqueo o exigiendo que todos los bloqueos se adquieran juntos Realizar retrocesos de las transacciones en lugar de g esperar un bloqueo, si éste puede llevar potencialmente a un interbloqueo.
  • 41. Prevención de interbloqueos P ió d i t bl Esperar o Morir Si Ti solicita un elemento que posee Tj, Ti puede esperar sólo si Ti < Tj (Ti es más antigua que Tj) en otro caso Ti se retrocede (muere) Herir o Esperar Si Ti solicita un elemento que posee Tj, Ti espera sólo si Ti > Tj (Ti es más reciente que Tj); en otro caso Tj se retrocede (Ti hiere a Tj). No-espera Si Ti no puede obtener un bloqueo se aborta de inmediato y se reinicia después de un cierto lapso sin comprobar si ocurriría o no un bloqueo mortal Espera Cautelosa E C t l Si Ti solicita un elemento que posee Tj, Ti espera sólo si Tj no está detenida (no está esperando que se libere ningún otro elemento bloqueado); en caso contrario Tj aborta. aborta
  • 42. Recuperación ó Transaction Log T i L Es una tabla del catálogo de la BD. Contiene una lista li t secuencial de todas las modificaciones a cada i ld t d l difi i d objeto dentro de la BD (bitácora), así como también toda la información necesaria para mantener la integridad de los datos. Es compartido por todos los usuarios de una BD BD. Los datos se escriben primero en esta tabla y luego en las tablas correspondientes de la BD.
  • 43. Transaction Log Programa de Se modifican Aplicación los datos (a) Transaction (a) (b) Log (b) DBMS (a) ante-imagen Acceso (b) post-imagen Actualización de los datos Base de Datos
  • 44. Recuperación Transaction Log con actualizaciones diferidas: Cuando comienza una transacción T se registra su inicio g en el log Durante la transacción, la escritura de un nuevo valor para cualquier registro provoca la escritura de un registro en el log. Cuando todas las acciones de T se ejecutan exitosamente, j , se escribe el registro COMMIT en el log Por último, se realizan las operaciones de escritura en la BD desde los registros del log
  • 45. Recuperación Recuperación con actualizaciones diferidas: Cuando ocurre un fallo, el DBMS examina el log para , gp determinar las transacciones que deben rehacerse (REDO): Si el log registra el inicio y el fin de la transacción T (hasta el commit), significa que la transacción T se debe volver a aplicar. Si no figura el commit en el log, la transacción T no se completó, y al reiniciar no es necesario tomar acción, pues la BD permanece consistente T tiene que reiniciarse consistente. reiniciarse.
  • 46. Recuperación Transaction Log con actualizaciones inmediatas: 1° Cuando comienza una transacción T se registra su inicio en el log g 2° Durante la transacción, la escritura de un nuevo valor para cualquier registro provoca la escritura de un registro en el log (primero) y luego en la BD ll ( i ) l l 3° Cuando todas las acciones de T se ejecutan exitosamente, se esc be e registro CO escribe el eg st o COMMIT e e log en el og
  • 47. Recuperación Recuperación con actualizaciones inmediatas: Cuando ocurre un fallo, el DBMS examina el log para determinar las transacciones que deben rehacerse (REDO) o deshacerse (UNDO): Si el log registra el inicio y el fin de la transacción T (hasta el commit), significa que la transacción T se debe volver a aplicar (REDO) Si no figura el commit en el log, la transacción T no se completó, y al reiniciar es necesario restablecer los valores antiguos de los datos (UNDO). T tiene que reiniciarse.
  • 48. Recuperación de la BD Progresiva: Se restaura el último backup y se aplican luego todas las transacciones válidas desde la bitácora, aplicando las imágenes posteriores (post-imágenes). Regresiva: Se deshacen los cambios efectuados por transacciones erróneas o procesadas parcialmente, mediante la aplicación de las imágenes anteriores. Las transacciones válidas que estaban en proceso al momento de la falla se vuelven a iniciar.
  • 49. Recuperación Recuperación del Sistema y de los Medios de Almacenamiento • Fallas del Sistema (por ejemplo corte del fluido eléctrico), las cuales afectan a todas las transacciones que se están efectuando pero no dañan los datos físicos en la base de datos. • Fallas de los medios de almacenamiento (por ejemplo pérdida de direcciones o pistas dañadas), que sí causan daño a la base de datos o a una porción de ella. • Falla computador (error de hardware o de software); • Error en transacción (división entre 0, overflow, malos parámetros, etc.); • Catástrofes.
  • 50. Recuperación p - Fallas del Sistema - Se pierde el contenido de la memoria principal y de las áreas de almacenamiento temporal. Por lo tanto, se perderá el estado preciso de la transacción que se está ejecutando y no podrá ser completada con éxito. Por este motivo será preciso anularla (retroceder) cuando se reinicie el p ( ) sistema (aplicación de los registros ante-imagen desde el Log de transacciones). Para reducir este proceso, se introducen periódicamente Puntos de Revisión o Verificación.
  • 51. Recuperación Fallas del Sistema Punto de Revisión (checkpoint): • Detiene el inicio de nuevas transacciones • Escribe todos los registros del log de transacciones que radican en la memoria volátil (los buffers de la memoria principal), en almacenamiento estable (en disco) • Graba físicamente un registro de Punto de Revisión especial en la bitácora física. Este incluye una lista de todas las física transacciones en ejecución en ese momento. • Reactiva las transacciones en ejecución
  • 52. Recuperación tv tf T1 T2 T3 T4 T5 Punto de Falla del verificación Sistema • Deberá anularse las transacciones T3 y T5 (UNDO) • D b á aplicarse nuevamente las transacciones T2 y T4 (REDO) Deberá li t l t i • La transacción T1 no interviene en el proceso de reinicio, porque sus modificaciones ya estaban grabadas en la BD en el momento y g tv, como parte del proceso de punto de revisión.
  • 53. Recuperación Fallas de los Medios de Almacenamiento Se pierden direcciones del disco o se producen averías en las p pistas o falla el controlador del disco. La consecuencia es la destrucción física de una porción de la base de datos. La recuperación de una falla semejante, implica en esencia, cargar d nuevo o restaurar (restore) la base de datos a partir de de t ( t )l b d d t ti d una copia de respaldo (backup) y después utilizar el transaction log, para realizar de nuevo todas las transacciones terminadas desde que se efectuó este último backup (aplicación de los registros post-imagen)
  • 54. Seguridad en Bases de Datos Seguridad en la BD implica asegurar que los usuarios están autorizados para llevar a cabo las tareas que tratan de realizar Subsistema de Seguridad del DBMS Aspectos éticos y legales relativos al derecho de acceso a cierta información Políticas gubernamentales o institucionales relacionadas con la clase de información que no debe estar disponible para el público, como la clasificación de crédito o el historial médico: la empresa decide ié d id quiénes tienen acceso y a qué. i é Identificación de niveles de seguridad y de clasificar los datos y usuarios según estos niveles: top secret, secreto, confidencial, no confidencial
  • 55. Seguridad en el DBMS Mecanismos de Seguridad: Discrecionales: conceden privilegios a los usuarios para acceder a elementos específicos de la BD en un determinado modo (lectura, escritura o actualización) Obligatorios: imponen seguridad de múltiples niveles Obli t i i id d d úl i l i l clasificando los datos y los usuarios. Permitir a los usuarios de cierto nivel acceder a los elementos de información de su mismo nivel o de niveles inferiores
  • 56. La seguridad de la BD y el DBA Creación de Cuentas Para crear cuentas y contraseñas para un usuario o grupo con el fin de que puedan acceder al DBMS Concesión de Privilegios g Para conceder (GRANT) ciertos privilegios (authority) a ciertas cuentas Revocación de privilegios (REVOKE) ó Asignación de niveles de seguridad Asigna cuentas de usuario al nivel de clasificación de seguridad apropiado
  • 57. Protección de Acceso y Auditoría de la d l BD Cuando un usuario entra (log in), el DBMS puede registrar su nombre y asociarlo al terminal de donde se conectó. Todas las operaciones sobre la BD de ese terminal se asocian a la cuenta del usuario hasta que q éste salga del sistema. Se puede modificar el log de transacciones (diario del sistema), ampliando las entradas para incluir la cuenta it ) li d l t d i l i l t de usuario y el terminal desde donde se aplicó cada operación. El diario del sistema se denomina en esos p casos diario de auditoría
  • 58. Privilegios Discrecionales A Nivel de Cuenta Se asignan a cada cuenta de usuario, g , independientemente de las relaciones de la BD Ejemplos: CREATE, ALTER, DROP, MODIFY, SELECT A Nivel de Relación (o tabla): Controla privilegios para acceder a cada relación individual de la base de datos o a columnas concretas de ellas. Ejemplos: SELECT (lectura), MODIFY (update, insert, j p ( ), ( p , , delete)
  • 59. Seguridad – Consideraciones Adicionales Controles Físicos: Límite de accesos a la sala de máquinas (servidores). (servidores) Problemas Operativos: Mantenimiento de los passwords, su confidencialidad y tiempo de validez. p Controles del equipo: Claves para protección de áreas de almacenamiento. Seguridad de Sistema Operativo: Mantenimiento de los d dd d l espacios de almacenamiento, compactación.
  • 60. Bibliografia Fundamentos de Sistemas de Base de Datos. Ramez Elmasri, Shamkant Navathe