modelos avanzados de bases de datos base de datos distribuidas

modelos avanzados de bases de datos base de datos distribuidas modelos avanzados de bases de datos base de datos distribuidas

alarcos.inf.cr.uclm.es
from alarcos.inf.cr.uclm.es More from this publisher
13.08.2013 Views

Base de Datos Distribuidas La transformación es correcta si la consulta de bajo nivel tiene la misma semántica que la consulta original, es decir, si ambas consultas producen el mismo resultado. Para verificar si es correcta la transformación se hace un mapeo bien definido entre el cálculo relacional y el álgebra relacional. Otro aspecto importante es el consumo de recursos. Hay que elegir una buena estrategia de ejecución que sea eficiente para que así minimicemos el consumo de recursos de nuestro sistema. 18

Base de Datos Distribuidas Ejemplo: Consideramos esta Base de Datos: EMPRESA(ID_EMPRESA,NOMBRE_EMPRESA) PROYECTO(ID_EMPRESA,NOMBRE_PROYECTO,FUNCION) La consulta trata de encontrar “todos las empresas a las que les subvencionan un proyecto”. Expresión SQL: SELECT NOMBRE_EMPRESA FROM EMPRESA E, PROYECTO P WHERE E.ID_EMPRESA=P.ID_EMPRESA AND FUNCION = “BENEFICIARIO” Dos consultas equivalentes el álgebra relacional serían: 1) Π EMPRESA (σFUNCION-“BENEFICIARIO” Λ E.ID-P.ID (E x P)) 2) Π ENOMBRE (E>< ID (FUNCION=“BENEFICIARIO” (P)) La segunda estrategia es mejor, ya que evitamos calcular el producto cartesiano de E x P, por lo que la eficiencia mejora (al disminuir el coste computacional). Sin embargo, en los sistemas distribuidos (a diferencia de los sistemas centralizados) el álgebra relacional no es suficiente para expresar la ejecución de estrategias, que debe ser complementada con operaciones para el intercambio de información entre nodos. Entre estas operaciones destacan las que hacen el procesador de consultas distribuidas para elegir el orden de las operaciones del álgebra relacional, el mejor sitio para procesar datos y la forma en que los mismos deben ser transformados. Objetivos de la optimización de consultas El objetivo PRINCIPAL de la optimización de consultas distribuidas es mejorar la eficiencia de las mismas. Más detalladamente, podríamos decir que se trata de transformar una consulta sobre una base de datos distribuidas en una especificación de alto nivel a una estrategia de ejecución eficiente en un lenguaje de bajo nivel. Tenemos que minimizar la siguiente función de coste: En función el ambiente en que se trabaje cada uno de los factores de la expresión anterior pueden llegar a tener pesos diferentes. Por ejemplo, en la redes WAN el coste de comunicación 19

Base <strong>de</strong> Datos Distribuidas<br />

Ejemplo: Consi<strong>de</strong>ramos esta Base <strong>de</strong> Datos:<br />

EMPRESA(ID_EMPRESA,NOMBRE_EMPRESA)<br />

PROYECTO(ID_EMPRESA,NOMBRE_PROYECTO,FUNCION)<br />

La consulta trata <strong>de</strong> encontrar “todos las empresas a las que les subvencionan un proyecto”.<br />

Expresión SQL: SELECT NOMBRE_EMPRESA FROM EMPRESA E, PROYECTO P<br />

WHERE E.ID_EMPRESA=P.ID_EMPRESA AND FUNCION = “BENEFICIARIO”<br />

Dos consultas equivalentes el álgebra relacional serían:<br />

1) Π EMPRESA (σFUNCION-“BENEFICIARIO” Λ E.ID-P.ID (E x P))<br />

2) Π ENOMBRE (E>< ID (FUNCION=“BENEFICIARIO” (P))<br />

La segunda estrategia es mejor, ya que evitamos calcular el producto cartesiano <strong>de</strong> E x P,<br />

por lo que la eficiencia mejora (al disminuir el coste computacional).<br />

Sin embargo, en los sistemas distribuidos (a diferencia <strong>de</strong> los sistemas centralizados) el<br />

álgebra relacional no es suficiente para expresar la ejecución <strong>de</strong> estrategias, que <strong>de</strong>be ser<br />

complementada con operaciones para el intercambio <strong>de</strong> información entre nodos. Entre estas<br />

operaciones <strong>de</strong>stacan las que hacen el procesador <strong>de</strong> consultas <strong>distribuidas</strong> para elegir el or<strong>de</strong>n<br />

<strong>de</strong> las operaciones <strong>de</strong>l álgebra relacional, el mejor sitio para procesar <strong>datos</strong> y la forma en que los<br />

mismos <strong>de</strong>ben ser transformados.<br />

Objetivos <strong>de</strong> la optimización <strong>de</strong> consultas<br />

El objetivo PRINCIPAL <strong>de</strong> la optimización <strong>de</strong> consultas <strong>distribuidas</strong> es mejorar la<br />

eficiencia <strong>de</strong> las mismas. Más <strong>de</strong>talladamente, podríamos <strong>de</strong>cir que se trata <strong>de</strong> transformar una<br />

consulta sobre una <strong>base</strong> <strong>de</strong> <strong>datos</strong> <strong>distribuidas</strong> en una especificación <strong>de</strong> alto nivel a una estrategia<br />

<strong>de</strong> ejecución eficiente en un lenguaje <strong>de</strong> bajo nivel.<br />

Tenemos que minimizar la siguiente función <strong>de</strong> coste:<br />

En función el ambiente en que se trabaje cada uno <strong>de</strong> los factores <strong>de</strong> la expresión anterior<br />

pue<strong>de</strong>n llegar a tener pesos diferentes. Por ejemplo, en la re<strong>de</strong>s WAN el coste <strong>de</strong> comunicación<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!