Este projeto visa a implementação de um processador de consultas SQL com uma interface gráfica para demonstrar a análise, execução e otimização de consultas SQL. O processador inclui funcionalidades como parsing de consultas SQL, geração de grafo de operadores, e exibição dos resultados através de uma interface gráfica.
- Mostra o funcionamento do processador de consultas em tempo real.
- Parser de Consultas SQL
- Análise e separação dos componentes principais de uma consulta SQL.
- Geração do Grafo de Operadores
- Criação de um grafo representando a consulta, com nós para operadores/tabelas/constantes.
- Ordem de Execução da Consulta
- Geração e exibição da ordem de execução baseada no grafo de operadores.
- Exibição dos Resultados
- Mostra o resultado da consulta e as operações realizadas na interface gráfica.
Utilizamos um banco de dados MySQL para testar as consultas. Os scripts para criação do banco estão disponíveis no arquivo db-joaotenorio-proj-banco-dados.sql
.
- Priorização de operações que reduzem o tamanho dos resultados intermediários, como seleções e projeções.
- Reordenação dos nós para evitar operações custosas como o produto cartesiano.
- João Pedro Rodrigues Tenório