Questão de Banco de Dados — Banco de Dados Distribuídos — VUNESP 2023
- Código
- vu196616
- Banca
- VUNESP
- Órgão
- UNIVESP
- Ano
- 2023
- Cargo
- Sup Ped ( )
- ABASE.
- BEventual.
- CNoSQL.
- DEstrita (strict).
- EDNS.
GabaritoD — Estrita (strict).
Gabarito: letra D. O modelo de consistência estrita (strict consistency) é o único que garante que uma operação de leitura sempre retorne o valor da escrita mais recente, desde que essa escrita já tenha sido confirmada — é a definição clássica desse modelo na literatura de sistemas distribuídos. As demais alternativas (BASE, eventual, NoSQL e DNS) não descrevem esse comportamento: BASE e consistência eventual admitem leituras desatualizadas, NoSQL é uma categoria de banco de dados e DNS é um serviço de resolução de nomes.
A consistência estrita é o modelo mais forte da hierarquia de consistência em sistemas distribuídos. Ela exige que, após uma operação de escrita ser concluída (confirmada), qualquer leitura subsequente, em qualquer nó do sistema, retorne imediatamente o valor escrito. Isso significa que existe uma ordem global e absoluta das operações, como se houvesse um único relógio global ordenando todos os eventos. Na prática, esse modelo é extremamente difícil de implementar em sistemas distribuídos reais, pois exigiria sincronização perfeita entre todos os nós a cada operação, o que comprometeria a disponibilidade e o desempenho.
Para entender por que a estrita é a resposta, é preciso contrastá-la com os modelos mais fracos. A consistência eventual, por exemplo, permite que, por um período, diferentes nós retornem valores diferentes para a mesma leitura, até que a propagação da escrita se complete. O modelo BASE (Basically Available, Soft state, Eventually consistent) é justamente a filosofia que aceita essa inconsistência temporária em troca de disponibilidade e escalabilidade — é o oposto da garantia descrita no enunciado. O teorema CAP (Consistency, Availability, Partition tolerance) explica esse trade-off: em um sistema distribuído, não é possível garantir simultaneamente consistência forte, disponibilidade e tolerância a partições.
A pegadinha da questão está em associar "não retorna valores desatualizados" com algum conceito de NoSQL ou com a consistência eventual, quando na verdade o enunciado descreve exatamente o modelo mais forte, que é a consistência estrita. A banca explora a confusão entre os modelos de consistência forte (estrita, linearizável, sequencial) e os modelos fracos (eventual, causal, de leitura e escrita).
BASE é um acrônimo para Basically Available, Soft state, Eventually consistent — um conjunto de propriedades adotado por bancos NoSQL que prioriza disponibilidade e tolerância a partições em detrimento da consistência imediata. O modelo BASE, por definição, permite que leituras retornem valores desatualizados até que a propagação das escritas se complete. Portanto, é exatamente o oposto do que o enunciado descreve.
A consistência eventual (eventual consistency) garante que, se nenhuma nova escrita ocorrer, todos os nós convergirão para o mesmo valor após um período de propagação. No entanto, durante esse intervalo, leituras podem retornar dados obsoletos. O enunciado exige que a leitura nunca retorne valores desatualizados após a escrita confirmada, o que a consistência eventual não garante.
NoSQL é uma categoria de sistemas de gerenciamento de banco de dados não relacionais, não um modelo de consistência. Embora muitos bancos NoSQL adotem a consistência eventual (e o modelo BASE), a alternativa não responde à pergunta, que pede especificamente um modelo de consistência.
A consistência estrita (strict consistency) é o modelo de consistência mais forte em sistemas distribuídos. Ela define que, após uma operação de escrita ser confirmada, qualquer leitura subsequente deve retornar o valor escrito, em qualquer nó do sistema. Isso corresponde exatamente à descrição do enunciado: "não retorna valores desatualizados em operações de leitura, considerando que a última operação de escrita foi confirmada". É um modelo teórico, difícil de implementar na prática, mas é a definição canônica.
DNS (Domain Name System) é um serviço de resolução de nomes de domínio em endereços IP, fundamental para a internet, mas completamente alheio ao contexto de consistência de dados em sistemas distribuídos. Não é um modelo de consistência e não tem relação com a garantia descrita no enunciado.
A banca explora a confusão entre os modelos de consistência forte e fraca. O candidato que associa "sistemas distribuídos" automaticamente a NoSQL e consistência eventual tende a marcar a alternativa B, mas o enunciado descreve justamente o modelo mais forte — a consistência estrita. Lembre-se: consistência eventual permite leituras desatualizadas; consistência estrita proíbe.
Para questões sobre consistência em sistemas distribuídos, monte uma escala mental dos modelos, do mais forte ao mais fraco: estrita → linearizável → sequencial → causal → eventual. A estrita é a única que exige que a leitura reflita imediatamente a última escrita confirmada, em qualquer nó. Se o enunciado falar em "nunca retorna valores desatualizados" ou "leitura sempre reflete a escrita mais recente", a resposta é consistência estrita.
Gabarito: letra D
Link permanente: /questoes/vu196616