Vous êtes sur la page 1sur 7

Tercera unidad PROCESAMIENTO DE CONSULTAS El xito creciente de la tecnologa de bases de datos relacionales en el procesamiento de datos se 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. Ocultando los detalles de bajo nivel acerca de la localizacin fsica de datos, los lenguajes de bases de datos relacionales permiten la expresin 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 mdulo del DBMS llamado el procesador de consultas (queryprocessor). Dado que la ejecucin de consultas es un aspecto crtica en el rendimiento de un DBMS, el procesamiento de consultas ha recibido una gran atencin tanto para bases de datos centralizadas como distribuidas. Sin embargo, el procesamiento de consultas es mucho ms difcil en ambientes distribuidos que en centralizados, ya que existe un gran nmero de parmetros que afectan el rendimiento de las consultas distribuidas. La funcin principal de un procesador de consultas relacionales es transformar una consulta en una especificacin de alto nivel, tpicamente en clculo relacional, a una consulta equivalente en una especificacin de bajo nivel, tpicamente alguna variacin del lgebra relacional. La consulta de bajo nivel implementa de hecho la estrategia de ejecucin para la consulta. La transformacin debe ser correcta y eficiente. Es correcta si la consulta de bajo nivel tiene la misma semntica que la consulta original, esto es, si ambas consultas producen el mismo resultado. El mapeo bien definido que se conoce entre el clculo relacional y el lgebra relacional hace que la correctitud de la transformacin sea fcil de verificar. Sin embargo, producir una estrategia de ejecucin eficiente es mucho ms complicado. Una consulta en el clculo relacional puede tener muchas transformaciones correctas y equivalentes en el lgebra relacional. Ya que cada estrategia de ejecucin equivalente puede conducir a consumos de recursos de cmputo muy diferentes, la dificultad ms importante es seleccionar la estrategia de ejecucin que minimiza el consumo de recursos. Objetivos: El objetivo de minimizar la utilizacin de la red implica que el propio Proceso de Optimizacin de Consultas debe ser distribuido, al igual que el proceso de ejecucin de consulta.

En otras palabras, el proceso de optimizacin general consistir tpicamente en un paso de optimizacin global seguido por pasos de optimizacin local en cada sitio afectado.

La ejecucin de consultas es un aspecto crtico en el rendimiento de un sistema de base de datos. El procesamiento de consultas es mucho ms difcil en ambientes distribuidos que en centralizado. Existe un gran nmero de parmetros que afectan el rendimiento de las consultas distribuidas. Existen varios medios para calcular la respuesta a una consulta. En sistemas centralizados: el costo de una estrategia especfica es el nmero de accesos al disco.

En sistemas distribuidos: el costo de transmisin de datos en la red, el beneficio de la ejecucin en varias localidades. Es necesario llegar a un equilibrio adecuado entre el costo relativo de la transferencia de datos en la red y la transferencia de datos entre la memoria y el disco. Incluso una consulta sencilla acarrea un numero de posibles estrategias grande. La eleccin de una estrategia puede ser una tarea tan compleja como hacer una consulta arbitraria

DESCOMPOSICION DE CONSULTAS En un DDBMS sin transparencia el usuario expresa su consulta en trminos de fragmentos especficos. Tambin ser responsabilidad del usuario mantener la consistencia. Si el DDBMS tiene transparencia el usuario especificar una consulta como si el sistema fuera centralizado. En las actualizaciones, la consistencia deber garantizarla el sistema. En las consultas, el mdulo de descomposicin de subconsultas deber descomponer la consulta en subconsultas que puedan ejecutarse en sitios individuales. Adems tiene que existir una estrategia de composicin de resultados. Si el sistema detecta un elemento replicado dentro de una consulta, deber mantenerlo actualizado tras la ejecucin de sta. Supongamos que una consulta C se enva al sitio X, y supongamos que la consulta C involucra la unin de una relacin Ry de cien tuplas en el sitio Y con una relacin Rz de un milln de tuplas en el sitio Z. El optimizador que est en el sitio X seleccionar la estrategia global para la ejecucin de C; es claramente necesario que decida mover Ry hacia Z y no Rz hacia Y (por supuesto, tampoco Ry y Rz hacia el sitio X) Entonces, una vez que que se ha decido mover Ry hacia Z, la estrategia para ejecutar la unin real en el sitio Z ser decida por el optimizador local que est en Z. Entonces, una vez que que se ha decido mover Ry hacia Z, la estrategia para ejecutar la unin real en el sitio Z ser decida por el optimizador local que est en Z.

Optimizacin de Consultas Distribuidas Como se estableci antes, el objetivo del procesamiento de consultas en un ambiente distribuido es transformar una consulta sobre una base de datos distribuida en una especificacin de alto nivel a una estrategia de ejecucin eficiente expresada en un lenguaje de bajo nivel sobre bases de datos locales. El problema de optimizacin de consultas es minimizar una funcin de costo tal que: funcin de = costo de I/O + costo de CPU + costo de costo total comunicacin Costo de I/O: Costo de las operaciones de entrada/salida. Se puede minimizar a travs de mtodos de acceso y uso eficiente de memoria. Costo de CPU: Costo de las operaciones sobre datos en memoria.

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 comunicacin domina dado que hay una velocidad de comunicacin relativamente baja, los canales estn saturados y el trabajo adicional requerido por los protocolos de comunicacin es considerable. As, los algoritmos diseados 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 comunicacin no es tan dominante, as que se consideran los tres factores con pesos variables. En sistemas distribuidos, el lgebra relacional no es suficiente para expresar la ejecucin de estrategias, debe ser complementada con operaciones para el intercambio de datos entre nodos diferentes. El procesador de consultas distribuidas debe elegir el orden de las operaciones del lgebra relacional, el mejor sitio para procesar datos y la forma en que los mismos tienen que ser transformados. Objetivos de la optimizacin de consultas. El objetivo principal es minimizar la siguiente funcin de costo: Funcin de costo total= costo de I/O + costo deC PU + costo de comunicacin

Dependiendo del ambiente distribuido, los factores pueden tener pesos diferentes. Por ejemplo en las redes WAN el costo de comunicacin es el ms importante, porque la velocidad de comunicacin es baja. En estos casos normalmente se ignoran los costos de CPU y de I/O. Caracterizacin de los procesadores de consultas. A continuacin sealamos las caractersticas nicas de los procesadores de consultas distribuidos.

1.Tipo de optimizacin: Existen dos estrategias: Bsqueda exhaustiva (obtienen la transformacin ptima y requieren alto tiempo de ejecucin) y Algoritmos heursticos (obtienen aproximaciones a la transformacin ptima y requieren mejor tiempo de ejecucin). 2.Granularidad de la optimizacin: Hay dos posibilidades considerar slo una consulta a la vez o tratar de optimizar mltiples consultas.

3.Tiempo de optimizacin: Las consultas se pueden optimizar en tiempos diferentes con relacin a tiempo de ejecucin de la consulta. Se puede realizar de manera esttica (antes de ejecutar la consulta) o de forma dinmica (durante la ejecucin de la consulta). Tambin se puede utilizar un enfoque hbrido mezclando los dos anteriores.

4.Estadsticas: la efectividad de una optimizacin depende de las estadsticas de la BD. La optimizacin dinmica utiliza las estadsticas para decidir que operacin debe realizarse primero y la optimizacin esttica para estimar el tamao de las relaciones intermedias. 5.Nodos de Decisin: En la optimizacin esttica un nodo o varios pueden participar en la seleccin de la estrategia a ser aplicada para ejecutar la consulta. El proceso de toma de decisiones puede tener un enfoque centralizado (un solo lugar decide la estrategia) o proceso de decisin distribuido (varios nodos deciden la estrategia). 6.Topologa de la Red: El tipo de red influye en la funcin objetivo a optimizar para elegir la estrategia de ejecucin. No es igual la importancia de la comunicacin en la funcin de costo con una WAN que con una LAN.

Arquitectura del procesamiento de consultas

El problema de procesamiento de consultas se puede descomponer en varios sub- problemas que corresponden a diferentes niveles. En la Figura 3, se presenta un esquema por niveles genrico para el procesamiento de consultas. Para simplificar la discusin, suponga que se tiene un procesador de consultas esttico semicentralizado en donde no se tienen fragmentos replicados. Cuatro capas principales estn involucradas en mapear una consulta a una base de datos distribuida en una secuencia optimizada de operaciones locales, cada una de ellas actuando en una base de datos local.

Consulta sobre relaciones distribuidas

Descomposicin De Consultas

Esquema Global

Consulta en Algebra sobre relaciones distribuidas

Esquema Fragmentado
Consulta sobre fragmentos

Optimizacin Global
Cada Nodo

Estadsticas sobre Fragmentos Esquemas Locales

Consulta sobre fragmentos optimizadas

Optimizacin Local

Consulta locales optimizadas

Descomposicin de consultas La primera capa descompone una consulta en el clculo relacional en una consulta en el lgebra relacional que opera sobre relaciones globales. Consiste de cuatro partes: 1. Normalizacin: La consulta es reescrita de forma normalizada. 2. Anlisis: Se analiza la semntica del query normalizado tal que los querys incorrectos se detectan tempranamente. 3. Simplificacin: Se eliminan predicados redundantes. 4. Reestructuracin: Se hace una trasformacin directa de clculo relacional a lgebra relacional. Luego, se van realizando transformaciones sobre la consulta en algebra relacional para mejorarla. Localizacin de Datos

Se localizan los datos involucrados en la consulta distribuida usando la informacin de la distribucin de los datos, determinando sobre cuales fragmentos se realiza la consulta para generar una consulta sobre fragmentos. La consulta fragmentada se construye en dos pasos: La consulta distribuida es traducida a una consulta fragmentada sustituyendo cada relacin por su programa de reconstruccin. La consulta fragmentada es simplificada y reestructurada para producir un query bueno. Una relacin global puede ser reconstruida aplicando las reglas de reconstruccin y derivando un programa en el lgebra relacional cuyos operandos son los fragmentos.. Por cada tipo de fragmentacin se tienen tcnicas de reduccin que generan consultas simples y optimizadas. Optimizacin Global de Consultas El objetivo de esta capa es hallar una estrategia de ejecucin para la consulta cercana a la ptima. La estrategia de ejecucin para una consulta distribuida puede ser descrita con los operadores del lgebra relacional y con primitivas de comunicacin para transferir datos entre nodos. Para encontrar una buena transformacin se consideran las caractersticas de los fragmentos, tales como, sus cardinalidades. Se considera el ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios rdenes de magnitud

Optimizacin Local de Consultas

El trabajo de la ltima capa se efecta 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. La optimizacin local utiliza los algoritmos de sistemas centralizados. Integridad de los Datos La integridad de los datos hace cumplir las reglas de validacin de los datos, tal como comprobar que un valor de porcentaje se encuentra entre 0 y 100, para garantizar que datos no vlidos no acceden a las tablas. Histricamente, estas reglas se hacan cumplir por los mismos programas de la aplicacin (y las mismas reglas se comprobaban repetidamente en programas diferentes). Sin embargo, Oracle permite que el usuario defina y almacene esas reglas con relacin a los objetos de la base de datos con los cuales se relacionan de forma que slo es necesario codificarlas una vez para que se hagan cumplir siempre que se realice cualquier tipo de cambio en la tabla, con independencia de la herramienta que emita la instruccin de insertar, actualizar o eliminar. Esta comprobacin toma la forma de limitaciones de la integridad y de los disparadores de la base de datos. Restricciones de Integridad de los datos Las restricciones de la integridad hacen cumplir las reglas de las actividades en el nivel de la base de datos definiendo un conjunto de controles para las tablas el sistema de usuario. Estos controles se hacen cumplir automticamente siempre que se emite una instruccin de insertar, actualizar o eliminar sobre la tabla. Si se viola cualquiera de las restricciones, se produce la anulacin de la instruccin. Las dems instrucciones dentro de la transaccin permanecen en un estado pendiente y pueden ser confirmadas o se pueden anular de acuerdo con la lgica de la aplicacin. Debido a que las restricciones de la integridad son controladas en el nivel de la base de datos, son realizadas con independencia de donde se haya originado la instruccin de insertar, actualizar o eliminar, ya sea una herramienta Oracle o no. Definir controles que utilicen estas restricciones es tambin ms rpido que realizar los mismos controles usando SQL. Adems, la informacin proporcionada al declarar restricciones es utilizada por el optimizador de Oracle para tomar decisiones mejores sobre la forma de ejecutar una instruccin sobre la tabla. El producto Oracle Forms puede utilizar tambin restricciones para generar cdigo automticamente en los programas front-end para proporcionar al usuario un aviso temprano ante cualquier error. Los tipos de restricciones de integridad que se pueden establecer en una tabla son NOT NULL (no permitir valores nulos), PRIMARY KEY (clave primaria), UNIQUE (valor nico), FOREIGN KEY (clave externa), CHECK(comprobar que se cumplen una serie de condiciones) y los ndices

Vous aimerez peut-être aussi