bdd U3 U4.pdf

download bdd U3 U4.pdf

of 5

Transcript of bdd U3 U4.pdf

  • 7/29/2019 bdd U3 U4.pdf

    1/5

    Bases de datos distribuidas

    Unidad III

    1

    PROCESAMIENTO DISTRIBUIDO DE CONSULTAS

    En el procesamiento de consultas es necesario elegir una estrategia que reduzca al mnimo

    el tiempo que se requiere para calcular la respuesta. En el caso de sistemas centralizados, el

    criterio principal para determinar el costo de una estrategia especfica es el nmero de

    accesos al disco. En un sistema distribuido es preciso tener en cuenta otros factores comoson

    El costo de transmisin de datos en la red

    El beneficio potencial que supondra en la ejecucin el que varias localidades procesaran

    en paralelo partes de la consulta

    Repeticin y Fragmentacin

    Consideremos una consulta muy sencilla: Encontrar todas las tuplas de la relacin depsito

    Aunque la consulta es muy simple, de hecho, es trivial; su procesamiento no es trivial, ya que

    es posible que la relacin depsito est fragmentada, repetida o las dos cosas. Si la relacin

    depsito est repetida, es preciso decidir qu copia se va a utilizar. Si ninguna de las copias

    est fragmentada, se elige la copia que implique costos de transmisin ms reducidos. Pero

    si una copia est fragmentada, la eleccin no es tan sencilla, ya que es preciso calcular

    varios productos o uniones para reconstruir la relacin depsito. En tal caso, el nmero de

    estrategias para este ejemplo sencillo puede ser grande. De hecho, la eleccin de una

    estrategia puede ser tan compleja como hacer una consulta arbitraria.

    La transparencia de la fragmentacin implica que el usuario puede escribir una consulta

    como esta:

    nombre-sucursal=Hillside(depsito)

    Puesto que depsito est definido como

    depsito1 U deposito2

    la expresin que resulta del esquema de traduccin de nombres es:

    nombre-sucursal=Hillside(depsito1 U deposito2)

    Al emplear tcnicas de optimizacin, podemos simplificar de manera automtica esta

    expresin. La expresin que resulta es

    nombre-sucursal=Hillside(depsito1) U nombre-sucursal=Hillside(depsito2)

    la cual incluye dos subexpresiones. La primera incluye slo depsito1 y por tanto puede ser

    calculada en la localidad Hillside. En las segunda incluye solamente deposito2 y por tanto

    puede ser caluclada en la localidad Valle.

    Existe una optimizacin que se puede hacer calculando

    nombre-sucursal=Hillside(depsito1)

  • 7/29/2019 bdd U3 U4.pdf

    2/5

    Bases de datos distribuidas

    Unidad III

    2

    Puesto que depsito1 tiene solamente tuplas pertenecientes a la sucursal de Hillside,

    podemos eliminar la operacin de seleccin de la relacin depsito2

    nombre-sucursal=Hillside(depsito2)

    ya que si aplicamos la definicin del fragmento depsito2 tenemos:

    nombre-sucursal=Hillside(nombre-sucursal=Valle(depsito))

    Esta expresin es el conjunto vaco, independientemente del contenido de la relacin

    depsito. As nuestra estrategia final para la localidad Hillside consistir en devolver

    depsito1 como resultado de la consulta.

    Estrategias de procesamiento de consultas

    1. Procesamiento de interseccin simple

    Considerar la expresin en lgebra relacionalcliente |X| depsito |X| sucursal

    Suponemos que ninguna de las tres relaciones est repetida o fragmentada y que cliente

    est almacenada en la localidad Lc, depsito en la localidad Ld y sucursal en la localidad

    Lb. Sea L1 la localidad donde se origin la consulta. El sistema debe producir el resultado

    en la localidad L1. Entre las posibles estrategias para procesar esta consulta se

    encuentran las siguientes:

    Enviar copias de las tres relaciones a L1, escoger una estrategia para procesar en forma

    local la consulta completa en L1.

    Enviar una copia de la relacin cliente a la localidad Ld

    y calcularcliente|X|depsito en Ld.

    Enviar cliente|X|depsito de Ld a Lb donde se calcula (cliente|X|depsito)|X|sucursal. El

    resultado de esta operacin es enviado a L1.

    Pueden elaborarse estrategias similares a la anterior al intercambiar los papeles de L c,

    Ld, y Lb.

    No puede garantizarse que una estrategia sea la mejor en todos los casos. Entre los

    factores que deben tomarse en cuenta estn la cantidad de datos que deben transmitirse,

    el costo de transmitir un bloque de datos entre dos localidades determinadas, y la

    velocidad de procesamiento relativa en cada localidad.

    Si se envan las relaciones y existen ndices para ellas, puede ser necesario crear

    nuevamente estos ndices en otro lugar, esto requiere un tiempo extra de procesamientoy ms accesos al disco.

    2. Estrategias de interseccin utilizando el paralelismo

    Consideremos un producto de cuatro relaciones

    r1|X|r2|X|r3|X|r4

  • 7/29/2019 bdd U3 U4.pdf

    3/5

    Bases de datos distribuidas

    Unidad III

    3

    donde la relacin ri est almacenada en la localidad Li. Suponemos que el resultado ha

    de presentarse en la localidad L1. Existen por supuesto muchas estrategias que se

    pueden considerar. Un mtodo atractivo sera enviar r1 a L2 y calcular r1|X|r2 en L2. Al

    mismo tiempo se puede enviarr3 a L4 y calcularr3|X|r4 en L4.

    La localidad L2 puede enviar tuplas de (r1|X|r2) a L1 conforme se vayan produciendo, envez de esperar a que se calcule el producto completo. De forma similar L4 puede enviar

    tuplas de (r3|X|r4) a L1. Una vez que las tuplas de (r1|X|r2) y de (r3|X|r4) lleguen a L1, esta

    localidad podr empezar el clculo de (r1|X|r2)|X|( r3|X|r4) en paralelo con el clculo de

    (r1|X|r2) en L2y (r3|X|r4) en L4.

    3. Estrategia de semiinterseccin

    Suponer que deseamos calcular la expresin r1|X|r2en donde r1 y r2 estn almacenadas

    en las localidades L1 y L2respectivamente. Sean R1 y R2los esquemas de r1 y r2. Suponer

    que queremos obtener el resultado en L1. Si hay muchas tuplas de r2 que no

    interseccionan con ninguna de r1, entonces el envo de r2 a L1 requiere el envo de tuplas

    que no contribuyen al resultado. Es conveniente borrar (en sentido figurado) tales tuplas

    antes de enviar los datos a L1, particularmente si los costos de la red son muy elevados.

    Para hacerlo vemos la siguiente estrategia:

    a) Calculartemp1 = R1R2(r1) en L1b) Enviartemp1 de L1 a L2

    c) Calculartemp2= r2|X|temp1 en L2

    d) Enviartemp2de L2 a L1

    e) Calcularr1|X|temp2en L1 Este es el resultado de r1|X|r2

    La estrategia anterior es ventajosa particularmente cuando en el producto participanrelativamente pocas tupas de r2.

    Optimizacin 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 especificacin de alto nivel a una

    estrategia de ejecucin eficiente expresada en un lenguaje de bajo nivel sobre bases de

    datos locales.

    As, el problema de optimizacin de consultas es minimizar una funcin de costo tal que:

    funcin de costo total = costo de I/O + costo de CPU + costo de comunicacin

    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

  • 7/29/2019 bdd U3 U4.pdf

    4/5

    Bases de datos distribuidas

    Unidad III

    4

    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.

    Arquitectura del procesamiento de consultas

    El problema de procesamiento de consultas se puede descomponer en varios sub-

    problemas que corresponden a diferentes niveles. Suponga que se tiene un procesador

    de consultas 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.

    Las cuatro capas principales son:

    descomposicin de consultas

    localizacin de datos,

    optimizacin global de consultas

    optimizacin local de consultas.

    Las primeras tres se realizan en un nodo central usando informacin global. La cuarta

    capa se realiza en cada nodo local.

    Descomposicin de consultas

    La primera capa descompone una consulta consistente en cuatro partes:

    1.-Normalizacin. Involucra la manipulacin de los cuantificadores de la consulta y de los

    calificadores de la misma mediante la aplicacin de la prioridad de los operadores

    lgicos.

    2.-Anlisis. Se detecta y rechazan consultas semnticamente incorrectas.

    3.-Simplificacin. Elimina predicados redundantes.

    4.-Reestructuracin. Mediante reglas de transformacin una consulta en el clculo

    relacional se transforma a una en el lgebra relacional. Se sabe que puede existir ms de

    una transformacin. Por tanto, el enfoque seguido usualmente es empezar con una

    consulta algebraica y aplicar transformaciones para mejorarla.

    Localizacin de Datos

    La entrada a esta capa es una consulta algebraica definida sobre relaciones distribuidas.

    El objetivo de esta capa es localizar los datos de la consulta usando la informacin sobre

    la distribucin de datos. Esta capa determina cuales fragmentos estn involucrados en la

    consulta y transforma la consulta distribuida en una consulta sobre fragmentos.

  • 7/29/2019 bdd U3 U4.pdf

    5/5

    Bases de datos distribuidas

    Unidad III

    5

    Optimizacin Global de Consultas

    Dada una consulta algebraica sobre fragmentos, 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. Paraencontrar una buena transformacin se consideran las caractersticas de los fragmentos,

    tales como, sus cardinalidades. Un aspecto importante de la optimizacin 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 optimizacin global es una consulta algebraica optimizada con operacin

    de comunicacin incluidas sobre los fragmentos.

    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.