Otimização de consultas
Francisca Ferre
Curso: Banco de Dados
Disciplina: TI1 – Sistema de Banco de Dados
Turma: Esp. 1 – Banco de Dados
Professor: Flávio Peregrinelli
1. Explique o conceito de transação em SGBD.
Uma transação de banco de dados é uma unidade de interação com um SGBD ou com um sistema similar de processamento de transações, que deve ser integralmente completada ou abortada. Um sistema de banco de dados deve assegurar as propriedades de Atomicidade, Consistência, Isolamento e Durabilidade (ACID) para cada transação.
2. Descreva o processo envolvido no processamento de uma consulta. Exemplifique este processo criando uma consulta e executando os passos envolvidos em seu processamento.
1. Análise Sintática/Semântica (Scanner, Parser e Validação), que contém as etapas de verificação de sintaxe, verificação dos identificadores (relações, atributos) e a verificação de autorização de acesso.
2. Tradução para uma estrutura de armazenamento bem definida (Árvore de Consulta).
3. Otimização da Consulta.
4. Escolha de um Plano de Acesso.
5. Geração de Código e Execução da Consulta.
Para Brayner e Lopes (2005), o processamento de uma consulta consiste nas etapas a seguir.
Análise (Parsing): nessa fase, a consulta recebida deve ser escrita em uma linguagem de alto nível, como o SQL. O Parser verifica se as relações e atributos utilizados são válidos para o esquema do banco de dados e também avalia se a consulta foi escrita conforme as regras gramaticais da linguagem adotada.
Tradução: em seguida é construída uma árvore de análise (parse) para a consulta. Esta árvore é comumente traduzida para uma expressão equivalente em banco de dados relacionais.
Otimização: a próxima fase consiste no processo de seleção de uma estratégia de execução que minimize o custo de execução da consulta.
Avaliação: nessa etapa a consulta é executada com base na estratégia escolhida pelo otimizador.
A figura a seguir consiste nos passos