Base de datos Distribuidas Estrategias de dise帽o para distribuci贸n de datos
Introducción El diseño de base de datos distribuidas es el encargado de tomar decisiones en la ubicación de programas que accederán a la base de datos y sobre los datos que la constituyen, en torno a los diferentes nodos que conforman la red. El diseño de la distribución de datos se la puede analizar desde 3 niveles.
Nivel de compartición Inexistente
(Cada máquina independiente en aplicaciones y datos) Compartición de datos (Aplicaciones propias solo se comparte datos) Compartición de datos y programas (Se comparten aplicaciones y datos)
Características de acceso a los datos Estático
(Modelo de acceso a datos no varía con el tiempo) Dinámico (Modelo de acceso a datos varía con el tiempo)
Nivel de conocimiento de las características de acceso Sin
información (Los diseñadores no tienen información de cómo acceden los usuarios a los datos) Con información parcial (Los diseñadores no poseen toda la información de cómo acceden los usuarios a los datos) Con información total (Los diseñadores poseen la información completa de cómo los usuarios acceden a los datos)
Estrategias de diseño Estas estrategias son las utilizadas al diseñar una base de datos 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 y la estrategia descendente:
Estrategia Ascendente botton-up Se parte de los esquemas conceptuales locales y se trabaja 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.
Estrategia Descendente top-down Se parte de cero y se avanza en el desarrollo del trabajo. Los pasos a realizar mediante esta estrategia son los siguientes: Análisis de Requisitos Diseño de vistas Diseño conceptual Diseño de la distribución Diseño físico Monitoreo y ajustes
Fragmentación La fragmentación es el proceso encargado de dividir una relación en otras subrelaciones de menor tamaño, y su objetivo es encontrar la unidad apropiada de distribución. Existe una serie de razones por las que llevar a cabo la fragmentación de las cuales se menciona:
Utilización: En general, las aplicaciones funcionan con vistas que normalmente son subconjuntos de relaciones. Por tanto, es lógico considerar como unidad de distribución a esos subconjuntos de relaciones. Eficiencia: Los datos se almacenan cerca del lugar en el que son utilizados con mayor frecuencia. Además, los datos que las aplicaciones locales no necesitan no se almacenan en ese nodo.
Paralelismo: La descomposición de una relación en fragmentos permite que una transacción pueda ser dividida en subconsultas. Cada subconsulta operará sobre el fragmento adecuado. En definitiva, se aumenta el grado de concurrencia. Seguridad: Los datos no requeridos por las aplicaciones locales no se almacenan en ese nodo, por lo que no están disponibles para los usuarios no autorizados.
Tipos de Fragmentación Fragmentación horizontal. Consiste en el particionamiento en tuplas de una relación global en subconjuntos, donde cada subconjunto puede contener datos que cumplen una condición y se puede definir expresando cada fragmento como una operación de selección sobre la relación global.
Tipos de Fragmentaciรณn Fragmentaciรณn vertical. En este tipo de fragmentaciรณn se dividen el conjunto de atributos en grupos. Los fragmentos se obtienen proyectando la relaciรณn global sobre cada grupo. La fragmentaciรณn es correcta si cada atributo se mapea en al menos un atributo del fragmento.
Tipos de Fragmentación Fragmentación mixta. Este tipo de fragmentación consiste en la aplicación de fragmentación vertical y después fragmentación horizontal o viceversa.