Vous êtes sur la page 1sur 9

Estrategias de procesamiento de consultas

El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL, las caractersticas del modelo relacional permiten que cada motor de base de datos elija su propia representacin que, comnmente, resulta ser el lgebra relacional. La optimizacin de consultas es, entonces, una de estas etapas. Existen distintos mtodos para optimizar consultas relacionales, sin embargo el enfoque de optimizacin basada en costos combinado con heursticas que permitan reducir el espacio de bsqueda de la solucin es el mtodo mayormente utilizado por los motores de base de datos relaciones de la actualidad, en todo caso, independiente del mtodo elegido para optimizar la consulta, la salida de este proceso debe ser un plan de ejecucin, el cual comnmente es representado en su forma de rbol relacional.

Arboles de consultas

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 tcnica que se utiliza es la de fragmentacin de datos que puede ser hibrida, horizontal y vertical. En esta fragmentacin 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 transformacin 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 ms 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-combinacin, SELF-JOIN. Matemticamente, JOIN es composicin relacional, la operacin fundamental en el lgebra relacional, y generalizando es una funcin de composicin.

Estrategias de procesamiento de consultas distribuidas

Las consultas distribuidas detienen acceso a datos de varios orgenes de datos heterogneos. Estos orgenes de datos pueden estar almacenados en el mismo equipo o en equipos diferentes.

El procesamiento de consultas tiene varias etapas a seguir para resolver una consulta SQL, las caractersticas del modelo relacional permiten quec a d a m o t o r d e b a s e d e d a t o s e l i j a s u p r o p i a r e p r e s e n t a c i n q u e , comnmente, resulta ser el lgebra relacional .E x i s t e n v a r i o s m e d i o s p a r a c a l c u l a r l a r e s p u e s t a a u n a c o n s u l t a . E n e l caso del sistema centralizado, el criterio principal para determinar el costo de una estrategia especfica es el nmero de acceso al disco. En un sistema distribuido es preciso tener e n cuenta otros factores como son: El costo de transmisin de datos en la red. Repeticin y fragmentacin. Procesamiento de interseccin simple.

Arboles de consultas Pasos Parsing y traduccin de la consulta Optimizacin Generacin de cdigo Ejecucin de la consulta

Transformaciones equivalentes

Cuando una base de datos se encuentra en mltiples s e r v i d o r e s y distribuye a un nmero determinado de nodos tenemos: El servidor recibe una peticin de un nodo. E l s e r v i d o r e s a t a c a d o p o r e l a c c e s o c o n c u r r e n t e a l a b a s e d e datos cargada localmente. El servidor muestra un resultado y le da un hilo a cada una de las maquinas nodo de la red local. Cuando una base de datos es acezada de esta manera la tcnica que se utiliza es la de fragmentacin de datos que puede ser hibrida, horizontal y vertical. En esta fragmentacin lo que no se quiere es perder la consistencia delos datos, por lo tanto se respetan las formas normales de la base de datos. Bueno para realizar una transformacin en la co n s u l t a p r i m e r o desfragmentamos siguiendo los estnda r e s m a r c a d o s p o r l a s r e g l a s formales y posteriormente realizamos el envi y la maquina que recibe e s l a q u e m u e s t r a e l r e s u l t a d o p e r t i n e n t e p a r a e l u s u a r i o , d e e s t a s e puede producir una copia que ser la equivalente a la original.

Mtodos de ejecucin del join Existen diferentes algoritmos que pueden obtener transformacioneseficientes en el procesamiento de consultas. Join en bucles (ciclos) anidados Si z = r s, r recibir el nombre de relacin externa y s se llamar relacin interna, el algoritmo de bucles anidados se puede presentar como sigue: Para cada tupla tr en s si (tr,ts) si satisface la condicin, entonces aadir tr * ts al resultado Donde tr * ts ser la concatenacin de las tuplas tr y ts. Como para cada registro de r se tiene que realizar una exploracin completa de ts, y suponiendo el peor caso, en el cual la memoria intermedia slo puede concatenar un bloque de cada relacin, entonces el nmero de bloques a acceder es de sr bn b. Por otro lado, en el mejor

de los casos si se pueden contener ambas relaciones en la memoria intermedia entonces slo se necesitaran accesos a bloques. Join en bucles anidados por bloques Una variante del algoritmo anterior puede lograr un ahorro en el acceso a bloques, si se procesan las relaciones por bloques en vez de por tuplas. Para cada bloque Br dar a igual para cada bloque Bs de s, para cada tupla tr en Br. La diferencia principal en costos de este algoritmo con el anterior es que en el peor de los casos cada bloque de la relacin interna s se lee una vez por cada bloque de dr y no por cada tupla de la relacin externa. Join por mezcla Este algoritmo se puede utilizar para calcular si un Join natural es ptimo en la bsqueda o consulta. Para tales efectos, ambas relaciones deben estar ordenadas para los atributos en comn es decir se asocia un puntero a cada relacin, al principio estos punteros apuntan al inicio de cada una de las relaciones. Segn avance el algoritmo el puntero se mueve a travs de la relacin. De este modo se leen en memoria un grupo de tuplas de una relacin con el mismo valor en los atributos de las relaciones. Qu se debe de tomar en cuenta en este algoritmo? Se tiene que ordenar primero, para despus utilizar este mtodo. Se tiene que considerar el costo de ordenarlo / las relaciones. Es ms fcil utilizar pequeas tuplas.

Join por asociacin. Al igual que el algoritmo de join por mezcla, el algoritmo de join por asociacin se puede utilizar para un Join natural o un equi-join. Este algoritmo utiliza una funcin de asociacin h para dividir las tuplas de ambas relaciones. La idea fundamental es dividir las tuplas de cada relacin en conjuntos con el mismo valor de la funcin de asociacin en los atributos de join. El nmero de bloques ocupados por las particiones podra ser ligeramente mayor que. Debido a que los bloques no estn completamente llenos. El acceso a estos bloques puede aadir un gasto adicional de 2max a lo sumo, ya

que cada una de las particiones podra tener un bloque parcialmente ocupado que se tiene que leer y escribir de nuevo. Join por asociacin hbrida El algoritmo de join por asociacin hbrida realiza otra optimizacin; es til cuando el tamao de la memoria es relativamente grande paro an as, no cabe toda la relacin s en memoria. Dado que el algoritmo de join por asociacin necesita max +1 bloques de memoria para dividir ambas relaciones se puede utilizar el resto de la memoria (M max 1 bloques)para guardar en la memoria intermedia la primera particin de la relacin s, esto es, as no es necesaria leerla ni escribirla nuevamente y se puede construir un ndice asociativo. Cuando r se divide, las tuplas de tampoco se escriben en disco; en su lugar, segn se van generando, el sistema las utiliza para examinar el ndice asociativo en y as generar las tuplas de salida del join. Despus de utilizarlas, estas tuplas se descartan, as que la particin no ocupa espacio en memoria. De este modo se ahorra un acceso de lectura y uno de escritura para cada bloque de y. Join Complejos Los join en bucle anidado y en bucle anidado por bloques son tiles siempre, sin embargo, las otras tcnicas de join son ms eficientes que estas, pero slo se pueden utilizar en condiciones particulares tales como join natural o equi-join. Se pueden implementar join con condiciones ms complejas tales como conjuncin o disyuncin Dado un join de las forma se pueden aplicar una o ms de las tcnicas de join descritas anteriormente en cada condicin individual, el resultado total consiste en las tuplas del resultado intermedio que satisfacen el resto de las condiciones. Estas condiciones se pueden ir comprobado segn se generen las tuplas. La implementacin de la disyuncin es homloga a la conjuncin. Outer Join (Join externos) Un outer join es una extensin del operador join que se utiliza a menudo para trabajar con la informacin que falta. Por ejemplo: Suponiendo que se desea generar una lista con todos los choferes y los autos que manejan (si manejan alguno) entonces se debe cruzar la relacin Chofer con la relacin Mvil. Si se efecta un join corriente se

perdern todas aquellas tuplas que pertenecen a los choferes, en cambio con un outer join se pueden desplegar las tuplas resultado incluyendo a aquellos choferes que no tengan a cargo un auto. El outer join tiene tres formas distintas: por la izquierda, por la derecha y completo. El join por la izquierda ( ) toma todas las tuplas de la relacin de la izquierda que no coincidan con ninguna tupla de la relacin de la derecha, las rellena con valores nulos en los dems atributos de la relacin de la derecha y las aade al resultado del join natural. Un outer join por la derecha ( ) es anlogo al procedimiento anterior y el outer join completo es aquel que efecta ambas operaciones. Para el caso de un outer join completo se puede calcular mediante extensiones de los algoritmos de join por mezcla y join por asociacin.

UNIDAD 3 PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS


3.1 METODOLOGIA DE PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS Primeramente se debe de contar con heterogenidad de los datos, para que puedan ser usados para formular consultas. Tenemos los sigueintes ejemplos: BD CENTRALIZADA

BD DISTRUIBUIDA

Asi como tambien necesitamos contar con: -Localizacion de los datos para generar reglas heuristicas -Descomposicion de consultas en paralelo en cada nodo -Reducir la cantidad de datos a transferir en la red 3.2 ESTRATEGIAS DE PROCESAMIENTO DE CONSULTAS DE BASES DE DATOS DISTRIBUIDAS

Contamos con la estategia de Reformulacion de consultas, que nos sirve para encontrar q la informacion que nos va a proveer sea solo la que se le pidio por la fuente Tambien se cuenta con la estrategia de descomposicion de las fuentes, q consiste en que segun las fuentes q pidan cierto tipo de datos sean las atentidas con mayor velocidad. 3.3 OPTIMIZACION DE CONSULTAS DISTRIBUIDAS

Para poder optimizar una consulta necesitamos tener claras las propiedades del algebra relacional para asegurar la reformulacion de la consulta, al optimizar una consulta obtenemos los siguientes beneficios:

-minimizar costos -Reducir espacios de comunicaciones -Seguridad en envios de informacion

Samperio Mauricio. (06 de Diciembre de 2010). Blog Mauricio-ISO20000. Recuperado el 06 de Diciembre de 2010, de http://www.desarrolloweb.com/articulos/arquitectura-base-dedatos.html

Vous aimerez peut-être aussi