1. Bases de datos distribuidas
Introducción y conceptos básicos
2. Complicaciones introducidas por
la distribución
Replicación en un ambiente distribuido
◦ Escoger una de las copias en caso de
recuperación.
◦ Asegurarse que la actualización se refleje en
cada una de las copias.
Si algún sitio o enlace de comunicación
falla mientras se ejecuta una
actualización, el sistema debe
asegurarse que los efectos se reflejen
en los datos.
La sincronización de transacciones en
múltiples sitios es más difícil que en los
sistemas centralizados.
4. Diseño de bases de datos
distribuida
¿Dónde se deben establecer (sitios)
las bases de datos y las aplicaciones
que corren sobre ella?
Existen dos alternativas para
establecer o posicionar los datos en
un diseño distribuido.
5. Diseño de bases de datos
distribuidas
Particionada (no replicada): La base de
datos se divide en un número de
particiones disjuntas las cuales se
posicionan en diferentes sitios.
Replicada
◦ Completamente replicada (completamente
duplicada): donde la base de datos entera se
almacena en cada sitio.
◦ Parcialmente replicada (parcialmente
duplicada): donde cada partición se
almacena en más de un sitio, pero no en
todos.
6. Diseño de bases de datos
distribuidas
Los problemas fundamentales de
diseño son:
◦ Fragmentación: separación de una base
de datos en particiones llamadas
fragmentos.
◦ Distribución: La distribución óptima de los
fragmentos.
8. Procesamiento de consultas
distribuidas
Algoritmos que analizan consultas y
las convierten en una serie de
operaciones de manipulación de
datos.
Elegir estrategias para ejecutar
consultas sobre la red con el mejor
costo-eficiencia.
Factores: distribución de los datos,
costo de la comunicación, carencia de
suficiente información disponible
9. Control de concurrencia
distribuido
Sincronización de accesos a la base de
datos distribuida.
Además de preocuparse por la
integridad de los datos, debe
preocuparse de la “consistencia mutua”.
Las clases de soluciones son:
◦ Pesimista: Sincronizar la ejecución de las
peticiones de los usuarios antes de que
comiencen a ejecutarse.
◦ Optimista: Ejecutar las peticiones y después
checar si la ejecución ha comprometido la
consistencia de la base de datos.
10. Control de concurrencia
distribuido
Los principios fundamentales que
pueden utilizarse en las clases de
soluciones son:
◦ Bloqueo (locking): Basado en la exclusión
mutua de accesos a objetos de datos.
◦ Sello de tiempo (timestamping): La
ejecución de las transacciones se
ordenan con sellos de tiempo.
11. Administración de puntos
muertos (deadlocks) distribuidos
Los usuarios compiten por un
conjunto de recursos (datos en este
caso), lo cual puede resultar en un
deadlock (punto muerto) si el
mecanismo de sincronización está
basado en bloqueo.
12. Confiabilidad de los DDBS’s
falla varios sitios inoperables o
inaccesibles las bases de datos en
los sitios operables consistentes y
actualizadas
Sistema se recupera DDBS se
recupera DDBS actualiza los sitios
caídos
13. Replicación
Réplica: copia de objeto de datos.
Implementar protocolos que aseguren
la consistencia de las réplicas.
◦ Protocolo “entusiasta”: Fuerzan las
actualizaciones a todas las réplicas antes
que la transacción se complete.
◦ Protocolo “lento”: La transacción actualiza
una copia (maestro) desde donde las
actualizaciones se propagan hacia las
demás copias una vez que se completa la
transacción.
16. Arquitectura de los DDBS’s
Componentes identificados
Funciones de los componentes
identificadas
Relaciones e interacciones entre
componentes definidas
21. Autonomía
Se refiere a la distribución del control
(no de los datos).
◦ Las operaciones locales no son afectadas
por su participación en el sistema
distribuido.
◦ La manera en que procesa y optimiza
consultas no son afectadas por la
ejecución de consultas globales que
acceden a múltiples bases de datos.
◦ La consistencia de las operaciones o del
sistema no se comprometen cuando se
deja o se une al sistema distribuido.
22. Autonomía
Las dimensiones de autonomía son
las siguientes:
◦ Autonomía de diseño: Utilizan modelos de
datos y administración de transacciones
que prefieran.
◦ Autonomía de comunicación: Libre de
decidir que tipo de información desea
compartir con otros DBMS’s o con el
software que controla su ejecución.
◦ Autonomía de ejecución: Puede ejecutar
las transacciones de la manera que
desee.
23. Autonomía
Clasificación de autonomía
◦ Integración estrecha (tight integration): Existe
una única imagen de toda la base de datos
que puede ser compartida y encontrarse en
múltiples bases de datos, y un administrador
de datos tomará el control de las peticiones
de todos los usuarios.
◦ Semiautónomo: deciden participar en una
federación para compartir sus datos locales.
◦ Aislamiento total: no conocen la existencia
de otros DBMS’s ni la manera de
comunicarse con ellos.
25. Heterogeneidad
La heterogeneidad puede ocurrir
de varias maneras en sistemas
distribuidos, desde la heterogeneidad
del hardware y las diferencias en los
protocolos de redes hasta las
variaciones en las administraciones de
datos.
Modelos de datos
Lenguajes de búsqueda
Protocolos de administración de
transacciones.
Notas del editor
Basado en las explicaciones anteriores, identifique las relaciones entre los diferentes problemas que se presentan.
La arquitectura de un sistema define su estructura.
Indica el grado en el que los DBMS’s individuales pueden operar de manera independiente.
Intercambio de información
Ejecutar transacciones de manera independiente
Si uno de los DBMS’s puede modificar a los demás
Integración estrecha: desde la perspectiva del usuario, los datos están lógicamente integrados en una sola base de datos.
Un solo DBMS funciona como administrador de datos.
Semiautónomo: cada uno decide que partes de información se van a compartir. No son completamente autónomos porque necesitan modificarse para habilitar el intercambio de información.
Aislamiento tota: el procesamiento de las transacciones de usuario se dificulta debido a que no hay control global.
Tarea en equipo, exponer sistema cliente/servidor, punto a punto y multibase de datos.
Que es el diseño top-down.
Tipos de fragmentación.