martes, 5 de mayo de 2015

Actividad #16



Estrategias de procesamiento de consulta distribuida

Las consultas distribuidas detienen acceso a datos de varios orígenes dedatos heterogéneos. Estos orígenes de datos pueden estar almacenadosen el mismo equipo o en equipos diferentes.
Objetivos
  • Transformar consulta de alto nivel en álgebra relacional en otra consulta expresada en lenguaje de bajo nivel que consta de una extensión del álgebra relacional con operaciones de comunicación:

  • Hacerlo de forma optimizada, para lo cual tenemos en cuenta el uso de los siguientes recursos:

Caracterización de consultas
  • Lenguaje: Gran parte del trabajo de procesamiento tiene que ver con el lenguaje, pues los lenguajes relacionales proporcionan muchas oportunidades para la optimización. En BBDD distribuidas se cuenta con un lenguaje relacional más primitivas de comunicación.
  • Optimización: La optimización de consultas se suele decantar por minimizar el tamaño de las relaciones intermedias.
  • Estadísticas: Necesarias para decidir en el proceso de optimización. Se recopilan datos de consultas anteriores y demás artefactos y se toma la decisión en función de estos datos.
  • Lugar de decisión: Varios sitios puede participar en la selección de la estrategia más adecuada para responder a la consulta, aunque también es común que esta decisión se haga de forma centralizada, pero en ese caso es necesario que quien tome la decisión tenga conocimiento completo de la base de datos distribuida.
  • Topología de red: La optimización de consultas distribuidas puede dividirse en dos problemas: selección de la estrategia global de ejecución basada en las comunicaciones entre sitios y selección de cada estrategia local de ejecución, basada en un algoritmo de procesamiento centralizado, como si la BD no estuviera distribuida.
  • Fragmentos replicados: El procesador de consultas debe localizar los lugares donde se encuentran los datos que busca. Para optimización, se suele jugar con el hecho de que a veces hay datos que están replicados, lo cual puede ser beneficioso para aprovechar unos caminos u otros en la topología de red.
  • Uso de semijoins: El uso de semijoins reduce el tamaño de los datos intercambiados entre los sitios, por lo cual en redes lentas su uso está bastante extendido. No obstante, esto implica aumento en el número de mensajes intercambiados y aumento también del tiempo de proceso local.
 El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL, las características del modelo relacional permiten que cada motor de base de datos elija su propia representación que, comúnmente, resulta ser el álgebra relacional. La optimización de consultas es, entonces, una de estas etapas.

Existen distintos métodos para optimizar consultas relacionales, sin embargo el enfoque de optimización basada en costos combinado con heurísticas que permitan reducir el espacio de búsqueda de la solución es el método mayormente utilizado por los motores de base de datos relaciones de la actualidad, en todo caso, independiente del método elegido para optimizar la consulta, la salida de este proceso debe ser un plan de ejecución, el cual comúnmente es representado en su forma de árbol relacional.

Transformaciones equivalentes 

1.-el servidor recive una peticion de un nodo
2.-el servidor es atacado por el acceso concurrente a la base de datos cargada localmente
3.-el servidor muestra un resultado y le da un hilo a cada una de las maquinas nodo de la red local.

Una base de datos es accesada de esta manera la técnica que se utiliza es la de fragmentación de datos que puede ser hibrida, horizontal y vertical.
En esta fragmentación lo que no se quiere es perder la consistencia de los datos, por lo tanto se respetan las formas normales de la base de datos ok.
Bueno para realizar una transformación en la consulta primero desfragmentamos siguiendo los estandares marcados por las reglas formales y posteriormente realizamos el envio y la maquina que recibe es la que muestra el resultado pertinente para el usuario, de esta se puede producir una copia que sera la equivalente a la original.

Join

La sentencia join en SQL permite combinar registros de dos o más tablas en una base de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo de JOIN: interno, externo, y cruzado.
En casos especiales una tabla puede unirse a sí misma, produciendo una auto-combinación,SELF-JOIN.
Matemáticamente, JOIN es composición relacional, la operación fundamental en el álgebra relacional, y generalizando es una función de composición.
Optimizacion de consultas distribuidas

El objetivo del procesamiento de consultas en un ambiente distribuido es transformar una consulta sobre una base de datos distribuida en una especificación de alto nivel a una estrategia de ejecución eficiente expresada en un lenguaje de bajo nivel sobre bases de datos locales.
Así, el problema de optimización de consultas es minimizar una funcion de costo tal que la funcion del costo total = costo de I/O + costo de CPU + costo de comunicació. 

Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente distribuido en el que se trabaje. Por ejemplo, en las redes de área amplia (WAN), normalmente el costo de comunicación domina dado que hay una velocidad de comunicación relativamente baja, los canales están saturados y el trabajo adicional requerido por los protocolos de comunicación es considerable. Así, los algoritmos diseñados para trabajar en una WAN, por lo general, ignoran los costos de CPU y de I/O. En redes de área local (LAN) el costo de comunicación no es tan dominante, así que se consideran los tres factores con pesos variables. 


Optimización Global de Consultas 

Dada una consulta algebraica sobre fragmentos, el objetivo de esta capa es hallar una estrategia de ejecución para la consulta cercana a la óptima. La estrategia de ejecución para una consulta distribuida puede ser descrita con los operadores del álgebra relacional y con primitivas de comunicación para transferir datos entre nodos. Para encontrar una buena transformación se consideran las características de los fragmentos, tales como, sus cardinalidades. Un aspecto importante de la optimización de consultas es el ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios órdenes de magnitud. La salida de la capa de optimización global es una consulta algebraica optimizada con operación de comunicación incluidas sobre los fragmentos. 

Optimización Local de Consultas 

El trabajo de la última capa se efectúa en todos los nodos con fragmentos involucrados en la consulta. Cada subconsulta que se ejecuta en un nodo, llamada consulta local, es optimizada usando el esquema local del nodo. Hasta este momento, se pueden eligen los algoritmos para realizar las operaciones relacionales.




No hay comentarios.:

Publicar un comentario