Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Paralelos e Distribuídos — FGV 2026

Banco de DadosBanco de Dados Paralelos e Distribuídos
Código
fg133931
Banca
FGV
Órgão
TJ-RJ
Ano
2026
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação - Arquiteto de Dados
Mateus trabalha em uma multinacional de tecnologia e está desenvolvendo uma nova rede social de uso exclusivo da empresa. A nova rede social lidará com um grande volume de dados dinâmicos como postagens, curtidas e comentários por minuto. O desafio de Mateus é manter a alta disponibilidade para conteúdos recentes e reduzir os custos de armazenamento com os dados antigos em virtude de serem menos acessados. A estratégia utilizada por Mateus para garantir essas premissas é a replicação:
  1. Aassíncrona + particionamento por faixa de valores (tempo);
  2. Bapenas de leitura + particionamento manual;
  3. Csemissíncrona + particionamento por hash;
  4. Dsíncrona + particionamento horizontal;
  5. Esíncrona + particionamento vertical.
Revelar gabarito e comentário

GabaritoA — assíncrona + particionamento por faixa de valores (tempo);

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

Estratégias de Replicação e Particionamento em Bancos de Dados Distribuídos

Gabarito: letra A. A combinação de replicação assíncrona com particionamento por faixa de valores (tempo) atende às premissas de alta disponibilidade para dados recentes e redução de custos para dados antigos, pois a replicação assíncrona minimiza latência de escrita (mantendo disponibilidade) e o particionamento por tempo permite migrar dados antigos para armazenamento mais barato.

A questão explora dois conceitos centrais: tipos de replicação (síncrona, assíncrona, semissíncrona) e técnicas de particionamento (horizontal, vertical, por hash, por faixa de valores). A chave está em alinhar a estratégia ao comportamento dos dados: grande volume de escritas (curtidas, comentários) exige baixa latência, o que a replicação síncrona comprometeria (pois confirma a escrita apenas após todas as réplicas atualizarem). Já o particionamento por tempo permite isolar os dados recentes (alta demanda) dos antigos (baixa demanda), podendo aplicar políticas de armazenamento distintas.

Estratégia

Tipo de Replicação

Tipo de Particionamento

Atende Alta Disponibilidade para Dados Recentes?

Reduz Custos com Dados Antigos?

Justificativa

A (Gabarito)

Assíncrona

Por faixa de valores (tempo)

✅ Sim (baixa latência em escritas)

✅ Sim (separa dados por idade)

Replicação assíncrona não bloqueia escritas; particionamento temporal permite migrar dados antigos para armazenamento mais barato.

B

Apenas de leitura

Manual

❌ Não (escritas não replicadas)

❌ Não (não isola dados por idade)

Replicação apenas de leitura não garante disponibilidade para escritas; particionamento manual não é escalável.

C

Semissíncrona

Por hash

❌ Parcial (pode ter latência)

❌ Não (distribuição uniforme)

Replicação semissíncrona pode introduzir latência; hash não separa dados recentes de antigos.

D

Síncrona

Horizontal

❌ Não (alta latência em escritas)

❌ Não (não separa por idade)

Replicação síncrona compromete desempenho em muitas escritas; particionamento horizontal não isola dados por tempo.

E

Síncrona

Vertical

❌ Não (alta latência em escritas)

❌ Não (não separa por idade)

Replicação síncrona compromete desempenho; particionamento vertical não resolve custo de dados antigos.

Replicação
  • 1Síncrona
    • Alta latência de escrita
    • Consistência forte
  • 2Assíncrona
    • Baixa latência de escrita
    • Consistência eventual
  • 3Semissíncrona
    • Compromisso latência/consistência
  • 4Particionamento
    • Por faixa de valores (tempo)
      • Separa dados recentes/antigos
      • Permite armazenamento distinto
    • Por hash
      • Distribuição uniforme
      • Não separa por acesso
    • Horizontal
      • Linhas em diferentes nós
    • Vertical
      • Colunas em diferentes nós
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

A replicação assíncrona não bloqueia a transação principal enquanto propaga as alterações para as réplicas, garantindo alta disponibilidade e desempenho em cenários com muitas escritas. O particionamento por faixa de valores (tempo) organiza os dados em partições baseadas em intervalos temporais, facilitando a distinção entre dados recentes (frequência de acesso alta) e antigos (acesso esporádico). Essa é a abordagem clássica para balancear desempenho e economia.

Alternativa B — ❌ Incorreta

Replicação apenas de leitura não atende à alta disponibilidade para escritas – se o nó primário falhar, escritas seriam perdidas. Particionamento manual não é escalável nem adequado para um sistema com grande volume dinâmico.

Alternativa C — ❌ Incorreta

Replicação semissíncrona oferece um compromisso entre consistência e desempenho, mas ainda pode introduzir latência adicional. O particionamento por hash distribui os dados de forma uniforme, não separando dados recentes de antigos – o que não resolve o requisito de redução de custos para dados antigos.

Alternativa D — ❌ Incorreta

Replicação síncrona garante consistência forte, mas aumenta a latência das escritas, pois cada confirmação depende de todas as réplicas. Isso é contraproducente para um sistema com alta taxa de escritas como uma rede social. Particionamento horizontal (por linhas) não isola por tempo, a menos que a chave de partição seja o tempo – mesmo assim, se não for explícito o particionamento por faixa de valores, não atende ao objetivo.

Alternativa E — ❌ Incorreta

Replicação síncrona, pelo mesmo motivo da letra D, prejudica a disponibilidade e o desempenho. Particionamento vertical (por colunas) separa atributos, não registros; não ajuda a diferenciar dados recentes de antigos.

NÃO CAIA NESSA!

A banca explora a confusão entre os tipos de replicação: muitos candidatos podem associar "alta disponibilidade" à replicação síncrona por acharem que ela garante consistência imediata. Porém, em sistemas com muitas escritas, a síncrona reduz a disponibilidade: se uma réplica falha, a transação principal fica bloqueada. A assíncrona, ao contrário, prioriza o desempenho e a disponibilidade. Outro ponto é escolher o particionamento correto: o hash é uniforme, mas não atende à separação por idade dos dados. O particionamento por faixa de valores (range) é o único que permite granularidade temporal.

Gabarito: letra A.

Link permanente: /questoes/fg133931