Pular para o conteúdo principal

Questão de Banco de Dados — Transações (Locks, ACID, etc.) — VUNESP 2023

Banco de DadosTransações (Locks, ACID, etc.)
Código
vu196692
Banca
VUNESP
Órgão
Pref Campinas
Ano
2023
Cargo
Ana TI ( )
O comando do PL/SQL do Oracle 21c que permite desfazer as operações feitas em uma transação é:
  1. AROLLBACK;
  2. BGRANT;
  3. CPURGE;
  4. DREVOKE;
  5. EDROP OPERATOR;
Revelar gabarito e comentário

GabaritoA — ROLLBACK;

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

Comandos SQL: ROLLBACK para desfazer transações

Gabarito: letra A. O comando ROLLBACK é o responsável por desfazer as operações realizadas em uma transação, restaurando o banco de dados ao estado anterior ao início dela. Essa é a função clássica do comando, prevista no padrão SQL e implementada no Oracle 21c, que garante a propriedade de atomicidade das transações.

Uma transação é uma unidade lógica de trabalho composta por uma ou mais operações de banco de dados (inserções, atualizações, exclusões). Para garantir a confiabilidade, as transações seguem as propriedades ACID: Atomicidade, Consistência, Isolamento e Durabilidade. A atomicidade assegura que a transação seja executada por completo ou não seja executada — ou seja, "tudo ou nada". Quando todas as operações são concluídas com sucesso, o comando COMMIT efetiva as alterações de forma permanente. Por outro lado, se ocorrer qualquer falha ou se o usuário decidir desfazer, o comando ROLLBACK reverte todas as operações da transação, retornando o banco ao estado anterior.

Na prática, imagine uma transferência bancária de R$ 100 da conta A para a conta B. Essa operação envolve várias etapas: debitar R$ 100 da conta A e creditar R$ 100 na conta B. Se, após o débito na conta A, ocorrer uma falha antes do crédito na conta B, a transação estaria incompleta e o banco ficaria inconsistente. O ROLLBACK desfaz o débito, garantindo que nenhuma das operações seja aplicada parcialmente. Somente com o COMMIT as alterações são confirmadas e persistidas.

É importante distinguir o ROLLBACK de outros comandos SQL. O COMMIT finaliza a transação com sucesso, salvando as alterações. O SAVEPOINT cria um ponto intermediário dentro da transação, permitindo um rollback parcial até aquele ponto, sem desfazer toda a transação. Já os comandos GRANT e REVOKE pertencem à sublinguagem DCL (Data Control Language), responsável por controlar permissões de acesso. O PURGE é usado no Oracle para remover objetos da lixeira (recycle bin), e DROP OPERATOR é um comando DDL que remove um operador definido pelo usuário.

A pegadinha desta questão está em confundir o ROLLBACK com comandos de controle de acesso ou de definição de dados. O candidato que não domina a classificação dos comandos SQL pode se perder entre as alternativas. A chave é lembrar que o ROLLBACK é um comando de controle de transação (TCL), cuja função é desfazer operações não confirmadas.

Comando

Categoria

Função principal

Desfaz transação?

ROLLBACK

TCL (Controle de Transação)

Reverte operações não confirmadas de uma transação

✅ Sim

COMMIT

TCL (Controle de Transação)

Efetiva permanentemente as alterações da transação

❌ Não

SAVEPOINT

TCL (Controle de Transação)

Cria ponto intermediário para rollback parcial

❌ Não (marca ponto)

GRANT

DCL (Controle de Dados)

Concede privilégios de acesso a usuários/roles

❌ Não

REVOKE

DCL (Controle de Dados)

Remove privilégios de acesso de usuários/roles

❌ Não

PURGE

DDL (Definição de Dados)

Remove permanentemente objetos da lixeira do Oracle

❌ Não

DROP OPERATOR

DDL (Definição de Dados)

Remove operador definido pelo usuário

❌ Não

Alternativa A — ✅ Correta ⟵ GABARITO

O comando ROLLBACK é exatamente o que desfaz as operações de uma transação. Ele reverte todas as alterações feitas desde o início da transação (ou desde o último SAVEPOINT), restaurando o banco ao estado anterior. Essa é a função que garante a atomicidade: se algo der errado, a transação inteira é desfeita.

Alternativa B — ❌ Incorreta

O comando GRANT é um comando da sublinguagem DCL (Data Control Language), utilizado para conceder privilégios de acesso a usuários ou roles. Ele não tem relação com o controle de transações e não desfaz operações de banco de dados.

Alternativa C — ❌ Incorreta

O comando PURGE é específico do Oracle e serve para remover permanentemente objetos da lixeira (recycle bin), como tabelas ou índices que foram descartados. Ele não desfaz operações de uma transação; pelo contrário, é uma operação de limpeza de objetos.

Alternativa D — ❌ Incorreta

O comando REVOKE é o oposto do GRANT: ele remove privilégios de acesso de usuários ou roles. Também pertence à sublinguagem DCL e não tem qualquer relação com o desfazer de transações.

Alternativa E — ❌ Incorreta

O comando DROP OPERATOR é um comando DDL (Data Definition Language) usado para remover um operador definido pelo usuário no banco de dados. Ele altera a estrutura do banco, não o estado de uma transação.

A regra de ouro para a prova: ROLLBACK desfaz, COMMIT confirma, SAVEPOINT marca um ponto intermediário. Os comandos de acesso (GRANT/REVOKE) e de definição (DROP, PURGE) estão em outra categoria e nunca desfazem transações.

Gabarito: letra A

Link permanente: /questoes/vu196692