Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Orientados a Objetos — FUNDATEC 2023

Banco de DadosBanco de Dados Orientados a Objetos
Código
qq894922
Banca
FUNDATEC
Órgão
IF-SC
Ano
2023
Nível
Superior
Cargo
Professor EBTT - Sistemas Distribuídos
Em sistemas distribuídos, a partição de rede é uma situação em que os nós de um banco de dados distribuídos são divididos em grupos isolados devido a falhas na comunicação. Durante uma partição de rede, podem ocorrer divergências nos dados armazenados em diferentes grupos de nós, o que pode comprometer a consistência do banco de dados. Para mitigar esse problema, foram propostos modelos de consistência que fornecem garantias específicas durante uma partição de rede. O modelo de consistência ____________ é conhecido por permitir leituras e escritas mesmo durante uma partição de rede.Assinale a alternativa que preenche corretamente a lacuna do trecho acima.
  1. Aforte
  2. Beventual
  3. Clinearizável
  4. Dcausal
  5. Eserializável
Revelar gabarito e comentário

GabaritoB — eventual

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

Modelos de consistência em bancos de dados distribuídos

Gabarito: letra B (eventual). O modelo de consistência eventual é o único entre as opções que permite leituras e escritas mesmo durante uma partição de rede, priorizando a disponibilidade (A) em detrimento da consistência imediata, conforme o teorema CAP (Consistency, Availability, Partition tolerance).

Em sistemas distribuídos, o teorema CAP estabelece que, em caso de partição de rede (P), é necessário escolher entre consistência (C) e disponibilidade (A). A consistência eventual é um modelo que abdica da consistência forte para manter a disponibilidade: os nós continuam aceitando operações durante a partição e, quando a comunicação é restabelecida, os dados são reconciliados. Por isso, ela é amplamente utilizada em sistemas que priorizam alta disponibilidade, como bancos NoSQL (ex.: Cassandra, DynamoDB).

Modelo de Consistência

Permite leituras/escritas durante partição?

Prioriza disponibilidade (A) ou consistência (C)?

Exemplo de uso

Eventual

Sim

Disponibilidade (A)

Cassandra, DynamoDB

Forte

Não

Consistência (C)

Bancos relacionais tradicionais

Linearizável

Não

Consistência (C)

Sistemas com requisitos de ordem global

Causal

Parcialmente

Consistência (C)

Sistemas com dependências causais

Serializável

Não

Consistência (C)

Transações ACID

1Consistência forte
Não opera durante partição
Exige ordem global
2Consistência eventual
Opera durante partição
Prioriza disponibilidade (A)
Reconciliada após partição
3Consistência linearizável
Não opera durante partição
Réplica única virtual
4Consistência causal
Não opera durante partição
Ordem causal preservada
Modelos de consistência (CAP)
LEVELsoulevel.com.br
Modelos de consistência (CAP): Consistência forte (Não opera durante partição, Exige ordem global); Consistência eventual (Opera durante partição, Prioriza disponibilidade (A), Reconciliada após partição); Consistência linearizável (Não opera durante partição, Réplica única virtual); Consistência causal (Não opera durante partição, Ordem causal preservada)

Alternativa A — ❌ Incorreta

A consistência forte garante que, após uma escrita, todas as leituras subsequentes retornem o valor atualizado. Durante uma partição, isso exigiria que os nós isolados não aceitassem escritas ou leituras que pudessem ser inconsistentes, comprometendo a disponibilidade. Portanto, não é adequada para operações durante partições.

Alternativa B — ✅ Correta ⟵ GABARITO

A consistência eventual permite que leituras e escritas ocorram mesmo durante uma partição. Os nós continuam operando de forma independente; após a partição ser resolvida, as atualizações são propagadas e o sistema converge para um estado consistente. Esse modelo é tolerante a partições e prioriza a disponibilidade, preenchendo exatamente o requisito do enunciado.

Alternativa C — ❌ Incorreta

A consistência linearizável é uma forma de consistência forte que exige que toda operação pareça ocorrer em um único instante no tempo, como se houvesse uma réplica única. Durante uma partição, se um nó não puder garantir essa ordem global, ele deve rejeitar operações, violando a disponibilidade. Logo, não permite operações contínuas durante partições.

Alternativa D — ❌ Incorreta

A consistência causal garante que operações relacionadas causalmente sejam vistas na mesma ordem por todos os nós. Embora seja mais flexível que a linearizável, ainda impõe restrições que dificultam a operação durante partições, pois os nós precisam coordenar a ordem causal. Normalmente, em partições, as operações podem ser bloqueadas ou atrasadas para manter a ordenação causal.

Alternativa E — ❌ Incorreta

A consistência serializável é o mais alto nível de isolamento em transações, exigindo que o resultado de transações concorrentes seja equivalente a uma execução serial. Durante partições, garantir isso exigiria coordenação global, o que é impraticável sem comunicação entre os grupos. Portanto, não é compatível com operações contínuas durante partições.

PEGA ESSA DICA!

Lembre-se do teorema CAP: ao escolher tolerância à partição (P), você precisa decidir entre consistência (C) e disponibilidade (A). A consistência eventual é a escolha clássica de quem prioriza disponibilidade, abrindo mão da consistência imediata. Questões como essa frequentemente opõem consistência eventual (disponível durante partições) a modelos fortes (que bloqueiam ou falham).

Gabarito: letra B (eventual).

Link permanente: /questoes/qq894922