ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas CAPITULO 3 Análisis y Diseño de Bases de Datos Distribuidas 3.1 El Análisis En el análisis para la construcción de una nueva base de datos distribuida se deben revisar el problema la distribución de carga y el manejo del costo de almacenamiento y la disponibilidad. Procesamiento Local: El procesamiento local en la distribución de los datos pretende maximizar el procesamiento que corresponde al principio simple de colocar los datos tan cerca como sea posible de las aplicaciones que los utilizan. Se puede realizar el análisis de la distribución de los datos para maximizar el procesamiento local agregando el número de referencias locales y remotas que le corresponden a cada fragmentación candidata y la localización del fragmento, que de esta forma se seleccione la mejor solución de ellas. Distribución de la Carga de Trabajo: La distribución de la carga de trabajo sobre los sitios, es una característica importante de los sistemas de cómputo distribuidos. Esta distribución de la carga se realiza para tomar ventaja de las diferentes características o utilidades de las computadoras de cada sitio, y maximizar el grado de ejecución de paralelismo de las aplicaciones. Sin embargo, la distribución de la carga de trabajo podría afectar negativamente el procesamiento local deseado. Costo de Almacenamiento Y disponibilidad: La distribución de la base de datos refleja el costo y disponibilidad del almacenamiento en diferentes sitios. Para esto, es posible tener sitios especializados en la red para el almacenamiento de datos. Sin embargo el costo de almacenamiento de datos no es tan relevante si éste se compara con el del CPU, I/O y costos de transmisión de las aplicaciones. 1 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas 3.2 El Diseño En el diseño para la construcción de una nueva base de datos distribuida se deben considerar las estrategias de diseño de bases de datos distribuidas referentes a los enfoques que se le otorgan a este tipo de procesos, como son el enfoque de arriba hacia abajo (Top-Down) como el diseño de abajo hacia arriba (BottomUp). Se ha propuesto que el diseño de una base de datos distribuida puede ser asistido e implantado a lo largo de tres dimensiones ortogonales. Estos tres niveles o dimensiones son: 1. Nivel de distribución 2. Comportamiento de los patrones de acceso. 3. Nivel de conocimiento en el comportamiento del patrón de acceso. En términos del nivel de distribución hay tres posibilidades. Primero: Que no haya distribución; cada aplicación y sus datos se ejecutan en un sitio y no hay comunicación con algún otro programa o acceso a algún archivo de datos de otro sitio. Esto caracterizaba a los primeros días de trabajo en red pero ya no es tan común en nuestros tiempos. Segundo: Distribución de datos; Todos los programas son replicados en todos los sitios pero no los archivos de datos, por consiguiente las peticiones de los usuarios son manejadas en el sitio donde fueron originados y solo los archivos de datos necesarios son movidos alrededor de la red. 2 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas Tercero: Datos más programas. Los archivos de datos y los programas pueden ser compartidos. En la primera dimensión se puede observar una distinción entre la distribución de datos y la distribución de datos más programas ilustrando las diferencias entre sistemas de computadora distribuidos homogéneos y heterogéneos. Indica correctamente que en un ambiente heterogéneo es más difícil e incluso imposible ejecutar un programa dado en diferente hardware bajo un diferente sistema operativo. A lo largo de la segunda dimensión del comportamiento de los patrones de acceso es posible identificar dos alternativas. Los patrones de acceso de peticiones de usuarios puede ser estático, es decir que no cambian en el tiempo, o dinámico. A lo largo de la tercera dimensión tenemos el nivel de conocimiento del comportamiento de los patrones de acceso. Podemos plantear la opción de que el desarrollador no conozca nada acerca de estos patrones pero sería difícil construir un DBMS que cubriera esta cuestión sin información previa por eso, y para que sea más fácil es necesario que el diseñador o desarrollador tenga la información completa. 3.3 Proceso de Diseño de Arriba Hacia Abajo (Top-Down) Este enfoque es más apropiado para aplicaciones nuevas y para sistemas homogéneos. Consiste en partir desde el análisis de requerimientos para definir el diseño conceptual y las vistas de usuario. A partir de ellas se define un esquema conceptual - global y los esquemas externos necesarios. Se prosigue con el diseño de la fragmentación de la base de datos, y de aquí se continúa con la localización de los fragmentos en los sitios, creando las imágenes físicas. Esta aproximación se completa ejecutando, en cada sitio, el diseño físico de los datos, que se localizan en éste. 3 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas 3.4 Proceso de Diseño de Abajo Hacia Arriba (Bottom-Up) Se utiliza particularmente a partir de bases de datos existentes, generando con esto bases de datos distribuidas. El diseño Bottom-Up de una base de datos distribuida requiere de la selección de un modelo de bases de datos común para describir el esquema global de la base de datos. Es posible que se utilicen diferentes SGBD. Después se hace la traducción de cada esquema local en el modelo de datos común y finalmente se hace la integración del esquema local en un esquema global común. 3.5 Fragmentación de Datos La fragmentación en una base de datos distribuida es encontrar un nivel de particionamiento adecuado en el rango que va desde tuplas o atributos hasta relaciones completas. 3.5.1 Fragmentación Horizontal Corresponde esencialmente al tratamiento que se le da a una tabla y el procedimiento consiste en dividirla en fragmentos menores; inmediatamente surgen dos alternativas lógicas para llevar a cabo el proceso: la división horizontal y la división vertical. La división o fragmentación horizontal trabaja sobre las tuplas, dividiendo la relación en sub relaciones que contienen un subconjunto de las tuplas que alberga la primera. 3.5.2 Fragmentación Vertical La fragmentación vertical, se basa en los atributos de la relación para efectuar la división. La fragmentación vertical es la subdivisión 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 procesa en al menos un atributo del fragmento. 4 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas 3.5.3 Fragmentación Híbrida Fundamentalmente, se habla de fragmentación mixta o híbrida cuando el proceso de partición hace uso de los dos tipos anteriores. La fragmentación mixta puede llevarse a cabo de tres formas diferentes: desarrollando primero la fragmentación vertical y, posteriormente, aplicando la partición horizontal sobre los fragmentos verticales (denominada partición VH), o aplicando primero una división horizontal para luego, sobre los fragmentos generados, desarrollar una fragmentación vertical (llamada partición HV), o bien, de forma directa considerando la semántica de las transacciones. 3.6 Transparencia El concepto de transparencia de un sistema de base de datos distribuida va ligado a la idea de que todo el sistema funcione de forma similar en todos los puntos de la red, independientemente de la posición del usuario. Los siguientes son los niveles de independencia al emitir el concepto de Transparencia: Independencia Lógica de Datos: Se refiere a la inmunidad de los sistemas de información de usuario a los cambios en la estructura lógica de la base de datos. Esto permite que un cambio en la definición de un esquema no debe afectar a las aplicaciones de usuario. Por ejemplo, el agregar un nuevo atributo a una relación, la creación de una nueva relación, el reordenamiento lógico de algunos atributos. Independencia Física de los Datos: La Independencia física de datos. se refiere al ocultamiento de los detalles sobre las estructuras de almacenamiento a las aplicaciones de usuario. Esto quiere decir que la descripción física de datos puede cambiar sin afectar a las aplicaciones de usuario. Por ejemplo, los datos pueden ser movidos de un disco a otro, o la organización de los datos puede cambiar. Transparencia al Nivel de Red: La transparencia al nivel de red se refiere a que los datos en un SGBDD se accesan sobre una red de computadoras, sin embargo, las aplicaciones del usuario final no deben notar su existencia. La transparencia al nivel de red conlleva a dos cosas: 5 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas 1. Transparencia sobre la localización de datos. El proceso se define como el comando que se usa para acceso a datos es independiente de la ubicación de los datos en la red y del lugar en donde la operación se lleve a cabo. 2. Transparencia sobre el esquema de nombramiento. El proceso se logra proporcionando un nombre único a cada objeto en el sistema distribuido. Así, no se debe mezclar la información de la localización con en el nombre de un objeto. Transparencia Sobre Replicación: La transparencia sobre replicación de datos se refiere a que si existen réplicas de objetos de la base de datos, su existencia debe ser controlada por el sistema, no por el usuario. Se debe tener en cuenta que cuando el usuario se encarga de manejar las réplicas en un sistema, el trabajo de éste es mínimo por lo que se puede obtener una eficiencia mayor. Sin embargo, el usuario puede olvidarse de mantener la consistencia de las réplicas teniendo así datos diferentes. Transparencia a Nivel de Fragmentación de Datos: La transparencia a nivel de fragmentación de datos permite que cuando los objetos de la bases de datos están fragmentados, el sistema tiene que manejar la conversión de consultas de usuario definidas sobre relaciones globales, a consultas definidas sobre fragmentos. Así también, será necesario mezclar las respuestas a consultas fragmentadas para obtener una sola respuesta a una consulta global. El acceso a una base de datos distribuida debe hacerse en forma transparente. La transparencia tiene como punto central la independencia de datos. transparencia se pueden organizar en capas como se muestra en la Figura. 6 Los diferentes niveles de ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas En el primer nivel se soporta la transparencia de red. En el segundo nivel se permite la transparencia de replicación de datos. En el tercer nivel se permite la transparencia de la fragmentación. En el cuarto nivel se permite la transparencia de acceso. La responsabilidad sobre el manejo de transparencia debe estar compartida tanto por el sistema operativo, el sistema de manejo de bases de datos y el lenguaje de acceso a la base de datos distribuida. Entre estos tres 7 ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA Bases de Datos Distribuidas módulos se deben resolver los aspectos sobre el procesamiento distribuido de consultas y sobre el manejo de nombres de objetos distribuidos. 3.7 Replica de Datos Las réplicas en las bases de datos distribuidas consisten en un duplicado de las bases de datos del servidor en el disco duro de su computadora, es decir, en el servidor local. Estas bases de datos contienen aparte de los datos, un identificador que permitirá posteriormente actualizar sus contenidos, tanto en el servidor como en las bases de datos locales. Esto constituye una ayuda especialmente útil cuando se desea trabajar en un equipo de cómputo que en ocasiones no estará conectado a la red donde se encuentra el servidor en el que reside el servidor de datos. La réplica de una base de datos se realiza solamente una vez y posteriormente se procede a la "replicación" de los documentos cada vez que se considere necesario. Para poder trabajar desde distintos equipos en una base de datos distribuida es necesario crear una o varias réplicas de dicha BDD que después, deberán ser sincronizadas. Cada réplica es miembro de un conjunto de réplicas que se pueden sincronizar con otras réplicas del mismo grupo, es decir, los cambios realizados en una réplica se aplican a las otras réplicas y al diseño principal o base de datos original. 8