Bases de Datos 2 - fing.edu.uy
Transcript of Bases de Datos 2 - fing.edu.uy
![Page 1: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/1.jpg)
Bases de Datos 2Teórico
![Page 2: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/2.jpg)
¿Cómo se resuelven las consultas?
Haga clic para modificar el estilo de texto del patrón Segundo nivel
Tercer nivel Cuarto nivel
Quinto nivel
![Page 3: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/3.jpg)
Estrategias usuales de losoptimizadores
Proceso detallado de Optimización.
Optimización Heurística Basada en equivalencia de las expresión del algebra y ciertas estrategias básicas para limitar
el tamaño de los resultados
Optimización por Costos Basada en estimaciones y datos del catalogo que permiten seleccionar un mejor plan de acceso.
![Page 4: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/4.jpg)
Proceso de Optimización
Haga clic para modificar el estilo de texto del patrón Segundo nivel
Tercer nivel Cuarto nivel
Quinto nivel
![Page 5: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/5.jpg)
Resumen del Proceso deOptimización Generación del Algebra (Árbol Canónico) Generación de planes lógicos (Optimización Heurística)
Implica la aplicación de determinadas estrategias (heurísticas) y consultas al catalogo para tamaños de las relaciones para
transformar el árbol original.
Generación de planes físicos (Optimización por Costos) Implica asociar a cada operación de los planes lógicos generados una o mas implementaciones.
Que implementación depende de las estructuras de datos disponibles.
Selección del Plan final (Optimización por Costos) Implica la evaluación de los planes físicos generados en base a las cantidades de operaciones de I/O que realiza cada
algoritmo
![Page 6: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/6.jpg)
Optimización por Heurísticas
Cambiar la consulta original por otra equivalente de forma de minimizar los resultados intermedios.
Pueden existir varias alternativas. La idea básica es aplicar primero las operaciones
que reducen el tamaño de los resultados intermedios Aplicar lo antes posible las operaciones de selección y proyección
Las operaciones de selección y join que son más restrictivas aplicarlas antes que las demás
![Page 7: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/7.jpg)
Reglas de equivalencia de expresiones
σ p1^p2 (R) = σ p1 (σ p2 (R)) σ p1 (σ p2 (R)) = σ p2 (σ p1 (R)) π an (π ak...an (R))) = π an (R) π a1..an (σ p(R))) = σ p (π a1..an (R)) [si p solo
contiene a1..an] σ p (R X E) = R |X|p E R |X|p E = E |X|p R (R |X|p E) |X|p S = R |X|p (E |X|p S) σ q1 (R X E)= (σ q1 (R))X E) [si q1 solo contiene
atributos de R] π anUak (R X E) = π an (R)X π ak (E) [si an es de R
y ak es de E]
![Page 8: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/8.jpg)
Reglas de equivalencia de expresiones
R U E = E U R R ∩ E = E ∩ R R U (E U D) = (R U E) U D R ∩ (E ∩ D) = (R ∩ E) ∩ D σ c(R U E) = σ c(R) U σ c(E) σ c(R ∩ E) = σ c(R) ∩ σ c(E) σ c(R - E) = σ c(R) - σ c(E) π an (R U E) = π an (R) U π an (E)
![Page 9: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/9.jpg)
Heurísticas Reglas para reducir los tamaños intermedios.
Cambiar las selecciones conjuntivas por una “cascada” de selecciones simples.
Mover las selecciones lo más abajo que se pueda en el árbol.
Reacomodar las hojas del árbol de modo que las selecciones más restrictivas son ejecutadas antes, evitando productos
cartesianos.
Cambiar secuencias de selecciones y productos por join’s. Mover las proyecciones lo más abajo posible en el árbol, agregando las proyecciones que sean necesarias.
![Page 10: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/10.jpg)
Ejemplo de Optimización
A partir del árbol canónico se generan planes lógicos.
Se usan heurísticas y se agregan datos de tamaño.
![Page 11: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/11.jpg)
Ejemplo de optimización heurística
Haga clic para modificar el estilo de texto del patrón Segundo nivel
Tercer nivel Cuarto nivel
Quinto nivel
![Page 12: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/12.jpg)
Ejemplo
Haga clic para modificar el estilo de texto del patrón Segundo nivel
Tercer nivel Cuarto nivel
Quinto nivel
![Page 13: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/13.jpg)
Ejemplo
![Page 14: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/14.jpg)
Ejemplo
![Page 15: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/15.jpg)
Ejemplo
![Page 16: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/16.jpg)
Optimización por Costos Plan Físico
Le asocia a cada operador del algebra que aparece en un plan lógico, una implementación.
Como se pueden considerar diferentes implementaciones para cada operador, entonces un mismo plan lógico puede
originar diferentes planes físicos.
Es necesario estimar el costo (cantidad de operaciones de I/O) de los diferentes planes que se generen y elegir el de
costo mínimo.
Para evaluar el costo, es necesario considerar ciertos parámetros que tienen influencia en el calculo de la cantidad de operaciones de I/O.
![Page 17: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/17.jpg)
Parámetros para la Estimación deCostos y Tamaños Haga clic para modificar el estilo de texto del patrón
Segundo nivel Tercer nivel
Cuarto nivel Quinto nivel
![Page 18: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/18.jpg)
Parámetros para la Estimación deCostos y Tamaños (2)
![Page 19: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/19.jpg)
Implementaciones de los operadores A cada operador de un plan lógico se le asigna una implementación. Luego hay que estimar el costo de todo el plan basándose en los costos
de cada algoritmo. Es importante la estrategia de implementación:
Pipelined: hay operadores que se ejecutan simultáneamente y pueden pasarse los resultados a medida que se generan. No
necesita grabar los resultado intermedios.
No Pipelined: los operadores se ejecutan secuencialmente y es necesario grabar resultados intermedios.
Asumimos: Selección y Join (No Pipelined): Se debe considerar el costo de grabar el resultado intermedio.
Proyección (Pipelined): no hay costo intermedio
![Page 20: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/20.jpg)
Implementación de los operadores:Estimaciones de Costos En el costo consideramos solo los acceso a disco:
de lectura. de grabación.
Siempre se realizan las operaciones de a bloque (pagina) que
pueden contener varios registros de índice o datos. Los costos de lectura dependen de la organización de los datos El costo de grabación siempre es el costo de grabar todo el
resultado(R): ┌nR/bfR┐ donde bfR = (cant. bytes bloque) / (cant. bytes tupla)
Al ver los algoritmos consideramos las lecturas, pero en el
costo debemos agregar la grabación.
![Page 21: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/21.jpg)
Implementación de la selección
Búsqueda lineal. Restricciones de uso: ninguna. Descripción: leer cada registro y si cumple la condición se pone en el resultado.
Costos de lectura: Peor caso: bR (cantidad de bloques de la relación R) Promedio: bR/2
Búsqueda Binaria. Restricciones de uso: registros ordenados. Descripción: leer el bloque del medio y en función de la condición leer el del medio de la primera o segunda
mitad y así hasta encontrarlo o no tener mas bloques
para leer.
Costos de lectura: log2bR + ┌ s/bfR ┐ -1
![Page 22: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/22.jpg)
Implementación de la selección con Índices Primario o Clúster:
Restricciones de uso: registros ordenados. Costos de lectura:
x + ┌ s/bfR┐ (x es la cantidad de niveles del índice) Si el índice es primario x+1 (solo 1 bloque tiene el valor buscado)
Hash: Restricciones de uso: solo para condiciones por igualdad. Costos de lectura: 1 o 2 dependiendo del tipo de hash
Secundario con B+: Restricciones de uso: ninguna Costos de lectura: x + s (peor caso, asumiendo que cada registro esta en un bloque distinto)
![Page 23: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/23.jpg)
Implementación del Join ( R|X|A=BS)
Loop anidado por registros Restricciones de uso: ninguna Descripción: para cada registro de R acceder a todos los bloques de S y combinar ese registro de
R con todos los de S.
Costo de lectura: bR + nR*bS Loop anidado por bloques
Restricciones de uso: ninguna Descripción: para cada bloque de R combinar todos los registros de ese bloque con todos los bloques
de S.
Costos de lectura: bR + ┌ bR/(M-2) ┐ *bS
![Page 24: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/24.jpg)
Implementación del Join ( R|X|A=BS) Sort-Merge Join
Restricciones de uso: las dos tablas deben tener los registros ordenados. Si no es así hay que agregar los costos de ordenación.
Descripción: recorrer R y S en paralelo combinando los registros. Costo de lectura: bR + bS Costo de ordenación: 2*b*(1+log2b)
Índex Join (Single Loop) Restricciones de uso: existencia de un índice para S Descripción: recorrer R y acceder por el índice a S. Costo de lectura: bR+(nR*Z) donde Z depende del tipo de índice.
secundario: Z=x + sS clúster: Z=x + ┌ sS/bfS ┐ primario: Z=x+1 hash=h
![Page 25: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/25.jpg)
Implementaciones de los Operadores
Haga clic para modificar el estilo de texto del patrón Segundo nivel
Tercer nivel Cuarto nivel
Quinto nivel
![Page 26: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/26.jpg)
Implementaciones de los Operadores
![Page 27: Bases de Datos 2 - fing.edu.uy](https://reader035.fdocuments.es/reader035/viewer/2022071009/62c8f5980b18e2091d54a76b/html5/thumbnails/27.jpg)
Ejemplo de optimización por costos