Questão de Banco de Dados — Banco de Dados Relacionais — FGV 2023
- Código
- fg071509
- Banca
- FGV
- Órgão
- TCE-SP
- Ano
- 2023
- Nível
- Superior
- Cargo
- Agente da Fiscalização - TI
- AI;
- BII;
- CIII;
- DI e II;
- EII e III.
GabaritoB — II;
Gabarito: letra B. Apenas a afirmativa II está correta: B-trees suportam buscas por intervalo de chaves, graças à ordenação das chaves na árvore. As demais afirmativas contêm erros conceituais: a complexidade de busca em tabelas hash é O(1) no caso médio (não O(N/2)), e tabelas hash não gerenciam múltiplas chaves para o mesmo objeto sem redundância — colisões exigem tratamento (ex.: encadeamento ou endereçamento aberto), o que pode introduzir redundância.
A questão cobra a distinção entre as estruturas de indexação típicas de bancos NoSQL (hash) e relacionais (B-tree).
Afirma que a complexidade de busca em tabelas hash é O(N/2). Isso não é uma notação padrão; na média, a busca em tabelas hash é O(1), embora no pior caso possa ser O(N) devido a colisões. Já em B-trees, a complexidade é O(log N). Portanto, a comparação está errada.
B-trees mantêm as chaves ordenadas e balanceadas, o que permite percorrer a árvore em ordem e realizar buscas por intervalo (ex.: todas as chaves entre valor1 e valor2) com eficiência O(log N + k), onde k é o número de resultados.
Tabelas hash mapeiam cada chave para um único valor. Se duas chaves diferentes forem inseridas, cada uma gera uma entrada distinta. Para associar múltiplas chaves ao mesmo objeto, seria necessário usar listas encadeadas ou outras estruturas que introduzem redundância ou complexidade. A afirmativa sugere que isso é feito "sem redundância", o que não é verdade.
Conclusão: Somente a afirmativa II está correta, portanto o gabarito é a letra B.
A banca tenta confundir a complexidade das tabelas hash (espera-se que o candidato saiba que é O(1) médio, não O(N/2)) e a gestão de colisões. Em tabelas hash, múltiplas chaves para o mesmo objeto exigem tratamento de colisão, o que pode gerar redundância (ex.: encadeamento).
Decore as complexidades típicas: hash → O(1) médio, O(N) pior caso; B-tree → O(log N) sempre. Para buscas por intervalo, B-tree é a escolha natural.
Link permanente: /questoes/fg071509