Questão de Banco de Dados — Concorrência em Banco de Dados — FUNDATEC 2025
Banco de Dados›Concorrê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?
ACheckpoint.
BControle de transações.
CSavepoint.
DRollforward.
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
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”).