Está en la página 1de 6

Instituto Tecnológico del Norte de

Nayarit

ING. EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIONES.

ENERO-JUNIO 2022

Tarea: I1T1 Resumen

Asignatura: Bases de Datos Distribuidas

Docente: Jose F. Casillas Lomeli

Estudiante:  José Luis Arreola Diaz

Número de control:  201170041


METODOLOGÍA DE PROCESAMIENTO DE CONSULTAS
DISTRIBUIDAS.

Las consultas distribuidas se encargan de detener el acceso a datos de varios


orígenes de datos heterogéneos. Estos orígenes de datos pueden estar
almacenados en el mismo equipo o en equipos diferentes.

Sql Server proporciona características, como Integration Services y PowerPivot,


que pueden ayudarle a integrar datos heterogéneos. Otra manera de integrar
datos es utilizando las características de replicación de Sql Server, para replicar
los datos entre los servidores. Sql Server admite la replicación de datos
heterogéneos con ciertas bases de datos de IBM y Oracle.

La función principal de un procesador de consultas relacionales es transformar


una consulta en una especificación de alto nivel, típicamente en cálculo relacional,
a una consulta equivalente en una especificación de bajo nivel.  Hablando más
claro para realizar una consulta se debe contar con heterogenidad (ya mencionado
anteriormente) de los datos, para que puedan ser usados para formular consultar.

Definición de estrategias de procesamiento de consultas distribuidas.


Las consultas distribuidas tienen acceso a datos de varios orígenes de datos
heterogéneos. Estos orígenes de datos pueden estar almacenado en el mismo
equipo o en equipos diferentes.

Procesamiento de consultas.
Contamos con la estrategia de reformulación de consultas, que nos sirve para
encontrar  la información que nos va a proveer sea solo la que se le pidió por la
fuente. También se cuenta con la estrategia de descomposición de las fuentes,
que consiste en que según las fuentes que pidan cierto tipo de datos sean las
atendidas con mayor velocidad.
El procesamiento de consultas tiene varias etapas a seguir para resolver una
consulta SQL, las características del modelo relacional permiten que
cada motor de base de datos elija su propia representación que, comúnmente,
resulta ser el álgebra relacional.

Existen varios medios para calcular la respuesta a una consulta


en un sistema distribuido.
El costo de transmisión de datos en la red.
•Repetición y fragmentación.
•Procesamiento de intersección simple.

Árboles de consultas.
Árbol de consulta que es una estructura de árbol que corresponde a una expresión
del álgebra relacional en el que las tablas se representan como nodos hojas y las
operaciones del álgebra relacional como nodos intermedios.
Pasos a seguir en Árboles de consultas:
Pasos
– Parsing y traducción de la consulta
– Optimización
– Generación de código
– Ejecución de la consulta

Transformaciones equivalentes.
Es usada cuando una base de datos se encuentra en múltiples servidores y
distribuye a un número determinado de nodos tenemos:
1. El servidor recibe una petición 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.
.
Métodos de ejecución del Join.
En los métodos de la ejecución de Join  existen diferentes algoritmos que pueden
obtener transformaciones eficientes en el procesamiento de consultas.

Join en bucles (ciclos) anidados


Si z = r s, r recibirá el nombre de relación externa y s se llamará relación interna, el
algoritmo de bucles anidados se puede presentar como sigue:
Para cada tupla tr en s si (tr,ts) si satisface la condición, entonces añadir tr * ts al
resultado Donde tr * ts será la concatenación de las tuplas tr y ts. Como para cada
registro de r se tiene que realizar una exploración completa de ts, y suponiendo el
peor caso, en el cual la memoria intermedia sólo puede concatenar un bloque de
cada relación, entonces el número 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 sólo se necesitarían 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 relación interna s se lee una vez por cada
bloque de dr y no por cada tupla de la relación externa.

Join por mezcla


Este algoritmo se puede utilizar para calcular si un Join natural es óptimo en la
búsqueda o consulta. Para tales efectos, ambas relaciones deben estar ordenadas
para los atributos en común es decir se asocia un puntero a cada relación, al
principio estos punteros apuntan al inicio de cada una de las relaciones. Según
avance el algoritmo el puntero se mueve a través de la relación. De este modo se
leen en memoria un grupo de tuplas de una relación con el mismo valor en los
atributos de las relaciones.

Join por asociación.


Al igual que el algoritmo de join por mezcla, el algoritmo de join por asociación se
puede utilizar para un Join natural o un equi-join. Este algoritmo utiliza una función
de asociación h para dividir las tuplas de ambas relaciones. La idea fundamental
es dividir las tuplas de cada relación en conjuntos con el mismo valor de la función
de asociación en los atributos de join.
El número de bloques ocupados por las particiones podría ser ligeramente mayor
que.
Join por asociación híbrida
El algoritmo de join por asociación híbrida realiza otra optimización; es útil cuando
el tamaño de la memoria es relativamente grande paro aún así, no cabe toda la
relación s en memoria. Dado que el algoritmo de join por asociación 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 partición de la relación s, esto es, así no es necesaria leerla ni escribirla
nuevamente y se puede construir un índice asociativo.

Join Complejos
Los join en bucle anidado y en bucle anidado por bloques son útiles siempre, sin
embargo, las otras técnicas de join son más eficientes que estas, pero sólo se
pueden utilizar en condiciones particulares tales como join natural o equi-join. Se
pueden implementar join con condiciones más complejas tales como conjunción o
disyunción Dado un join de las forma se pueden aplicar una o más de las técnicas
de join descritas anteriormente en cada condición individual, el resultado total
consiste en las tuplas del resultado intermedio que satisfacen el resto de las
condiciones. Estas condiciones se pueden ir comprobado según se generen las
tuplas. La implementación de la disyunción es homóloga a la conjunción.

Outer Join (Join externos)


Un outer join es una extensión del operador join que se utiliza a menudo para
trabajar con la información que falta.
Optimización de consultas

Una consulta consiste en una sentencia de un lenguaje que incluye algunos


operadores para la obtención de los datos que se quiere recuperar de la base de
datos. En un lenguaje de base de datos como SQL se expresara que datos se
desean recuperar de la BD, dejando para el optimizador la selección del
procedimiento más eficiente para recuperar dichos datos.
La optimización de consultas es la elección de una estrategia de ejecución para
procesar cada consulta sobre la base de datos.

2. La definición de Silberschatz, Korth y Sudarshan.

Silberschatz, Korth y Sudarshan [2002] definen la optimización de consultas como


“el proceso de selección del plan de evaluación de las consultas más eficiente de
entre las muchas estrategias generalmente disponibles para el procesamiento de
una consulta dada, especialmente si la consulta es compleja”.
Silberschatz, Korth y Sudarshan [2002] hace referencia a dos aspectos
relacionados con la optimización de consultas, a saber:
- En el nivel del algebra relacional, el sistema intentara hallar una expresión que
sea equivalente a la expresión dada, pero más eficiente.
- La elección de una estrategia detallada para el procesamiento de la consulta,
como la selección del algoritmo que se utilizara para ejecutar una operación y la
selección de los índices concretos que se van a emplear.

También podría gustarte