Pular para o conteúdo principal

Questão de Banco de Dados — Conceitos Gerais de NoSQL — VUNESP 2023

Banco de DadosConceitos Gerais de NoSQL
Código
vu196617
Banca
VUNESP
Órgão
UNIVESP
Ano
2023
Cargo
Sup Ped ( )
De acordo com o teorema CAP, quando ocorre uma falha que ocasiona a partição da rede em um sistema de armazenamento de dados distribuído, deve-se
  1. Aoptar por manter a consistência ou então a disponibilidade.
  2. Bdesabilitar todos os nós do sistema temporariamente, impedindo que haja atualizações de dados em apenas uma das partições.
  3. Cacionar outro sistema distribuído de backup, que é mantido desativado enquanto o principal está funcionando.
  4. Doptar por manter a disponibilidade ou então a baixa latência.
  5. Egarantir a consistência e a disponibilidade por meio de réplicas dos mesmos dados em diversos nós.
Revelar gabarito e comentário

GabaritoA — optar por manter a consistência ou então a disponibilidade.

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

Teorema CAP em sistemas distribuídos

Gabarito: letra A. Quando ocorre uma partição de rede, o sistema deve optar por manter a consistência ou a disponibilidade, pois o teorema CAP afirma que é impossível garantir simultaneamente as três propriedades — consistência, disponibilidade e tolerância à partição. Essa é a essência do teorema, que fundamenta o projeto de bancos de dados NoSQL.

O teorema CAP (Consistency, Availability, Partition Tolerance) é um princípio fundamental em sistemas distribuídos, especialmente relevante para bancos de dados NoSQL. Ele estabelece que, em um sistema distribuído com replicação de dados, é impossível garantir, ao mesmo tempo, as três propriedades desejáveis: consistência, disponibilidade e tolerância à partição. O projetista deve, portanto, escolher duas dessas três propriedades para priorizar, sacrificando a terceira.

A consistência no contexto do CAP refere-se à garantia de que todos os nós do sistema veem os mesmos dados ao mesmo tempo, ou seja, que as cópias replicadas de um item de dados são idênticas para todas as transações. A disponibilidade significa que toda solicitação de leitura ou gravação recebe uma resposta, mesmo que alguns nós estejam inativos. A tolerância à partição é a capacidade do sistema de continuar operando mesmo quando ocorre uma falha de comunicação entre os nós, dividindo o sistema em partições isoladas.

A questão central do CAP é que, quando ocorre uma partição de rede, o sistema precisa decidir entre manter a consistência (garantindo que todos os nós tenham os dados mais atualizados, mesmo que isso signifique recusar algumas solicitações) ou manter a disponibilidade (respondendo a todas as solicitações, mesmo que alguns nós retornem dados desatualizados). Essa escolha é inevitável, pois não é possível garantir ambas as propriedades simultaneamente em um cenário de partição.

Na prática, os sistemas NoSQL frequentemente adotam a consistência eventual, um modelo mais fraco de consistência que prioriza a disponibilidade e a tolerância à partição. Nesse modelo, as atualizações são propagadas de forma assíncrona entre os nós, e o sistema aceita que, por um período, os dados possam estar inconsistentes, mas eventualmente convergem para um estado consistente. Essa abordagem é contrastada com as propriedades ACID dos bancos relacionais tradicionais, que priorizam a consistência forte.

A pegadinha desta questão está em confundir o teorema CAP com outros conceitos de sistemas distribuídos, como replicação, backup ou latência. O CAP não trata de desabilitar nós, acionar sistemas de backup ou garantir todas as propriedades simultaneamente. Ele trata especificamente da escolha entre consistência e disponibilidade quando ocorre uma partição.

Guarde a distinção fundamental: o CAP é sobre a escolha entre duas propriedades quando ocorre uma partição, não sobre a garantia de todas elas. É exatamente essa escolha que a alternativa correta reflete.

Consistência
Disponibilidade
Sacrifica
Sistema CP
Sistema AP
Prioriza
Sacrifica disponibilidade
Sacrifica consistência
LEVEL · soulevel.com.br

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa está correta porque reflete exatamente o que o teorema CAP estabelece. Quando ocorre uma partição de rede, o sistema deve optar por manter a consistência ou a disponibilidade, pois é impossível garantir ambas simultaneamente. Essa é a essência do teorema, que afirma que, em um dado momento, só é possível garantir duas de três propriedades entre consistência, disponibilidade e tolerância à partição.

Alternativa B — ❌ Incorreta

Esta alternativa está incorreta porque o teorema CAP não propõe desabilitar todos os nós do sistema. Pelo contrário, a tolerância à partição significa que o sistema deve continuar operando mesmo quando ocorre uma falha de comunicação entre os nós. Desabilitar todos os nós seria uma medida extrema que não está prevista no CAP e que contraria o objetivo de manter o sistema disponível.

Alternativa C — ❌ Incorreta

Esta alternativa está incorreta porque o teorema CAP não trata de sistemas de backup. O CAP é sobre as propriedades de consistência, disponibilidade e tolerância à partição em um sistema distribuído, não sobre a existência de um sistema de backup separado. A ideia de acionar um sistema de backup mantido desativado é um conceito de recuperação de desastres, não do teorema CAP.

Alternativa D — ❌ Incorreta

Esta alternativa está incorreta porque o teorema CAP não menciona a baixa latência como uma das propriedades a serem escolhidas. As três propriedades do CAP são consistência, disponibilidade e tolerância à partição. A baixa latência é uma característica de desempenho, não uma propriedade do CAP. A escolha correta é entre consistência e disponibilidade, não entre disponibilidade e baixa latência.

Alternativa E — ❌ Incorreta

Esta alternativa está incorreta porque o teorema CAP afirma exatamente o oposto: não é possível garantir consistência e disponibilidade simultaneamente quando ocorre uma partição. A alternativa sugere que é possível garantir ambas por meio de réplicas, mas o CAP demonstra que isso é impossível em um cenário de partição. A replicação é uma técnica para melhorar a disponibilidade, mas não elimina a necessidade de escolher entre consistência e disponibilidade.

NÃO CAIA NESSA!

A banca explora a confusão entre o teorema CAP e outros conceitos de sistemas distribuídos. A alternativa E, por exemplo, sugere que é possível garantir consistência e disponibilidade por meio de réplicas, mas o CAP demonstra que isso é impossível em um cenário de partição. A alternativa D troca a propriedade de consistência por baixa latência, que não faz parte do CAP. Fique atento: o CAP é sobre a escolha entre consistência e disponibilidade, não sobre outras características de desempenho ou recuperação.

PEGA ESSA DICA!

Para questões sobre o teorema CAP, lembre-se da sigla CAP: Consistência, Disponibilidade e Tolerância à Partição. Quando ocorre uma partição, o sistema deve escolher entre consistência e disponibilidade. Essa é a regra de ouro que resolve a maioria das questões sobre o tema.

Gabarito: letra A

Link permanente: /questoes/vu196617