Bases de Datos Distribuidas: Heterogeneidad, Ventajas, Desafíos y Principios Fundamentales
Clasificado en Informática
Escrito el en español con un tamaño de 5,69 KB
Heterogeneidad y la Presión para Integrar Datos
La heterogeneidad (diversidad) puede darse en muchos niveles, desde la forma y el significado de cada dato hasta el formato y el medio de almacenamiento elegido para guardarlo.
Surge la necesidad de integración debido a requerimientos de procesamiento no locales, donde es necesario intercambiar información proveniente de otras áreas o departamentos.
Ventajas del Procesamiento de Bases de Datos Distribuidas
- Mejor rendimiento: En muchos casos, puede ofrecer un rendimiento superior al obtenido mediante un procesamiento centralizado.
- Mayor confiabilidad: Los datos duplicados (réplicas) aumentan la disponibilidad. Cuando falla una computadora, se pueden obtener los datos desde otras réplicas en otras computadoras.
- Escalabilidad: Los sistemas distribuidos pueden variar su tamaño (escalar) de un modo más sencillo que los centralizados.
Desventajas del Procesamiento de Bases de Datos Distribuidas
- Rendimiento variable: Bajo ciertas circunstancias, el rendimiento puede ser peor para el procesamiento distribuido que para el centralizado, especialmente si las consultas requieren acceder a datos en múltiples sitios remotos.
- Confiabilidad compleja: Aunque la replicación puede aumentar la disponibilidad, la gestión de la consistencia entre réplicas y la recuperación de fallos en un entorno distribuido pueden ser más complejos y, si no se manejan adecuadamente, pueden resultar en menor confiabilidad percibida que en un sistema centralizado bien gestionado.
- Mayor complejidad: Su diseño, implementación y mantenimiento son inherentemente más complejos, lo que a menudo se traduce en altos gastos de construcción y operación.
El Principio Fundamental de las Bases de Datos Distribuidas
La "Regla Cero" de los Sistemas Distribuidos
Llamaremos al principio fundamental recién identificado la "regla cero" de los sistemas distribuidos. Para cualquier usuario genuino de un sistema distribuido, este debe parecer indistinguible de un sistema no distribuido. La regla cero conduce a doce objetivos:
- Autonomía local: Significa que todas las operaciones en un sitio dado se controlan en ese sitio. Ningún sitio X deberá depender de algún otro sitio Y para su operación básica; debe poder operar incluso si el sitio Y falla.
- No dependencia de un sitio central: La autonomía local implica que todos los sitios deben tratarse como iguales. No debe haber dependencia de un sitio central "maestro" para obtener servicios esenciales como el catálogo del sistema, el procesamiento de consultas o la gestión de transacciones.
- Operación continua: En un sistema distribuido ideal, nunca debería haber necesidad de apagar el sistema globalmente para realizar operaciones como añadir o quitar sitios, actualizar el DBMS en un sitio, etc.
- Independencia con respecto a la localización: Los usuarios no deben necesitar saber dónde están almacenados físicamente los datos. Deben poder interactuar con el sistema como si todos los datos estuvieran almacenados localmente.
- Independencia con respecto a la fragmentación: Si los datos se dividen en fragmentos (fragmentación horizontal o vertical) y se almacenan en diferentes sitios, los usuarios deben poder seguir accediendo a ellos como si fueran una única unidad lógica, sin necesidad de conocer cómo están fragmentados. La fragmentación es deseable por razones de desempeño: los datos pueden almacenarse en la localidad donde se utilizan con mayor frecuencia, de manera que la mayor parte de las operaciones sean locales y se reduzca el tráfico en la red.
- Independencia de réplica: Si los datos se replican en múltiples sitios para mejorar la disponibilidad o el rendimiento, los usuarios (y sus aplicaciones) no deben ser conscientes de la existencia de estas réplicas. El sistema debe gestionar automáticamente la consistencia entre las réplicas.
- Procesamiento distribuido de consultas: El sistema debe ser capaz de procesar consultas que accedan a datos distribuidos en múltiples sitios, optimizando la ejecución para minimizar el costo (por ejemplo, el tráfico de red).
- Manejo distribuido de transacciones: El sistema debe garantizar las propiedades ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad) para las transacciones que actualizan datos en múltiples sitios. Esta función, en un ambiente distribuido, estará basada con toda seguridad en mecanismos como el bloqueo y protocolos de compromiso (ej. compromiso en dos fases), como sucede en los sistemas no distribuidos, pero adaptados al entorno distribuido.
- Independencia con respecto al equipo (Hardware): Debería ser posible ejecutar el sistema distribuido sobre diferentes plataformas de hardware.
- Independencia con respecto al sistema operativo: Debería ser posible ejecutar el sistema distribuido sobre diferentes sistemas operativos.
- Independencia con respecto a la red: Debería ser posible que los sitios del sistema distribuido se comuniquen a través de diferentes tipos de redes de comunicación.
- Independencia con respecto al DBMS: En un sistema distribuido idealmente heterogéneo, debería ser posible integrar DBMS de diferentes proveedores, aunque este objetivo es particularmente difícil de alcanzar en la práctica.