Questão de Banco de Dados — SQL Server — VUNESP 2025
- Código
- vu222886
- Banca
- VUNESP
- Órgão
- TJM SP
- Ano
- 2025
- Cargo
- Ana BDJ ( )
- Asegment
- Brecovery
- Cjoin
- Dvirtual
- Eárvores B
GabaritoE — árvores B
Gabarito: letra E. O SQL Server 2019 utiliza, como um dos principais tipos de indexação, as árvores B (B-trees), que são estruturas de dados balanceadas usadas para organizar e acelerar a busca de registros em índices. As demais alternativas (segment, recovery, join, virtual) não são tipos de indexação, mas sim conceitos de outras áreas ou termos genéricos.
A indexação é um dos mecanismos mais importantes para otimizar o desempenho de consultas em bancos de dados relacionais. Quando uma tabela possui um índice, o SGBD pode localizar rapidamente as linhas que atendem a uma condição, em vez de percorrer toda a tabela (operação conhecida como table scan). No SQL Server, a estrutura de dados padrão para índices é a árvore B, que é uma árvore balanceada onde cada nó (página) pode ter múltiplos filhos. Essa estrutura permite que as operações de busca, inserção e remoção sejam realizadas em tempo logarítmico, garantindo eficiência mesmo em tabelas com milhões de registros.
A árvore B é chamada de "balanceada" porque todas as folhas estão no mesmo nível, ou seja, o caminho da raiz até qualquer folha tem o mesmo comprimento. Isso garante que o número de acessos a disco para encontrar um registro seja previsível e mínimo. No SQL Server, os índices podem ser clustered (agrupados), onde a ordem física dos dados na tabela é a mesma do índice, ou nonclustered (não agrupados), onde o índice é uma estrutura separada que aponta para as linhas da tabela. Ambos os tipos utilizam árvores B como estrutura subjacente.
É importante distinguir a árvore B de outras estruturas de dados, como a árvore B+ (B-plus), que é uma variação onde os dados são armazenados apenas nas folhas, e as folhas são ligadas entre si para permitir varreduras sequenciais eficientes. O SQL Server, na verdade, utiliza árvores B+ para seus índices, mas a terminologia comum e a cobrança em provas se referem a "árvores B" de forma genérica. A pegadinha da questão está em reconhecer que apenas "árvores B" é um tipo de indexação, enquanto os outros termos pertencem a outros contextos.
Segment não é um tipo de indexação. No contexto de bancos de dados, "segment" pode se referir a uma partição lógica de um tablespace (no Oracle) ou a um conceito de armazenamento físico, mas não é uma estrutura de indexação utilizada pelo SQL Server. A banca insere esse termo para confundir o candidato que conhece a palavra em outros contextos.
Recovery refere-se ao processo de recuperação de um banco de dados após uma falha, envolvendo o log de transações e os conceitos de rollback e redo. Não é um tipo de indexação. A confusão aqui é entre o mecanismo de recuperação (parte do SGBD) e a estrutura de indexação.
Join é uma operação da linguagem SQL que combina registros de duas ou mais tabelas com base em uma condição de relacionamento. É um comando de consulta, não uma estrutura de indexação. A banca explora a confusão entre operações de consulta e estruturas de armazenamento.
Virtual é um termo genérico que pode se referir a tabelas virtuais (views) ou a memória virtual, mas não é um tipo de indexação. No SQL Server, existem índices virtuais? Não, os índices são estruturas físicas ou lógicas, mas não são chamados de "virtuais". A alternativa é um distrator sem relação com o tema.
Árvores B são estruturas de dados balanceadas, auto-organizáveis, que armazenam dados classificados e permitem pesquisas, inserções e remoções eficientes. No SQL Server, os índices (clustered e nonclustered) são implementados como árvores B, sendo essa a estrutura fundamental para acelerar consultas. O material de apoio confirma: "Árvores B são muito usadas na implementação de índices em bancos de dados. Elas são estruturas de dados em árvore, auto balanceada, que armazena dados classificados e permite pesquisas, acesso sequencial, inserções e remoções no banco de dados."
A banca mistura termos de áreas diferentes do banco de dados (recuperação, consulta, armazenamento) para testar se o candidato sabe que a indexação no SQL Server é baseada em árvores B. O candidato que confunde "join" (operação SQL) com estrutura de indexação cai na alternativa C. Lembre-se: indexação é sobre organização física/lógica dos dados para busca rápida, não sobre operações de consulta.
Para questões sobre indexação, foque em estruturas de dados como árvores B, B+, hash e bitmap. No SQL Server, a resposta quase sempre será "árvores B". Memorize que índices clustered e nonclustered usam essa estrutura.
Gabarito: letra E
Link permanente: /questoes/vu222886