Processamento e Otimização de Consultas



Documentos relacionados
Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

Prof. Daniela Barreiro Claro

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert

INE 5432 Banco de Dados II

INE 5336 Banco de Dados II

Definição do Plano de Execução. Estimativas sobre os Dados

INE 5616 Banco de Dados II

Faculdade Pitágoras 24/10/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Modelos. Comunicação com clientes

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

4 Implementação e Resultados Experimentais

Processamento de Consultas

BDII SQL Junção Revisão 8

Prova de Fundamentos de Bancos de Dados

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

Geração de código intermediário. Novembro 2006

Estratégia de execução de consultas em um Sistema de Gerenciamento de Banco de Dados Geográfico

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

BCC202 - Estrutura de Dados I

INE 5616 Banco de Dados II

Banco de Dados. Álgebra Relacional. Prof. Enzo Seraphim

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Prof.: Clayton Maciel Costa

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Álgebra Relacional. OBS: as operações Seleção e Projeção são operações unárias porque atuam em relações únicas.

Sistema para aprendizado de Álgebra Relacional e Linguagem SQL

Dicas de Projeto Lógico Relacional

Unidade 5 Armazenamento e Indexação

Comandos de Manipulação

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Introdução e motivação SGBD XML Nativo Consultas em SGBDs XML Prática. Bancos de dados XML. Conceitos e linguagens de consulta

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 2 PROF. MARCELO LUIZ SILVA (R E D)

BANCO DE DADOS aula 6 álgebra relacional -

Prof. Daniela Barreiro Claro

Fundamentos de Banco de Dados

Prof. Marcelo Machado Cunha

Junções e Índices em Tabelas

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Introdução ao SQL. Aécio Costa

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

NOME SEXO CPF NASCIMENTO SALARIO

Sistemas Operacionais

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Prova de Fundamentos de Bancos de Dados 2 a Prova

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

SQL: Interrogações simples

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

Disciplina de Banco de Dados Parte V

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Árvores Binárias Balanceadas

1

Banco de Interpretação ISO 9001:2008. Gestão de recursos seção 6

Administração e Optimização de BDs

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

SQL DML. Frederico D. Bortoloti

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSAMENTO DE CONSULTAS EM BANCOS DE DADOS DE DIFERENTES TECNOLOGIAS

Introdução à Lógica de Programação

Simulação de coleta de dados em redes de sensores sem o por robôs móveis utilizando a ferramenta Player/Stage

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

Sistemas Operacionais

Busca. Pesquisa sequencial

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Prof.: Clayton Maciel Costa

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Docente: Éberton da Silva Marinho

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

Softwares Aplicativos Banco de Dados

Ministério da Educação Secretaria de Educação Profissional e Tecnológica Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

UNIVERSIDADE DO OESTE DE SANTA CATARINA CAMPUS DE SÃO MIGUEL DO OESTE

Deadlocks. Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas de Informações Geográficas. Unidade 4: Arquitetura de SIG Prof. Cláudio Baptista

07/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Introdução às Bases de Dados

Projeto e Análise de Algoritmos Projeto de Algoritmos Introdução. Prof. Humberto Brandão humberto@dcc.ufmg.br

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Transcrição:

Introdução Processamento e Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Processamento de consultas consiste em uma sequência de atividades que devem ser executadas por um SGBD, no momento de se realizar uma consulta no banco de dados. Dentre tais atividades, um SGBD necessita idealizar uma estratégia ou um plano de execução eficiente para recuperar os resultados de uma consulta com base nos arquivos de banco de dados. A eficiência de uma determinada estratégia está ligada ao número de acessos necessários ao disco para a realização de uma consulta. O processo de escolha de uma estratégia de execução para o processamento de uma consulta é nomeado otimização de consulta. 2 Introdução Introdução Etapas do processamento de consultas Consultas em SQL, em geral, são traduzidas em consultas da álgebra relacional e, então, otimizadas. Encontrar a estratégia de execução ótima é difícil, já que: requer muito tempo; pode requerer informações, como estrutura de implementação e conteúdo dos arquivos, que não estejam disponíveis no catálogo do banco de dados; os SGBDs possuem distintos algoritmos de acesso ao banco de dados para implementar as operações necessárias. 3 Em geral, a definição do plano de execução não é pela melhor estratégia, mas sim pela estratégia de razoável eficiência. 4

Tradução de Consultas SQL para Álgebra Relacional Tradução de Consultas SQL para Álgebra Relacional No processo de tradução de uma consulta SQL para a álgebra relacional, é gerada uma árvore de consulta algébrica (canônica) equivalente à consulta. Os nós externos e internos da árvore representam as relações do banco de dados e as operações da álgebra, respectivamente. Nessa etapa, não há preocupação com a otimização. SELECT P.Pnumero, P.Dnum, E.Unome, E.Endereco, E.DataNasc FROM P, D, E WHERE (P.Dnum=D.Dnumero) and (D.GerSSN=E.SSN) and (P.Plocalizacao='Stafford') Para se processar uma árvore algébrica, tem-se que: os nós internos (operações da álgebra) são executados quando seus operandos (relações) encontram-se disponíveis, a começar pelos nós internos mais profundos na árvore, sendo substituídos pela relação resultante; consequentemente, o nó raiz é o último a ser executado. 5 6 Para uma determinada consulta SQL, uma vez gerada a árvore de consulta algébrica equivalente, a próxima etapa consiste em otimizar a mesma. A árvore de consulta otimizada deve ser eficiente na realização da consulta SQL. A partir da árvore de consulta inicial, pode-se gerar diferentes expressões em álgebra relacional, o que leva à possibilidade de distintas árvores de consulta otimizadas. Otimização 7 8

O processo de otimização de consultas baseia-se em: regras heurísticas: envolvem a reordenação das operações da álgebra relacional em uma árvore de consulta algébrica; estimativas sistemáticas do custo de diferentes planos de execução. 9 O processo de otimização de consultas, considerando regras heurísticas, consiste nos seguintes passos gerais: O analisador sintático do SGBD gera a árvore de consulta algébrica equivalente à consulta SQL. A árvore de consulta é, então, otimizada de acordo com regras heurísticas. Um exemplo de regra heurística é aplicar as operações de seleção e projeção antes de aplicar operações binárias como a junção. Outro exemplo é reordenar as operações da álgebra relacional a partir das regras de equivalência algébrica. Um plano de execução da consulta é gerado no intuito de que as operações da álgebra sejam executadas, na ordem em que foram estabelecidas na árvore otimizada, considerando os caminhos de acesso disponíveis. 10 Cascata de seleções: σ <c1>e<c2>e<c3> (R) = σ <c1> (σ <c2> (σ <c3> (R))) Comutatividade de seleções: σ <c1> (σ <c2> (R)) = σ <c2> (σ <c1> (R)) Cascata de projeções: π <a1> (π <a2> (π <a3> (R))) = π <a1> (R) Comutatividade de seleções e projeções: π <a1, a2,..., an> (σ <cond> (R)) = σ <cond> (π <a1, a2,..., an> (R)) Comutatividade de produtos cartesianos ou junções: R S = S R R <c> S = S <c> R Comutatividade de seleções e junções: Se todos os atributos da condição de seleção envolverem apenas uma das relações da junção: σ <c1> (R <c2> S)) = (σ <c1> (R)) <c2> S Se a condição de seleção puder ser escrita como uma expressão conjuntiva onde cada subexpressão envolva atributos de apenas uma relação da junção: σ <c1> (R <c2> S)) = (σ <c1_1> (R)) <c2> (σ <c1_2> (S)) Não se aplica caso a condição de seleção envolva atributos que não estão na lista de projeção 11 12

Comutatividade de projeções e junções: Se a condição de junção envolve apenas atributos da projeção: π <a1,a2, a3> (R <c> S)) = (π <a1,a2> (R)) <c> (π <a3> (S)) No caso, (a1 R), (a2 R), (a3 S) e a condição c envolve apenas os atributos a1, a2 e a3 Comutatividade de operações de união e interseção: R S = S R e R S = S R Associatividade das operações junção, produto cartesiano, união e interseção: R θ (S θ T) = (R θ S) θ T, onde θ é a operação Comutatividade de seleções e operações de conjunto: σ <c> (R θ S) = σ <c> (R) θ σ <c> (S) Comutatividade da projeção com a união: π <a1,a2> (R S) = π <a1,a2> (R) π <a1,a2> (S) 13 14 Algoritmo básico (regras heurísticas): 1. Quebrar as seleções com condições conjuntivas em uma cascata de seleções. 2. Mover cada operação de seleção o mais profundo possível na árvore de consulta. 3. Reordenar os nós externos de tal forma que as seleções mais restritivas sejam executadas primeiro. 4. Combinar as operações de produto cartesiano com as subsequentes seleções para formar as junções equivalentes. 5. Quebrar as projeções, quando possível. 6. Mover as projeções quebradas o mais profundo possível na árvore de consulta, criando novas projeções quando for necessário. 15 Exemplo: Consulta: recuperar o sobrenome dos empregados nascidos após 1957 que trabalham no projeto 'Aquarius'. SQL: Árvore de consulta algébrica inicial: 16

Aplicação dos passos 1 e 2 do algoritmo: Aplicação do passo 3 do algoritmo: 17 18 Aplicação do passo 4 do algoritmo: Aplicação dos passos 5 e 6 do algoritmo: 19 20

Definição do Plano de Execução Definição do Plano de Execução Uma vez gerada a árvore de consulta otimizada a partir da árvore de consulta inicial, a próxima etapa consiste em definir o plano de execução da consulta que inclui informações como, por exemplo: métodos de acesso disponíveis para cada relação envolvida; utilização de índices existentes; algoritmos para computação das operações algébricas. Para a árvore de consulta acima, o otimizador do SGBD poderia definir, por exemplo: um índice de busca para a seleção referente à relação "Departamento"; uma varredura ordenada como método de acesso para a relação "Empregado", baseada no departamento dos empregados. 21 22 Definição do Plano de Execução - Custo O plano de execução da consulta também pode conter a especificação de como o resultado de uma operação algébrica é tratado. Avaliação materializada: o resultado de uma operação é armazenado em uma relação temporária. Avaliação por pipeline: o resultado de uma operação é encaminhado, diretamente, para a próxima operação algébrica. Nesse caso, há um menor custo de processamento já que, na execução da consulta, não haverá necessidade de leitura e escrita de resultados intermediários no disco. O otimizador de consultas não deve depender apenas das regras heurísticas. Os custos de diferentes planos de execução de consulta devem ser estimados e comparados, escolhendo aquele com menor estimativa de custo. O número de planos a serem avaliados deve ser limitado para que o tempo gasto na avaliação seja aceitável. A otimização baseada no custo usa técnicas tradicionais de otimização que buscam, no espaço de soluções, uma solução que minimize a função objetivo de custo. 23 24

- Custo - Custo O custo da execução de uma consulta refere-se a: custo de acesso ao dispositivo de armazenamento secundário: busca, leitura e escrita de blocos de dados; custo de armazenamento de arquivos temporários; custo de computação das operações algébricas da consulta; custo de uso de memória referente ao número de buffers de memória necessários para a execução da consulta; custo de comunicação referente ao transporte da consulta e dos resultados pelos componentes do SGBD. Para grandes bancos de dados, o foco está na minimização do custo de acesso ao dispositivo de armazenamento secundário, enquanto que, para bancos de dados menores (quando os dados cabem em memória), o foco está no custo de computação. Alguns metadados armazenados no catálogo do SGBD são utilizados pelo otimizador de consultas, a saber: número de tuplas de uma relação; tamanho da tupla de uma relação; número de blocos que contêm as tuplas de uma relação; número de valores distintos de um determinado atributo de uma relação; número médio de tuplas que satisfazem uma condição de igualdade em um determinado atributo de uma relação; índices existentes a partir de atributos de uma relação. 25 26