Bases de Datos Distribuidas Estructura de contenidos Mapa conceptual Introducción 1. Definición 2. Reglas Características 3. Diseño de Base de Datos Distribuidas 3.1 Consideraciones 3.2 Procedimiento 3.3 Fragmentación 3.3.1 Fragmentación Horizontal 3.3.2 Fragmentación Vertical 4. Replicación 4.1 Características 4.2 Objetos de replicación 4.3 Grupos de replicación 4.4 Los sitios de replicación 4.4.1 Un sitio maestro 4.4.2 Un sitio de instantáneas 4.5 Replicación de Instantáneas 4.5.1 Copias de sólo lectura 4.5.2 Instantáneas actualizables 4.5.3 Usos de la replicación de instantáneas. Glosario Bibliografía Control de Documento 2 3 4 4 6 6 7 9 10 11 12 12 12 13 13 13 14 14 14 15 15 16 17 18 1 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje MAPA CONCEPTUAL Bases de Datos Distribuidas 2 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas Introducción La dinámica actual de las organizaciones las ha llevado a asumir la distribución como un factor de organización, bien sea por que se encuentran divididas en forma lógica a través de áreas o departamentos, o porque la división se asume de una forma física a partir de sucursales, plantas, laboratorios, etc. Siendo los datos factor determinante para la realización de los diferentes procesos, no es extraño que estos también se encuentren distribuidos a través de estas áreas. Lograr de una manera lógica y coherente la integración de la información producida por las diferentes divisiones organizacionales, requiere que las bases de datos manipuladas por estas áreas estén disponibles para los puntos o nodos de este sistema distribuido, de manera que puedan ser accedidas globalmente, pero de forma transparente para los usuarios quienes las procesarán localmente. Se requiere entonces de un robusto sistema que permita gestionar las actividades necesarias para garantizar entre otros aspectos, disponibilidad, seguridad, estrategias de almacenamiento y tráfico en la red de comunicación entre otros aspectos. Se presenta en este material de estudio, las principales de características de las Bases de Datos Distribuidas (BDD), así como los tipos de fragmentación que pueden implementarse para generar el almacenamiento distribuido y las réplicas como estrategia para aumentar la disponibilidad del servicio y optimización del manejo de concurrencia, asegurando un manejo eficiente de tráfico en la red. 3 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 1. Definición Un Sistema de Base de Datos Distribuida es una colección de sitios, conectados por medio de una infraestructura de red, en el cual cada sitio es un sistema de base de datos completo y estos sitios tienen acuerdos para trabajar juntos, de tal manera que un usuario pueda acceder a los datos de un sitio como si estuviera accediendo a ellos de forma local.(Date, 2001) Las principales razones para utilizar un sistema de bases de datos distribuidas son: Compartir Datos: Proporcionar el acceso a los datos sin importar la ubicación facilita los medios para optimizar procesos que requieren de esta información. Autonomía: distribuidas. Posibilidad de realizar operaciones locales o Disponibilidad: Garantizar que los datos se encuentren disponibles aun cuando exista un fallo en algún nodo o sitio, de manera tal que se deben asumir estrategias de replicación sobre los datos. 2. Reglas Características Date en 2001, introdujo doce reglas que deben cumplir los Sistemas de Base de Datos Distribuidas, las cuales se resumen a continuación. Autonomía local: Aun cuando debe existir un administrador del sistema global, cada sitio o nodo debe disponer de administración local, lo cual determina un nivel de autonomía sobre la administración de los datos. Independencia de un sitio central: Todos los sitios deben ser tratados igual y realizar sus propios procesamientos con el fin de evitar que la caída del nodo central deje por fuera los demás nodos. Operación continua: Así como en un sistema centralizado, se debe garantizar que la inclusión de nuevos nodos o mantenimiento del sistema no impidan la disponibilidad del servicio. 4 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas Independencia de Localización: La estructura lógica del sistema, debe garantizar que se accede a los datos sin que sea necesario para los usuarios conocer su ubicación. Independencia de fragmentación: Algunos sistemas optimizan su despeño al utilizar la fragmentación, que implica que algunas de sus “tablas” o relaciones se encuentran divididas en diferentes ubicaciones de disco. El sistema distribuido utiliza principalmente las bases de datos relacionales por su facilidad para reconstruir operaciones de fragmentación, todo esto en forma transparente al usuario final. Independencia de réplica: Otra estrategia en los sistemas de Base de datos es la de generar “copias” de los datos almacenadas en sitios diferentes. Procesamiento Distribuido de Consultas: Se debe prestar especial atención a la optimización de consultas, teniendo en cuenta que su procesamiento se hace en diferentes nodos. Manejo Distribuido de Transacciones: Una transacción puede ocasionar el procesamiento en varios nodos y se requiere asegurar la atomicidad de la transacción, es decir “Todo o Nada”, para lo cual los diferentes agentes que controlan las transacciones locales deben estar sincronizados para ejecutar o retroceder las operaciones en forma simultanea en los diferentes nodos donde se requiera. Otro aspecto tienen que ver con el control de concurrencia, aquí el bloqueo de transacciones es la acción que principalmente se utiliza. Independencia respecto al equipo: Se debe validar que desde diferentes equipos se pueda ejecutar el DBMS. Independencia respecto al Sistema Operativo: También se debe garantizar que se pueden utilizar diversos Sistemas Operativos. Independencia respecto a la red: Debe garantizarse también que se pueden utilizar diferentes redes de comunicaciones. Independencia respecto al DBMS: Es recomendable que el SMBD que este en cada sitio manipule la misma interfaz sin que sean copias del mismo sistema. 5 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 3. Diseño de Bases de Datos Distribuidas Un Sistema de Base de Datos Distribuida es una colección de sitios, conectados por medio de una infraestructura de red, en el cual cada sitio es un sistema de base de datos completo y estos sitios tienen acuerdos para trabajar juntos, de tal manera que un usuario pueda acceder a los datos de un sitio como si estuviera accediendo a ellos de forma local.(Date, 2001) 3.1. Consideraciones Para definir la estructura organizacional en una base de datos distribuida es necesario tener en cuenta los siguientes aspectos: • Necesidades sobre los datos compartidos • Tipo de acceso a los datos • Profundidad en la información Modo de acceso Dinámico Información parcial Estático Información total Datos Nivel de conocimiento Datos y programas Compartición 6 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas En primer lugar, se debe analizar si se requiere compartir aplicaciones o sólo datos, ya que los recursos requeridos serían diferentes. Si las aplicaciones y datos son independientes en cada nodo no se requiere de distribuir datos o programas, se podría pensar en replicación de datos sólo por aspectos de disponibilidad y seguridad. Para las situaciones en que se comparten datos únicamente las estrategias de replicación y fragmentación pueden utilizarse y en el caso que se compartan tanto datos como aplicaciones se debe proveer la comunicación entre aplicaciones para la obtención de datos remotos. El segundo factor corresponde al acceso de los usuarios, identificándose dos tipos: acceso estático y acceso dinámico: El acceso estático es aquel donde el usuario siempre solicita datos de la misma manera, controlado la mayoría de veces por las aplicaciones que ejecuta. El acceso dinámico corresponde a la posibilidad de estar ejecutando diferentes sentencias determinadas por los requerimientos del momento. El tercer factor es el nivel de conocimiento al que se tiene acceso, se requiere acceso parcial a los datos o el acceso es total, esto se consigue revisando las políticas de servicio y la estructuración de usuarios y roles del sistema. 3.2. Procedimiento Existen dos alternativas a seguir para el diseño de una BDD, la estrategia ascendente y la descendente. En la primera se parte de un numero de bases de datos y aplicaciones que requieren ser distribuidas para lo cual se debe generar un diseño global de administración y comunicación. Y la segunda donde se planifican desde lo global hasta llegar a cada uno de los nodos o sitios. Sin importar la estrategia adoptada es necesario realizar los siguientes procesos: Se inicia con el análisis de los requisitos que definirán el entorno del sistema basados en los procesos y datos requeridos por los usuarios de la base de datos, y por los parámetros de rendimiento, seguridad, disponibilidad y flexibilidad definidos para el sistema. Se procede a continuación a definir el diseño de las vistas y el diseño conceptual, que se desarrollan en forma paralela. El diseño de las vistas define las interfaces para los usuarios y en el diseño conceptual se 7 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas especifican las entidades, relaciones y aplicaciones tener acceso. a las que se debe El esquema conceptual global y la información respecto al acceso a los datos proveen la información para diseñar la distribución, donde se definirán los esquemas conceptuales locales a cada nodo o sitio. A nivel de distribución local es común utilizar la fragmentación para dividir las relaciones en otras menores que pueden ser alojadas en otros sitios. Este tema se afrontará en el siguiente numeral de este documento. En el diseño físico, se especifican los esquemas conceptuales locales sobre los dispositivos de almacenamiento físico disponibles para lo cual se revisan los esquemas conceptuales definidos y la información de acceso a los fragmentos. Como siempre un último proceso es el de la evaluación, en el cual se monitorea y ajusta el diseño con la revisión periódica de los requisitos, accesos y estadísticas de incidentes y uso. Análisis de requisitos Diseño conceptual Diseño de vistas Esquema conceptual global Esquemas externos Objetivos del sistema Información de acceso DISEÑO DE LA DISTRIBUCIÓN Esquemas conceptuales locales Diseño físico Esquema físico Monitorización y ajustes 8 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 3.3. Fragmentación Una Base de Datos puede ser fragmentada para mejorar el rendimiento y simplificar su mantenimiento. Las consultas que tienen acceso a tablas que han sido divididas pueden ejecutarse con mayor rapidez al contar con menos datos a recorrer o al tener procesamiento simultáneo por varios procesadores; Por otra parte las tareas de copias de seguridad o reindexación pueden ejecutarse más rápido al contar con menos datos. Otra estrategia es la de particionar sin dividir las tablas, esto se consigue cuando se almacenan las tablas en unidades de disco independientes, lo cual hace que si se requiere utilizar estas tablas para una misma consulta, varias cabezas de lectura de disco accederán a los datos de manera simultánea, recorriendo más rápido los datos. Se recomienda retomar los conceptos de Raid, vistos anteriormente. Dir. PC1 Dir. PC2 Dir. PC3 Dir. PC4 ID 1 ID 1 ID 1 ID 1 ID 2 ID 2 ID 2 ID 2 ... ... ... ... ID n ID n ID n ID n Servidor D2 2 Usuario PC1 PC2 PC3 PC4 Dir. PC2 ID 1 Dir. PC1 ID 1 Dir. PC1 ID 1 Dir. PC1 ID 1 Dir. PC3 ID 2 Dir. PC3 ID 2 Dir. PC2 ID 2 Dir. PC2 ID 2 Dir. PC4 ... Dir. PC4 ... Dir. PC4 ... Dir. PC3 ... Dir. Server ID n Dir. Server IDn Dir. Server ID n Dir. Server ID n 9 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas La fragmentación también tiene inconvenientes, especialmente cuando una vista se alimenta de datos que han sido particionados, requiriendo de tareas de unión y combinación, así como la verificación de dependencias, que debería revisar en más de una ubicación. Existen dos tipos de fragmentación o división: horizontal y vertical, La división o fragmentación horizontal actúa sobre las filas, dividiendo la tabla en subtablas que contienen un subconjunto de las filas de la tabla inicial. La fragmentación vertical, se basa en las columnas de la tabla para efectuar la división. 3.3.1. Fragmentación Horizontal Llave Atributo 1 Atributo 2 Atributo 3 Llave Atributo 1 Atributo 2 Atributo 3 Atributo 4 Llave Atributo 1 Atributo 2 Atributo 3 Atributo 4 Llave Atributo 1 Atributo 2 Atributo 3 Atributo 4 Llave Atributo 1 Atributo 2 Atributo 3 Atributo 4 Atributo 4 Las particiones horizontales permiten dividir una tabla en varias tablas con el mismo número de columnas, pero con menor número de filas. El análisis de los datos será el que determine la forma en que se han de dividir los datos, con mucha frecuencia se utiliza el parámetro de tiempo o en su ausencia columnas de referencia como “sucursales”, “ciudades”, etc. De cualquier forma se requiere el menor número de ellas, ya que una gran cantidad de consultas e UNION para obtener el conjunto completo, puede afectar el rendimiento. 10 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 3.3.2. Fragmentación Vertical Llave Atributo 1 Atributo 2 Llave Atributo 1 Llave Atributo 3 Atributo 3 Atributo 2 Dividir una tabla en varias utilizando el particionamiento vertical, hace que existan varias tablas con la misma cantidad de filas que la original, pero donde se varia el numero de columnas o atributos de la tabla. Este proceso puede ser realizado a partir de la normalización de datos que permitiría extraer columnas redundantes en otras tablas, accediendo a ellas a través de una llave relacional. Otra alternativa es la división de columnas en nuevas tablas, con la ayuda de una llave que relacione los registros particionados. Optimizan las consultas al recorrer menos datos, ya que no se tiene que recorrer el total de las columnas (especialmente si sólo se consultan algunas con mucha frecuencia), pero si se excede en el número de particiones se puede afectar el rendimiento. 11 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 4. Replicación 4.1 Características Otra de las estrategias asociadas a las bases de datos es la de replicación, que consiste en copiar y mantener objetos de la base de datos en múltiples bases de datos. Se debe asegurar que los cambios que se aplican en un sitio se registran localmente antes de ser aplicados en los sitios remotos donde se comparten los mismos datos. Las siguientes son las principales características: Los nodos o sitios que conforman el sistema distribuido no comparten memoria, ni dispositivos de almacenamiento. Lo cual determina que físicamente se encuentran en lugares separados. Existen dos tipos de transacciones, las transacciones locales que son las que acceden a los datos que se encuentran en el lugar donde se inicio la transacción, y las transacciones globales que son las que acceden a datos que están ubicados en sitios diferentes al del inicio de la transacción. Se proporciona un acceso rápido y local a los datos y se protege la disponibilidad de las aplicaciones. 4.2 Objetos de replicación Se denomina objeto de replicación a las bases de datos existentes en varios servidores de un sistema de base de datos distribuida. La instalación de la replicación le permite “duplicar” las tablas y los objetos de apoyo, tales como vistas, disparadores de base de datos, paquetes, índices y sinónimos. Moscú Bogotá B Sídney Lectura y escritura C Datos replicados 12 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 4.3. Grupos de replicación Para facilitar la adecuada gestión de los objetos de replicación se requiere la creación de “Grupos de Replicación”, allí se organizan los objetos de esquemas que sean necesarios para garantizar el correcto funcionamiento de una aplicación o servicio. Sin embargo es necesario aclarar que dentro de un grupo de replicación puede existir más de una base de datos, adicionalmente los objetos de una base de datos pueden pertenecer a varios grupos de replicación. Grupo de replicación Conexión Miembro Propuestas/Precios.xlm Proyectos/Espec.doc Proyectos Proyectos Propuestas Propuestas Carpetas replicadas 4.4 Los sitios de replicación Existen dos tipos de sitios básicos donde pueden existir los grupos de replicación, dependiendo de la estrategia de copia a utilizar. 4.4.1. Un sitio maestro En este caso se mantiene una copia completa de todos los objetos de un grupo de replicación. Todos los sitios principales en un entorno de replicación con múltiples maestros se comunican directamente entre sí para difundir los datos y los cambios de esquema en el grupo de replicación. 13 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas Se define un sitio maestro para cada grupo de replicación que se usa como punto de control y gestiona el grupo y los objetos accesados por el grupo. 4.4.2 Un sitio de instantáneas. En este caso sólo se tienen todos o un subconjunto de “instantáneas” del objeto del grupo de replicación. Sin embargo, éstos deben ser simples instantáneas con una correspondencia uno a uno a los objetos en el sitio principal. 4.5 Replicación de Instantáneas. Contiene una réplica parcial o total de una tabla maestra de destino desde un único punto en el tiempo. Una instantánea puede ser de sólo lectura o de escritura. 4.5.1 Copias de sólo lectura. En una configuración básica, pueden proporcionar acceso de sólo lectura a la tabla de datos que se origina a partir de un "maestro" o en el sitio principal. Las aplicaciones pueden consultar los datos de las réplicas de datos locales para evitar el acceso a la red independientemente de la disponibilidad. Sin embargo, las aplicaciones en todo el sistema deben acceder a los datos en el sitio principal cuando las actualizaciones son necesarias. Aplicaciones del cliente Actualización Remota Consulta Local Tabla Replicada Tabla Maestra Modificable Red Tabla de datos replicada 14 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas 4.5.2 Instantáneas actualizables. En una configuración más avanzada, puede crear una instantánea actualizable que permite a los usuarios insertar, actualizar y eliminar filas de la tabla maestra. Una instantánea actualizable también puede contener sólo un subconjunto del conjunto de la tabla maestra de destino. Las instantáneas actualizables se basan en tablas en un sitio principal que ha sido configurado para permitir la replicación con múltiples maestros. De hecho, las instantáneas actualizables deben ser parte de un grupo de instantáneas que se basa en un grupo maestro en un sitio maestro. 4.5.3 Usos de la replicación de instantáneas. La réplica de instantáneas es útil para varios tipos de aplicaciones. Descarga de la información: Las instantáneas de solo lectura son útiles como una forma de replicar bases de datos enteras o información de alta carga. Por ejemplo, cuando el rendimiento de sistemas de alto volumen de procesamiento de transacciones es crítico, puede ser ventajoso para mantener una base de datos duplicada y aislar las consultas exigentes de las aplicaciones. Distribución de la Información: A partir de una tabla maestra se tienen copias con las que se trabajan y estas réplicas son actualizadas una vez al día. Transporte de información: se pueden utilizar las réplicas de sólo lectura para mover datos de una base de datos de producción de procesamiento de transacciones a un almacén de datos. Entornos desconectados: Se utilizan las réplicas para facilitar procesos donde no se cuenta con conexión permanente, como en el caso de los vendedores “puerta a puerta”, donde cada vendedor debe visitar a los clientes regularmente con un ordenador portátil y pedidos en una base de datos personal mientras están desconectados de la red corporativa y del sistema de base de datos centralizada. A su regreso a la oficina, cada vendedor debe enviar todos los pedidos a una base de datos centralizada, de la empresa. 15 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje GLOSARIO Bases de Datos Distribuidas Base de Datos Distribuida: Es una colección de sitios, conectados por medio de una infraestructura de red. Disponibilidad: Garantizar que los datos se encuentren disponibles aun cuando exista un fallo en algún nodo. Independencia: Todos los sitios deben ser tratados igual y realizar sus propios procesamientos. Replicación: Proceso de copiar y mantener objetos de BD en múltiples BD que componen un sistema de base de datos distribuida. 16 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje RECURSOS BIBLIOGRÁFICOS Bases de Datos Distribuidas Wales, J., Sanger, L. (2001). Wikipedia La enciclopedia libre. Recuperado el 20 de julio de 2012 de http://es.wikipedia.org A. Silberschatz, H. F. Korth. Fundamentos de Bases de Datos, 4ta EdiciónCapítulo 19: Bases de datos distribuidas. Elmasri, R.,Navathe, S. Fundamentos de sistemas de Bases de Datos - 5ta Ed. Pearson Addison Wesley. C.J. Date. Introducción a los sistemas de bases de datos. 7ª Edición. Capitulo 20. Bases de datos distribuidas. Ed. Prentice Hall. 17 4 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje Bases de Datos Distribuidas Control de documento Construcción Objeto de Aprendizaje Bases de Datos Distribuidas Desarrollador de contenido -Experto temático- Ana Yaqueline Chavarro Asesor pedagógico Rafael Neftalí Lizcano Reyes Producción Multimedia Eulises Orduz Amézquita Victor Hugo Tabares Carreño Programador Francisco José Lizcano Reyes Líder expertos temáticos Ana Yaqueline Chavarro Parra Líder línea de producción Santiago Lozada Garcés Atribución, no comercial, compartir igual Este material puede ser distribuido, copiado y exhibido por terceros si se muestran los créditos. No se puede obtener ningún beneficio comercial y las obras derivadas tienen que estar bajo los mismos téminos de licencia que el trabajo original. 18 FAVA - Formación en Ambientes Virtuales de Aprendizaje SENA - Servicio Nacional de Aprendizaje