Questão de Banco de Dados — SQL — FUNDATEC 2025
- Código
- qg483667
- Banca
- FUNDATEC
- Órgão
- UFCSPA - RS
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Tecnologia da Informação
- ASAVE
- BSAVE DATA
- CROLLBACK
- DCHECKPOINT
- ECOMMIT
GabaritoE — COMMIT
Gabarito: letra E. O comando que torna definitivas as alterações de uma transação é o COMMIT. Ele confirma todas as operações realizadas desde o início da transação, gravando-as permanentemente no banco de dados. Os comandos SAVE, SAVE DATA, ROLLBACK e CHECKPOINT não têm essa função.
O enunciado descreve o comportamento típico de uma transação SQL: as modificações ficam em um repositório temporário (buffer) até que um comando as efetive. Esse repositório é chamado de área de transação ou log temporário, e o comando que finaliza a transação e consolida os dados é o COMMIT.
A sublinguagem responsável pelo controle de transações é a DTL (Data Transaction Language) ou TCL (Transaction Control Language), cujos comandos principais são BEGIN TRANSACTION, COMMIT e ROLLBACK. O SAVEPOINT também faz parte, mas serve para marcar pontos intermediários.
SAVE não é um comando SQL padrão. O comando similar é SAVEPOINT, que cria um ponto de salvamento dentro de uma transação, mas não a finaliza. Confundir SAVE com SAVEPOINT ou COMMIT é um erro clássico.
SAVE DATA não existe na linguagem SQL. Não há previsão de comando com esse nome no padrão ISO ou nos principais SGBDs.
ROLLBACK desfaz todas as alterações realizadas na transação, revertendo o banco ao estado anterior ao BEGIN TRANSACTION. Ele é o oposto do COMMIT. Portanto, não torna as alterações definitivas, mas sim as elimina.
CHECKPOINT é um comando usado para forçar a gravação dos buffers do banco em disco, sincronizando o log. Embora ajude na recuperação, ele não finaliza nem confirma uma transação; é um mecanismo interno do SGBD.
COMMIT é o comando correto. Após sua execução, todas as alterações da transação são confirmadas e tornam-se permanentes, visíveis para outras transações e persistentes mesmo em caso de falha. Exemplo:
BEGIN TRANSACTION;
UPDATE conta SET saldo = saldo - 100 WHERE id = 1;
UPDATE conta SET saldo = saldo + 100 WHERE id = 2;
COMMIT;A banca explora a confusão entre COMMIT (finaliza e confirma) e ROLLBACK (desfaz). Também tenta o candidato com comandos inexistentes (SAVE, SAVE DATA) e com CHECKPOINT, que é um comando de administração, não de transação. Lembre-se: quem "torna definitiva" a transação é o COMMIT.
Gabarito: letra E.
Link permanente: /questoes/qg483667