CAPITULO 4 Procesamiento de Consultas 4.1 Costos de la

Anuncio
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
Bases de Datos Distribuidas
CAPITULO 4
Procesamiento de Consultas
4.1 Costos de la Transferencia de Datos
La transferencia de datos en una base de datos distribuida genera un costo de mediana intensidad en el
performance o rendimiento de las maquinas que contienen la distribución de los datos.
Para tal fin los SGBDD proveen clases de utilidad que proporciona herramientas para transferir objetos y datos.
Los objetos del esquema de la base de datos se transfieren ejecutando un script generado en el servidor de
destino. Los datos de las tablas de la BDD se transfieren con un paquete creado dinámicamente.
El objeto derivado de ejecutar esta clase contiene toda la funcionalidad de los objetos transferidos y
funcionalidad del lenguaje SQL. Además, los métodos y propiedades que se utilizan para realizar
transferencias de datos residen en el objeto transferido en lugar de los objetos anteriormente creados en la
BDD. La funcionalidad de este tipo de clases de utilidad es coherente con un modelo de objetos más ligero
porque el código para las tareas concretas sólo se carga cuando se requiere.
4.2 Procesamiento de Consultas Distribuidas por Reducción de Tuplas
Recordemos que una tupla es la representación de una fila en una de las tablas resultantes de una relación
ejecutada en un almacén de datos; en el proceso de reducción de tuplas se puede presentar una significativa
reducción del número de tuplas ejecutando uniones de relaciones entre diferentes tablas de la BDD.
Se envía la columna con la que se va a realizar la unión de una relación R a la tabla donde se encuentra la
1
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
Bases de Datos Distribuidas
otra relación, allí se realiza la unión con la otra relación S, luego se envían las columnas implicadas en el
resultado a la tabla inicial y se vuelve a realizar la unión con R. Sólo se transfieren las columnas de R que
intervienen en la realización de la consulta en una dirección y el subconjunto de columnas de S resultantes en la
otra.
4.3 Descomposición de Consultas
Para realizar la división de datos en una consulta consideraremos el siguiente ejemplo de consulta distribuida
La tabla tiene 10.000 tuplas. Cada tupla tiene 100 bytes de longitud. El campo ID tiene 9 bytes de longitud. El
campo Dpto tiene 4 bytes de longitud. El campo Nombre tiene 15 bytes de longitud. El campo Apellido tiene 15
bytes de longitud.
Tamaño de la relación: 100 * 10.000 = 106 bytes
La tabla tiene 100 tuplas. Cada tupla tiene 35 bytes de longitud. El campo NombreDpto tiene 10 bytes de
longitud. El campo NDpto tiene 4 bytes de longitud. El campo Responsable tiene 9 bytes de longitud.
Tamaño de la relación: 35 * 100 = 3500 bytes
2
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
Bases de Datos Distribuidas
“Por cada empleado, obtener el nombre del empleado y el nombre del departamento al que pertenece”
Consulta 1: Nombre, Apellido, NombreDPto(EMPLEADO*DEPARTAMENTO)
La consulta se lanza desde la tabla 3 (tabla o vista respuesta) que no tiene datos implicados en la consulta. El
resultado de ésta consulta constará de 10.000 tuplas. Cada tupla resultante será de una longitud de 40 bytes. El
tamaño del resultado será por tanto de 400.000 bytes.
Existen tres alternativas para resolver la consulta.
Primera alternativa: Transferir, tanto la relación EMPLEADO, como la relación DEPARTAMENTO a la tabla
respuesta (tabla 3) y realizar allí mismo la operación de unión. En éste caso se transfieren: 1.000.000 + 3.500 =
1.003.500 bytes.
Segunda alternativa: Transferir la relación EMPLEADO a la tabla 2, ejecutar la unión en esta tabla y enviar el
resultado a la tabla 3. Esto implicaría transferir:
1.000.000 + 400.000 (resultado) = 1.400.000 bytes
Tercera alternativa: Transferir la relación DEPARTAMENTO a la tabla 1, ejecutar la unión en este nodo y enviar el
resultado a la tabla 3. En este caso, los bytes transferidos serán: 3.500 + 400.000 (resultado) = 403.500 bytes.
La segunda alternativa es más óptima, ya que nos transfiere el mayor número de datos efectivos en la consulta,
mientras que en las otras alternativas algunos datos quedaron fuera del resultado.
3
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
Bases de Datos Distribuidas
4.4 Transformación de Consultas
Esta situación puede estudiarse a partir de una consulta extremadamente sencilla; por ejemplo hallar
todas las tuplas de la relación EMPLEADO -DEPARTAMENTO, tomando como referencia el ejemplo
anterior. Aunque la consulta es sencilla (en realidad, trivial), su procesamiento no es trivial, ya que puede que
la relación EMPLEADO - DEPARTAMENTO esté fragmentada, replicada o ambas cosas. Si la relación está
replicada, se tiene que elegir la réplica. Si no se han dividido las réplicas, se escoge aquella para la que el costo
de transmisión es más bajo. No obstante, si se ha dividido una réplica, la elección no resulta tan sencilla de
hacer dado que hay que calcular varias reuniones o uniones para reconstruir la relación EMPLEADO DEPARTAMENTO. En ese caso, el número de estrategias para este ejemplo escogido puede ser grande.
Como se observa, existen varias alternativas que permiten transformar la consulta original, en otras, puede que
la optimización de las consultas mediante la enumeración exhaustiva de todas las estrategias no resulte
práctica en esas situaciones.
4.5 Procesamiento de Reuniones Sencillas
Una decisión importante en la selección de una estrategia de procesamiento de consultas es la elección de la
estrategia de reunión. Tomemos como referencia la relación EMPLEADO - DEPARTAMENTO. Supongamos que
la relación no está replicada ni fragmentada, y que cuenta está almacenada en dos sitios diferentes. Supóngase
que el primer sitio se ha formulado la consulta. El sistema necesita obtener el resultado en el primer sitio.
Entre las estrategias posibles para el procesamiento de esta consulta figuran las siguientes:
 Enviar copia de la relación resultante al primer sitio.
 Enviar copia de la consulta al segundo sitio y ejecutarla. Enviar el resultado al primer sitio.
 Diseñar estrategias parecidas a la anterior con los roles de los sitios intercambiados.
4
ESCUELA DE CIENCIAS BÁSICAS TECNOLOGÍA E INGENIERÍA
Bases de Datos Distribuidas
Ninguna estrategia es siempre la mejor. Entre los factores que deben tenerse en cuenta están el volumen de los
datos que se envían, el costo de la transmisión de los bloques de datos entre los sitios y la velocidad relativa de
procesamiento en cada sitio. Para analizar la situación de esta consulta podemos emplear dos alternativas;
la estrategia de semirreunión, que nos permite configurar reuniones de varias relaciones, esta estrategia puede
ampliarse a una serie de pasos de semirreunión; se ha desarrollado un importante aspecto teórico en relación con
el empleo de la semirreunión para la optimización de consultas. La otra alternativa contempla diferentes
estrategias de reunión que aprovechan el paralelismo donde hay muchas estrategias posibles para la evaluación en
paralelo, estas estrategias pueden comenzar el cálculo de relaciones, con una técnica de reunión canalizada, así, el
cálculo del resultado de la reunión final una relación resultante puede hacerse en paralelo con el cálculo de
otras relaciones resultantes.
5
Descargar