Unidad 7 Flashcards

1
Q

Seguridad de Datos

A

Hablamos de Seguridad de Datos en una base de datos relacional al referirnos al respeto establecido por el Gestor de Bases de Datos en cuanto a las características del modelo relacional:
● Integridad de Dominio
● Integridad Referencial

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

Modelo de Transacciones

A

Desde el punto de vista de la base de datos una transacción es un conjunto de operaciones elementales que deben ser procesadas como una unidad de trabajo.

Las transacciones se deben procesar de manera confiable de modo que no haya pérdida de datos debido a
fallas en el sistema o a que varios usuarios estén accediendo en forma concurrente.

Una Transacción está delimitada por instrucciones de inicio transacción y fin transacción

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

Propiedades (ACAD)

A

● Atomicidad (Atomicity)
● Consistencia (Consistency)
● Aislamiento (Isolated)
● Durabilidad (Durability)

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

Atomicidad (Atomicity)

A

Significa que una transacción no se puede subdividir. Su realización es completa. Se debe considerar una única operación lógica, aunque esté formada por varias operaciones más simples que deben ejecutarse en forma completa o no ejecutarse.

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

Consistencia (Consistency)

A

Conservación de coherencia. Esto significa que si antes de la
ejecución de una transacción la base de datos está en estado consistente, una vez ejecutada la
transacción ésta debe volver al mismo estado de consistencia

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

Aislamiento (Isolated)

A

Concurrencia no problemática. Debe asegurarse incluso aunque varias transacciones se efectúen concurrentemente.

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

Durabilidad (Durability)

A

Permanencia de los cambios. Significa que tras la ejecución de una
transacción, los nuevos valores de la base de datos deben mantenerse a pesar de cualquier tipo de
fallo del sistema.

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

Estados de las Transacciones. Estados de la base de datos

A

● Activa (estado inicial): la transacción permanece en este estado durante su ejecución. Durante la misma el estado de la base de datos es inconsistente.
● Parcialmente Comprometida: la transacción pasa a este estado cuando acaba de realizar la última instrucción (antes del COMMIT)
● Fallida: la transacción pasa a este estado tras descubrir que no puede continuar la ejecución normal
● Abortada: la transacción pasa a este estado después de haber restablecido la base de datos a su estado anterior (ROLLBACK)
● Comprometida: la transacción pasa a este estado tras completarse con éxito. Se dice también que está confirmada (COMMIT)

En la medida en que se están ejecutando transacciones la base de datos está en estado inconsistente.

Una transacción comprometida que haya hecho modificaciones transforma a la base de datos llevándola a un nuevo estado de consistencia que permanece incluso de que luego haya fallos en el sistema.

Para asegurar el estado de consistencia de una base de datos toda transacción abortada no debe tener efecto sobre el estado de la base de datos. Cualquier cambio que haya realizado la transacción abortada
debe deshacerse.

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

Ejecución de las Transacciones

A

El archivo de bitácora o log de transacciones es el que lleva la información de cómo se están ejecutando las transacciones en la base de datos.
Lleva registro de cada una de las operaciones de la transacción que se están ejecutando y a qué objetos de la base de datos afectan.

La estructura del log de transacciones es dependiente del Gestor de Base de Datos pero sus entradas tienen al menos:
● Marca de Inicio de Transacción
● Marcas de escritura, modificaciones o eliminaciones realizadas por la Transacción con valores
anteriores y valores posteriores para un objeto
● Marca de Fin de Transacción

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

Recuperación de base de Datos

A

El SGBD puede recuperar la base de datos luego de un fallo de una o varias transacciones deshaciendo o rehaciendo las operaciones individualmente, transacción por transacción, a partir del log de transacciones.
Si el sistema falla, el SGBD podrá recuperar el estado consistente de la base de datos examinando el log de transacciones y utilizando diversas técnicas de recuperación.

Puesto que el log de transacciones contiene un registro de cada operación que cambia el valor de algún objeto de la base de datos, se podrá deshacer el efecto de las operaciones de una transacción retrocediendo por el log de transacciones y restaurando todos los objetos cambiados por dichas operaciones a sus valores anteriores.

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

Concurrencia

A

La ejecución de varias transacciones en forma concurrente permite:
● Mejorar la productividad
● Mejorar la utilización de recursos
● En un ambiente de alto caudal de transacciones, reducir el tiempo de espera para los usuarios
Pero puede destruir la consistencia de la base de datos.

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

Problemas de la Concurrencia

A

● Actualización perdida: Es cuando la actualización de un usuario sobrescribe la de otro
● Lectura Sucia: Es cuando se leen datos que otra transacción ha modificado sin que la misma se haya confirmado (se haya ejecutado el COMMIT)
● Lectura fantasma: Es cuando, por ejemplo, una transacción lee datos con ciertas condiciones de registro, otra transacción inserta datos que la consulta no recuperó. Por último la consulta original se
vuelve a ejecutar y se encuentra con registros que inicialmente no existían.
● Lectura no repetible: Es cuando una transacción lee el mismo valor más de una vez. Entre una lectura y la siguiente, otra transacción los modifica

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

Bloqueos

A

Utilizar la propuesta de Bloqueos implica que el SGBD evita que un usuario acceda a un objeto de la base de datos que se está utilizando. Entonces, solo la transacción para la cual fue bloqueado el objeto tendrá
acceso y otras transacciones deberán esperar hasta que el objeto sea desbloqueado.

Los bloqueos pueden ser:
● Compartidos: Es necesario obtener un bloqueo compartido antes de ejecutar una consulta
● Exclusivos: Es necesario obtener un bloqueo exclusivo antes de ejecutar una operación de
escritura.

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

Protocolo de Compromiso en 2 Fases

A

Para asegurarse de que no se presenten problemas de actualizaciones perdidas el Componente de Control
de Concurrencias del SGBD utiliza el protocolo de compromiso en 2 fases:
1. Antes de leer o escribir en un objeto de datos, la transacción debe adquirir un bloqueo para el elemento
2. Espera si hay un bloqueo problemático para el objeto de datos
3. Después de realizar el bloqueo, la transacción no adquiere ningún nuevo bloqueo.

Al inicio de la transacción no existe ningún objeto bloqueado e
inicia la etapa de bloqueos donde la transacción adquiere los bloqueos de todos los objetos de datos
requeridos para la misma. Se realiza la transacción y al finalizar se liberan todos los bloqueos
simultáneamente.

Esto puede generar que otras transacciones permanezcan en espera durante un tiempo considerable hasta
que la transacción que realizó los bloqueos los libere.

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

Niveles de Aislamiento

A

El diseñador de las transacciones deberá planificar las transacciones según las mismas requieran protegerse de los problemas de la concurrencia y equilibrar el trabajo especificando el nivel de aislamiento. Una planificación representa el orden cronológico en que se ejecutarán las instrucciones de las transacciones en
el sistema.

Comportamiento Serializable o Secuenciable: Si todos los bloqueos se conservan hasta el final de la
transacción se evitan los problemas de control de concurrencia descritos anteriormente

Lectura repetible: Este nivel de aislamiento impide que dos lecturas consecutivas den diferentes resultados.
Utiliza bloqueos exclusivos que se liberan al finalizar la transacción pero no evita la lectura fantasma

Lectura comprometida: Se utilizan bloqueos compartidos que impiden solo la lectura de actualizaciones
incorrectas.

Lectura no comprometida: No utiliza bloqueos. Debe ser utilizado para el acceso a datos de sólo lectura.

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

Fallos. Clasificación

A

● Problemas de caídas del Sistema
● Problemas lógicos en las transacciones
● Problemas de terminación anormal

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

Problemas de caídas del Sistema

A

Debido a que ante una caída en el sistema la base de datos no puede depender de los datos almacenados en memoria RAM y son utilizados los mecanismos de log de transacciones.

Además métodos de administración de la continuidad para prevenirlos. Entre estos métodos podemos mencionar: respaldos en momentos en que la base de datos no está operativa o mientras está en
línea (generación de backups mientras la base de datos está operativa), utilización de RAID de discos, UPS, etc. La utilización de estos mecanismos dependerá de la confiabilidad de los datos que se quiera establecer

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

Los problemas lógicos de las transacciones

A

son detectados durante la ejecución de las mismas y dan lugar a
abortar la transacción con un mensaje específico para el usuario.
● Problemas de integridad de dominio: tipos de datos incorrectos, valores nulos cuando el atributo no los acepta, validaciones específicas de rangos valores, etc.
● Problemas de integridad referencial: intentar hacer referencia a una clave foránea inexistente
● Problemas de fallas de programación: división por cero

Estos problemas dan lugar a un ROLLBACK

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

Los problemas de terminación anormal

A

● Problemas de comunicación con el servidor
● Tiempo límite de espera de la transacción: existen espera por desbloqueos indefinidas
● Problema de espera mutua: dead-locks: existen interbloqueos entre las transacciones ya que una
está utilizando un recurso que tiene la otra y viceversa

20
Q

Métodos de Recuperación

A

El Componente de Control de Recuperaciones del SGBD utiliza la redundancia y el control del tiempo de las
escrituras en una base de datos para restaurarla después de una falla.
Son formas de redundancia:
● Registro de Transacciones (log de transacciones)
● Puntos de Revisión o control
● Respaldo de la base de datos (backups)

Para el control de tiempo de las escrituras se utiliza:
● Escritura forzada

21
Q

Registro de Transacciones (log de transacciones)

A

El log de transacciones proporciona el historial de los cambios en la base de datos. Cada cambio realizado
en una base de datos queda asentado en el registro
En el momento en que el Componente de Recuperaciones actúa luego de una falla puede realizar dos
operaciones:

Deshacer: la base de datos regresa al estado previo sustituyendo los valores nuevos por los anteriores.

Rehacer: la base de datos completa las transacciones sustituyendo los valores que faltaban modificar por
los nuevos.

22
Q

Puntos de Revisión o Control

A

A intervalos regulares, se escribe un
registro de control en el log de transacciones para guardar todas las transacciones activas.En el momento de reiniciar, el
Componente de Control de Recuperaciones del SGBD depende de estos registros para reducir la cantidad
de trabajo para la recuperación.

23
Q

Escritura forzada

A

Es la habilidad de controlar el momento en que los datos se transfieren al almacenamiento.Con la escritura forzada el Sistema
Operativo permite que sea el SGBD el que maneje el momento en que el buffer se escribe al disco.

24
Q

Modificación de la Base de Datos y Procesos de Recuperación

A

El proceso de recuperación depende del tipo de falla y de los momentos en que se graban las operaciones
en el disco.
Los cambios a la base de datos pueden grabarse de las siguientes formas:

Actualización diferida: Las actualizaciones a la base de datos se escriben en el disco solo después de que
se confirma una transacción. Se conoce como protocolo de escritura diferida en el registro

Actualización inmediata: Las actualizaciones a la base de datos se escriben en el disco cuando ocurren.
Se conoce como protocolo de escritura previa en el registro. Es costoso ya que requiere de muchas
operaciones de escritura

25
Q

Proceso de recuperación de una actualizacion

A

Fallos lógicos de las transacciones: errores locales o condiciones de excepción detectadas durante la
transacción (ROLLBACK o ABORT explícitos o implícitos)
● Actualización diferida: la base de datos queda en el estado anterior a la transacción
● Actualización inmediata: la base de datos queda en el estado posterior a la transacción

Caídas del sistema:
● Actualización diferida: la base de datos queda en el estado anterior a la transacción
● Actualización inmediata: la base de datos queda en el estado posterior a la transacción suponiendo
que se pudo terminar la operación de escritura y no ha habido ningún fallo físico del disco

26
Q

Seguridad de Accesos

A

los SGBD ofrecen soporte para la creación y almacenamiento de reglas de autorización así como para su aplicación para cuando los usuarios acceden a la base de datos.

27
Q

Mecanismos de Seguridad

A

● Mecanismos de seguridad discrecionales: se usan para conceder privilegios a los usuarios para el acceso a los distintos objetos de la base de datos

● Mecanismos de seguridad obligatorios: sirven para imponer seguridad de múltiples niveles para implementar la política de seguridad apropiada a la organización

28
Q

Control de Accesos

A

Se denomina así a la función del SGBD que proporciona los mecanismos de seguridad y que incluye las formas de restringir el acceso al sistema.
Esto se consigue a partir de la definición de:
● Cuentas de Usuario
● Contraseñas

El principal responsable de la definición de las políticas de seguridad de la información de la organización es el superusuario o
system administrator para realizar esta tarea

29
Q

Las acciones que puede efectuar el superusuario

A

● Creación de Cuentas (control de accesos)
● Concesión de privilegios (discrecional)
● Revocación de privilegios (discrecional)
● Asignación de niveles de seguridad (obligatoria)

30
Q

Asignación de Privilegios

A

Nivel de cuenta: el DBA especifica los privilegios particulares que tiene cada cuenta independiente de las relaciones de la base de datos

Nivel de relación: en este nivel podemos controlar los privilegios para tener acceso a cada relación o vista individual de la base de datos.

31
Q

Implementación del Control de Accesos

A

El usuario se identifica en el sistema a través de su cuenta de usuario y contraseña. El SGBD realiza el
control de las mismas contra la tabla donde están almacenadas en la base de datos las cuentas y contraseñas y permite o deniega el acceso.

A partir de esto el SGBD lleva el control de todas las operaciones que el usuario realiza durante su sesión de trabajo y las registra en un log de accesos. Este log de acceso contiene mínimamente la siguiente
información:
● Ingreso (login): nombre del usuario, fecha y hora y terminal desde la que se conectó
● Operaciones de actualización a la Base de Datos
● Salida (logout): nombre de usuario, fecha y hora en que se desconectó

32
Q

Problemas de Seguridad Relacionadas al Acceso

A
  1. Almacenar cadenas de conexión a bases de datos de forma segura.
  2. Usar identidades apropiadas para tener acceso a la base de datos.
  3. Asegurar datos que se extienden en la red.
  4. Autenticar llamadores en la base de datos.
  5. Autorizar llamadores en la base de datos.
33
Q

Calidad

A

La calidad de una Base de Datos depende muchas veces de las decisiones que hayamos tomado al desarrollar el modelo conceptual de datos pero además existen decisiones que afectan al desempeño de las
mismas y que dependen del diseño físico.

● Del conocimiento del entorno específico de cada SGBD
● De la optimización de las consultas
● De la selección de Índices
● Del diseño de las aplicaciones que acceden a las mismas

34
Q

Optimización de Consultas

A

Cuando se ejecuta una instrucción de consulta SQL el componente de Optimización de consultas sigue el
siguiente proceso:
1. Análisis de sintaxis y semántica
2. Transformación de la consulta
3. Evaluación del plan de accesos
4. Ejecución del plan de acceso

35
Q

Selección de índices

A

Una de las decisiones más importantes que debe tomar el diseñador de la Base de Datos en cuanto es la selección de índices.
Ahí dos tipos de índices:

*Indice agrupado:el orden de las filas es cercano al orden del índice. Significa que los registros físicos
que contienen las filas no serán consultados más de una vez si el índice se consulta en forma secuencial

  • Indice desagrupado no tiene la propiedad de cercanía, el orden de las filas no está relacionado con el
    orden del índice. En este caso un registro físico puede ser consultado de forma repetitiva cuando se usa un
    conjunto de secuencias.
36
Q

La dificultad en la selección de índices

A

● Especificar los pesos de las aplicaciones, es decir la importancia en el tiempo de respuesta de cada una

● Consultas por parámetros si los mismos varían significativamente de una ejecución a otra

● Mala selección del índice realizada por el optimizador de consultas. Esto puede suceder cuando existen índices con una composición de atributos parecida o en índices desagrupados

37
Q

Reglas de Selección:

A
  1. Clave primaria: candidato para ser un índice agrupado
  2. Índices desagrupados sobre claves foráneas: es una buena idea cuando existen consultas
    importantes con condiciones altamente selectivas hechas sobre una tabla relacionada
  3. Índices desagrupados sobre atributos con muchos valores y condiciones de igualdad.
  4. Índices desagrupados sobre atributos que se usan en un rango de condiciones altamente selectivas
  5. Índices desagrupados para combinaciones de atributos usadas con las condiciones para la consulta.
    Esto puede ser beneficioso cuando las condiciones del enlace devuelva pocas filas
  6. No es buen candidato para un índice un atributo que se actualiza frecuentemente
  7. No deben tener muchos índices tablas con alta volatilidad, es decir muchas operaciones de
    inserciones y eliminaciones
  8. Índices de tipo Bitmap para columnas estables con pocos valores cuando las columnas se
    encuentran dentro de las condiciones WHERE
  9. Evitar los índices de combinación de atributos
38
Q

Desnormalización

A

La desnormalización combina tablas para que sean más fáciles de consultar.
Las decisiones de desnormalización están vinculadas a:
● Ignorar una dependencia funcional
● Grupos de repetición: Las reglas de normalización obligan a que los grupos de repetición se almacenen en una tabla hija separada de su tabla madre
● Jerarquías de generalización: si se sigue las reglas de conversión de jerarquías de generalización se pueden obtener muchas tablas. Si las consultas necesitan combinar regularmente estas tablas separadas es factible almacenarlas en una sola tabla
● Códigos y descripciones: Las reglas de normalización requieren que las claves foráneas se
almacenen en forma separada para representar las relaciones 1:N.

39
Q

Stored Procedure (Procedimientos Almacenados)

A

Un Stored Procedure es un programa (o función) que se almacena físicamente en una base de datos. La implementación de un stored procedure varía de un gestor de bases de datos a
otro. Los stored procedures permiten definir una API para que el gestor de bases de datos interactúe con tablas u otros objetos de la base de datos, en vez de tener un cliente de la aplicación interactuando directamente.

40
Q

Implementacion store procedure

A

Los Stored procedures se usan a menudo para realizar consultas SQL, insertar, actualizar o eliminar
registros sobre los objetos de la base de datos de una manera transparente.
Son implementados desde la aplicación mediante CALL procedure

41
Q

Ejecución de store procedure

A

Los procedimientos almacenados se ejecutan directamente en el servidor de base de datos.

42
Q

Ventajas y Desventajas del store procedure

A

● Simplificación de la Gestión: Los procedimientos almacenados pueden permitir que la lógica del negocio se encuentre como una API en la base de datos que puede simplificar la gestión de datos y
reducir la necesidad de codificar la lógica en el resto de los programas cliente.

● Seguridad: Es mucho mejor usar Stored procedure por seguridad. Los procedimientos almacenados
facilitan algunas tareas de administración de seguridad y asignación de permisos.

● Centralización de la definición: al formar parte de la base de datos los procedimientos almacenados están en un lugar centralizado y pueden ser ejecutados por cualquier aplicación que
tenga acceso a la misma.

● Encapsulamiento: los procedimientos almacenados encapsulan gran parte de la lógica del negocio a las aplicaciones que los utilizan.

● Ejecución centralizada en el Servidor

● Reducción de la escalabilidad: los procedimientos almacenados nos esclavizan al motor de base de datos. Para migrar de un gestor de base de datos con muchos procedimientos almacenados a otro, se deberá reescribir casi la totalidad de los mismos.

43
Q

Relación-Diferencia Stored Procedure y Triggers

A

Los eventos que tienen origen en la base de datos llaman de manera implícita al trigger, en tanto que son
aplicaciones cliente las que inician de manera explícita a los procedimientos almacenados.
Las implementaciones de servidor de los triggers son muy pocos estándares; más bien son específicas de
cada fabricante

44
Q

Triggers

A

Un Trigger es una porción de código que se “dispara” al ocurrir un evento.Se ejecuta cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE)
o borrado (DELETE)

Son usados para mejorar la administración de la Base de datos, sin necesidad de contar con el usuario para
que ejecute una sentencia de SQL.

45
Q

La estructura básica de un trigger

A

Llamada de activación: es la sentencia que permite “disparar” el código a ejecutar.

Restricción: es la condición necesaria para ejecutar el código. Esta restricción puede ser de tipo condicional
o de tipo nulidad.

Acción a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones
iniciales

46
Q

Los Errores de integridad referencial
En triggers

A

La integridad referencial forzada con triggers no es estándar, es propensa a errores y difícil de implementar y
mantener. Los triggers exigen esfuerzos de programación para implementar la integridad referencial.

Como un servidor no tiene forma de saber que está usándose un trigger para la integridad referencial no puede hacer nada para optimizarlo.