350 likes | 579 Views
Bases de datos distribuidas. Ing. Fabián Ruano. Base de Datos Distribuida. Definición Diferencias con BD Centralizadas. Ventajas. Almacenamiento cercano Procesamiento paralelo Expansión rápida Tolerancia a fallos Autonomía de nodos. Desventajas. Control y manejo de datos Seguridad
E N D
Bases de datos distribuidas Ing. Fabián Ruano
Base de Datos Distribuida • Definición • Diferencias con BD Centralizadas
Ventajas • Almacenamiento cercano • Procesamiento paralelo • Expansión rápida • Tolerancia a fallos • Autonomía de nodos
Desventajas • Control y manejo de datos • Seguridad • Complejidad en mantener integridad • Control de concurrencia mas complejo
Aspectos importantes SGBD distribuidos • Diseño de la base de datos distribuida: distribución de información entre nodos • Procesamiento de consultas: costo de procesamiento y transmisión de datos • Control de concurrencia: coordinación de acceso a la base de datos • Confiabilidad: manejo de transacciones
Arquitectura BDD – Niveles de transparencia en SBDD (1/2) • Independencia de datos: aplicaciones inmunes a cambios en definición y organización de datos y viceversa • Lógica: inmunidad a cambios en estructura lógica de la base de datos • Física: ocultamiento de detalles sobre estructuras de almacenamiento a las aplicaciones de usuario • Transparencia de replicación: replicas controladas por el sistema, no por el usuario.
Arquitectura BDD – Niveles de transparencia en SBDD (2/2) • Transparencia a nivel de red • Localización de datos: comando usado es independiente de la ubicación de los datos y lugar donde la operación se realice • Esquema de nombramiento: proporcionando nombre único a cada objeto de sistema distribuido. • Transparencia de fragmentación: sistema maneja conversión de consultas definidas sobre relaciones globales a consultas definidas sobre fragmentos
Arquitectura BDD • Mayoría basadas en sistema ANSI-SPARC con tres niveles: interno, conceptual y externo. • Externa: vista por usuario • Conceptual: vista lógica global • Interno: nivel de descripción mas bajo de los datos en una base de datos
Alternativas implementacion SMDB Dimensiones • Distribución • Heterogeneidad • Autonomía • Diseño: decisión sobre cuestiones de diseño • Comunicación: decisión sobre cuestiones de comunicación • Ejecución: decisión sobre cuestiones de ejecución de operaciones de manera local
Tarea Algoritmos de control de concurrencia: • Candado de dos fases • Ordenamiento por estampas de tiempo • Ordenamiento por estampas de tiempo múltiple • Control de concurrencia optimista
Dimensiones • Nivel de distribución • Ninguno • Solo datos (sist. Homogéneo) • Datos mas programas (sist. Heteregéneo) • Comportamiento de patrones de acceso • Estático • Dinámico • Nivel de conocimiento sobre comportamiento de patrones • Sin información / parcial • Información total
Estrategias de diseño – Descendente (1-3) • Análisis de requerimientos que define el ambiente del sistema. Determina necesidades de los datos y del proceso. DBMS debe ser definido por: desempeño, confiabilidad, disponibilidad, economía y flexibilidad. • Diseño visual: definir las GUI • Diseño conceptual: examina la empresa para generar diagrama E-R
Estrategias de diseño - Descendente (2-3) • Como resultado de los diseños conceptual y visual debe darse un esquema conceptual global y recopilación de los patrones de acceso. • Diseño de distribución: diseñar esquema conceptual local para cada sitio del SD. Fragmentación y asignación.
Estrategias de diseño - Descendente (3-3) • Diseño físico: mapear esquemas conceptuales locales con los dispositivos de almacenamiento físicos disponibles en cada sitio.
Estrategias de diseño - Ascendente • Conveniente cuando BD ya existen y tareas de proceso involucran integración. • Punto de inicio son esquemas conceptuales individuales, se integran para obtener esquema conceptual global y posiblemente generar GUI.
¿Por qué fragmentar? • Encontrar unidad de relación apropiada. Diferentes aplicaciones ingresan a diferentes sub-conjuntos de datos. • Replicaciones mas convenientes, solamente de sub-relaciones. • Ejecuciones concurrentes de procesos sobre sub-conjuntos aislados.
Problemas de la fragmentación • Unión de fragmentos para consultas • Costoso en proceso • Costoso en transferencia de datos • Control de semántica de datos y revisión de integridad
¿Cómo fragmentar? • Fragmentación vertical • Fragmentación horizontal • Fragmentación híbrida
Grado de fragmentación • Afecta desempeño de la ejecución de los Query. • Dependerá de las necesidades de nuestra aplicación.
Correctitud fragmentación • Condición de completitud. La descomposición de una relación R en los fragmentos R1, R2, ..., Rn es completa si y solamente si cada elemento de datos en R se encuentra en algún de los Ri. • Condición de Reconstrucción. Si la relación R se descompone en los fragmentos R1, R2, ..., Rn, entonces debe existir algún operador relacional Ñ , tal que,R = Ñ 1£ i£ nRi • Condición de Fragmentos Disjuntos. Si la relación R se descompone en los fragmentos R1, R2, ..., Rn, y el dato di está en Rj, entonces, no debe estar en ningún otro fragmento Rk (k¹ j).
Alternativas de asignación • Forma para asignación de fragmentos de las relaciones en cada uno de los sitios teniendo ya bien realizada nuestra fragmentación. • Costos mínimos: costos de actualización entre sitios y costos de comunicación de datos • Desempeño: minimizar el tiempo de respuesta y maximizar la salida de información a cada sitio.
Replicación • Mejora Querys de sólo lectura • Confiabilidad • Empeora Query de actualización • Estrategias: • No soportar replicación. Cada fragmento reside en un solo sitio. • Soportar replicación completa. Cada fragmento en cada uno de los sitios. • Soportar replicación parcial. Cada fragmento en algunos de los sitios.
Requerimientos de información En diseño de distribución influyen factores como: • Información sobre el significado de los datos • Información sobre las aplicaciones que los usan • Información acerca de la red de comunicaciones • Información acerca de los sistemas de cómputo
Fragm. Horizontal Primaria Cada subconjunto puede contener datos que tienen propiedades comunes y se puede definir expresando cada fragmento como una operación de selección sobre la relación global Considere la relación global: SUPPLIER( SNUM, NAME, CITY ) entonces, la fragmentación horizontal puede ser definida como: SUPPLIER1 = SLcity == "SF"SUPPLIER SUPPLIER1 = SLcity == "LA"SUPPLIER • Esta fragmentación satisface la condición de completes si "SF" y "LA" son solamente los únicos valores posibles del atributo CITY. • La condición de reconstrucción se logra con: SUPPLIER = SUPPLIER1 union SUPPLIER2 • La condición de disjuntos se cumple claramente en este ejemplo.
Fragm. Horizontal Derivada La fragmentación derivada horizontal se define partiendo de una fragmentación horizontal. En esta operación se requiere de Semi-junta (Semi-Join) el cual nos sirve para derivar las tuplas o registros de dos relaciones. Las siguientes relaciones definen una fragmentación horizontal derivada de la relación SUPPLY. SUPPLY1 = SUPPLYSJsnum == snumSUPPLIER1 SUPPLY2 = SUPPLYSJsnum == snumSUPPLIER2
Fragmentacion Vertical • Enfoques • Agrupamiento (Clustering): Inicia asignando cada atributo a un fragmento, y en cada paso, algunos de los fragmentos satisfaciendo algún criterio se unen para formar un solo fragmento. • Division: Inicia con una sola relación realizar un particionamiento basado en el comportamiento de acceso de las consultas sobre los atributos.
Modelo de asignación Formula general: min( Costo Total ) Dadas: • Restricciones tiempo de rta • Restricciones capacidad de almacenamiento • Restricciones en tiempo de procesamiento Costo total = procesamiento de consultas + almacenamiento Procesamiento de consultas= sumatoria del costo de procesamiento de todas las consultas Almacenamiento = sumatoria de costos de almacenar todos los fragmentos en los correspondientes nodos
Modelo de asignación Costo de almacenamiento por nodo = costo almacenamiento unitario en el nodo * tamaño del fragmento Costo del procesamiento por consulta = costo de procesamiento + costo de transmision Costo de procesamiento = costo de acceso + costo de mantenimiento de integridad + costo debido a control de concurrencia
Modelo de asignación Costo de acceso = sumatoria(numero total de actualizaciones y lecturas realizadas por consulta en el fragmento i * costo unitario de procesamiento local en el fragmento i) i = cada fragmento involucrado en la consulta Costos de mantenimiento de integridad y costo de control de concurrencia se calculan similar al costo del control de acceso.
Modelo de asignación Costo de transmisión • Procesamiento de actualizaciones = costo de envió de mensajes de actualización a los N nodos involucrados + costo de envió de mensaje de confirmación • Procesamiento de consultas = costo de transmitir consulta a N nodos involucrados + costo de transmisión de respuestas de los N nodos a las N consultas
Restricciones a asignación • Tiempo de respuesta Para cada Qi el tiempo de respuesta <= máximo tiempo de respuesta esperado. • Almacenamiento Costo de almacenamiento en Nodoi <= capacidad de almacenamiento de dicho nodo • Tiempo procesamiento Carga de procesamiento Nodoi<= capacidad de procesamiento de dicho nodo
Referencias • http://tododistribuido.files.wordpress.com/2008/10/disdabe_design.pdf • http://cursos.aiu.edu/Base%20de%20Datos%20Distribuidas/pdf/Tema%202.pdf • http://geocities.ws/immonroy7/Cap_3.html • http://lihectortorres.files.wordpress.com/2010/09/base_de_datos_distribuidas.pdf