Base de Datos Distribuidas Benjamín Martínez Martínez [email protected] Base de Datos Distribuidas México Db2 Monterrey Microsoft Access Red de comunicaciones Chiapas SqlServer Guerrero Oaxaca MySql Postgres Conceptos básicos BDD Base de Datos Distribuidas Es un conjunto de múltiples bases de datos lógicamente relacionadas las cuales se encuentran distribuidas entre diferentes sitios interconectados por una red de comunicaciones SBDD Sistema de Base de Datos Distribuida Es un sistema en el cual múltiples sitios de bases de datos están ligados por un sistema de comunicaciones, de tal forma que, un usuario en cualquier sitio puede accesar los datos en cualquier parte de la red exactamente como si los datos estuvieran almacenados en su sitio propio Continuación… SMBDD Un sistema de manejo de bases de datos distribuidas Es aquel que se encarga del manejo de la BDD y proporciona un mecanismo de acceso que hace que la distribución sea transparente a los usuarios. El término transparente significa que la aplicación trabajaría, desde un punto de vista lógico, como si un solo SMBD ejecutado en una sola máquina, administrara esos datos. SBDD Un sistema de base de datos distribuida Es entonces el resultado de la integración de una base de datos distribuida con un sistema para su manejo. Objetivos de las BDD Autonomía local. Independencia de un sitio central. Operación continua. Transparencia de Localización. Transparencia de Fragmentación Transparencia de repetición. Procesamiento distribuido de consultas. Procesamiento de transacciones distribuidas. Transparencia de "hardware". Transparencia de Sistema operativo Transparencia de red. Transparencia de SMBD Disciplinas de estudio Los ambientes en los que se encuentra con mayor frecuencia el uso de las bases de datos distribuidas son: Cualquier organización que tiene una estructura descentralizada. Casos típicos de lo anterior son: organismos gubernamentales y/o de servicio público. La industria de la manufactura, particularmente, aquella con plantas múltiples. Por ejemplo, la industria automotriz. Aplicaciones de control y comando militar. Líneas de transportación aérea. Cadenas hoteleras. Servicios bancarios y financieros. Arquitectura de BDD Arquitecturas de memoria compartida. Consisten de diversos procesadores los cuales accesan una misma memoria y un misma unidad de almacenamiento (uno o varios discos). Algunos ejemplos de este tipo son las computadoras Sequent Encore y los mainframes IBM4090 y Bull DPS8 (Figura 1) P1 …… Pn M Figura 1. Arquitectura de memoria compartida BD Pn Procesador MMemoria Continuación… Arquitecturas de disco compartido Consiste de diversos procesadores cada uno de ellos con su memoria local pero compartiendo una misma unidad de almacenamiento (uno o varios discos). Ejemplos de estas arquitecturas son los cluster de Digital, y los modelos IMS/VS Data Sharing de IBM P1 Pn …… M1 Mn Figura 2. Arquitectura de disco compartido BD BD BD Pn Procesador MMemoria Continuación… Arquitecturas nada compartido Consiste de diversos procesadores cada uno con su propia memoria y su propia unidad de almacenamiento. Aquí se tienen los clusters de estaciones de trabajo, la computadoras Intel Paragon, NCR 3600 y 3700 e IBM SP2 P1 Pn BD BD BD M1 …… BD BD BD Mn Figura 3. Arquitectura nada compartido Pn Procesador MMemoria Diseño de BDD Consideraciones de Diseño de BDD Existen varios factores relacionados a la construcción de bases de datos distribuidas que no se presentan en bases de datos centralizadas. Entre los más importantes se encuentran los siguientes: 1 Diseño de la Base de Datos Distribuida (unidad II) 2 Procesamiento de consultas (Unidad III) 3 Control de concurrencia (Unidad IV) 1 Confiablidad (Unidad IV) Diseño de la BDD En el diseño de bases de datos distribuidas se debe considerar el problema de como distribuir la información entre diferentes sitios. Existen razones organizacionales las cuales determinan en gran medida lo anterior. Sin embargo, cuando se busca eficiencia en el acceso a la información, se deben abordar dos problemas relacionados. Primero, como fragmentar la información. Segundo, como asignar cada fragmento entre los diferentes sitios de la red. Continuación … En el diseño de la BDD también es importante considerar si la información está replicada, es decir, si existen copias múltiples del mismo dato y, en este caso, como mantener la consistencia de la información. Finalmente, una parte importante en el diseño de una BDD se refiere al manejo del directorio. Si existen únicamente usuarios globales, se debe manejar un solo directorio global. Sin embargo, si existen también usuarios locales, el directorio combina información local con información global La organización de los sistemas de Base de Datos Distribuidas se puede analizar en 3 dimensiones: Modo de Acceso Estático Dinámico Información total Información Parcial Datos Datos y programas Compartición Nivel de Conocimiento Nivel de Compartición Compartición De datos Cada máquina posee sus propias aplicaciones locales pero se comparten los datos Compartición de datos y programas Características de acceso Nivel de conocimiento Inexistente Cada aplicación y sus datos se ejecutan en una máquina sin comunicación con otros programas o datos Las aplicaciones locales en una máquina pueden invocar servicios en otras y además comparten los datos Estático El modelo de acceso a los datos no varía con el tiempo Dinámico El modelo de acceso a los datos varía con el tiempo Sin información Los diseñadores no tienen información de cómo acceden los usuarios a los datos Con información Los diseñadores no poseen toda la información de parcial cómo acceden los usuarios a los datos Con información Los diseñadores poseen toda la información de cómo total acceden los usuarios a los datos Estrategias de Diseño Las estrategias son las utilizadas en una BD relacional, pero añadiendo un paso de diseño de la distribución A la hora de abordar el diseño de una Base de Datos Distribuida podremos optar principalmente por dos tipos de estrategias: la estrategia ascendente (botton-up) y la estrategia descendente(top-down) La estrategia ascendente (botton-up). En este caso se partirá de los esquemas conceptuales locales y se trabajaría para llegar a conseguir el esquema conceptual global. Después se pasaría al diseño de distribución. Esta estrategia suele ser utilizada para integrar varias bases de datos centralizadas existentes. la estrategia descendente(top-down). Se parte de cero y se avanza en el desarrollo del trabajo. Los pasos a realizar mediante esta estrategia son: Análisis de requisitos Diseño de Vistas Diseño conceptual Diseño de la distribución Fragmentación Asignación Diseño físico Monitorización y ajuste Diccionario de Datos Es el lugar donde se deposita información acerca de todos los datos que forman la BD. Es una guía en la que se describe la BD y los objetos que la forman. El diccionario contiene las características lógicas de los sitios donde se almacenan los datos del sistema, incluyendo nombre, descripción, alias, contenido y organización. Identifica los procesos donde se emplean los datos y los sitios donde se necesita el acceso inmediato a la información En una BD relacional, el diccionario de datos proporciona información acerca de: La estructura lógica y física de la BD. Las definiciones de todos los objetos de la BD: tablas, vistas, índices, disparadores, procedimientos, funciones, etcétera. El espacio asignado y utilizado por los objetos. Los valores por defecto de las columnas de las tablas. Información acerca de las restricciones de integridad. Los privilegios y roles otorgados a los usuarios. Auditoría de información, como los accesos a los objetos. Un diccionario de datos debe cumplir las siguientes características: Debe soportar las descripciones de los modelos conceptual, lógico, interno y externo de la BD. Debe estar integrado dentro del SGBD. Debe apoyar la transferencia eficiente de información al SGDB. La conexión entre los modelos interno y externo debe ser realizada en tiempo de ejecución. Debe comenzar con la reorganización de versiones de producción de la BD. Además debe reflejar los cambios en la descripción de la BD. Cualquier cambio a la descripción de programas ha de ser reflejado automáticamente en la librería de descripción de programas con la ayuda del diccionario de datos. Debe estar almacenado en un medio de almacenamiento con acceso directo para la fácil recuperación de información Niveles de Transparencia La transparencia se puede entender como la separación de la semántica de alto nivel de un sistema de las aspectos de bajo nivel relacionados a la implementación del mismo. Un nivel de transparencia adecuado permite ocultar los detalles de implementación a las capas de alto nivel de un sistema y a otros usuarios Niveles de Transparencia Fragmentación de datos Horizontal Consiste del particionamiento en tuplas de una relación global en subconjuntos, donde 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 Vertical La fragmentación vertical es la subdivisión de atributos en grupos. Los fragmentos se obtienen proyectando la relación global sobre cada grupo Distribución de datos Describe el proceso de decidir dónde localizar los datos. Las estrategias que se tienen son: Colocación centralizada de los datos, toda la base de datos se guarda en un sitio. Colocación particionada de los datos, la base de datos se divide en varias partes desarticuladas (fragmentos) y se guardan en varios sitios. Colocación replicada de los datos, se guardan copias de uno o más fragmentos de la base de datos en varios sitios. Continuación… La distribución de los datos se logra mediante la partición de los datos, replicación de los datos o mediante una combinación de ambas. La colocación de los datos está estrechamente relacionada en como la BD se divide o fragmenta. La colocación de los datos ve qué datos localizar y en dónde Continuación… Los algoritmos de colocación de los datos consideran varios factores, incluidos: Objetivos de desempeño y disponibilidad de los datos. Tamaño, número de filas y el número de relaciones que una entidad mantiene con otras entidades. Tipos de transacciones a ser aplicadas a la base de datos. Los atributos accesados por cada una de las transacciones. Replicación de datos Se refiere al almacenamiento de copias de datos en sitios múltiples, puede ser para satisfacer requerimientos de información, además de mejorar la disponibilidad de los datos y el tiempo respuesta; finalmente estas copias reducen los costos de comunicación y de consulta totales Los datos replicados se someten a la regla de consistencia mutua, la cual requiere que todas las copias de fragmentos de datos sean idénticas, esto quiere decir que cuando hay una actualización de la base de datos se realiza en todos los sitios donde hay réplicas Continuación … Existen tres escenarios de replicación: Base de datos totalmente replicada, guarda varias copias de cada fragmento de la base de datos en varios sitios. No es práctica debido la cantidad de carga impuesta al sistema. Base de datos parcialmente replicada, guarda múltiples copias de algunos fragmentos de la base de datos en múltiples sitios. Se tiene un buen manejo Base de datos no replicada, guarda cada fragmento de base de datos en un solo sitio. Procesamiento de consultas distribuidas Metodología del procesamiento de consultas distribuidas. El procesamiento de consultas tiene como objetivo principal transformar una consulta escrita en un lenguaje de alto nivel (SQL) en una estrategia de ejecución correcta y eficiente expresada en un lenguaje de bajo nivel (algebra relacional) y ejecutar la estrategia para extraer los datos requeridos ¿Cuáles son las faces típicas del procesamiento de consultas? Descomposición (Análisis sintáctico y validación) Optimización Generación de código Ejecución ¿Cuáles son las etapas típicas descomposición de consultas? Análisis Normalización Análisis semántico Simplificación Reestructuración de la consulta de la Estrategias de procesamiento de consultas distribuidas. El sistema debe de ser capaz de procesar consultas que hagan referencia a datos situados a mas de un nodo Estrategias de procesamiento … Realizar las operaciones de selección lo antes posible Combinar el producto cartesiano con una operación de selección subsiguiente cuyo predicado represente una condición de combinación, para formar una operación de combinación Utilizar la asociatividad de las operaciones binarias para reordenar los nodos hoja de modo que los nodos hoja con las operaciones de selección más restrictivas se ejecuten primero Realizar las operaciones de proyección lo antes posible Calcular una única vez las expresiones posibles [email protected]