Em um sistema de e-commerce, foi criado um índice do tipo h...

Próximas questões
Com base no mesmo assunto
Q3508336 Banco de Dados

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:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: A – I, apenas.

Tema central: A questão aborda métodos de acesso com índices hash em bancos de dados, muito comum em provas de concursos quando se discute eficiência de consultas e estrutura de índices.

Resumo teórico: Índices são estruturas que aceleram buscas em tabelas. O índice hash usa funções de dispersão para mapear chaves a localizações, excelente para buscas exatas (igualdades), mas não mantém ordenação dos dados. Por isso, é ineficaz para buscas por intervalos (como BETWEEN, >, <). Os índices B-Tree, por outro lado, mantêm ordenação e são ideais para consultas por intervalos.

Fonte de referência: Documentação Oficial PostgreSQL (Indexes Types), Abraham Silberschatz – Sistemas de Banco de Dados.

Justificativa da alternativa correta:

I. Verdadeira. Os índices hash não mantêm ordenação dos valores, tornando-os ineficientes para buscas com operadores de intervalo. Eles servem para igualdade (ex: WHERE campo = valor).

Análise das alternativas incorretas:

II. Falsa. Índices hash não precisam ser reconstruídos completamente a cada inserção; eles são atualizados incrementalmente, como outros tipos de índice. A afirmação não corresponde ao funcionamento real do PostgreSQL ou MySQL.

III. Falsa. A limitação dos índices hash não está no tipo de campo, mas sim na forma de consulta. É possível criar índices hash em campos textuais ou datas, mas eles continuam sendo inadequados para consultas de intervalo, seja em números, textos ou datas.

Dica para concursos: Sempre que a questão citar buscas por intervalo, lembre-se: hash é para igualdade, B-tree é para intervalo. Fique atento a pegadinhas sobre atualização ou tipos de dados!

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

A alternativa correta é: A) I, apenas.

Vamos analisar cada uma das afirmações com cuidado:

---

✅ 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.

Verdadeira.

Índices do tipo hash funcionam bem para buscas exatas (como =), porque o valor da chave é transformado por uma função hash e mapeado diretamente a uma posição.

Eles não mantêm nenhuma ordenação entre os valores, o que os torna inadequados para consultas com operadores de intervalo como BETWEEN, >, <, etc.

---

❌ 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.

Falsa.

Índices hash não são totalmente reconstruídos a cada inserção. Eles são atualizados incrementalmente, ou seja, o novo valor é simplesmente adicionado ao índice.

Além disso, os índices hash não são amplamente suportados por padrão em muitos SGBDs como o MySQL (que não os usa por padrão; o InnoDB usa B-Tree). O PostgreSQL suporta índice hash, mas não reconstrói totalmente o índice a cada inserção.

---

❌ 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.

Falsa.

Índices hash não estão limitados a tipos numéricos. Eles podem ser usados com valores textuais, datas, e outros tipos, desde que seja possível calcular uma função hash para o valor.

A limitação dos índices hash em consultas de intervalo não tem relação com o tipo de dado, mas sim com a ausência de ordenação — que é necessária para busca por faixa (intervalos).

---

✅ Gabarito: A) I, apenas.

Fonte: chatGPT

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo