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