Fundamentos de las bases de datos distribuidas

 

Fundamentos de las bases de datos distribuidas 


1. Conceptos Fundamentales 

La tecnología en las Bases de Datos Distribuidas surge al unir los enfoques propuestos en los sistemas de bases de datos y las redes de computadoras. En los sistemas de bases de datos existe un control y administración del procesamiento de datos centralizado, esto permite que cada aplicación que acceda a los datos no se vea afectada con cualquier cambio en la estructura física o lógica en la base de datos y viceversa. Por otro lado, las redes de computadoras promueven un modo de trabajo que dista de los enfoques de centralización propuestos en los SBD mencionados anteriormente. En este sentido, el objetivo más importante de los Sistemas de Bases de Datos es la integración de los datos operacionales de una organización y no la centralización de ´estos. Aunque la presencia de una de estas cualidades no implique la otra, es posible obtener integración de los datos sin que exista un control centralizado, y esto es exactamente lo que las Bases de Datos distribuidas plantean. 



A continuación, discutiremos brevemente el concepto general de los sistemas distribuidos para finalizar con algunos conceptos inherentes a los Sistemas de Bases de Datos Distribuidas



1.1. Sistemas Distribuidos 

Podemos definir un sistema distribuido, sistema de computación distribuida o sistemas de procesamiento distribuido como una composición de un numero de elementos autónomos de procesamiento, no necesariamente homogéneos, interconectados mediante una red de computadoras que cooperan entre sí para realizar cualquier tarea asignada. Se entiende por elemento de procesamiento a cualquier computador capaz de ejecutar un programa por sí mismo [OV11]. En los sistemas distribuidos se conocen distintos tipos de distribución: la distribución por procesamiento lógico, distribución por función, distribución por datos y distribución por control. En la definición de sistemas distribuidos presentada anteriormente, se evidencia una distribución implícita del procesamiento lógico al asumir que distintos elementos de procesamiento son distribuidos. La distribución de función consiste en delegar funciones a los distintos elementos de hardware o software dentro del sistema. La distribución de acuerdo a los datos consiste en distribuir los datos utilizados por las aplicaciones por los distintos elementos de procesamiento. Por ´ultimo, el procesamiento por control de las ejecución de las distintas tareas a realizar, en lugar de que ´este sea realizado por un solo computador. Muchas de las tecnologías utilizadas actualmente están inherentemente distribuidas (aplicaciones web, Comercio electrónico sobre el Internet, aplicaciones multimedia con servicios news-on-demand, entre otras). El motivo principal para realizar cualquier procesamiento distribuido es el de lidiar con los problemas de gestión de datos a gran escala utilizando técnicas basadas en la regla divide and conquer. Si se desarrolla el soporte de software necesario para el procesamiento distribuido, es posible dividir un problema complejo en problemas más pequeños y asignarlos a diferentes grupos de programas que trabajan en distintas computadoras y producen un sistema que ejecutado en múltiples elementos de procesamiento podrá ejecutar mucho más eficientemente una tarea en particular. Los Sistemas de Bases de Datos Distribuidas se pueden ver dentro de este contexto y tratarse como herramientas capaces de realizar el procesamiento de datos distribuido de una manera rápida y eficiente.





2. Sistemas de Bases de Datos Distribuidas

Una base de datos distribuida es una colección de múltiples bases de datos lógicamente interrelacionadas sobre una red de computadoras. Un Sistema Manejador de Bases de Datos Distribuidas se define como el sistema de software que permite la gestión de una base de datos distribuida y hace transparente la distribución. Frecuentemente el termino Sistema de Bases de Datos Distribuidas (SBDD) es utilizado para referirse a los Sistemas Manejadores de Bases de Datos Distribuidas. Para ambos términos, los conceptos de interrelación lógica y de distribución sobre una red de computadoras juegan un papel importante que ayuda a definir los Sistemas de Bases de Datos Distribuidas y descartar algunas casos donde se aceptan algunas propuestas como tales. Un SBDD es una colección de archivos almacenados individualmente en cada nodo de la red. Estos archivos, además de tener una relaciona lógica, deben contar con una estructura y proveer un acceso mediante una interfaz común. Existen en la actualidad muchos sistemas que poseen funcionalidades de los SMBD y trabajan sobre datos semi-estructurados, almacenados en archivos sobre el internet (e.g. Paginas web). Es importante distinguir entre un SBDD que cumple con las restricciones mencionadas y los sistemas distribuidos de manejo de datos que proveen acceso a datos de la misma tratando de emular los SMBD. También se asume que la distribución física de los datos no es el problema más importante en estos enfoques, tomando como una Base de Datos Distribuida a un conjunto de bases de datos relacionadas que residen en un computador. Sin embargo, la distribución de los datos en los distintos nodos trae como consecuencia problemas que no se encuentran al tener múltiples bases de datos en un solo computador. Por ejemplo, los datos pueden estar duplicados en un ambiente distribuido, por lo que la BDD debe estar diseñada de manera que la base de datos entera o partes de ´esta sean fragmentadas y distribuidas a través de una red de computadoras, trayendo como consecuencia que deba tomarse en cuenta cuál es la versión de los datos que debe accederse en cada lectura y cómo deben realizarse los cambios en los distintos nodos al momento de una modificación. Este inconveniente, entre otros como los relacionados a la fallas de la red de computadores y la sincronización de transacciones entre los distintos nodos, presentan una complejidad y retos que sólo se encuentran en los sistemas de bases de datos distribuidos. El hecho de que exista una distribución física entre los nodos no implica necesariamente que ´estos estén geográficamente distantes, es decir, que pueden estar en el mismo cuarto. La distribución implica simplemente que la comunicación entre ´estos nodos deba hacerse por medio de una red de computadoras como ´único recurso compartido, en vez de realizarse a través de sistemas de memoria o disco compartido (como los vistos en sistemas multiprocesadores). Esto sugiere que los sistemas de bases de datos multiprocesadores no sean considerados SBDDs. La diferencia entre estos reside en el modo de operación. El diseño de un sistema multiprocesador, consiste comúnmente de un conjunto de procesadores y elementos de memoria idénticos controlado por una o más copias del mismo sistema operativo, que lleva un control estricto de las tareas asignadas. Esto es totalmente distinto en los sistemas distribuidos, donde la heterogeneidad del sistema operativo así como de los componentes de hardware es bastante común. Los sistemas de bases de datos que corren sobre sistemas multiprocesadores son llamados bases de datos paralelas. A pesar de la presencia de una red, en los sistemas de bases de datos distribuidas, las bases de datos no residen solo en un nodo de la red. En este caso, los problemas de gestión de datos no son distintos a los vistos en los ambientes de bases de datos centralizados (las bases de datos cliente/servidor son un ejemplo de estos sistemas, donde existe un nodo que gestiona la base de datos de manera centralizada). En resumen, la existencia de redes computadores o de una colección de archivos no es suficiente para formar un sistema de bases de datos distribuidas. Nuestros intereses se enfocan a un ambiente donde los datos están distribuidos en distintos nodos de una red.







2.1. Ventajas 

La administración de bases de datos distribuidas ha sido propuesta por varias razones que van desde la centralización organizativa y el procesamiento económico y autónomo.

A continuación, se describen algunas de las ventajas de estos sistemas. Administración de datos distribuidos con distintos niveles de transparencia. De manera ideal, un DBMS debe ser una distribución transparente en el sentido de abstraer al usuario de detalles de localización física de los archivos dentro del sistema. Por ejemplo, una taba puede estar fragmentada en conjunto de filas y replicada en distintos nodos ubicados en lugares geográficamente distintos. En este caso, son posibles los siguientes tipos de transparencias: 

• Transparencia de distribución o red: hace referencia a la autonomía del usuario de los detalles operacionales de la red. Puede dividirse en transparencia de localización y de denominación. La transparencia de localización menciona el hecho de que un comando usado para llevara cabo una tarea es independiente de la ubicación de los datos y del sistema desde el que se ejecuto dicho comando. La transparencia de denominación implica que una vez especificado un nombre, puede accederse a los objetos nombrados sin ambigüedad y sin necesidad de ninguna especificación adicional. 



• Transparencia de replicación: pueden almacenarse copias de los datos en distintos lugares para disponer de una mayor disponibilidad, rendimiento y fiabilidad. La transparencia de replicación permite al usuario abstraerse de las replicas existentes. 



• Transparencia de Fragmentación: existen dos tipos de fragmentación, la fragmentación horizontal que distribuye una relaciona en conjuntos de tuplas, mientras que la vertical lo hace en subrogaciones, donde cada relaciona esta definida por un subconjunto de las columnas de la relación individual. Debido a esto, una consulta podría ser transformada en distintas subconsultas fragmentadas. La transparencia de fragmentación abstrae al usuario de la existencia de los fragmentos. 


• Transparencia de diseño y ejecución: hacen referencia a la abstracción del usuario de saber cómo está diseñada la base de datos distribuida y dónde ejecuta una transacción. Todas estas formas de transparencia proveen un acceso fácil y eficiente a los distintos usuarios (especialmente a los usuarios inexpertos). Sin embargo, cumplir con un completo nivel de transparencia representa un conflicto entre la facilidad de uso y la dificultad y costo de procesamiento inherente. Se discute que la transparencia total en un SMBDD hace la gestión de las bases de datos distribuidas pobres en los aspectos de manejabilidad, modularidad y desempeño en el envío de mensajes [Gray89]. Estas discusiones han llevado a la implementación de enfoques como los descritos en las arquitecturas cliente servidor y a la identificación de capas correspondiente a los distintos servicios de transparencia que pueden proveerse. La primera capa provee acceso transparente a los recursos de datos y se conoce como capa de acceso. Las características de transparencia se construyen en un lenguaje de usuario, quien traduce los servicios requeridos en operaciones.

En otras palabras, el compilador o interprete toma la tarea sin que el implementador sea provisto por algún servicio de transparencia. La segunda capa de transparencia se conoce como capa de nivel de sistema operativo, implementando la misma transparencia conocida en la definición de sistemas operativos, permitiendo acceder a recursos de hardware y software abstrayendo al usuario de la complejidad inherente a estas operaciones. Este nivel puede extenderse a los ambientes distribuidos, donde la gestión de la red puede ser llevada a cabo por el sistema operativo distribuido o el middleware, si el SMBDD está implementado sobre uno. Este enfoque conlleva problemas como la posibilidad de que el sistema distribuido no posea un nivel de transparencia frente al uso de la red razonable y la necesidad de las aplicaciones de conocer los elementos que son encapsulados para su uso en tareas de optimización y desempeño. Finalmente se tienen la capa del SMBD y la capa de lenguaje. En la capa de SMBD se proveen algunas primitivas del SMBD para realizar ciertas tareas, dejando al SMBD como responsable de la traducción desde el sistema operativo a interfaces de usuario de alto nivel. La capa de transparencia del lenguaje permite el acceso a datos mediante distintos lenguajes de alto nivel como lenguaje 




Incremento de la fiabilidad y la disponibilidad. 

Consideradas las más importantes de las ventajas de las bases de datos distribuidas. La fiabilidad está definida ampliamente como la probabilidad de que un sistema esté funcionando en un instante de tiempo cualquiera, mientras que la disponibilidad es la probabilidad de que el sistema esté continuamente disponible durante un intervalo de tiempo. Cuando un nodo del SMBD falla, sólo no estarán disponible los datos y el software almacenado en ese nodo, mientras que el resto del sistema continúa operativo. Se logra una mejora en estas dos características al mantener réplicas de datos en más de una ubicación. En un sistema centralizado, el fallo de la ubicación provoca la caída del sistema para todos. En una base de datos distribuida, parte de la información puede estar inaccesible, pero sí se podría acceder a la parte de la base de datos almacenada en los demás nodos. 



Mejoras en el rendimiento.

 Un SMBDD fragmenta la base de datos manteniendo la información lo más cerca posible del punto donde es más necesaria. La localización de datos reduce el enfrentamiento en la asignación de CPU y los dispositivos de E/S.




Facilidad en la escalabilidad. 

En un entorno distribuido, la escalabilidad en términos de manejo de una mayor cantidad de datos, el incremento de las bases de datos o la adición de más procesadores es mucho más sencilla. Junto a estas ventajas, Date propone 12 reglas fundamentales [Dat01] que deben cumplir los SBDD, que exponen características de de transparencia, fiabilidad, disponibilidad y escalabilidad. Estas reglas, en su mayoría no son independientes entre sí y tampoco son igualmente importantes para el conjunto total de usuarios finales de un Sistema de Bases de Datos Distribuidas.







2.2. Desventajas 

Procesamiento de consultas.
Se trata de diseñar algoritmos que analizan las consultas y las convierten en operación de manipulación de datos. El problema es cómo decidir qué estrategia utilizar al ejecutar cualquier consulta sobre la red de la manera menos costosa y efectiva. Los factores a considerar son la distribución de los datos, los costos de comunicación y la falta de información suficiente que esté localmente disponible. El objetivo es optimizar el paralelismo implícito para mejorar el desempeño de la ejecución de la transacción, tomando en cuenta los factores mencionados. Este problema es de naturaleza NP-Completo y los enfoques utilizados normalmente utilizan técnicas heurísticas. 

Administración del catálogo. 
El catálogo contiene información como la descripción y localización de los elementos de la base de datos. Los problemas relacionados a la gestión del catálogo se basan en cómo las bases de datos y las aplicaciones se ejecutan y cómo deben colocarse a través de los sitios. Un directorio puede ser: 

1. Centralizado: el catálogo total es almacenado exactamente una vez en un sitio central. 

2. Completamente replicado: el catálogo es almacenado por completo en cada uno de los sitios.

3. Dividido: cada sitio mantiene su propio catálogo de los objetos que están almacenados en ese sitio. El catálogo total es la unión de todos los catálogos locales disjuntos. 

4. Centralizado y dividido: cada sitio mantiene su propio catálogo local, además, un ´único sitio central mantiene una copia unificada de todos esos catálogos locales. 





3. Arquitecturas de los SMBDD 

La arquitectura de un sistema define su estructura, tomando en cuenta componentes identificados, la función de cada uno de ´estos, su interrelación e interacción entre sí. La especificación de la arquitectura de un sistema, requiere identificación de los modelos, interfaces y relaciones, tomando en cuenta los datos y el flujo de control a través de ´este. A continuación, se presentan tres modelos de arquitectura propuestos para los SBDD: Arquitectura Cliente/Servidor (Client/Server ), peer-to-peer y sistemas multi bases de datos o sistemas de bases de datos múltiples. Para comenzar, presentamos el conocido modelo de arquitectura ANSI-SPARC y las posibles alternativas para su implementación en un SBDD. Esto nos permitirá establecer relaciones entre ´este y los distintos modelos de arquitectura. 





3.1. Arquitectura ANSI-SPARC 

En 1972, un grupo de estudios establecido por el Comité de Computadores y Procesamiento de Información (X3) del ANSI, patrocinado por el Comité de Panificación de Estándares y Requerimientos (SPARC) estudio la factibilidad de establecer estándares en el ´área de la gestión de bases de datos, así como determinar cuales aspectos era conveniente establecer dichos estándares. Así surgió en 1977 el reporte final con un marco de trabajo propuesto que luego se conoció como la “Arquitectura ANSI/SPARC”. Una versión simplificada de la arquitectura es ampliamente estudiada en el ´área y consiste de tres capas o niveles de datos: la capa externa o el nivel de vistas, que interactúa con el usuario, la capa interna relacionada con el nivel físico y la interacción con el computador y un nivel conceptual o empresarial. En la arquitectura ANSI/SPARC , el nivel más bajo es la capa interna, que maneja la definición física y la organización de los datos: localización de los datos en los distintos dispositivos de almacenamiento y los mecanismos de acceso utilizados para acceder y manipular datos. Por otro lado, el nivel externo se encarga de cómo son presentados los datos y cómo el usuario ve la base de datos; el uso de vistas individuales que representan la porción de la base de datos que pueda ser accedida por un usuario en particular. Estas vistas pueden ser compartidas por distintos grupos de usuarios, conformando así un esquema externo. Entre estos dos niveles se encuentra el esquema conceptual, el cual es una abstracción de la definición de la base de datos, viene siendo la vista o el concepto que se tiene de la base de datos, el modelo de la base de datos enfocada a un contexto o empresa en particular. En teoría, el nivel conceptual permite suponer algunos aspectos de la representación y las relaciones entre los datos sin considerar los requerimientos de aplicaciones en particular o las restricciones del medio de almacenamiento físico. Sin embargo, estos aspectos son importantes en la practica y deben ser considerados para evitar problemas de desempeño. La definición de uno de estos esquemas puede ser descrito a partir de un mapeo de la especificación del esquema anterior. 

Este enfoque es importante, ya que nos permite evidenciar los conceptos básicos de la independencia de datos. La separación entre los esquemas externos y el nivel conceptual provee una independencia lógica de los datos, mientras que la separación entre el nivel conceptual y físico permiten mantener la independencia física de datos.

CR~




Comentarios