Tercer Parcial Flashcards

1
Q

Transacción

A

conjunto de operaciones que forman una única unidad lógica de trabajo.
La meta de las transacciones es asegurar que todos los objetos gestionados por un servidor permanecen en un estado consistente cuando dichos objetos son accedidos por múltiples transacciones y en presencia de caídas del servidor.

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

Propiedades ACID

A

Para asegurar la integridad en las transacciones se deben respetar las propiedades ACID:

Atomicidad (Atomicity): garantiza que todas las transacciones se ejecutan adecuadamente en la BBDD o ninguna de ellas. El sistema puede alcanzar un estado inconsistente, pero hay que asegurar que esto no sea visible, se sustituye esto por un estado consistente.

Consistencia (Consistency)/integridad: La ejecución aislada de la transacción (es decir, sin otra transacción que se ejecute concurrentemente) conserva la consistencia de la base de datos. Cada vez que se consulte la BBDD esta consistente, ya sea antes o despues de la transaccion, no se debe romper integridad llevando de un estado a otro.

Aislamiento (Isolation): en la BBDD se pueden ejecutar varias transacciones en paralelo pero el resultado debe ser el mismo que si se hubiesen ejecutado secuencialmente, una transacción no puede afectar o interferir con otras.

Durabilidad (Durability): se garantiza durabilidad asegurando:
Las modificaciones realizadas por la transacción se guardan en disco antes de que finalice la transacción,y esa información es suficiente para permitir a la BBDD reconstruir estas modificaciones.

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

BASE

A

BASICALLY AVAILABLE: implica la disponibilidad de los datos como prioridad.
SOFT STATE: la consistencia de datos se delega a una gestión externa al motor de bbdd.
EVENTUAL CONSISTENCY: eventualmente termina en consistente, asume inconsistencias temporales.

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

CAP

A

sistema computacional distribuido no puede ofrecer simultaneamente estas 3 garantias

Consistencia (Consistency): todos los nodos ven los mismos datos al mismo tiempo.

Disponibilidad (Availability): garantiza que cada petición recibe una respuesta acerca de si tuvo éxito o no.

Tolerancia a la partición (Partition): el sistema continúa funcionando a pesar de la pérdida de mensajes.

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

Dif ACID Y BASE

A

ACID prioriza consistencia y robustez a costa del rendimiento y operatividad a medida que el volumen de datos aumentan. En contraposición el principio BASE fomenta el rendimiento, la disponibilidad y la escalabilidad.

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

Estados de las transacciones

A

Activa: Inicio de la transacción.

Parcialmente Comprometida: Todas las operaciones han sido ejecutadas, pero la transacción aún puede ser revertida. Los datos están en la memoria principal y son vulnerables a fallos.

Comprometida: La información se ha registrado completamente en la base de datos.

Fallida: La transacción se interrumpe y revierte todos los cambios para restablecer la consistencia.

Abortada: La base de datos retorna al estado original. Se reinicia en caso de un error de hardware/software o se cancela si el error es lógico.

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

Recuperación ante fallos

A

La idea de la recuperación ante fallos es prepararse para la posibilidad de que una transacción no se complete por un fallo y evitar así que la base de datos quede en un estado inconsistente.

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

Estructura y tipos de almacenamiento

A

Volátil
Memoria principal/caché.
Acceso rápido.
No sobrevive a las caídas de sistema.

No volátil
Memoria secundaria (discos)
Acceso más lento
Sobrevive a las caídas de sistema.

Estable
Se implementa a través de soluciones como los sistemas RAID o los Sistemas de Copia de Seguridad Remota.
La información “nunca” se pierde.

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

Clasificación de los fallos

A

Fallo en la transacción: puede deberse a un error lógico o a un error del sistema:
A. Error lógico: a causa de alguna condición interna.
B. Error de sistema: el sistema esta fallando por eso la transaccion falla, pero se puede ejecutar mas tarde.
C. El fallo en una transacción no debería afectar al resto de transacciones que se estén ejecutando.

Fallo del sistema: mal funcionamiento del hardware o software de BBDD o el SO causa perdida del contenido de la memoria volatil y aborta procesamiento de transaccion. Estos afectan a todas las transacciones en curso.

Fallo de disco: un bloque del disco pierde contenido por una colision de la cabeza lectora o fallo en una operacion de transferencia de datos, implica perdida de datos almacenados y es la mas grave, para recuperarse se utilizan backups. No ocurre en discos tolerantes a fallos (tipo de almacenamiento estable).

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

Formas de trabajar con el registro historico:
Actualización diferida

A

Guarda los cambios en un registro histórico antes de aplicarlos a la base de datos.
Este registro sirve como respaldo en caso de fallos del sistema, permitiendo revertir los cambios.

Sin embargo, puede surgir un problema con la memoria si hay muchas actualizaciones pendientes, ya que los datos no se escriben en la base de datos hasta que se completa la transacción.

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

Registro histórico

A

Los registros históricos son una secuencia de entradas que guardan los cambios en una base de datos.

Cada entrada almacena valores de datos y se guarda en un lugar seguro, como un archivo.

Estos registros registran eventos como el inicio y compromiso de transacciones, la cancelación de transacciones y las actualizaciones específicas, creando un historial detallado de las acciones en la base de datos.

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

Formas de trabajar con el registro historico:
Actualización inmediata

A

Escritura en Tiempo Real: Posibilidad de realizar cambios en la base de datos mientras la transacción aún está activa.

Procedimiento de Recuperación:
a. Deshacer transacciones no comprometidas utilizando los valores iniciales.
b. Deshacer y luego rehacer transacciones comprometidas.

Escritura Directa en Disco: Los datos se guardan en disco durante la transacción, antes de cada operación. Se almacenan los cambios no confirmados, y los valores iniciales son cruciales para restaurar el estado original.

Desafío: La recuperación puede ser más lenta al tener que deshacer/rehacer cambios confirmados y deshacer cambios no confirmados.

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

Punto de revisión (checkpoint)

A

Los puntos de revisión son marcadores en el registro histórico que mejoran la eficiencia de la recuperación. Cuando necesitamos recuperar datos, examinamos el registro histórico desde el último punto de revisión. Este examen se realiza retrocediendo en el tiempo.

Mientras estamos revisando el historial para recuperar datos, evitamos que nuevas transacciones hagan cambios, asegurando la consistencia de la información y facilitando el proceso de recuperación.

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

Registro histórico, base de datos y almacenamiento: gestión de la memoria intermedia

A

En el registro histórico, los datos se guardan primero en un área temporal llamada “buffer de registro histórico” en la memoria principal antes de ser escritos en el almacenamiento permanente. Se acumulan y se escriben todos juntos en una sola operación. Esto se hace en el mismo orden en que estaban en el buffer. Además, solo se almacenan los registros que tienen cambios en la información, no todos, lo que hace que el proceso sea más eficiente.

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

Esquema de recuperación ARIES

A

ARIES es un método avanzado para recuperar datos rápidamente en bases de datos. Utiliza un esquema eficiente que incluye seguir páginas no guardadas en disco y realiza tres pasos: análisis para identificar cambios y transacciones en curso durante un fallo, redo para reconstruir transacciones confirmadas, y undo para revertir cambios desde el fallo hasta el inicio de la recuperación.

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

Si se pierde la informacion de la memoria no volatil la tecnica de recuperacion es backup de BBDD. Existen 3 tipos de back up:

A
  1. Completo (Full Backup):
    • Incluye toda la base de datos y estructuras.
    • Sirve como base para otros backups.
    • Almacena información redundante.
  2. Diferencial:
    • Respalda datos modificados desde el último backup completo.
    • Requiere un backup completo previo.
    • Guarda las diferencias desde el último backup completo.
  3. Incremental:
    • Respalda datos modificados desde el último respaldo.
    • Requiere todos los backups desde el último completo para recuperar.
    • Menos tiempo de ejecución, pero más tiempo y complejidad para recuperar en caso de pérdida de un respaldo intermedio.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Concurrencia. Def, ventajas y desventajas

A

dos o más transacciones ejecutándose en paralelo, sin importar si están tocando los mismos datos.
Ventajas: Mayor productividad.
Mejor utilización de los recursos.
Tiempo de espera reducido.
Desventajas: Mayor probabilidad de inconsistencias.

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

Esquemas de control de concurrencia

A

solucionan conflicto cuando las transacciones acceden a los mismos datos generando inconsistencia.

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

Planificaciones

A

secuencias de ejecución de las transacciones. Representan el orden cronológico, pueden ser:
a. Secuenciales: las transacciones se ejecutan una después de otra. Al finalizar BBDD se encuentra consistente.

b. No secuenciales: ejecucion de una mientras otra esta en curso, BBDD queda consistente solo si el resultado de ejecucion concurrente es el mismo que si hubiese sido secuencial. ( se dice que son planificaciones equivalentes).

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

Conflictos de la concurrencia

A
  1. Actualización Pérdida:
    • Dos transacciones modifican el mismo dato.
    • Una actualiza sin leer el valor antiguo, perdiendo la modificación de la otra.
  2. Dependencia No Confirmada (Lectura Sucia):
    • Una transacción lee o actualiza un dato que otra transacción aún no ha confirmado.
    • Puede resultar en operaciones basadas en información incorrecta.
  3. Análisis Inconsistente:
    • Una transacción basa sus acciones en datos actualizados por otra transacción ya confirmada.
    • Puede llevar a resultados incorrectos.
  4. Lectura No Repetible o Difusa:
    • Una transacción lee un dato, luego lo vuelve a leer y descubre que ha sido modificado por otra transacción.
    • Se obtienen dos valores distintos para el mismo dato.
  5. Lectura Fantasma:
    • Una transacción consulta datos y recibe una tupla adicional que fue insertada después de la primera consulta.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Gestor de control de concurrencia

A

tarea del SGDB asegurar que toda planificacion termine con estado consistente

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

Secuencialidad

A

Secuencialidad en bases de datos significa que, aunque muchas cosas sucedan al mismo tiempo, el resultado final debería ser como si hubieran ocurrido una detrás de la otra.

Hay dos aspectos clave para lograr esto:

Secuencialidad en Cuanto a Conflictos:

Asegura que, aunque varias acciones suceden al mismo tiempo, no causen problemas entre sí. Es como si cada acción esperara su turno para evitar interferencias.

Secuencialidad en Cuanto a Vistas:

Asegura que, aunque varias acciones están ocurriendo simultáneamente, la forma en que cada acción ve y cambia la información es como si hubieran sucedido en un orden específico.

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

Recuperabilidad
Planificacion recuperable

A

Planificación Recuperable:
- Permite deshacer cualquier transacción en la planificación.

Formas de Planificación Recuperable:
a. Con Retroceso en Cascada:
- Una transacción puede hacer retroceder a otras, especialmente cuando leen datos que causaron fallos antes.

b. Sin Retroceso en Cascada:
- Asegura que, si una transacción lee datos escritos por otra, la transacción original debe haber confirmado antes de que la segunda pueda leer. Evita problemas de retroceso en cascada.

Consejo:
Es mejor evitar el retroceso en cascada, ya que puede ser costoso deshacer transacciones.

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

Esquema de control de concurrencia

A

sistema que controla la interaccion entre transacciones concurrentes para garantizar aislamiento

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

Protocolos basados en el bloqueo

A

Protocolos Basados en el Bloqueo:

  • Objetivo: Asegurar que una transacción acceda a un elemento a la vez para mantener la secuencialidad.
  • Componente Clave: Gestor de control de concurrencia, que autoriza o niega los bloqueos.
  • Tipos de Bloqueos:
    a. Compartidos: Permiten solo lectura de datos.
    b. Exclusivos: Permiten lectura y escritura de datos.
  • Bloqueo Compatible:
    • Dos transacciones pueden pedir bloqueos COMPARTIDOS, permitiendo la lectura pero no la escritura al mismo tiempo.
    • Si una transacción necesita escribir, espera a que se libere el bloqueo.
  • Solicitud de Bloqueo:
    • Si una transacción solicita un bloqueo y está disponible, se le concede sin conflicto.
  • Inanición (Livelock/Starvation):
    • Fenómeno donde una transacción es forzada a hacer ROLLBACK debido a conflictos recurrentes de bloqueo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Protocolo de bloqueo de 2 fases

A

Protocolo de Bloqueo de 2 Fases:

  • Propósito: Evitar problemas de concurrencia.
  • Etapas:
    1. Fase de Crecimiento:
      • La transacción solicita todos los bloqueos que necesita.
      • Cuando obtiene el último bloqueo, alcanza el “Punto de Bloqueo”.
    2. Punto de Bloqueo:
      • La transacción tiene todos los bloqueos y puede realizar sus operaciones.
    3. Fase de Decrecimiento:
      • La transacción libera los bloqueos después de completar sus operaciones.
  • Secuencialidad en Cuanto a Conflictos:
    • Garantiza que las operaciones sigan un orden coherente.
  • Problema No Resuelto:
    • No aborda la posibilidad de retroceso en cascada.
  • Tipos:
    a. Estricto:
    • La transacción mantiene bloqueos exclusivos hasta su compromiso. Nadie más puede leer o escribir el dato.
      b. Riguroso:
    • La transacción mantiene TODOS sus bloqueos hasta su compromiso.

En resumen, el Protocolo de Bloqueo de 2 Fases divide las solicitudes y liberaciones de bloqueos en dos etapas para mantener un orden secuencial, pero no resuelve el problema de retroceso en cascada. Los tipos estricto y riguroso determinan cuánto tiempo una transacción retiene sus bloqueos.

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

Protocolo de bloqueo de 2 fases con intención de bloqueo

A

Protocolo de Bloqueo de 2 Fases con Intención de Bloqueo:

este protocolo simplifica la gestión de bloqueos dividiendo la base de datos y permitiendo bloquear partes específicas según lo que necesitas hacer. Ayuda a que las operaciones se realicen de manera ordenada.

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

Tipo de bloqueo Permite…

A

Exclusivo (X)
Leer y escribir el nodo o los nodos inferiores.

Compartido (C)
Leer los nodos inferiores.

Intencional compartido (IC)
Permite pedir bloqueo IC o C en un nodo inferior.

Intencional exclusivo (IX)
Permite pedir bloqueo IX o X en un nodo inferior.

Intencional exclusivo y compartido (IXC)
Es una combinación de bloqueo IX con bloqueo C, por lo que permite pedir bloqueos para leer varios nodos, pero escribir solamente en uno o algunos.

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

Esquemas multiversión (marcas temporales)

A

En los esquemas multiversión, cada modificación crea una nueva versión del dato en lugar de cambiar el original. Cuando lees, el sistema decide qué versión mostrarte, y los bloqueos evitan problemas al leer datos que están siendo modificados por otras transacciones.

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

Ordenación por marcas temporales multiversión
Ventajas y desventajas

A

En la ordenación por marcas temporales multiversión, cada transacción recibe una marca temporal antes de ejecutarse, determinando el orden de las operaciones.

Esto garantiza un orden lógico de las operaciones y permite lecturas sin bloqueos. A pesar de su beneficio en secuencialidad, tiene desventajas como la necesidad de accesos adicionales al disco para actualizar marcas temporales, la resolución de conflictos mediante retrocesos y la posibilidad de planificaciones no recuperables y retrocesos en cascada.

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

Bloqueo de 2 fases multiversión. Ventajas y desventajas

A

Esquema de Bloqueo de 2 Fases Multiversión:

En este esquema, destinado a transacciones de lectura y actualización, las transacciones de actualización adoptan un bloqueo de dos fases riguroso, manteniendo todos los bloqueos hasta el final de la transacción. No poseen una marca temporal al inicio, y su secuenciación se basa en el orden de terminación.

Las transacciones de lectura, en cambio, se les asigna una marca temporal al inicio, siguiendo un protocolo de ordenación por marcas temporales multiversión para realizar lecturas. La marca temporal, representada por un contador, es única para cada valor de dato, facilitando la gestión de concurrencia en este esquema.

32
Q

Los niveles de aislamiento especificados por SQL son:

A

Niveles de Aislamiento en Transacciones:

  1. Read Uncommitted (Lectura no comprometida):
    • Permite que una transacción lea datos que están siendo modificados por otras transacciones, incluso si aún no se han confirmado. El nivel más bajo de aislamiento.
  2. Read Committed (Lectura comprometida):
    • Garantiza que las transacciones solo lean datos confirmados. Evita lecturas de datos no confirmados, pero puede permitir lecturas inconsistentes debido a modificaciones en curso.
  3. Repeatable Read (Lectura repetible):
    • Evita que otras transacciones modifiquen datos leídos por una transacción hasta que esta se complete. Asegura la repetición consistente de las lecturas durante la transacción.
  4. Serializable (Secuenciable):
    • Proporciona el mayor nivel de aislamiento. Evita que otras transacciones realicen cualquier operación en los datos leídos por una transacción hasta que esta se complete, garantizando consistencia.

Cada nivel ofrece un equilibrio diferente entre consistencia y concurrencia, permitiendo a los usuarios ajustar la configuración según sus necesidades específicas.

33
Q

Interbloqueos

A

Interbloqueo en Transacciones:

El interbloqueo sucede cuando una transacción espera por un recurso bloqueado por otra, creando conflicto. Aunque son inevitables, existen métodos para abordarlos:

  1. Prevención de Interbloqueos:
    • Métodos que buscan evitar que el interbloqueo ocurra en primer lugar.
  2. Temporizaciones:
    • Una transacción solicita un bloqueo por un tiempo; si no se otorga, se retrocede. En caso de interbloqueo, las transacciones involucradas retroceden.
  3. Detección y Recuperación:
    • Revisión periódica en busca de interbloqueos. Si se detecta, se intenta recuperar retrocediendo transacciones.

Estos métodos gestionan los desafíos del interbloqueo en sistemas de bases de datos.

34
Q

Con relación al acceso a los datos, existen muchos niveles de seguridad:

A

Base de Datos: Almacén de datos organizados.
Sistema de Gestión de Bases de Datos (SGBD): Software encargado de administrar y facilitar el acceso a la base de datos.
Sistema Operativo: El software en el que se ejecuta el SGBD.
Aplicación: Programas que interactúan con los datos del SGBD de manera bidireccional.
Servidor: La máquina física que alberga la base de datos.
Red: La vía a través de la cual los datos se transmiten entre la computadora del usuario y la base de datos.
Físico: Acceso al lugar físico que alberga los servidores, a la red o a la computadora.
Humano: Representa el eslabón más débil y susceptible a diversos ataques para obtener acceso a los datos.

35
Q

Desde el SGBD se pueden establecer diferentes medidas de seguridad en varios niveles, algunas de las cuales ya son conocidas:

A

Restricciones:
Dominio.
Tipo de dato.
Integridad referencial.
Otras, establecidas mediante triggers.

Recuperación ante fallos: back up.

Control de concurrencia.

Autorizaciones.

Vistas/stored procedures.

Cifrado.

36
Q

Autorización/Privilegios

A

Privilegios en Bases de Datos:

Un privilegio es una autorización que permite el acceso a partes específicas de una base de datos, y un usuario puede tener uno o varios privilegios. En el Sistema de Gestión de Bases de Datos (SGBD), se crean usuarios autorizados, se especifica su método de autenticación y se definen sus limitaciones. Además, estos usuarios pueden recibir la autorización para otorgar o denegar permisos a otros.

El Lenguaje de Control de Datos (DCL) es una parte del lenguaje SQL que se encarga de la seguridad e integridad. La instrucción GRANT se utiliza para conceder autorizaciones y sigue el formato GRANT <lista> ON <nombre> TO <lista>. Es posible otorgar privilegios globales que abarquen toda la base de datos o privilegios específicos para una tabla en particular. La lista de privilegios facilita la concesión de varios privilegios con un solo comando.

37
Q

Roles

A

Roles en Bases de Datos:

Roles permiten asignar un conjunto de privilegios a usuarios con funciones similares. En la base de datos, se crean roles y las autorizaciones a estos son similares a las que se otorgan a usuarios. Cualquier autorización que pueda concederse a usuarios también puede concederse a roles.

La sintaxis para crear roles en SQL es simple: CREATE ROLE <nombre>.

En resumen, los privilegios de usuarios o roles incluyen:
a. Todos los privilegios otorgados directamente al usuario o rol.
b. Todos los privilegios otorgados a los roles que se han concedido al usuario o rol.

Además, puede haber cadenas de roles, donde roles específicos heredan privilegios de roles más generales.

38
Q

Retirada de privilegios

A

Para retirar una autorización se emplea la instrucción REVOKE. Su forma es casi idéntica a la de GRANT:
REVOKE <lista> ON <nombre> FROM <lista>
Cuando la retirada de privilegios de un usuario o rol provoca que otros usuarios o roles también pierdan esos privilegios ocurre lo que se llama retirada en cascada. Éste es el comportamiento predeterminado. Puede restringirse utilizando la cláusula RESTRICT: en ese caso, el sistema devuelve error si se produce una retirada en cascada y no lleva a cabo la acción de retirada.</lista></nombre></lista>

39
Q

Cifrado

A

Cifrado:

El cifrado es una técnica que protege o autentica datos, mensajes o usuarios mediante la aplicación de un algoritmo criptográfico. El objetivo es hacer que el mensaje sea incomprensible para aquellos que no tienen la autorización adecuada, mientras que aquellos con la clave pueden descifrarlo. Una buena técnica de cifrado debe permitir que los usuarios autorizados cifren y descifren datos de manera relativamente sencilla.

Existen dos formas de cifrado:
1. Sin clave: Se encripta y desencripta conociendo el algoritmo, lo que significa que cualquiera que comprenda el algoritmo puede acceder, lo cual puede ser una desventaja.
2. Con clave: Se añade una clave al proceso. Hay dos tipos:
- Simétrico: Emisor y receptor utilizan la misma clave para encriptar y desencriptar. Si alguien más conoce la clave, puede enviar o leer mensajes. Si solo uno conoce la clave, la operación no se completa, y si un tercero la intercepta, puede acceder.
- Asimétrico: Se utilizan dos claves, una para cifrar y otra para descifrar.

40
Q

Cifrado asimétrico de clave pública y privada

A

Cifrado Asimétrico:

En el cifrado asimétrico, cada usuario tiene dos claves: una pública y una privada. La clave pública está disponible para todos, mientras que la clave privada es secreta. Cuando alguien envía un mensaje, lo cifra con su clave privada, y el receptor lo descifra con la clave pública del emisor. En la respuesta, el proceso se invierte: el receptor cifra su mensaje con la clave pública del destinatario. Esto asegura que solo el destinatario pueda leer la respuesta y que el mensaje no haya sido alterado durante la transmisión.

41
Q

Hash

A

Hash y Seguridad de Contraseñas:

El hash es un cifrado irreversible que se utiliza para proteger contraseñas. En lugar de almacenar las contraseñas, se les aplica un hash y se guarda ese valor cifrado. Cuando un usuario intenta iniciar sesión, se compara el hash almacenado con el generado a partir de la contraseña ingresada. Esto protege las contraseñas de exposiciones en caso de un ataque. Para evitar ataques de diccionario, se utiliza un “salt” que agrega caracteres aleatorios, como concatenar la contraseña al ID del usuario. Esto asegura que aunque dos usuarios tengan la misma contraseña, los hashes resultantes sean diferentes.

42
Q

Firma digital

A

Firma Digital:

La firma digital utiliza el hash para asegurar la autenticidad de un mensaje. Se aplica el hash al mensaje y se cifra con la clave privada del emisor. Al descifrarlo con la clave pública y aplicar el hash, si coinciden, el emisor y el mensaje son auténticos. La firma garantiza que el creador no pueda negar su autoría.

43
Q

Cifrado en DBMS

A

Para encriptar los datos de una BBDD. Funciones de cifrado con claves embebidas en el DBMS.
En el contexto de las bases de datos, el cifrado se puede llevar a cabo en diferentes niveles.
Nivel inferior → bloques de disco que contienen datos se cifran usando clave disponible para el software del SGDB.
En los sistemas de bases de datos compartidos se aplica el cifrado antes de que los datos lleguen a la base de datos.

44
Q

Los sistemas operacionales

A

Sistemas operacionales = son sistemas de información que dan soporte a los procesos del nivel operativo, se realizan las actividades de rutina, apoyados por sistemas informáticos, denominados transaccionales u operacionales.

45
Q

OLTP

A

Bases de datos OLTP (On Line Transactional Processing) = BBDD que dan soporte a los sistemas de nivel operativo.

46
Q

Características de los procesos que soportan los OLTP

A

Estas bases de datos soportan procesos con las siguientes características:

Transacciones que actualizan un conjunto de pocos registros.

Transacciones que consultan un conjunto de pocos registros.

Puede existir un alto nivel de concurrencia de las transacciones que consultan y actualizan.

Son operaciones de actualización y consultas en línea (online) que deben tener una respuesta instantánea para no trabar las operaciones de la organización.

47
Q

Características de las bases de datos OLTP

A

Debido a dichas características de procesamiento, estas bases de datos suelen tener las siguientes características:

Preparadas para recibir muchas transacciones de pocos registros.

Alto desempeño (performance) en el acceso a los registros y a su actualización.

Alta disponibilidad.

Normalizadas para favorecer la actualización en línea y disminuir la probabilidad de inconsistencias que podrían generarse (lo que no implica que no exista redundancia).

Índices que favorezcan la actualización en línea.

Incluyen métodos de recuperación (para deshacer y rehacer transacciones) que aseguren la consistencia de la base de datos ante fallos en el sistema.

Incluyen protocolos de control de concurrencia que aseguren la consistencia de la base de datos ante actualizaciones concurrentes.

48
Q

Problemas del OLTP

A

Deficiencias por las que las BBDD OLTP no sirven para toma de decisiones tácticas y estratégicas:

  1. Información no integrada: la informacion está dispersa y no representa realidades para decisiones tacticas o estrategicas. La informacion esta en parcialidades independientes; en BBDD con diseños conceptuales y fisicos distintos. Puede deberse a divisiones funcionales, geográficas o por unidades de negocio.
    A. Existen diferentes visiones de una misma realidad entre los directivos de la organización.
    B. Imposibilidad obtener información integrada que permita comparar, clasificar y consolidar como un todo.
  2. Inadecuados tiempos de respuesta: para niveles tácticos y estratégicos se utiliza acceso y procesamiento de importantes volúmenes de datos. OLTP hace muy difícil obtener adecuados tiempos de respuesta. Además, hacen más lento el resto de las operaciones, ya que los recursos de la computadora estarán ocupados respondiendo a sus requerimientos.
    A. Inadecuados tiempos de respuesta para las consultas que apoyan la toma de decisiones.
    B. Se entorpece el nivel de respuesta de los sistemas de nivel operativo, debido al uso intensivo de recursos informáticos, que genera el procesamiento de las consultas para la toma de decisiones.
  3. Imposibilidad de realizar consultas ad hoc amigables: los tomadores de decisiones necesitan poder acceder a la BBDD sin tener mucho conocimiento.
49
Q

Data Warehouse (DW)

A

Data Warehouse (DW) = BBDD concebida y administrada para dar soporte a la toma de decisiones, posee datos representativos, esta optimizada para consultas de muchos registros y no precisan que la actualizacion sea en tiempo real.
DW debe dejar como resultado una BBDD integrada, con datos que permiten toma de decision de niveles tacticos y estrategicos. De todas formas tambien puede ser utilizada por nivel operativo

50
Q

Inteligencia de negocios (Business Intelligence, BI)

A

Inteligencia de negocios (Business Intelligence, BI) = solución donde se usan los datos para una administración “inteligente”. Herramientas de exploración y explotación de datos que den soporte a la toma de decisiones.
Una solucion BI suele tener un DW y herramientas: análisis multidimensional, tableros de control, alertas, reportes, etc.

51
Q

Solución de los problemas del OLTP.

A

Si el problema es información no integrada e inadecuados tiempos de respuesta, el DW puede proveer importantes beneficios.
Si existe el problema de no disponer de herramientas para obtener información ad hoc en forma amigable, entonces se deben explorar las tecnologías encuadradas bajo el BI.

52
Q

Arquitectura de la solución
Los componentes que integran la arquitectura de una solución de DW/BI son:

A

Fuentes de datos: todos los datos en sus BBDD de origen, que se extraerán mediante una serie de procesos ETL (Extract, Transformation, Load) para pasar al DW. Datos de sistemas operacionales, datos externos, datos internos no sistematizados informáticamente.

Área del DW: incluye todos los datos que se integran para brindar información para la toma de decisiones en forma eficaz y eficiente. Esta área puede ser dividida en 3 subáreas:
1. Área de trabajo: transformaciones de datos, limpieza, combinación, homogeneización, equivalencias de códigos, agregaciones de consistencia, etc. Datos no listos para ser consultados, espacio de preparacion.
2. DW objetivo o detallado: BBDD con todos los datos, mayor nivel de desagregacion. Representa la realidad.
3. DW subjetivo o agregado: una o más BBDD (data marts), o por ambas. Construida segun las necesidades de los usuarios para la toma de decisiones y las herramientas a utilizar. Se nutre del DW objetivo. El principal objetivo de los data marts es lograr una mejor performance, son BBDD mas especificas.

Herramientas de acceso y exploración de datos: Lo que ven los usuarios. Distintas herramientas que se usan para explorar los datos, cubre diversos criterios y estilos de analisis (análisis multidimensional, reportes, alertas, etc.).

53
Q

Un DW utiliza procesamiento OLAP (On Line Analitical Processing):

A

Procesamiento OLAP
Procesamiento que se enfoca en la consulta de grandes porciones de la base de datos para mostrar información principalmente agregada.
Necesita el acceso y la recuperación de grandes
cantidades de registros de la base de datos.
Los niveles táctico y estratégico necesitan de este
tipo de procesamiento para obtener información
resumida y abarcar diversos períodos de tiempo que les permita detectar tendencias,
problemas y aciertos.

54
Q

El DW, junto con OLAP, al ser una base de datos que se crea específicamente para este propósito, puede:

A

Integrar los datos de los distintos sistemas OLTP.

Cargar datos externos que sirvan para analizar variables relevantes del entorno.

Centrar el diseño y administración de la base de datos para hacer eficiente el procesamiento OLAP.
- Guardar datos precalculados.
- Indices que optimicen consultas (sin
preocuparse si son ineficientes en la
actualización de datos).
- Emplear redundancia.
- Separar las bases de datos para que la alta
concurrencia de la actualización que generan
las transacciones OLTP no bloqueen las
consultas OLAP.

55
Q

Propiedades DW

A

Orientados a temas: datos no almacenanados con foco en eficacia y eficiencia sino para proveer información.

Integrados: datos almacenados con un criterio unificado. Físicamente pueden estar centralizados o distribuidos.

Histórico (variante en el tiempo): info debe permitir comparaciones, observar tendencias y considerar la evolución.
La necesidad de conservar los datos en un DW por períodos prolongados (ventana temporal).
La necesidad de que exista esta variable como un atributo significativo en los datos que se almacenan.

No volátiles: se refiere a que los datos almacenados no son modificados, sino que solamente serán insertados agregando los nuevos hechos ya ocurridos y respetando la historia ya registrada.

56
Q

Procesos ETL

A

ETL (Extraction, Transformation and Load; extracción, transformación y carga) = conjunto de procesos mediante los cuales se genera y actualiza el contenido del DW. Resuelven la homogeneizacion de datos provenientes de diversas fuentes.
Extraer: acceder y tomar datos de las distintas fuentes.
Transformar: transformaciones necesarias para dejar los datos en el formato, codificación, niveles de agregación, de calidad y criterios de integración que se definan.
Cargar: actualizar el DW con dichos datos ya transformados.

57
Q

Los procesos del ETL se ejecutan sobre la base de una programación temporal. Definida en función de las necesidades de actualización del DW. La programación incluye:

A

Periodicidad (cada cuánto se ejecuta) y horario: con qué frecuencia es necesario tener datos actualizados.

Secuencia: en la que se ejecutan los n procesos que integran el ETL.

58
Q

Data mart

A

Data mart (mercado de datos) = BBDD con mismas características que DW, no representa la realidad de toda la organizacion sino solo respecto de un área o función de ella. Toman relevancia debido a la complejidad de la implementacion del DW.

59
Q

Redundancia

A

Principales herramientas de las que se dispone para la implementación de controles, así como para la reducción de tiempos en las consultas. Los resultados de las consultas se pueden almacenar precalculados. Entre las desventajas de la redundancia se puede mencionar la mayor probabilidad de que existan inconsistencias y los mayores tiempos de actualización.

60
Q

Herramientas de acceso a la información

A

Reportes
Permite distribuir informacion de rutina acerca de distintos aspectos. BI mas difundido, no requiere conocimientos adicionales para acceder a la información que necesita: su presentación, formato y contenido ya están definidos.

Análisis multidimensional (exploración OLAP)
Estilos de BI mas poderosos, se modela la problematica para ser estudiada a partir de hechos y dimensiones de análisis.
El contexto para los hechos de negocio está dado por las dimensiones (tiempo, cliente, producto, etc.).
El usuario tiene disponibles una serie de hechos (o medidas) y dimensiones con las cuales ir armando en forma dinámica la información que le sea de utilidad para su análisis.
El usuario elije variables, filtra, agrega y desagrega información en forma dinámica, rápida y amigable, obteniendo la capacidad de llegar hasta niveles de detalle habiendo partido de valores globales.
Estas herramientas permiten al usuario final sin conocimientos técnicos de bases de datos hacerle preguntas al DW en términos de negocio, usando conceptos del día a día, que conoce por el hecho de trabajar en ese entorno.

Tableros de control
Conjunto de indicadores predefinidos cuyo monitoreo periódico permitirá el conocimiento del estado de situación de la organización. El usuario puede consultarlas e incluso integrarlas con otro tipo de herramientas.

Minería de datos (data mining)
Analizar de forma automática (o semiautomática), mediante diferentes tipos de algoritmos y técnicas estadísticas, grandes conjuntos de datos con el objetivo de encontrar patrones que de lo contrario podrían permanecer ocultos.
Se busca desarrollar modelos predictivos, que apuntan a disminuir la incertidumbre sobre un comportamiento futuro, o de modelos descriptivos, que se limitan a explicar mejor hechos ya ocurridos.

Distribución proactiva
Consiste en que el software de BI envíe y distribuya la información a los usuarios..
Estos envíos se clasifican según la circunstancia que genera su realización:
Ocurrencia de un evento determinado en la base de datos: se delega en el software el monitoreo de ciertas variables del negocio para actuar sólo ante la ocurrencia del evento en cuestión.
Planificación determinada con anterioridad: se envía información a una fecha y hora determinada. Repetitiva o no.
Espontáneo de información (on demand): se da cuando un usuario está navegando por reportes, tableros de control, etc., y decide enviar en forma espontánea el resultado de su análisis a otros usuarios, tanto internos como externos.

61
Q

Bases de datos distribuidas

A

Cuando una organización posee sucursales distribuidas en lugares alejados geográficamente puede adoptar varios esquemas:
Independiente: sin conexión entre los SGBD de las distintas sucursales.

Centralizado: hay una sola base de datos en la casa matriz de la organización y las distintas sucursales se comunican de alguna forma con ella para acceder a los datos (ya que no tienen SGBD).
Independiente con acceso compartido: los diferentes SGBD de las sucursales pueden acceder a los datos de otra a través de un link que los dirige a la misma (autenticación mediante).

Independiente con acceso compartido web service: al esquema anterior se le añade una aplicación (web service) que recibe peticiones y envía respuestas a los SGBD de las distintas sucursales. Envía y recibe los datos que mandan los SGBD en respuesta a las solicitudes de los otros SGBD. El formato o estándar utilizado es el XML.

Distribuido: bases de datos en distintos lugares físicos (denominados nodos) que funcionan de forma paralela y que lógicamente se comportan como una sola base de datos. Tener varios nodos permite alta disponibilidad de los datos al dar mayor respuesta en caso de que se caiga uno de los nodos.
A. Homogéneas: todos los puntos usan el mismo software de gestion de base de datos, hay nocion de existencia de otros y cooperan en el procesamiento de las solicitudes. Localmente renuncian a la autonomia para modificar esquemas o SGDB.
B. Heterogéneas: puede que distintos puntos usen distinto software de gestion de base de datos, no necesariamente hay nocion de existencia de los demas y algunos pueden tener informacion limitada para la cooperacion en procesamiento de consultas.

62
Q

Formas de almacenamiento: Réplica. ventajas de desventajas

A

Réplica: cada modificación en una de las bases (nodos) se copia y se graba en los restantes nodos.

Ventajas
1. Disponibilidad: Si alguno de los sitios que contiene una relación falla, la misma puede hallarse en otro sitio distinto (los otros nodos cubren al nodo que se cayó). Por tanto, el sistema puede seguir procesando las consultas que impliquen esa relación, pese al fallo del sitio (posee mayor tolerancia a fallos).
2. Paralelismo incrementado: En el caso en el que la mayoría de los accesos a una relación sólo resultasen en lecturas, diferentes sitios podrían procesar en paralelo las lecturas que impliquen a esa relación. Cuantas más réplicas de la misma existan, mayor será la posibilidad de que los datos necesarios se encuentren en el sitio en que se ejecuta la transacción. Por tanto, la réplica de los datos minimiza su transmisión entre los diferentes sitios.

Desventaja
Sobrecarga incrementada en la actualización: El sistema debe asegurar que todas las réplicas de una relación sean consistentes; en caso contrario pueden producirse cálculos erróneos. Por tanto, siempre que se actualiza esa relación, hay que propagar la actualización a todos los sitios que contienen réplicas. El resultado es una sobrecarga incrementada.

63
Q

Formas de almacenamiento

A

Réplica: cada modificación en una de las bases (nodos) se copia y se graba en los restantes nodos.

Fragmentación horizontal: en cada nodo se guardan rangos de registros de todas las tablas. En algunas situaciones esto reduce el tráfico de red en las inserciones, modificaciones o eliminaciones, pero las consultas pueden demorar bastante.

Fragmentación vertical: en cada nodo se guardan atributos de las distintas tablas, identificados en todos los casos por la PK. Para eso es necesario un criterio de fragmentación. Sirve cuando hay mas consultas o datos en una region.

64
Q

Partición/fragmentación

A

Partición / fragmentación = buscar respuesta a la posibilidad de que se caiga o haya problemas de conexión entre los nodos. Puede generar problemas de disponibilidad o consistencia.

Si hay problemas de conexión, y no se puede validar o controlar en línea, se pueden adoptar como cursos de acción:
- Reducir las operaciones disponibles (no permitir la lectura y escritura de datos relacionados) y reducir la disponibilidad del sistema de datos.

  • Permitir las operaciones, pero hay que tener recaudos adicionales respecto a cómo se resuelven problemas de inconsistencia que puedan surgir.
65
Q

Gestor de transacciones vs Coordinador de transacciones

A

Gestor de transacciones
Cada sitio tiene su propio gestor local de transacciones, cuya función es garantizar las propiedades ACID de las transacciones que se ejecuten allí. Se encarga de:
Mantener un registro histórico con fines de recuperación.
Controlar la concurrencia del sitio.

Coordinador de transacciones
Coordina la ejecución de las diferentes transacciones (tanto locales como globales) iniciadas en el sitio. Se encarga de:
Iniciar la ejecución de la transacción.
Dividir la transacción en subtransacciones y distribuirlas a los sitios.
Coordinar la terminación de la transacción (compromiso o aborto).

66
Q

Protocolo de 2 fases (C2F)

A

El Protocolo de 2 fases (C2F) para transacciones distribuidas consta de dos fases:

Fase 1:

El coordinador (Ci) agrega el registro <preparar> al registro histórico y lo guarda en almacenamiento estable.
Envia el mensaje preparar T a todos los sitios involucrados en la transacción T.
En cada sitio, el gestor de transacciones decide comprometer o abortar su parte de T.
Si es positivo, agrega <T> al registro histórico y lo guarda.
Si es negativo, agrega <no> al registro histórico y responde con abortar T al coordinador.</no></T></preparar>

Fase 2:

Cuando Ci recibe respuestas de todos los sitios o después de un tiempo predefinido, determina si T se compromete o aborta.
T se compromete solo si Ci recibe T preparada de todos los sitios participantes; de lo contrario, T se aborta.
Se agrega <T> o <T> al registro histórico, que se guarda en almacenamiento estable.
Ci envía a todos los sitios el mensaje comprometer T o abortar T.
El gestor de transacciones de cada nodo maneja operaciones afectando los datos en su nodo. Después de realizar operaciones, informa al coordinador antes de comprometer. El coordinador ordena comprometer subtransacciones en cada nodo, y los gestores pueden comprometer cuando reciben la orden.</T></T>

Si un gestor falla, se rehace la transacción. Si falla después de <Tx>, consulta al coordinador al recuperarse. El coordinador decide basándose en los registros <Tx> recibidos. Si el coordinador falla, los sitios deciden basándose en los registros históricos.</Tx></Tx>

En resumen, C2F garantiza que las transacciones distribuidas se ejecuten como una unidad, asegurando consistencia y confiabilidad en entornos distribuidos.

67
Q

Consistencia eventual

A

La consistencia eventual implica dividir el procesamiento de transacciones en fases, aceptando la falta de consistencia durante estas fases, pero asegurando que eventualmente se alcance un estado consistente. Este enfoque se utiliza para garantizar la disponibilidad en situaciones de desconexión entre nodos. En sistemas como Cassandra, cuando se detecta una partición debido a problemas de conexión, cada nodo opera de manera independiente. Al resolver la desconexión, el sistema se recupera utilizando datos adicionales guardados durante la partición y protocolos específicos para lograr una consistencia eventual. Este enfoque permite mantener la operatividad durante las particiones, pero requiere protocolos para detectarlas, gestionar datos adicionales y resolver posibles inconsistencias, llevando el sistema de nuevo a un estado consistente una vez que la partición se resuelve.

68
Q

Bases de datos semiestructuradas distribuidas. MongoDB

A

MongoDB, una base de datos semiestructurada distribuida, se enfoca en la partición de datos en múltiples nodos para distribuir, paralelizar y redundar operaciones de escritura y lectura. Su estructura documental almacena datos en colecciones compuestas por documentos similares a objetos JSON. Utiliza BSON, una representación binaria de JSON con extensiones para tipos de datos adicionales. Los índices, de estructura de Árbol B, admiten tipos como simples, compuestos, geoespaciales y texto. MongoDB permite réplicas distribuidas mediante conjuntos de réplicas, con un nodo primario y secundarios.

En un esquema de replicación, la aplicación escribe y lee en el nodo primario, que replica datos a los secundarios. La replicación es asincrónica, y en caso de falla del primario, se elige un secundario como nuevo primario. Para aumentar la disponibilidad, las lecturas pueden realizarse en los secundarios. La distribución de documentos se logra mediante la fragmentación de colecciones usando una clave shard inmutable. La replicación ofrece redundancia, mejora la disponibilidad, aumenta la localidad de los datos y permite recuperación de desastres o backup.

69
Q

Blockchain

A

Blockchain es una tecnología de base de datos distribuida que almacena registros en forma segura y transparente mediante una red de nodos. Cada registro, llamado “registro contable distribuido”, describe eventos específicos y se añade a una cadena de bloques. Las transacciones en blockchain, como en Bitcoin, implican emisión de monedas o transferencias entre usuarios, y son irreversibles, permitiendo solo inserciones de nuevas transacciones.

La red blockchain consiste en nodos independientes que mantienen copias de los registros, almacenados de forma permanente. La tecnología utiliza un protocolo que dicta la entrada, validación, almacenamiento y sincronización de datos, encriptados con firmas digitales para garantizar la integridad sin necesidad de intermediarios. En cada transacción, todas las partes deben proporcionar su aceptación mediante claves privadas, y la red verifica su capacidad. La transferencia de activos requiere el consenso de las partes y la confirmación en la mayoría de los nodos de la red.

70
Q

Arquitectura y componentes
La tecnología blockchain tiene los siguientes componentes:

A

Registro: Es el elemento que se desea almacenar en la base de datos. Pueden ser o representar cualquier componente que pueda ser descripto en forma digital.

Transacción: Es un movimiento de cambio de posesión de un registro entre dos propietarios, la adición o edición de un activo, o el registro de un hecho.

Bloque: Conjunto de transacciones a registrar.

Cadena: Es el conjunto de bloques que componen todos los datos y transacciones registradas en la base de datos. Los bloques se encuentran interrelacionados utilizando criptografía y asegurando una linealidad temporal. Toda blockchain es encabezada desde su inicio por un bloque especial denominado “Bloque Genesis”, que no tiene el código hash del bloque anterior aceptado.

Protocolo: Son las reglas a través de los cuales se determina como las entradas son iniciadas, validadas, registradas y distribuidas.

71
Q

Funcionamiento de Blockchain

A

Cuando se desea registrar una transacción en blockchain, se comunica a la mayor cantidad de nodos posibles, se verifica su origen e integridad, y se incluye en un bloque. Este bloque se agrega a la cadena y se comunica a más nodos. La tecnología utiliza hashes y un “salt” para garantizar la seguridad. Los mineros realizan pruebas de trabajo para añadir bloques, y las bifurcaciones se resuelven aceptando la cadena más larga. La seguridad radica en la dificultad computacional y la red descentralizada, haciendo ataques poco prácticos.

72
Q

Propiedades ACID de Blockchain

A

Blockchain no garantiza propiedades ACID como durabilidad y consistencia todo el tiempo. Aunque asegura aislamiento y atomicidad, trabaja con consistencia eventual. La base de datos queda en un estado no consistente durante el proceso de aceptación y replicación.

73
Q

Beneficios de Blockchain

A

Inmutabilidad de la información, reduciendo la posibilidad de fraude.

Semi-anonimato, utilizando claves públicas en lugar de identidades reales.

Eliminación de intermediarios, reduciendo costos y complejidad.

Transparencia al almacenar información sobre activos y cambios de propiedad.

Robustez y recuperación ante fallos debido a la descentralización.

74
Q

Gestión de Datos en Blockchain

A

Las transacciones deben ser confirmadas mediante bloques validados.

Garantiza inmutabilidad de datos al requerir consenso de todos los nodos.

Impacto negativo en el desempeño debido a la encriptación de datos.

Diseñado principalmente como repositorio de transacciones, no para tareas analíticas.

75
Q

Modelo de Gestión de Datos en Blockchain

A

Blockchain es homogéneo, de réplica completa y eventual, sin fragmentación. La cadena más larga tiende a replicarse en todos los nodos eventualmente.

76
Q

Comparaciones, Fortalezas y Debilidades Blockchain

A

Desventaja en la sobrecarga al actualizar datos, pero no aplica directamente a blockchain.

Uso redundante de recursos para obtener la prueba de trabajo afecta el rendimiento.

Fortalezas incluyen seguridad, confianza en integridad y disponibilidad de datos.

La falta de confirmación real y el bajo rendimiento comparado con bases de datos tradicionales son desafíos.