miércoles, 12 de septiembre de 2018

2.3.1 ASIGNACIÓN DE FRAGMENTOS

Cada fragmento (o cada copia de un fragmento) se debe asignar a un sitio determinado en el sistema distribuido. Este proceso se denomina distribución de los datos. La elección de la sede y el grado de replicación depende de los objetivos de rendimiento y disponibilidad para el sistema y de los tipos de frecuencias de transacciones introducidas en cada sitio. Por ejemplo, si se requiere una alta disponibilidad, y si las transacciones se pueden introducir en cualquier sitio y si la mayoría de ellas son de obtención de datos, entonces una BD completamente replicada será una buena opción. Sin embargo, si por lo regular ciertas transacciones que tienen acceso a partes específicas de la BD se introducen en un solo sitio, se podría asignar el conjunto de fragmentos correspondiente exclusivamente a ese sitio. Los datos que se utilizan en múltiples sitios se pueden replicar en esos sitios. Si se efectúan muchas actualizaciones, puede ser conveniente limitar la replicación. Encontrar una solución óptima, o siquiera buena, para el reparto de datos distribuidos es un problema de optimización muy complejo.



bibliografia: Laura Martínez Martín. (2010). Alternativas de replicación. En Diseño y construción de base de datos distribuidas(28). México: Santillas.

2.3.2 ALTERNATIVAS DE REPLICACIÓN

La replicación de datos se refiere al almacenamiento de copias de datos en múltiples sitios conectados mediante una red de ordenadores. Pueden guardarse copias fragmentadas en varios sitios para satisfacer requerimientos de información específicos. Como la existencia de copias de fragmentos puede mejorar la disponibilidad de los datos y el tiempo de respuesta, estas copias reducen los costes de comunicación y de consultas totales.
Supóngase que la tabla A está dividida en dos fragmentos A1 y A2. Dentro de una base de datos distribuida replicada, es posible el escenario de la ilustración 6 en el que el fragmento A1 se guarda en los sitios S1 y S2, mientras que el A2 se guarda en los sitios S2 y S3



Los datos replicados se someten a la regla de consistencia mutua. La regla de consistencia mutua requiere que todas las copias de fragmentos de datos sean idénticas. Por consiguiente, para mantener la consistencia de los datos entre las réplicas, el SGBDD debe garantizar que se realice una actualización de la base de datos en todos los sitios donde existan réplicas.

Suponiendo que la base de datos está fragmentada correctamente, hay que decidir la asignación de los fragmentos a diversos sitios en la red. Cuando se asignan los datos, o bien se pueden replicar o mantenerse una sola copia de los mismos. Las razones para la replicación son la disponibilidad, fiabilidad y la eficiencia de consultas de sólo lectura. Si hay múltiples copias de un elemento de datos, hay una buena probabilidad de que alguna copia esté accesible en algún lugar, incluso cuando se producen fallos en el sistema. Por otra parte, las consultas de sólo lectura que acceden a los mismos elementos de datos pueden ser ejecutados en paralelo desde la salida de copias en múltiples sitios. 

Por otra parte, la ejecución de las transacciones de actualización causa problemas ya que el sistema tiene que garantizar que todas las copias de los datos se actualizan correctamente. De ahí que la decisión con respecto a la replicación dependa de la relación existente entre consultas de sólo lectura y consultas de actualización. Esta decisión afecta a casi todos los algoritmos de SGBDD y las funciones de control. 

Una base de datos no replicada (comúnmente se llama base de datos particionada) contiene fragmentos que se asignan a los diferentes sitios, y sólo hay una copia de cada fragmento en la red. En el caso de realizarse replicación, la base de datos puede ubicarse en su totalidad en cada lugar (base de datos totalmente replicada), o los fragmentos pueden distribuirse en los nodos de tal manera que las copias de un fragmento puedan residir en varios emplazamientos (base de datos parcialmente replicada). En este último caso el número de copias de un fragmento puede suponer un aumento de coste para el algoritmo de asignación.  

En la Tabla 1 se comparan estas alternativas con respecto a varias funciones de los SGBD distribuidos.
Aunque la replicación tiene algunos beneficios, también exige más complejidad de procesamiento del SGBDD, porque cada copia de datos debe ser mantenida por el sistema. Para ilustrar la complejidad de un SGBDD, se deben considerar los procesos que el SGBDD debe realizar a la hora de gestionar la base de datos:
• Si la base de datos está fragmentada, el SGBDD debe decidir qué copia acceder. • Una operación de lectura selecciona la copia más cercana para satisfacer la transacción. Una operación de escritura requiere que todas las copias se seleccionen y actualicen para satisfacer la regla de consistencia mutua.
• El procesador de transacciones envía una solicitud de datos a cada procesador de datos para su ejecución.
• El procesador de datos recibe y ejecuta cada solicitud y envía los datos de vuelta al procesador de transacciones.
• El procesador de transacciones construye las respuestas del procesador de datos.


El problema se complica más cuando se consideran factores adicionales tales como la topología de red y los protocolos de comunicación.





BIBLIOGRAFIA: DISEÑO DE BASE DE DATOS DISTRIBUIDA, AQUINO BOLIVIA - 2005.

2.4 CONTROL SEMÁNTICO DE LOS DATOS

La integridad semántica de los datos se refiere a las características del SGBD y los procesos que se pueden utilizar para asegurar la exactitud y la viabilidad del contenido de los datos de una BD. La integridad semántica de los datos se refiere a la consistencia de los datos en sí.
En general, se utilizan las funciones del SGBD para apoyar la integridad de los datos que por lo general ofrece la mejor solución. Es más fácil descubrir y mantener una regla de integridad semántica utilizando las funciones del SGBD que revisando el código del programa. Hay que tener en cuenta que el código puede estar en diferentes lenguajes en un entorno heterogéneo. Además, habrá que distinguir los datos obsoletos de los activos.

BIBLIOGRAFIA:Laura Martínez Martín. (2010). Alternativas de replicación. En Diseño y construción de base de datos distribuidas(28-30). México: Santillas.

2.5 PROCESAMIENTOS DE CONSULTAS

El éxito creciente de la tecnología de bases de datos relacionales en el procesamiento de datos de debe, en parte, a la disponibilidad de lenguajes no procedurales los cuales pueden mejorar significativamente el desarrollo de aplicaciones y la productividad del usuario final. Los lenguajes de bases de datos relacionales permiten la expresión de consultas complejas en una forma concisa y simple. Particularmente, para construir la respuesta a una consulta, el usuario no tiene que especificar de manera precisa el procedimiento que se debe seguir. Este procedimiento es llevado a cabo por un módulo del DBMS llamado el procesador de consultas (Query Processor).

El procesamiento de consultas es de suma importancia en bases de datos centralizadas. Sin embargo, en BDD éste adquiere una relevancia mayor. El objetivo es convertir transacciones de usuario en instrucciones para manipulación de datos. No obstante, el orden en que se realizan las transacciones afecta grandemente la velocidad de respuesta del sistema. Así, el procesamiento de consultas presenta un problema de optimización en el cual se determina el orden en el cual se hace la menor cantidad de operaciones. En BDD se tiene que considerar el procesamiento local de una consulta junto con el costo de transmisión de información al lugar en donde se solicitó la consulta.

Arquitectura del procesamiento de consultas

Metodología del procesamiento de consultas

Bibliográfica: Diseño de bases de datos distribuidas pag. 56-70, Aquino Bolivia-2005



2.5.1 DEFINICIONES

  • Esquema conceptual:
Describe la estructura de toda la base de datos para una comunidad de usuarios. El esquema conceptual oculta los detalles de las estructuras físicas de almacenamiento y se concentra en describir entidades, tipos de datos, vínculos, operaciones de los usuarios y restricciones.

  • Esquema Conceptual Local (ECL):
Son los esquemas conceptuales correspondientes a cada vista de usuario.

  • Esquema Conceptual Global (ECG).
En el caso de SGBDDs lógicamente integrados, el ECG define la visión global de la BD completa. El ECG es la unión de los Esquemas Conceptuales Locales (ECL).
El procesamiento de consultas se puede descomponer en un número de subconsultas a los que corresponden cada uno de los niveles de un procesador de consultas genérico.


Procesamiento de una consulta

Bibliográfica: Univeridad Carlos III Diseño y Construcción de Bases de Datos Distribuidas Heterogéneas sobre Oracle Y SQL Server, pag. 31 y 32.

martes, 11 de septiembre de 2018

2.5.2 DESCOMPOSICIÓN DE CONSULTAS GLOBALES

La primera capa descompone una consulta en el cálculo relacional en una consulta en el álgebra relacional que opera sobre relaciones globales.

Consiste de cuatro partes:

1. Normalización
Involucra la manipulación de los cuantificadores de la consulta y de los calificadores de la misma mediante la aplicación de la prioridad de los operadores lógicos.

La consulta de entrada puede ser arbitrariamente compleja dependiendo de las facilidades provistas por el lenguaje. El objetivo de la normalización es transformar una consulta a una forma normalizada para facilitar su procesamiento posterior. La normalización consiste de dos partes:
El análisis léxico y sintáctico: En esta parte se verifica la validez de la expresión que da origen a la consulta. Se verifica que las relaciones y atributos invocados en la consulta estén acordes con la definición en la base de datos.

2. Análisis
Se detecta y rechazan consultas semánticamente incorrectas.

El análisis de consultas permite rechazar consultas normalizadas para los cuales no se requiere mayor procesamiento. Una consulta se puede rechazar si alguno de sus atributos o nombres de relación no están definidas en el esquema global. También se puede rechazar si las operaciones que se aplican a los atributos no son del tipo adecuado.

En una gráfica de consulta, un nodo indica la relación resultante, y cualquier otro nodo representa la relación operante. Un arco entre dos nodos que no son resultados representa una junta, mientras que un arco cuyo nodo destino es una relación resultante representa una proyección.
Una subgráfica importante de la gráfica de conectividad es la gráfica de juntas, en la cual únicamente se consideran las juntas.
La gráfica de juntas es particularmente importante durante la fase de optimización.

3. Simplificación
Elimina predicados redundantes.

La consulta en forma normal conjuntiva puede contener predicados redundantes.
Una evaluación directa de la consulta con redundancia puede llevarnos a realizar trabajo duplicado.

4. Reestructuración
Mediante reglas de transformación una consulta en el cálculo relacional se transforma a una en el álgebra relacional. Se sabe que puede existir más de una transformación. Por tanto, el enfoque seguido usualmente es empezar con una consulta algebraica y aplicar transformaciones para mejorarla.

El último paso en la descomposición de consultas, reescribe la consulta en el álgebra relacional.
Esto se hace típicamente en los siguientes pasos:
a. Una transformación directa del cálculo relacional en el álgebra relacional
b. Una reestructuración de la consulta en el álgebra relacional para mejorar la eficiencia

Por claridad es costumbre representar la consulta en el álgebra relacional por un árbol del álgebra relacional, el cual es un árbol en donde una hoja representa a una relación almacenada en la base de datos y un nodo no hoja es una relación intermedia producida por una operación del álgebra relacional.

BIBLIOGRAFIA: DISEÑO DE BASE DE DATOS DISTRIBUIDA, AQUINO BOLIVIA - 2005.

2.5.3 LOCALIZACIÓN DE LOS DATOS

La entrada a esta capa es una consulta algebraica definida sobre relaciones distribuidas.
El objetivo de esta capa es localizar los datos de la consulta usando la información sobre la distribución de datos.
Esta capa determina cuales fragmentos están involucrados en la consulta y transforma la consulta distribuida en una consulta sobre fragmentos.

La fragmentación de una relación se define a través de las reglas de fragmentación, las cuales pueden ser expresadas como consultas relacionales.
Una relación global puede ser reconstruida aplicando las reglas de reconstrucción y derivando un programa en el álgebra relacional cuyos operandos son los fragmentos.
A este programa se le conoce como programa de localización.
Una forma simple de localizar una consulta distribuida es generar una consulta donde cada relación global es sustituida por su programa de localización.
Esto puede ser visto como el reemplazo de las hojas del árbol del álgebra relacional de la consulta distribuida con subárboles que corresponden a los programas de localización.
A la consulta obtenida por esta forma se le conoce como una consulta genérica.
En general, el enfoque anterior puede ser ineficiente dado que varias simplificaciones y reestructuraciones de la consulta genérica aún pueden ser realizadas.

Por cada tipo de fragmentación se presentan técnicas de reducción que general consultas simples y optimizadas:
A) Reducción para fragmentación horizontal primaria.
B) Reducción para fragmentación vertical.
C) Reducción para fragmentación horizontal derivada.
D) Reducción para fragmentación híbrida.

BIBLIOGRAFIA: DISEÑO DE BASE DE DATOS DISTRIBUIDA, AQUINO BOLIVIA - 2005.