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
Publicar un comentario