Pular para o conteúdo principal

Questão de Banco de Dados — Índices — FURB 2025

Banco de DadosÍndices
Código
qg497144
Banca
FURB
Órgão
Prefeitura de Florianópolis - SC
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal de Tributos Municipais - Tecnologia da Informação - 2º Dia
Em um sistema de e-commerce, foi criado um índice do tipo hash sobre a coluna preço da tabela produtos. Esse índice está sendo utilizado em consultas com filtros como:SELECT * FROM produtos WHERE preco BETWEEN 100 AND 300;I. Índices hash são ineficientes para consultas com operadores de intervalo, como BETWEEN, porque sua estrutura não mantém ordenação dos valores indexados.II. A atualização de índices hash ocorre na reconstrução completa do índice sempre que um novo registro é inserido na tabela produtos em sistemas de banco de dados como PostgreSQL e MySQL.III. A limitação dos índices hash em consultas de intervalo reside em sua restrição a campos numéricos, o que os tornam inutilizáveis para campos textuais ou data.É correto o que se afirma em:
  1. AI, apenas.
  2. BI e II, apenas.
  3. CII e III, apenas.
  4. DIII, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoA — I, apenas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Índices hash em banco de dados

Gabarito: letra A (apenas a afirmativa I é correta). Índices hash usam uma função de espalhamento para distribuir chaves em buckets, sem manter ordenação, o que os torna inadequados para consultas de intervalo como BETWEEN. As afirmativas II e III contêm erros: a atualização de índices hash é incremental (não exige reconstrução completa) e eles podem ser aplicados a campos de qualquer tipo (texto, data etc.), não apenas numéricos.

A banca testa o conhecimento das características e limitações dos índices hash, uma estrutura de acesso auxiliar comum em banco de dados.

Afirmativa

Correta?

Motivo

I

✅ Sim

Índices hash não mantêm ordenação, sendo ineficientes para consultas de intervalo como BETWEEN.

II

❌ Não

A atualização de índices hash é incremental (apenas o bucket afetado), não exigindo reconstrução completa.

III

❌ Não

Índices hash podem ser aplicados a campos de qualquer tipo (texto, data, numérico), não apenas numéricos.

Afirmativa I — ✅ Correta

Correta. A estrutura de um índice hash é baseada em uma tabela de dispersão (hash table), onde os valores das chaves são mapeados para buckets por meio de uma função hash. Esse mapeamento não preserva a ordem crescente ou decrescente dos valores, portanto, consultas que exigem varredura ordenada — como BETWEEN, > ou < — não podem ser atendidas eficientemente. O banco de dados precisaria percorrer todos os buckets ou recorrer a uma varredura sequencial da tabela, perdendo a vantagem do índice.

PEGA ESSA DICA!

Memorize a diferença fundamental: índices árvore (B-tree, B+tree) mantêm ordenação e são ideais para intervalos; índices hash são ótimos para buscas por igualdade (=), mas não para intervalos.

Afirmativa II — ❌ Incorreta

Incorreta. A afirmativa alega que a inserção de um novo registro exige a reconstrução completa do índice hash. Na prática, os SGBDs modernos (PostgreSQL, MySQL e outros) implementam a atualização de índices hash de forma incremental: ao inserir, alterar ou remover uma linha, o índice é atualizado apenas para o bucket afetado pela chave, sem necessidade de recriar toda a estrutura. Em PostgreSQL, por exemplo, o índice hash é mantido dinamicamente com divisão de buckets conforme necessário (desde a versão 10, com suporte a WAL e recuperação). Em MySQL, o mecanismo MEMORY permite índices hash que são atualizados linha a linha. Portanto, a afirmação de “reconstrução completa” é falsa.

Afirmativa III — ❌ Incorreta

Incorreta. A limitação dos índices hash para consultas de intervalo não decorre de uma restrição a campos numéricos. Índices hash podem ser criados sobre colunas de qualquer tipo de dado para o qual exista uma função hash — incluindo strings (VARCHAR, TEXT) e datas (DATE, TIMESTAMP). O que os torna ineficientes para intervalos é a falta de ordenação, não o tipo do campo. Mesmo que a coluna seja numérica, o índice hash não auxilia num BETWEEN; da mesma forma, um campo textual com LIKE 'abc%' (prefixo) também não se beneficia de um índice hash (embora um índice B-tree suporte LIKE com prefixo fixo).

Gabarito: letra A — apenas a afirmativa I está correta.

Link permanente: /questoes/qg497144