Procesamiento de Consultas Distribuidas (2da. Parte) Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Slides:



Advertisements
Presentaciones similares
Base de Datos Distribuidas PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS
Advertisements

Diseño de Bases de Datos Distribuidas (4ta Parte)
Optimización de Consultas Distribuidas
Unidad 3 Tema “Transformacion Equivalentes”
Diseño de Bases de Datos Distribuidas (2da Parte)
Diseño de Bases de Datos Distribuidas (1era Parte)
Procesamiento de Consultas Distribuidas (1era Parte)
1 John Freddy Duitama U.de.A. Facultad de Ingeniería Optimización Algebraica. Profesor: John Freddy Duitama Muñoz. Facultad de Ingeniería. U.de.A. Profesor:
SQL: Lenguaje de Interrogación Estructurado
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
Expresiones algebraicas equivalentes
Ing. Sergio Valladares Castillo Base de Datos I Algebra Relacional.
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Administración de Base de Datos Procesamiento y Optimización de Consultas Prof Mercy Ospina Torres Prof Renny A. Hernandez
Optimización de Consultas Distribuidas. ÍNDICE Definiciones básicas Modelo de costo Estadísticas de la base de datos Optimización centralizada de consultas.
UNIVERSIDAD AUTONOMA DE SAN FRANCISCO DISEÑO Y DISTRIBUCIÓN DE PLANTA 2016 – I Ing. Maria del Pilar Vera Prado.
 Arquitectura  Ventajas y desventajas  Ejemplos.
Las tres primeras fases de un compilador suelen agrupan en un sola fase llamada Análisis del programa a compilar y las tres ultimas en una sola fase llamada.
Índices Ing. Catherine Naranjo D.. Introducción Los índices son objetos de base de datos diseñados para mejorar el rendimiento de las consultas. En este.
Instituto tecnológico superior de lerdo Sistemas de información II Diseño orientado a flujo de datos Profesor: Ing. Ricardo de Jesús Bustamante. Alumna:
Curso Sistemas de Información Geográfica (SIG): Profesor: Luis Carvacho Bart Ayudante: Claudia Ebensperger León Profesor: Luis Carvacho Bart Ayudante:
Detección y corrección de errores.  es una importante práctica para el mantenimiento e integridad de los datos a través de diferentes procedimientos.
Organizaciones involucradas: El centro de cálculo noruego. Crea lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan Dahl, en 1967.
Paul Leger Algebra Relacional Paul Leger
SQL: Structured Query Language
Paul Leger Algebra Relacional 2 Paul Leger
EL CPU.
Clase Práctica de Apareo
BASES DE DATOS.
SQL: structured Query Language
Álgebra relacional.
COMPUTADORA Una computadora es una colección de circuitos integrados  y otros componentes relacionados que puede ejecutar con exactitud, rapidez y de.
Tema 3 Fundamentos y diseño de algoritmos
Definición de un Sistema Distribuido
4. Normalización Nacional e Internacional 4.1. Objetivo de la Normalización.
Mantenimiento basado en el Riesgo (Inspección basada en el Riesgo)
INSTITUTO TECNOLOGICO DE ACAPULCO FUNDAMENTOS DE BASE DE DATOS
CODIFICACION DEL CANAL
Análisis de redes. 3.4 Problema de flujo máximo.
Fundamentos de Sistemas de Información
Programación lógica y funcional Unidad I Conceptos fundamentales.
Estructura Del Sistema Operativo
Agentes que planifican. 1. Introduccion En la actualidad todas la mayoría de actividades en un empresa o compañía, como en el hogar o el medio ambiente.
Autores: Ñauñay Colcha Jorge Luis Bravo Maldonado Paulo Dennis
Instituto Tecnológico Superior de la Región Sierra
MATERIA: CARRERA: CATEDRATICO: EXPOSICIÓN: INTEGRANTES:
Procesamiento de consultas
Estructura de Datos M.C. J. Andrés V. F. FCC/BUAP
Instituto Tecnológico Superior de la Región Sierra
Teoría Nº 3 Conceptos Básicos de Algoritmia Estructuras de Control
Universidad Alonso de Ojeda Facultad de Ingeniería
Bases de Datos Distribuidas Ing. Fernando Ortiz Ahumada
Normalmente emparejamos tablas que están relacionadas entre sí y una de las columnas de emparejamiento es clave principal, pues en este caso, Cuando una.
Estructura de Sistemas Operativos CAMPOS CHACALTANA, ANTHONY.
Estructura de los sistemas Operativos 1. Componentes de un sistema operativo  Administración de procesos  Administración de memoria  Subsistema de Entrada/Salida.
TEORIA DE GRAFOS UNIVERSIDAD PRIVADA DOMINGO SAVIO.
Arquitectura de Computadores de Computadores. Organización y Arquitectura La Arquitectura: se refiere a los atributos que tienen un impacto directo en.
CC Bases de Datos Otoño Clase 5: El Cálculo Relacional + SQL (I)
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
UNIDAD 1 Análisis semántico 1.1 ARBOLES DE EXPRESIONES.
ALGEBRA RELACIONAL UNIDAD 3 ALGEBRA RELACIONAL. INTRODUCCIÓN Se forma a partir de la matemática formal Creada por Edgar Frank Codd en 1972 Concede comportamineto.
Informacion estadistica Para cada tabla ●Cardinalidad (n° de filas) ●Factor de bloques (n° de filas que caben en un bloque) ●N° de bloques ocupados ●Método.
Compiladores: Generación de Código
Procesos Lic. Gonzalo Pastor.
ALGORITMO DE ORDENAMIENTO POR BURBUJA. El método de la burbuja es uno de los mas simples, es tan fácil como comparar todos los elementos de una lista.
Estructura de Sistemas Operativos
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
Transcripción de la presentación:

Procesamiento de Consultas Distribuidas (2da. Parte) Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV

Esquema de la Clase Objetivos de la optimización de consultas La complejidad de las operaciones del álgebra relacional Arquitectura del procesamiento de consultas –Descomposición de consultas Normalización Análisis Simplificación Reestructuración –Localización de datos distribuidos Reducción para fragmentación horizontal primaria Reducción para fragmentación vertical Reducción para fragmentación horizontal derivada Reducción para fragmentación híbrida

Objetivos de la optimización de consultas El problema de optimización de consultas es minimizar una función de costo tal que: función de = costo de I/O + costo de CPU + costo de costo total comunicación Costo de I/O: Costo de las operaciones de entrada/salida. Se puede minimizar a través de métodos de acceso y uso eficiente de memoria. Costo de CPU: Costo de las operaciones sobre datos en memoria.

Objetivos de la optimización de consultas Costo de Comunicación: Tiempo de intercambiar datos entre los nodos participantes en el query. Costo de = Tiempo de Formatear + Tiempo de transmitir Comunicación los datos los datos Los diferentes factores pueden tener pesos diferentes dependiendo del ambiente distribuido en el que se trabaje.

La complejidad de las operaciones del álgebra relacional La complejidad de las operaciones del álgebra relacional afectan directamente su tiempo de ejecución y establecen algunos principios útiles al procesador de consultas. Esos principios pueden ayudar en elegir la estrategia de ejecución final. La forma más simple de definir la complejidad es en términos de la cardinalidad de las relaciones independientemente de los detalles de implementación tales como fragmentación y estructuras de almacenamiento.

La complejidad de las operaciones del álgebra relacional OperaciónComplejidad Selección O (n) Proyección (sin eliminación de duplicados) Proyección (con eliminación de duplicados) O (n * log n) Agrupación Join SemiJoin División Producto CartesianoO (n 2 )

La complejidad de las operaciones del álgebra relacional La complejidad de las operaciones sugiere dos principios: 1. Dado que la complejidad es con base en las cardinalidades de las relaciones, las operaciones más selectivas que reducen las cardinalidades deben ser ejecutadas primero. 2. Las operaciones deben ser ordenadas en el orden de complejidad creciente de manera que el producto cartesiano puede ser evitado o, al menos, ejecutado al final de la estrategia.

Arquitectura del procesamiento de consultas Descomposición De Consultas Localización de Datos Optimización Global Optimización Local Esquema Global Esquema Fragmentado Estadísticas sobre Fragmentos Esquemas Locales Consulta sobre relaciones distribuidas Consulta locales optimizadas Consulta sobre fragmentos Consulta sobre fragmentos optimizadas Consulta en Algebra sobre relaciones distribuidas Nodo Central Cada Nodo

Descomposición de Consultas La primera capa descompone una consulta en el cálculo relacional en una consulta en el álgebra relacional que opera sobre relaciones globales. Consiste de cuatro partes: 1. Normalización: La consulta es reescrita de forma normalizada. 2. Análisis: Se analiza la semántica del query normalizado tal que los querys incorrectos se detectan tempranamente. 3. Simplificación: Se eliminan predicados redundantes. 4. Reestructuración: Se hace una trasformación directa de cálculo relacional a álgebra relacional. Luego, se van realizando transformaciones sobre la consulta en algebra relacional para mejorarla.

Localización de Datos Se localizan los datos involucrados en la consulta distribuida usando la información de la distribución de los datos, determinando sobre cuales fragmentos se realiza la consulta para generar una consulta sobre fragmentos. La consulta fragmentada se construye en dos pasos: 1)La consulta distribuida es traducida a una consulta fragmentada sustituyendo cada relación por su programa de reconstrucción. 2) La consulta fragmentada es simplificada y reestructurada para producir un query “bueno”.

Localización de Datos Una relación global puede ser reconstruida aplicando las reglas de reconstrucción y derivando un programa en el álgebra relacional cuyos operandos son los fragmentos. A este programa se le conoce como programa de localización ó reconstrucción. -> Fórmula de Reconstrucción. Por cada tipo de fragmentación se tienen técnicas de reducción que generan consultas simples y optimizadas.

Reducción para FHP Ejemplo Empleado (numEmp, nombre, titulo) Asignación (numEmp, numProy, responsabilidad, duración) Se encuentran fragmentadas así: EMP1 = SL numEmp <= ‘E3’ Empleado EMP2 = SL ‘E3’ < numEmp <= ‘E6’ Empleado EMP3 = numEmp > ‘E6’ Empleado ASG1 = SL numEmp <= ‘E3’ Asignacion ASG2 = SL numEmp > ‘E3’ Asignacion

Reducción para FHP Reducción por selección SELECT * FROM Empleado WHERE numEmp = "E5" EMP1EMP2EMP3 Y σ numEmp=‘E5’ EMP2 Y σ numEmp=‘E5’ a)b)

Reducción para FHP Reducción por juntas SELECT * FROM Empleado, Asignacion WHERE Empleado.numEmp = Asignacion.numEmp; EMP1EMP2EMP3 Y ⊲⊳ numEmp a) ASG1ASG2 Y EMP1ASG1 b) EMP2ASG2EMP3ASG3 ⊲⊳ numEmp Y

Reducción para FV Considerando que se tiene fragmentado empleado así: EMP1 = PJ numEmp, nombre Empleado EMP2 = PJ numEmp, titulo Empleado Y la consulta: SELECT nombre FROM empleado; EMP1EMP2 ⊲⊳ numEmp EMP1 Y a)b) Π nombre

Reducción para FHD Considerando la siguiente fragmentación: EMP1 = SL titulo = ‘programador’ Empleado EMP2 = SL titulo <> ‘programador’ Empleado ASG1 = Asignacion SJ numEmp EMP1 ASG2 = Asignacion SJ numEmp EMP2 Y la consulta: SELECT * FROM Asignacion, Empleado WHERE Asignacion.numEmp = Empleado.numEmp AND titulo = "Ingeniero Mecánico“

Reducción para FHD EMP1 EMP2 Y a) ASG1ASG2 Y σ titulo=‘ing. Mec.’ ⊲⊳ numEmp EMP2 a) ASG1ASG2 Y σ titulo=‘ing. Mec.’ ⊲⊳ numEmp EMP1 ASG1 c) EMP2 σ titulo=‘ing. Mec.’ ASG2 σ titulo=‘ing. Mec.’ ⊲⊳ numEmp Y σ titulo=‘ing. Mec.’ EMP2ASG2 d)

Reducción para Fragmentación Híbrida Las consultas en fragmentos híbridos se pueden reducir combinando las reglas usadas para fragmentación horizontal primaria, fragmentación vertical y fragmentación horizontal derivada. Estas se pueden resumir de la manera siguiente: 1. Remover las relaciones vacías generadas para por selecciones contradictorias en fragmentos horizontales. 2. Remover las relaciones intermedias inútiles generadas por proyecciones en fragmentos verticales. 3. Distribuir juntas sobre uniones a fin de aislar y remover juntas inútiles.

Reducción para Fragmentación Híbrida Considerando la siguiente fragmentación híbrida de la relación Empleado: EMP1 = SL numEmp <= "E4" (PJ numEmp, nombre Empleado) EMP2 = SL numEmp > "E4" (PJ numEmp, nombre Empleado) EMP3 = PJ numEmp, titulo Empleado Y la consulta: SELECT nombre FROM Empleado WHERE numEmp = "E5"

Reducción para Fragmentación Híbrida EMP1EMP2EMP3 Y σ numEmp=‘E5’ EMP2 σ numEmp=‘E5’ a) b) ⊲⊳ numEmp Π nombre

Optimización Global de Consultas El objetivo de esta capa es hallar una estrategia de ejecución para la consulta cercana a la óptima. La estrategia de ejecución para una consulta distribuida puede ser descrita con los operadores del álgebra relacional y con primitivas de comunicación para transferir datos entre nodos. Para encontrar una buena transformación se consideran las características de los fragmentos, tales como, sus cardinalidades. Se considera el ordenamiento de juntas, dado que algunas permutaciones de juntas dentro de la consulta pueden conducir a un mejoramiento de varios órdenes de magnitud

Optimización Local de Consultas El trabajo de la última capa se efectúa 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. La optimización local utiliza los algoritmos de sistemas centralizados.