BIVT2 - Administración y seguridad en la BD Flashcards

1
Q

¿Qué es una transacción?

A
  • Unidad lógica de trabajo.
  • Secuencia de operaciones en una BD mediante la cual un estado consistente de la BD se transforma en otro estado consistente, sin conservar por fuerza la consistencia en todos los estados intermedios.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Operaciones en SQL de una transacción

A
  • COMMIT
  • ROLLBACK
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es el COMMIT?

A

Indica que una transacción ha finalizado con éxito al SGBD

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es el ROLLBACK?

A

Indica al SGBD que debe recuperar su estado justo en el momento anterior a comenzar la transacción que no ha podido finalizar

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Para qué sirven las propiedades ACID?

A

Para asegurar la integridad de los datos tras hacer el COMMIT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cuáles son las propiedades ACID?

A
  • Atomicity (Atomicidad).
  • Consistency (Consistencia).
  • Isolation (Aislamiento).
  • Durability (Durabilidad).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué es la Atomicity (Atomicidad)?

A

Las acciones de una transacción se ejecutan todas o ninguna.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué es la Consistency (Consistencia)?

A
  • La BD se encuentra en un estado consistente antes de la ejecución de la transacción y debe estar en un estado consistente cuando la transacción termine.
  • Garantiza las reglas de integridad
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es la Isolation (Aislamiento)?

A
  • La ejecución de una transacción no debe interferir en la ejecución de otras transacciones, la transacción debe ejecutarse como si estuviera aislada.
  • El aislamiento se pone en acción mediante técnicas de bloqueo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es la Durability (Durabilidad)?

A
  • Tras la finalización con éxito de una transacción, los cambios realizados en la BD permanecen, incluso si hay fallos en el sistema.
  • Es persistente una transacción cuándo se consigue que se almacene en disco.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Estados de una transacción

A
  • Activa.
  • Parcialmente comprometida.
  • Fallida.
  • Abortada.
  • Comprometida.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cuándo una transacción está parcialmente comprometida?

A

Después de ejecutarse la última instrucción.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Problemas de concurrencia

A
  1. El problema de la modificación perdida.
  2. El problema de la dependencia no comprometida o lectura sucia.
  3. El problema del análisis inconsistente o lectura fantasma.
  4. Lectura no repetible
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Problemas de concurrencia: El problema de la modificación perdida

A

La modificación realizada por la transacción X se pierde porque la transacción Y sobreescribe el resultado sobre el resultado anterior.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Problemas de concurrencia: El problema de la dependencia no comprometida o lectura sucia

A

Se producen cuando una transacción puede leer datos que están siendo escritos por otra transacción antes de que ésta realice el commit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Problemas de concurrencia: El problema del análisis inconsistente o lectura fantasma.

A

Se producen cuando una transacción lanza una misma consulta 2 veces y obtiene distinto conjunto de resultados

17
Q

Problemas de concurrencia: Lectura no repetible

A

Se produce cuando una transacción modifica datos que han sido leídos por otra.

18
Q

¿Qué es el bloqueo?

A

Técnica que se utiliza para resolver problemas de concurrencia.

19
Q

Tipos de bloqueo

A
  • Bloqueos exclusivos
  • Bloqueos compartidos
20
Q

¿Qué es el bloqueo exclusivo?

A
  • Previene que sea compartido el recurso asociado.
  • Una transacción obtiene un bloqueo exclusivo cuando modifica los datos.
  • La primera transacción que bloquea un recurso exclusivamente, es la única transacción que puede modificar el recurso hasta que el bloqueo exclusivo es liberado
21
Q

¿Qué es el bloqueo compartido?

A
  • Permite que sea compartido el recurso asociado, dependiendo de la operación en la que se encuentra involucrado.
  • Varios usuarios que estén leyendo datos pueden compartir los datos, realizando bloqueos compartidos para prevenir el acceso concurrente de un escritor que necesita un bloqueo exclusivo.
  • Varias transacciones pueden obtener bloqueos compartidos del mismo recurso.
22
Q

¿Qué es el bloqueo mutuo?

A

Cuando 2 transacciones necesitan el objeto que el otro tiene bloqueado

23
Q

¿Qué otros nombres recibe el bloqueo mutuo?

A

Deadlock, interbloqueo, traba mortal, abrazo mortal

24
Q

¿Con qué algoritmo se puede evitar el bloqueo mutuo?

A

Con el algoritmo del banquero (Dijkstra).

25
Q

¿Qué es el bloqueo livelock?

A

Similar a deadlock excepto que el estado de los 2 procesos involucrados constantemente cambia con respecto al otro

26
Q

¿Qué son los niveles de aislamiento?

A

Mecanismos para tratar de minimizar el impacto de la concurrencia en las transacciones

27
Q

Niveles de aislamiento de mayor a menor

A
  • Serializable
  • Lecturas repetibles (repeatable reads)
  • Lecturas comprometidas (read committed)
  • Lecturas no comprometidas (read uncommitted)
28
Q

¿Qué aislamiento permiten las lecturas no comprometidas (read uncommitted)?

A
  • Nivel menor de aislamiento (no hay ninguna garantía).
  • Las transacciones no están aisladas unas de otras, por lo que se pueden producir
    • Lectura sucia.
    • Lectura no repetible
    • Lectura fantasma
29
Q

¿Qué aislamiento permiten las lecturas comprometidas (read committed)?

A
  • Se garantiza que solo se lean datos escritos por transacciones que hayan hecho su commit.
  • Se pueden producir
    • Lectura no repetible
    • Lectura fantasma
30
Q

¿Qué aislamiento permiten las lecturas repetibles (repeatable reads)?

A
  • Además de las garantías de Read Commited asegura que cada vez que leamos un registro nos devolverá siempre la misma información
  • Se pueden producir
    • Lectura fantasma
31
Q

¿Qué aislamiento permite serializable?

A
  • Máximo nivel de aislamiento
  • Especifica que todas las transacciones ocurran de modo aislado, es decir, en serie (algoritmo FIFO).
  • No existe interbloqueo.
  • No hay concurrencia.
  • Baja transaccionalidad.