Questão de Banco de Dados — SQL — Avança SP 2025
- Código
- qg425155
- Banca
- Avança SP
- Órgão
- UNITAU
- Ano
- 2025
- Nível
- Superior
- Cargo
- Programador Pleno
- ANormalização
- BIndexação
- CDenormalização
- DSharding
- EReplicação
GabaritoB — Indexação
Gabarito: letra B. A indexação é a técnica de otimização que melhora o desempenho de consultas SQL por meio da criação de estruturas auxiliares (os índices), que aceleram a busca de registros sem exigir a varredura completa da tabela. As demais alternativas — normalização, denormalização, sharding e replicação — são técnicas importantes, mas não se enquadram na definição de "estruturas auxiliares" para otimização de consultas.
A otimização de consultas SQL é um dos pilares do desempenho de bancos de dados relacionais. Quando uma consulta é executada, o SGBD precisa decidir a melhor estratégia para recuperar os dados — e é aí que entram as estruturas auxiliares. Um índice é uma estrutura de dados (geralmente uma árvore B-tree ou um bitmap) que armazena, de forma organizada, os valores de uma ou mais colunas, juntamente com ponteiros para as linhas correspondentes na tabela. Isso permite que o banco encontre os registros desejados sem precisar percorrer todas as linhas da tabela (o chamado full table scan), reduzindo drasticamente o custo de E/S e o tempo de resposta.
A criação de um índice é feita com o comando CREATE INDEX, que pertence à sublinguagem DDL (Data Definition Language). Por exemplo, em uma tabela Clientes com milhões de registros, uma consulta como SELECT * FROM Clientes WHERE Cidade = 'São Paulo' seria muito mais rápida se houvesse um índice na coluna Cidade. O índice funciona como um sumário: em vez de ler todas as páginas da tabela, o SGBD consulta a estrutura do índice, localiza os ponteiros para as linhas que atendem à condição e acessa apenas essas páginas.
É importante distinguir a indexação das outras técnicas listadas. A normalização é uma técnica de modelagem de dados que visa eliminar redundâncias e anomalias de inserção, atualização e exclusão, dividindo tabelas em estruturas menores e mais coesas — ela não cria estruturas auxiliares, mas reorganiza o esquema lógico. A denormalização é o processo inverso: combina tabelas para reduzir o número de joins e melhorar a performance de leitura, mas à custa de maior redundância e espaço de armazenamento. O sharding é uma técnica de particionamento horizontal que distribui os dados em múltiplos servidores ou nós, visando escalabilidade — não é uma estrutura auxiliar, mas uma estratégia de distribuição. A replicação copia os dados para vários nós para redundância e disponibilidade, melhorando a performance de leitura ao distribuir a carga, mas também não é uma estrutura auxiliar no sentido de otimização de consultas.
A pegadinha desta questão está em confundir técnicas de modelagem ou de arquitetura distribuída com a técnica específica de otimização por estruturas auxiliares. O enunciado é claro ao pedir "estruturas auxiliares" — e o índice é exatamente isso: uma estrutura física adicional, criada ao lado da tabela, que acelera o acesso aos dados. As outras alternativas são distratores que representam técnicas válidas em outros contextos, mas que não respondem à pergunta.
Guarde a distinção central: índice = estrutura auxiliar para acelerar consultas; normalização/denormalização = modelagem lógica; sharding/replicação = arquitetura distribuída. É nessa fronteira que as alternativas se separam.
A normalização é uma técnica de modelagem de dados que organiza as tabelas para eliminar redundâncias e evitar anomalias de inserção, atualização e exclusão. Ela não cria estruturas auxiliares — pelo contrário, reorganiza o esquema lógico do banco. Embora possa indiretamente melhorar a integridade e a manutenção, não é a técnica de otimização por estruturas auxiliares descrita no enunciado.
A indexação é exatamente a técnica que cria estruturas auxiliares (os índices) para acelerar a recuperação de dados. O índice é uma estrutura física separada da tabela que permite ao SGBD localizar rapidamente as linhas que atendem a uma condição, evitando a varredura completa. É a resposta direta ao enunciado.
A denormalização é o processo de combinar tabelas (ou adicionar redundâncias) para reduzir o número de joins e melhorar a performance de leitura. Ela altera o esquema lógico, mas não cria estruturas auxiliares como índices. É uma técnica de modelagem, não de otimização por estruturas auxiliares.
O sharding é uma técnica de particionamento horizontal que distribui os dados em múltiplos servidores ou nós, visando escalabilidade horizontal. Ele não cria estruturas auxiliares para acelerar consultas — é uma estratégia de distribuição de dados em arquiteturas distribuídas, comum em bancos NoSQL.
A replicação copia os dados para vários nós para redundância e disponibilidade, melhorando a performance de leitura ao distribuir a carga. No entanto, não é uma estrutura auxiliar — é uma técnica de arquitetura distribuída que mantém cópias dos dados em diferentes locais.
A banca mistura técnicas de modelagem (normalização, denormalização) e de arquitetura distribuída (sharding, replicação) com a técnica específica de otimização por estruturas auxiliares. O candidato que sabe que todas essas técnicas podem melhorar o desempenho pode se confundir, mas o enunciado é preciso ao pedir "estruturas auxiliares" — e só o índice se encaixa nessa definição. Fique atento: quando a questão falar em "estruturas auxiliares", pense imediatamente em índices.
Gabarito: letra B
Link permanente: /questoes/qg425155