Pular para o conteúdo principal

Questão de Banco de Dados — Índices — Quadrix 2025

Banco de DadosÍndices
Código
qg594746
Banca
Quadrix
Órgão
CFBio
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas
No que diz respeito às ferramentas de automação de processos, aos conceitos de dados e aos índices, julgue o item seguinte.Os índices bitmap são eficientes para consultas que envolvam múltiplas colunas com alta cardinalidade.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Índices bitmap: eficiência e cardinalidade

Gabarito: ERRADO (letra E). Os índices bitmap são eficientes para consultas que envolvem colunas com baixa cardinalidade (poucos valores distintos), e não alta cardinalidade. A alta cardinalidade faz com que o vetor de bits se torne esparso e ineficiente, além de aumentar o custo de atualização. Essa é a inversão clássica que a banca explora.

O índice bitmap é uma estrutura de acesso auxiliar que representa, para cada valor distinto de uma coluna, um vetor de bits indicando quais linhas da tabela possuem aquele valor. Essa representação é extremamente eficiente para operações booleanas (AND, OR, NOT) diretamente sobre os vetores, sem precisar acessar os dados reais até o resultado final. Por isso, é ideal para consultas analíticas que filtram por múltiplas colunas com poucos valores distintos, como sexo, estado civil, faixa etária, categoria de produto, etc.

A eficiência do bitmap está diretamente ligada à cardinalidade da coluna. Cardinalidade é o número de valores distintos que uma coluna pode assumir. Quando a cardinalidade é baixa (ex.: sexo com 2 valores, status com 5 valores), o número de vetores de bits é pequeno e cada vetor é denso (muitos bits 1), tornando as operações booleanas muito rápidas. Quando a cardinalidade é alta (ex.: CPF, telefone, código de produto com milhares de valores), o número de vetores cresce proporcionalmente, e cada vetor se torna esparso (poucos bits 1), o que degrada o desempenho e aumenta o consumo de espaço. Além disso, a atualização de índices bitmap é ineficiente, pois cada modificação em uma linha exige a atualização do bit correspondente em todos os vetores afetados.

Na prática, considere uma tabela de vendas com 10 milhões de linhas. Um índice bitmap sobre a coluna sexo (2 valores) criaria apenas 2 vetores de 10 milhões de bits cada, permitindo responder consultas como "quantas vendas foram feitas por mulheres" com uma simples contagem de bits 1. Já um índice bitmap sobre a coluna cpf_cliente (10 milhões de valores distintos) criaria 10 milhões de vetores, cada um com apenas 1 bit 1 — um desperdício enorme de espaço e tempo de processamento. Para colunas de alta cardinalidade, o índice B-tree é a escolha adequada, pois mantém os valores ordenados e permite acesso eficiente por igualdade e por intervalo.

A pegadinha desta questão está na inversão do termo "alta cardinalidade" por "baixa cardinalidade". O candidato que memoriza que "bitmap é bom para consultas com múltiplas colunas" pode marcar como certo, mas esquece que a eficiência depende crucialmente da cardinalidade. A regra de ouro é: bitmap para baixa cardinalidade, B-tree para alta cardinalidade. É exatamente esse critério que separa o certo do errado nesta assertiva.

Critério

Índice Bitmap

Índice B-tree

Cardinalidade ideal

Baixa (poucos valores distintos)

Alta (muitos valores distintos)

Eficiência em múltiplas colunas

Alta, via operações booleanas (AND/OR/NOT)

Menor, exige acesso sequencial ou combinação de índices

Espaço consumido

Compacto em baixa cardinalidade; esparso e volumoso em alta

Proporcional ao número de valores; eficiente em alta cardinalidade

Custo de atualização

Alto (atualiza todos os vetores afetados)

Baixo (atualização pontual na árvore)

Uso típico

Data warehouse, consultas analíticas com filtros de dimensões

OLTP, consultas por igualdade e intervalo em colunas únicas ou compostas

Item — ❌ ERRADO

A afirmação de que os índices bitmap são eficientes para consultas que envolvem múltiplas colunas com alta cardinalidade está incorreta. O erro está na palavra "alta". Os índices bitmap são eficientes justamente para colunas de baixa cardinalidade, onde o número de valores distintos é pequeno. Com alta cardinalidade, o número de vetores de bits cresce, cada vetor se torna esparso, o consumo de espaço aumenta e as operações booleanas perdem eficiência. Para colunas de alta cardinalidade, o índice mais adequado é o B-tree, que mantém os valores ordenados e permite acesso eficiente por igualdade e por intervalo.

NÃO CAIA NESSA!

A banca troca "baixa cardinalidade" por "alta cardinalidade" para induzir ao erro. O candidato que sabe que bitmap é bom para consultas com múltiplas colunas pode marcar como certo, mas esquece que a eficiência depende da cardinalidade. Lembre-se: bitmap para baixa cardinalidade, B-tree para alta cardinalidade. Com treino, você enxerga essas inversões de longe 💪

Gabarito: ERRADO (letra E).

Link permanente: /questoes/qg594746