Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FGV 2022
- Código
- fg052736
- Banca
- FGV
- Órgão
- SEFAZ-AM
- Ano
- 2022
- Nível
- Superior
- Cargo
- Técnico da Fazenda Estadual - Tarde
- Afila.
- Bhash.
- Cbitmap.
- Dárvore B.
- Eárvore binária.
GabaritoD — árvore B.
Gabarito: letra D. A árvore B (B-tree) é a estrutura de dados que atende exatamente aos requisitos descritos: é balanceada, usada em índices multiníveis dinâmicos em bancos de dados relacionais, e gerencia o espaço após exclusões para evitar desperdício excessivo (por meio de rebalanceamento e redistribuição de chaves).
A questão testa o conhecimento sobre estruturas de dados aplicadas a sistemas de banco de dados. Cada alternativa representa uma estrutura com características distintas:
Critério | Árvore B (B-tree) | Tabela Hash | Árvore Binária |
|---|---|---|---|
Balanceamento automático | Sim (todas as folhas no mesmo nível) | Não | Não (pode degenerar) |
Estrutura multinível dinâmica | Sim (nós internos com chaves e ponteiros) | Não (acesso direto por função hash) | Sim, mas sem garantia de balanceamento |
Controle de espaço após exclusões | Sim (redistribuição e rebalanceamento) | Não (pode haver colisões e desperdício) | Não (remoção pode desbalancear) |
Uso em índices de bancos relacionais | Sim (padrão para índices multiníveis) | Sim (hash index, mas sem multinível) | Raro (não adequado para grandes volumes) |
Fila (queue) é uma estrutura linear do tipo FIFO (first-in, first-out), usada para armazenamento sequencial temporário. Não é balanceada nem utilizada como índice multinível em bancos de dados relacionais. O candidato pode confundir com o uso de filas em algoritmos, mas aqui o contexto é de índices.
Tabela hash oferece acesso direto por meio de função de dispersão, mas não é uma estrutura multinível nem balanceada. Embora seja usada em índices (hash index), não se enquadra na descrição de "multinível dinâmico" com balanceamento automático e controle de espaço após exclusões.
Bitmap é uma estrutura que usa arrays de bits para representar a presença de valores, comum em índices bitmap para colunas com baixa cardinalidade. Não é uma árvore multinível e não possui propriedades de balanceamento dinâmico.
Árvore B (B-tree) é uma estrutura de árvore balanceada de busca, amplamente empregada em índices de bancos de dados relacionais. Suas características incluem:
Balanceamento automático: todas as folhas estão no mesmo nível (altura uniforme).
Multinível: os nós internos contêm chaves e ponteiros para subárvores, formando múltiplos níveis.
Dinamismo: inserções e remoções mantêm a árvore balanceada, com rebalanceamento e redistribuição de chaves para evitar desperdício excessivo de espaço. O espaço liberado por exclusões é reaproveitado ou consolidado.
Por isso, é a estrutura correta para o cenário descrito.
Árvore binária (genérica) não garante balanceamento automático (a menos que seja uma AVL ou rubro-negra, mas a questão não especifica). Em bancos de dados, árvores binárias comuns podem degenerar em listas, perdendo eficiência. A árvore binária de busca simples não é a estrutura padrão para índices multiníveis dinâmicos; a árvore B é a escolha consagrada.
O candidato pode confundir "árvore binária" com "árvore B", mas a árvore binária não é multinível no sentido de índice de banco de dados (cada nó tem no máximo dois filhos, enquanto a árvore B pode ter muitos filhos). Além disso, "árvore B" é um termo específico, e a banca usa a letra D para testar esse conhecimento.
Conclusão: A única alternativa que se alinha perfeitamente com a definição de índice multinível dinâmico, balanceado e com gerenciamento de espaço é a árvore B (alternativa D).
Gabarito: letra D.
Link permanente: /questoes/fg052736