Questão de Banco de Dados — Transações (Locks, ACID, etc.) — FUNDATEC 2025
- Código
- qa699102
- Banca
- FUNDATEC
- Órgão
- BRDE
- Ano
- 2025
- Cargo
- Ana Sist ( )
- AReestruturabilidade.
- BVisão.
- CConflitos.
- DTeste.
- EExecução.
GabaritoE — Execução.
Gabarito: letra E. Quando transações são executadas de forma concorrente e intercalada, a ordem de execução das operações é chamada de plano de execução (ou schedule). É esse plano que o controle de concorrência analisa para garantir que o resultado seja equivalente a uma execução serial, preservando a propriedade de isolamento do ACID.
O conceito central aqui é o de transação em banco de dados. Uma transação é uma unidade lógica de trabalho composta por várias operações — por exemplo, transferir dinheiro entre contas envolve debitar uma conta e creditar outra. Para que o banco de dados permaneça íntegro, toda transação deve obedecer às propriedades ACID: Atomicidade (tudo ou nada), Consistência (respeitar as regras do banco), Isolamento (transações concorrentes não interferem entre si) e Durabilidade (uma vez confirmada, a alteração é permanente).
Quando várias transações rodam ao mesmo tempo, o SGBD precisa intercalar suas operações. A ordem específica em que essas operações são executadas é o que chamamos de plano de execução (ou schedule). O controle de concorrência usa esse plano para verificar se a execução é serializável — ou seja, se o resultado final é o mesmo que seria obtido se as transações fossem executadas uma após a outra, sem intercalação. Se o plano não for serializável, podem ocorrer anomalias como leitura suja, leitura não repetível e fantasma.
Na prática, imagine duas transações: T1 transfere R$ 100 da conta A para a conta B, e T2 consulta o saldo das contas. Se o SGBD intercalar as operações de T1 e T2 de forma inadequada, T2 pode ler um estado intermediário (por exemplo, A já debitado, mas B ainda não creditado). O plano de execução determina exatamente essa ordem de operações, e o controle de concorrência (via locks, por exemplo) garante que o plano seja serializável.
A pegadinha desta questão é que o termo "plano de execução" pode ser confundido com outros conceitos de banco de dados, como "visão" (uma consulta armazenada) ou "conflitos" (operações que disputam o mesmo dado). Mas o enunciado pergunta especificamente pela ordem de execução das operações, que é exatamente o que define um plano de execução. As demais alternativas não têm relação com esse conceito.
Guarde a definição: plano de execução = ordem de execução das operações de transações concorrentes. É esse o critério que separa a alternativa correta das demais.
Reestruturabilidade não é um termo usado em banco de dados para descrever a ordem de execução de transações. Esse termo não existe no contexto de transações e concorrência; pode até lembrar "reestruturação" de tabelas, mas não se aplica aqui.
Visão (ou view) é uma consulta armazenada que se comporta como uma tabela virtual. Não tem relação com a ordem de execução de operações de transações concorrentes. A banca coloca esse termo para confundir quem pensa em "visualização" dos dados.
Conflitos referem-se a operações de transações diferentes que acessam o mesmo item de dado e pelo menos uma delas é de escrita. Conflitos são um conceito importante no controle de concorrência, mas não são a ordem de execução em si — são as situações que o plano precisa tratar.
Teste é um termo genérico, sem significado específico em transações de banco de dados. Não corresponde à definição pedida.
Plano de execução (ou schedule) é exatamente a ordem em que as operações de transações concorrentes são executadas de forma intercalada. É o conceito central do controle de concorrência, que analisa o plano para garantir a serializabilidade e, assim, a propriedade de isolamento.
Na prova, quando o enunciado falar em "ordem de execução das operações" ou "intercalação de transações", a resposta quase sempre será plano de execução (ou schedule). Memorize essa associação direta — é um termo técnico específico da área de transações.
Gabarito: letra E
Link permanente: /questoes/qa699102