Pular para o conteúdo principal

Questão de Banco de Dados — Concorrência em Banco de Dados — FUNDATEC 2025

Banco de DadosConcorrência em Banco de Dados
Código
qg468585
Banca
FUNDATEC
Órgão
BRDE
Ano
2025
Nível
Superior
Cargo
Analista de Sistemas - Subárea Administração de Banco de Dados
Dois analistas, Maria e Pedro, acessam ao mesmo tempo o mesmo registro de um produto para atualizar a quantidade em estoque. O valor inicial do estoque é de 100 unidades. Maria realiza uma operação que subtrai 5 unidades, enquanto Pedro realiza outra operação que subtrai 3 unidades. Se o sistema permitir que ambos leiam o valor original de 100 ao mesmo tempo e façam suas atualizações sem controle, o resultado final poderá ser incorreto, como 92, em vez do valor correto, que seria 95. Qual mecanismo do SGBD é utilizado para evitar esse tipo de situação e garantir que transações concorrentes sejam executadas de forma isolada e segura?
  1. ACheckpoint.
  2. BControle de transações.
  3. CSavepoint.
  4. DRollforward.
  5. EBloqueio.
Revelar gabarito e comentário

GabaritoE — Bloqueio.

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

Controle de Concorrência em SGBD: Mecanismo de Bloqueio

Gabarito: letra E. A situação descrita é o clássico problema de atualização perdida (lost update), que ocorre quando duas transações concorrentes leem o mesmo valor sem isolamento. O mecanismo padrão dos SGBDs para garantir a execução isolada e segura de transações concorrentes é o bloqueio (locking). Ele impede que uma transação leia ou escreva um recurso enquanto outra transação o estiver utilizando, evitando interferências.

A banca testa o conhecimento sobre os mecanismos de controle de concorrência. O bloqueio é a técnica mais comum, conforme apresentado na literatura de banco de dados (Seção 16.3 – Bloqueio). As demais alternativas referem-se a outros aspectos do SGBD: checkpoint, savepoint e rollforward estão ligados à recuperação de falhas; controle de transações é um conceito mais amplo que engloba, mas não se limita ao isolamento.

NÃO CAIA NESSA!

A alternativa "Controle de transações" (B) pode parecer atraente, pois o problema envolve transações. No entanto, o controle de transações é um conceito geral que abrange atomicidade, consistência, isolamento e durabilidade (ACID). O mecanismo específico que implementa o isolamento em nível de concorrência é o bloqueio (locking). Cuidado para não confundir o gênero com a espécie.

Mecanismo

Função Principal

Relação com Concorrência

Exemplo de Uso

Bloqueio (Locking)

Garantir isolamento entre transações concorrentes

Direta: impede leitura/escrita simultânea de recursos conflitantes

Evitar lost update no estoque (Maria e Pedro)

Checkpoint

Sincronizar estado do banco para recuperação

Nenhuma: foco em falhas, não em concorrência

Reduzir tempo de rollback após crash

Controle de Transações

Gerenciar atomicidade, consistência, isolamento, durabilidade (ACID)

Indireta: conceito amplo que inclui isolamento, mas não é o mecanismo específico

COMMIT, ROLLBACK, propriedades ACID

Savepoint

Marcar ponto para rollback parcial dentro de uma transação

Nenhuma: não interfere em transações concorrentes

Desfazer parte de uma transação sem afetar o todo

Rollforward

Refazer transações após falha de sistema

Nenhuma: técnica de recuperação, não de concorrência

Restaurar banco após queda de energia

Alternativa A — ❌ Incorreta

Checkpoint é um ponto de sincronização usado durante a recuperação de falhas para reduzir o tempo de rollback de transações. Não atua no controle de concorrência.

Alternativa B — ❌ Incorreta

Controle de transações é um conceito amplo que inclui o gerenciamento de transações como um todo (COMMIT, ROLLBACK, propriedades ACID). Embora o problema seja de transação, o mecanismo que resolve o conflito de concorrência é o bloqueio, não o controle de transações genérico.

Alternativa C — ❌ Incorreta

Savepoint permite marcar um ponto dentro de uma transação para rollback parcial. Não impede interferências entre transações concorrentes.

Alternativa D — ❌ Incorreta

Rollforward (ou redo) é uma técnica de recuperação usada para refazer transações após uma falha de sistema. Não tem relação com o controle de concorrência.

Alternativa E — ✅ Correta ⟵ GABARITO

Bloqueio (locking) é o mecanismo que impede o acesso simultâneo a um recurso por transações conflitantes. No exemplo, se o SGBD aplicasse um bloqueio exclusivo no registro durante a leitura/atualização, Maria bloquearia o recurso, Pedro aguardaria, e o resultado seria correto (95). A literatura de banco de dados descreve o bloqueio como a principal técnica de controle de concorrência (Seção 16.3 – “Bloqueio”).

Gabarito: letra E — Bloqueio.

Link permanente: /questoes/qg468585