Pular para o conteúdo principal

Questão de Banco de Dados — Conceitos Básicos em Banco de Dados — FGV 2024

Banco de DadosConceitos Básicos em Banco de Dados
Código
fg097416
Banca
FGV
Órgão
TCE-PA
Ano
2024
Nível
Superior
Cargo
Auditor de Controle Externo - Área de Informática - Administrador de Banco de Dados
O departamento de Tecnologia da Informação de um Tribunal de Contas estadual detectou uma lentidão nas consultas aos registros de casos judiciais. Após uma análise detalhada, constatou-se que alguns servidores de banco de dados estavam sobrecarregados, enquanto outros permaneciam subutilizados.Uma solução viável para corrigir esse desequilíbrio seria
  1. Aparticionar tabelas por lista para dividir os casos por tipo.
  2. Bparticionar tabelas por intervalo para dividir os casos por ano.
  3. Cparticionar tabelas por intervalo para dividir os casos por identificador único de cada caso.
  4. Dparticionar tabelas por lista para dividir casos por localização geográfica.
  5. Eparticionar tabelas por hash com base no identificador único de cada caso.
Revelar gabarito e comentário

GabaritoE — particionar tabelas por hash com base no identificador único de cada caso.

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”.

Particionamento de dados e balanceamento de carga

Gabarito: letra E. Para solucionar o desequilíbrio de carga entre servidores, o particionamento por hash baseado no identificador único de cada caso distribui os registros de forma uniforme entre as partições, garantindo que cada servidor receba aproximadamente o mesmo volume de consultas. As demais opções (particionamento por lista ou por intervalo) tendem a concentrar dados em determinadas partições, perpetuando a sobrecarga.

O problema descrito é típico de bancos de dados paralelos ou distribuídos: alguns servidores ficam sobrecarregados enquanto outros ficam ociosos. A solução de particionamento deve evitar que dados correlacionados (por tipo, ano, local) caiam na mesma partição, pois isso gera hotspots. O particionamento por hash aplica uma função hash sobre uma chave (como o ID único) e mapeia o resultado para uma partição, espalhando os dados aleatoriamente. Já o particionamento por lista ou por intervalo concentra registros com mesmo valor de atributo, o que pode levar a desbalanceamento se a distribuição desses atributos for desigual.

1Por hash (ID único)
Distribuição uniforme
Balanceamento de carga
2Por lista (tipo/local)
Hotspots (dados correlacionados)
3Por intervalo (ano/ID sequencial)
Desbalanceamento (concentração)
Particionamento de dados
LEVELsoulevel.com.br
Particionamento de dados: Por hash (ID único) (Distribuição uniforme, Balanceamento de carga); Por lista (tipo/local) (Hotspots (dados correlacionados)); Por intervalo (ano/ID sequencial) (Desbalanceamento (concentração))

Alternativa A — ❌ Incorreta

Particionar por lista com base no tipo de caso pode concentrar muitos casos de um mesmo tipo em uma partição, mantendo servidores sobrecarregados.

Alternativa B — ❌ Incorreta

Particionar por intervalo por ano também pode gerar desbalanceamento se alguns anos tiverem muito mais casos (ex.: anos recentes com maior volume). Além disso, consultas por período podem ficar concentradas em um servidor.

Alternativa C — ❌ Incorreta

Particionar por intervalo usando o identificador único (ID) sequencial não é adequado, pois IDs sequenciais tendem a concentrar novos registros em uma mesma partição (a partição mais recente), causando desbalanceamento. Além disso, a ordem dos IDs não reflete distribuição uniforme.

Alternativa D — ❌ Incorreta

Particionar por lista por localização geográfica pode gerar partições com volumes muito diferentes (ex.: capital com muitos casos vs. interior com poucos). Isso não resolve o desequilíbrio.

Alternativa E — ✅ Correta ⟵ GABARITO

Particionar por hash com base no identificador único de cada caso distribui os dados de forma aproximadamente uniforme, independentemente de qualquer característica do registro. Cada servidor recebe uma parcela equilibrada dos dados e das consultas, corrigindo o desequilíbrio de carga.

PEGA ESSA DICA!

Em questões de balanceamento de carga em bancos de dados, lembre-se: particionamento por hash é a técnica que espalha dados aleatoriamente, ideal para distribuir carga. Particionamento por lista ou intervalo é mais adequado para consultas por faixas de valores, mas pode gerar hotspots.

Gabarito: letra E – particionar tabelas por hash com base no identificador único de cada caso.

Link permanente: /questoes/fg097416