Bases de datos distribuidas
Homogéneas
un mismo software de gestión de base de datos y tienen en cuenta la existencia de los demás sitios.
Genera un intercambios de información entre transacciones en varios sitios
Heterogéneas
esquemas diferentes y diferente software de gestión de base de datos en sitios diferentes.
Problemas en el procesamiento de consultas
Problemas en el procesamiento de transacciones
Almacenamiento Distribuido
Réplica
Conserva copias idénticas de las relaciones y las guarda en su sitio diferente
La relaciones pueden dividirse en varios fragmentos y pude haber varias replicas de cada fragmento
Si alguno de los sitios que contiene la relación falla, la relación puede hallarse en otro sitio distinto.
Varios sitios pueden procesar en paralelo las lecturas que impliquen una relación
Mayor será la posibilidad de que los datos necesarios se encuentren en el sitio donde se ejecuta la transacción
Se encarga de propagar la actualización de la relación a todos los sitios que contienen réplicas.
en caso contrario pueden producirse cómputos erróneos
De lectura y aumenta la disponibilidad de
datos para las transacciones sólo de lectura
Dividir la relación en varios fragmentos, estos fragmentos contienen suficiente información como para permitir la reconstrucción de la relación original.
Fragmentación horizontal
Cada tupla de la relación debe pertenecer como mínimo a uno de los fragmentos de modo que se pueda reconstruir la relación original
Por ejemplo, los fragmentos obtenidos
de la fragmentación horizontal de una relación
pueden dividirse nuevamente de manera vertical.
Fragmentación vertical
La fragmentación debe hacerse de modo que se pueda reconstruir la relación a partir de los fragmentos tomando la reunión natural
Fragmentación
Divide la relación en varios fragmentos y guarda cada fragmento en un sitio diferente
Transparencia
Que conozcan la ubicación física
de los datos ni el modo en que se puede tener acceso
hay que tener cuidado para asegurarse de que dos sitios no utilicen el mismo nombre para elementos de datos diferentes
el sistema de bases de
datos puede crear un conjunto de nombres alternativos
o alias para los elementos de datos
No se exige a los usuarios que conozcan la ubicación física de los datos
Los usuarios ven cada objeto de datos como lógicamente único
Los usuarios no deben preocuparse por los objetos que se hayan replicado
ni por la ubicación de esas réplicas
No se exige a los usuarios que conozcan el modo en que se ha fragmentado la relación.
Transacciones Distribuidas
El acceso a los diferentes elementos de datos en los sistemas distribuidos
Las transacciones locales
Son las que tienen acceso a los datos y los actualizan sólo en una base de datos local
las transacciones globales
Son las que tienen acceso a datos y los actualizan en varias bases de datos locales
Estructura del sistema
cuya función es asegurar las propiedades ACID de las transacciones que se ejecuten en ese sitio
gestor de transacciones
las transacciones se ejecuta sólo en un sitio o se ejecuta en varios sitios.
coordinador de transacciones
Globales como locales, son responsables de la coordinación
de la ejecución de todas las transacciones iniciadas en ese sitio
Inicio de la ejecución de la transacción
División de la transacción en varias subtransacciones y distribución de esas subtransacciones a los sitios correspondientes para su ejecución
Coordinación de la terminación de la transacción, que puede hacer que la transacción se comprometa en todos los sitios o que se aborte
Modos de fallo del sistema
• Fallo de un sitio
• Pérdida de mensajes
• Fallo de un enlace de comunicaciones
• División de la red
Si falla un enlace de comunicaciones los mensajes que se deberían haber transmitido por el enlace deben reencaminarse
Un sistema está dividido si se ha dividido en dos (o más) subsistemas, denominados particiones, que carecen de conexión entre ellas
Control de la concurrencia en las bases de datos distribuidas
Protocolos de bloqueo
Enfoque de gestor único de bloqueos
Implementación sencilla
Tratamiento sencillo de los interbloqueos
Cuello de botella
Vulnerabilidad
Gestor distribuido de bloqueos
Copia principal
Protocolo de mayoría
Implementación
Tratamiento de los interbloqueos
Protocolo sesgado
Bloqueos compartidos
Bloqueos exclusivos
Protocolo de consenso de quórum
Marcas temporales
Réplica con grado de consistencia bajo
Tratamiento de los interbloqueos
Protocolos de compromiso
Para asegurar la atomicidad en el coordinador de transacciones
protocolo de compromiso de dos fases (C2F)
El protocolo de compromiso
Fase 1
añade el registro a la transaccion
Fase 2
Recuperación y control
de la concurrencia
Tratamiento de los fallos
protocolo de compromiso de tres fases (C3F)
Modelos alternativos del procesamiento de transacciones
Protocolo de sitio receptor
Protocolo de sitio enviante
Disponibilidad
En concreto, dado que los fallos son más probables en los sistemas distribuidos de gran tamaño, una base de datos distribuida debe seguir funcionando aunque haya varios tipos de fallos.
detectar los fallos, reconfigurar el sistema de modo que el cálculo pueda continuar y recuperarse cuando se repare el procesador o el enlace.
Procesamiento Distribuido de Consultas
Transformación de consultas
Procesamiento de reuniones sencillas
Estrategia de semirreunión
Estrategias de reunión que aprovechan el paralelismo
Bases de datos distribuidas heterogéneas
Vista unificada de los datos
Procesamiento de las consultas
Sistemas de directorio
Protocolos de acceso a directorios
El protocolo de acceso ligero
a directorios LDAP (Lightweight
Directory Access Protocol)
El modelo de datos LDAP
Tratamiento de los datos
Árboles distribuidos de directorio