430 likes | 685 Vues
Bases de datos distribuidas. Arquitecturas de bases de datos. Centralizadas BD en una sola máquina y una sola CPU todos los usuarios acceden a esa máquina Sistemas paralelos BD en una sola máquina y varias CPU y varios discos todos los usuarios acceden a esa máquina
E N D
Arquitecturas de bases de datos Centralizadas BD en una sola máquina y una sola CPU todos los usuarios acceden a esa máquina Sistemas paralelos BD en una sola máquina y varias CPU y varios discos todos los usuarios acceden a esa máquina Sistemas cliente-servidor BD en una sola máquina (back-end) los usuarios acceden desde sistemas remotos (front-end) Sistemas distribuidos BD repartida entre varias máquinas los usuarios acceden a cualquiera de las máquinas del sistema BD distribuidas
Base de datos distribuida • Es una colección de múltiples y lógicamente relacionadas bases de datos sobre una red de ordenadores. • Un DBMS distribuido se define como el software que permite gestionarlo y hacer la distribución transparente a los usuarios. • Es una BD almacenada en varios ordenadores que se comunican mediante una red de comunicaciones. • El usuario debe poder usarla como un sistema único. • Puede procesar todo tipo de peticiones complejas. • La peticiones se pueden procesar en el sitio que hizo la petición o en cualquier otro o parcialmente en varios. • Necesita una gestión de transacciones especial. • Debe proporcionar optimización de peticiones automáticamente. BD distribuidas
Ventajas • Autonomía local • Mejora de rendimiento • Mejora de la seguridad y la disponibilidad • Economía • Capacidad de expansión • Capacidad de compartición BD distribuidas
Desventajas • Falta de experiencia • Complejidad • Coste • Control de distribución • Seguridad • Dificultades para cambiar BD distribuidas
Aspectos a tener en cuenta • Transparencia de datos en red • Proceso de peticiones distribuido • Modelo de transacciones distribuido • Control de concurrencia • Manejo de bloqueos • Sistemas distribuidos con múltiples bases de datos BD distribuidas
Transparencia de red • Capacidad del sistema para abstraer a los usuarios los detalles de donde y como están almacenados los datos en el sistema distribuido. • Aspectos a considerar: • Formas de distribuir los datos: • réplica y • fragmentación • Denominación de los datos • Localización de fragmentos y réplicas BD distribuidas
Distribución de los datos • Réplica • se mantienen tantas copias de los datos como sitios para facilitar la recuperación y la tolerancia a fallos. • Fragmentación • la relación se divide en varios fragmentos almacenando uno en cada sitio. • Réplica y fragmentación • la relación se parte en varios fragmentos manteniendo el sistema una copia en cada sitio. BD distribuidas
Réplica de datos • Consiste en mantener una copia exacta de de una relación o parte de ella en mas de un sitio. • La réplica completa se produce cuando se copia la relación en todos los sitios. • Una BD completamente redundante es aquella en la que cada sitio contiene una réplica completa de la BD. BD distribuidas
Características • Ventajas de la réplica • Disponibilidad • frente a fallos de la red. • Paralelismo • las peticiones se pueden procesar en varios nodos en paralelo. • Transferencia de datos reducida • Inconvenientes • Se eleva el coste de la actualizaciones • Se complica el control de la concurrencia BD distribuidas
Fragmentación • Consiste en dividir una relación en varios trozos que contengan suficiente información para poder reconstruir la relación cuando sea necesario • Horizontal • se asignan las tuplas a fragmentos • Vertical • el esquema de la relación se divide en varios • todos los esquemas resultantes contienen una clave candidato común (o superclave) • se añade un atributo especial que actúa como clave candidata. • Ambos tipos de fragmentación se pueden mezclar BD distribuidas
venus neptuno venus jupiter jupiter jupiter venus marte jupiter pluton sol venus mrm plp ana lls eli elsb ppp crc sofi elsc els cmr carlos elisa ana elena maria luis elena pedro elena elena pedro sofia 09 01 02 03 04 05 07 08 12 11 10 06 Ejemplo type cuenta = record nombre: char(22); maquina: char(8); login: char(8); end BD distribuidas
pluton jupiter marte venus venus jupiter venus neptuno sol jupiter venus jupiter jupiter sol jupiter jupiter marte neptuno jupiter pluton venus venus venus venus eli sofi mrm plp els lls ppp elsb cmr ana crc crc elsc ppp lls sofi plp ana elsb mrm eli els cmr elsc elena elisa elena pedro elena sofia elena carlos elisa luis maria pedro maria elena ana pedro carlos pedro elena sofia elena luis ana elena 06 08 10 11 09 02 03 04 07 12 01 06 02 04 03 01 05 12 08 09 11 10 07 05 Fragmentación horizontal Sitio A Sitio B BD distribuidas
plp venus jupiter neptuno jupiter venus venus jupiter marte venus jupiter pluton sol 01 07 02 03 10 09 04 05 12 01 06 08 11 maria ana luis pedro elena pedro carlos sofia elena elena elena elisa 09 07 06 08 05 04 03 10 11 02 01 12 01 lls 02 02 mrm 03 03 ana 04 04 ppp 05 05 cmr 06 06 crc 07 07 sofi 08 08 elsb 09 09 els 10 10 eli 11 11 elsc 12 12 Fragmentación vertical Sitio A Sitio B BD distribuidas
Ventajas de la fragmentación • Horizontal • permite el procesamiento paralelo de una relación • permite que una tabla global pueda estar donde se utiliza mas frecuentemente • Vertical • permite que una tabla pueda ser distribuida en función del uso de sus atributos. • permite descomposiciones adicionales que se pueden conseguir con normalización. • el atributo especial facilita la mezcla de fragmentos verticales • permite el procesamiento paralelo de una relación BD distribuidas
Criterios de denominación de datos 1. Cada dato debe tener un nombre único en el sistema 2. Debe ser posible encontrar la localización de los datos de forma eficiente. 3. Debe ser posible cambiar la localización de los datos de forma transparente. 4. Cada sitio debe poder crear nuevos datos autónomamente. BD distribuidas
Esquema centralizado • Estructura • un servidor asigna todos los nombres • cada sitio mantiene un registro de todos los datos locales • los sitios piden al servidor la localización de los datos remotos • Ventajas • Cumple los tres primeros criterios de denominación de datos • Inconvenientes • no satisface el último criterio • el servidor puede saturarse • el servidor es un elemento crítico BD distribuidas
Uso de alias • Cada sitio añade su identificador a cada nombre que genera. • sitio17.datoXXX • Maneja un identificador único y elimina los problemas del servidor central, pero no consigue transparencia de red. • La solución es asignar alias a los datos y almacenar la relación en cada sitio • no hace falta conocer la localización del dato • no afecta si los datos cambian de sitio BD distribuidas
Nombres únicos • Cada réplica de cada fragmento de un dato tiene un nombre único • Se utilizan sufijos para indicar de que réplica y de que fragmento es cada dato • sitio17.datoXXX.frag005.replica56 • El nombre real de un dato se obtiene del alias localizando • primero la réplica • luego el fragmento BD distribuidas
Para encontrar un dato • El subsistema de procesamiento de peticiones busca el nombre en la tabla de alias local • Si es una réplica se consulta la tabla de réplicas • Si la réplica es fragmentada se examina la tabla de fragmentación para saber como reconstruir la relación • Aunque solo se suelen consultar una o dos tablas, el algoritmo maneja cualquier combinación de réplicas y fragmentos. BD distribuidas
Transparencia y actualización • Debe asegurar que todas las réplicas y todos los fragmentos de los datos afectados se actualizan. • Fragmentación horizontal • aplicar un predicado para saber si el dato pertenece a un fragmento o no • insertar el dato en todas las réplicas • Fragmentación vertical • dividir el dato en fragmentos • insertar cada fragmento en cada réplica • Problema: pueden lanzarse dos actualización de fragmentos distintos del mismo dato en paralelo sobre réplicas distintas BD distribuidas
Proceso de peticiones distribuido • Hay que considerar criterios de coste más sofisticados que el sistemas centralizados: • Número de accesos a disco • Coste de la transmisión de datos sobre la red • Capacidad de procesamiento paralelo • Selección del sitio de procesamiento • Es necesario considerar expresiones sobre fragmentos • Construir una relación desde sus fragmentos • Sustituir una relación por una expresión que la construye desde sus fragmentos. BD distribuidas
Ejemplo • Con fragmentación horizontal • r = r1 r2 • r1 = atributo = valor1 (r) • r2 = atributo = valor2 (r) • La petición atributo = valor1 (r) consiste en • atributo = valor1 (r1 r2 ) • La optimización consiste en hacer la selección antes que la unión de fragmentos • atributo = valor1 (r1) atributo = valor1 (r2 ) • Como r2 no tiene valor1, la selección es vacía y el resultado es la selección de r1 BD distribuidas
Proceso de mezcla simple • Considerando la expresión r1r2r3 • Suponer que • no hay réplicas ni fragmentaciones • cada relación está en un sitio distinto • que el resultado hay que producirlo en el sitio de r1 • Estrategia 1. copiar r1 de S1 a S2 y hacer la mezclar1r2 2. copiar el resultado temporal en S3 y hacer la mezclatemporalr3 3. enviar el resultado a S1 BD distribuidas
Planes de evaluación alternativos • Se pueden diseñar diferentes estrategias cambiando los roles de los tres sitios • Se deben considerar los siguientes factores: • cantidad de información que hay que transportar • coste de la transmisión de bloques de datos entre sitios • la velocidad relativa de procesamiento de cada sitio BD distribuidas
Proceso de mezcla parcial • Sea r1 una relación con esquema R1 almacenada en S1 • Sea r2 una relación con esquema R2 almacenada en S2 • Se trata de evaluar la expresión r1r2 y almacenar el resultado en R1 • calcular temp1 = R1 R2(r1) en S1 • enviar temp1 a S2 • calcular temp2 = r1temp1 en S2 • enviar temp2 a S1 • calcular r1temp2 en S1 BD distribuidas
Definición formal • La mezcla parcial de r1 yr2 = r1< r2 • Se define como R1(r1r2) • Selecciona los elementos de r1 que contribuyen a la mezcla r1r2 • El procedimiento puede extenderse a cualquier número de relaciones realizando varios pasos de mezcla parcial. BD distribuidas
Estrategias para explotar el paralelismo • Considerar r1r2r3r4 • donde cada relación se guarda en un sitio diferente y • el resultado se debe dejar en S1 • Estrategia paralela • Se manda r1 a S2 y se calcula r1r2 • Se manda r3 a S4 y se calcula r3r4 • Se envían los resultados a S1 según se van produciendo • Según van llegando los resultados a S1 se procesa la mezcla final (r1r2)(r3r4) BD distribuidas
Modelo de transacciones distribuido • Soportar el proceso de transacciones • locales: en un solo sitio • globales: en varios sitios • Cada sitio debe disponer de un Gestor de Transacciones Local • mantiene el registro de actividades • participa en la coordinación de la ejecución de transacciones globales. • Hace falta un Coordinador de Transacciones en cada sitio: • arranca la ejecución de transacciones en ese sitio • distribuye operaciones de la transacción a otros sitios • coordina la terminación de las transacciones originadas en ese sitio BD distribuidas
Control de transacciones • Es el subsistema encargado de controlar la atomicidad de la ejecución de transacciones: • parte local • parte distribuida • Para la parte distribuida hace falta un protocolo: • protocolo de acuerdo en dos fases (2PC) • protocolo de acuerdo en tres fases (3PC) • Hace falta un protocolo de selección de coordinador en caso de fallo • Hace falta un algoritmo de control de concurrencia a nivel global • protocolos de bloqueo • marcas de tiempo BD distribuidas
Protocolo 2PC • Sirve para certificar que una transacción que se ha ejecutado de forma distribuida ha terminado bien. • El Coordinador de la transacción ejecuta el protocolo cuando se ejecuta el último paso de la transacción. • El protocolo tiene en cuenta todos los sitios que han intervenido en la transacción. • Si Si es el sitio que inició la transacción T, actúa como coordinador Ci y es el que inicia el protocolo. BD distribuidas
registro Si (Ci) protocolo registro Si (Ci) protocolo <T prepare> <T commit> <T complete> prepare T ready T de S1 ready T de S2 . ready T de Sn commit T ack T de S1 ack T de S2 . ack T de Sn <T prepare> <T abort> prepare T ready T de S1 no T de Sj . abort T Fase 1 Fase 2 Protocolo de acuerdo 2PC BD distribuidas
Fallo en un participante • La recuperación depende de la información del registro • si contiene un <T commit>, ejecuta un <T redo> • si contiene un <T abort>, ejecuta un <T undo> • si contiene un <T ready>, debe consultar a Ci para decidir que hacer • si <T commit>, ejecuta un <T redo> • si <T abort>, ejecuta un <T undo> • Si no hay entradas de T en el registro, es que fallo antes de recibir el <T prepare>, • se debe ejecutar un <T undo> BD distribuidas
Fallo del coordinador • Los demás sitios deben decidir que hacer con T, en función del contenido del registro • si contiene un <T commit>, se da a T por entregada • si contiene un <T abort>, T debe abortar • si algunos sitios contienen <T ready>, hay que abortar • si todos los sitios contienen <T ready>, hay que esperar a que el coordinador vuelva a funcionar • esto puede provocar un bloqueo al obligar a esperar a los sitios activos. • el Protocolo 3PC puede resolver este problema BD distribuidas
registro Si (Ci) protocolo registro Si (Ci) protocolo <T prepare> <T precommit> <T commit> prepare T ready T de Sk k sitios . precommit T ack T de Sk k sitios commit T <T prepare> <T abort> prepare T ready T de S1 no T de Sj . abort T Fase 1 Fase 2 Fase 3 Protocolo de acuerdo 3PC BD distribuidas
Protocolo de fallo del coordinador 1. Los sitios activos eligen un nuevo coordinador Cnew. 2. Cnew pide el estado de T a cada participante. • Commit: si el registro contiene un commit • Abort: si el registro contiene un abort • Ready: si el registro contiene ready y no contiene abort o precommit. • Precommit: si contiene un precommit y no contiene un abort o un commit • Not ready: si no contiene ni ready ni abort 3. Cada participante manda su estado a Cnew para que este decida. 4. Cnew decide en función de todos los participantes • si un sitio envía un commit commit • si un sitio envía abort abort • si un sitio envía precommit y nadie envía commit o abort aplicar el protocolo desde la segunda fase • en cualquier otro estado abort BD distribuidas
Sistemas con múltiples bases de datos • Sobre los sistemas de gestión local es preciso añadir sistemas de gestión global del entorno distribuido. • De igual forma se añade una interfaz al más alto nivel para manipular información en sistemas heterogéneos. • Son sistemas con limitaciones pues • los modelos de datos pueden ser diferentes • los protocolos locales de gestión de transacciones pueden ser incompatibles. • El control de concurrencia puede utilizar técnicas diferentes. BD distribuidas
Ventajas • Se mantiene la inversión existente • hardware • software de sistema • aplicaciones • Autonomía y control administrativo local • Permite el uso de DBMS de propósito especial • Es una primera aproximación hacia un sistema de gestión de bases de datos unificado. BD distribuidas
Unificación de la visión de datos • Acuerdo en un modelo de datos común • Acuerdo en un esquema conceptual común • Acuerdo en una representación de datos compartidos única. • Acurerdo en las unidades de medida. • Preparación para aceptar transacciones globales BD distribuidas
Gestión de transacciones • Las transacciones locales no se comunican al resto del sistema. • La autonomía local implica que no se comunica directamente con el gestor de transacciones global y estas transacciones no están bajo control. • control de concurrencia local • hay que protegerse contra bloqueos locales • hacen falta mecanismos para asegurar la seriabilidad global. BD distribuidas
Sistema de gestión de fallos • Aparecen nuevas causas de fallo • fallo de un sitio • pérdida de mensajes • fallo en los enlaces de la red • partición de la red • La forma de responder a los fallos es ofrecer el mayor grado de robustez posible • detectar el fallo • reconfigurar el sistema • recuperarse del error BD distribuidas
Reconfiguración del sistema • Si se produce un fallo en el sitio S y • Si hay datos replicados en S, eliminar a S de la lista de actualizaciones. • Si había transacciones corriendo S cuando se produce el fallo, pasan a estado abort. • es importante hacerlo pronto, pues puede haber datos bloqueados para sitios que están activos. • Si S es un servidor central de algún subsistema, se debe elegir un nuevo servidor • servidor de nombres, coordinador de concurrencia, detector de bloqueos globales. BD distribuidas
Reconfiguración del sistema • La reconfiguración debe soportar particiones de la red, evitando, • la elección de dos o mas servidores centrales en cada partición. • actualización de datos replicados por mas de una partición. • La reconfiguración se puede representar como una serie de transacciones • subsistema de control de concurrencia • subsistema de gestión de transacciones BD distribuidas