Banco de Dados II — 2026.2

Aula 5
Executor

👨‍🏫 Prof. Gustavo Pinto 🏛️ UFPA 📅 22 de outubro de 2026 🕐 7h30 – 9h

O modelo iterador

Cada operador é um objeto com três métodos: abrir, próxima linha, fechar. Um operador puxa linhas do operador abaixo dele.

Filtro(id = 42)
   ↑ next()
VarreduraSequencial(aluno)
   ↑ next()
ArquivoDeDados

A consulta inteira é uma pilha de operadores, e o resultado sai de linha em linha, sem materializar tudo na memória.

Varredura sequencial

Varredura por índice

Seletividade

Índice sempre ajuda?

A regra do minidb

se existe índice na coluna do WHERE
   e o operador é igualdade:
       usar varredura por índice
senão:
       usar varredura sequencial

Um otimizador de verdade estima quantas linhas voltam e compara custos. Isso é tema de seminário, não de módulo.

Dúvidas?

Próxima: laboratório do M5, os operadores. Antes disso, o exercício de hoje

📧 gpinto@ufpa.br

Exercício de hoje

Tabela com 100.000 linhas, 50 linhas por página, índice na coluna id com árvore de altura 3. Cada linha achada pelo índice custa a leitura de uma página de dados.

O item 4 é o que separa a nossa regra de três linhas de um otimizador. Vale como preparo para o seminário de otimização baseada em custo.