Questão de Banco de Dados — Concorrência em Banco de Dados — CESPE / CEBRASPE 2025
Banco de Dados›Concorrência em Banco de Dados
Código
ce214864
Banca
CESPE / CEBRASPE
Órgão
SEFAZ-SE
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal Tributário - Tecnologia da Informação
No modelo ACID de transações em bancos de dados relacionais, o princípio de isolamento garante que transações concorrentes não interfiram de forma incorreta umas nas outras. Assinale a opção em que é indicado o mecanismo que implementa o princípio de isolamento por meio do uso de bloqueios que só são liberados depois da conclusão da fase de crescimento da transação.
Asnapshot isolation
Btimestamp ordering
C2PL (two-phase locking)
Dcontrole de concorrência otimista
EMVCC (multiversion concurrency control)
Revelar gabarito e comentário▾
GabaritoC — 2PL (two-phase locking)
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”.
Two-Phase Locking (2PL) e o Isolamento no Modelo ACID
Gabarito: letra C. O mecanismo que implementa o isolamento por meio de bloqueios liberados somente após a fase de crescimento da transação é o 2PL (two-phase locking). Esse protocolo exige que uma transação adquira todos os bloqueios necessários antes de liberar qualquer um deles (fase de crescimento), e só então entra na fase de encolhimento, onde os bloqueios são liberados. Essa descrição corresponde exatamente ao enunciado.
As alternativas incorretas referem-se a outros mecanismos de controle de concorrência que não utilizam o esquema de fases de bloqueio descrito.
Mecanismo
Descrição
Utiliza bloqueios com fase de crescimento/encolhimento?
Relação com o enunciado
Snapshot isolation
Técnica baseada em multiversão (MVCC); cada transação vê um snapshot consistente no início.
Não
❌ Incorreta
Timestamp ordering
Ordena operações por timestamps; não usa bloqueios.
Não
❌ Incorreta
2PL (two-phase locking)
Protocolo que exige fase de crescimento (aquisição) e fase de encolhimento (liberação) de bloqueios.
Sim
✅ Correta (Gabarito)
Controle de concorrência otimista
Executa sem bloqueios; valida conflitos apenas no commit.
Não
❌ Incorreta
MVCC (multiversion concurrency control)
Mantém múltiplas versões dos dados; não define fases de bloqueio por si só.
Não (por si só)
❌ Incorreta
Alternativa A — ❌ Incorreta
Snapshot isolation é uma técnica de controle de concorrência baseada em multiversão (MVCC), onde cada transação vê uma fotografia (snapshot) consistente dos dados no momento em que inicia. Não utiliza bloqueios que seguem uma fase de crescimento e encolhimento; em vez disso, depende de detecção de conflitos no momento do commit.
Alternativa B — ❌ Incorreta
Timestamp ordering atribui timestamps a cada transação e ordena as operações com base nesses timestamps, garantindo serializabilidade sem o uso de bloqueios. Não há conceito de fase de crescimento ou liberação posterior de bloqueios.
Alternativa C — ✅ Correta ⟵ GABARITO
Two-phase locking (2PL) é exatamente o mecanismo descrito: toda transação possui uma fase de crescimento (crescendo) em que adquire bloqueios, e uma fase de encolhimento (shrinking) em que os libera. O protocolo 2PL garante a serializabilidade das escalas, e é o método clássico para implementar o isolamento por meio de bloqueios.
Alternativa D — ❌ Incorreta
Controle de concorrência otimista (optimistic concurrency control) permite que as transações executem sem bloqueios, validando no final se houve conflitos. Não há bloqueios que sigam as fases de crescimento e encolhimento.
Alternativa E — ❌ Incorreta
MVCC (multiversion concurrency control) mantém múltiplas versões dos dados para que leitores não bloqueiem escritores e vice-versa. Embora possa ser combinado com 2PL, por si só não define a regra de liberação de bloqueios após a fase de crescimento. O enunciado refere-se especificamente ao protocolo que impõe essa sequência de fases.
PEGA ESSA DICA!
Para questões sobre controle de concorrência, decore a característica principal de cada método:
2PL: fases de crescimento e encolhimento com bloqueios.
Timestamp ordering: ordenação por timestamps, sem bloqueios.
Otimista: validação tardia, sem bloqueios.
MVCC: múltiplas versões para leitura consistente.
Snapshot isolation: variante do MVCC com snapshot.