Questão nº 61

Questão de Tecnologia da Informação · FGV TJ-AP 2024 (nº 61)

FGV2024Analista Judiciário - TI - Banco de DadosTecnologia da Informação
Gabarito: Bver comentário ↓

Transação é uma unidade lógica de trabalho e é fundamental para garantir a integridade e a consistência dos dados. Observe o seguinte script de uma transação implementada no MySQL:

```
CREATE TABLE candidato (id INT, nome CHAR (50), INDEX (id));
START TRANSACTION;
INSERT INTO candidato VALUES (1, 'JULIA');
INSERT INTO candidato VALUES (2, 'MARIA');
COMMIT;
SET autocommit = 0;
INSERT INTO candidato VALUES (3, 'SOFIA');
UPDATE candidato SET nome='ANA' WHERE id=3;
DELETE FROM candidato WHERE nome='JULIA';
ROLLBACK;
SELECT * FROM candidato;
```

Após a execução do script apresentado, a consulta retornará as colunas id e nome com os valores:

Resposta comentada

Gabarito Alternativa B

Uma transação é uma sequência de operações de banco de dados que são tratadas como uma única unidade lógica de trabalho. Ela garante que todas as operações dentro dela sejam concluídas com sucesso (commit) ou que nenhuma delas seja aplicada (rollback), mantendo a integridade e consistência dos dados.

  • (A) Incorreta: Esta alternativa está incorreta porque a inserção de 'JULIA' foi confirmada (commit) e, portanto, não foi afetada pelo rollback posterior.
  • (B) Correta: Após o COMMIT, os registros (1, 'JULIA') e (2, 'MARIA') são salvos permanentemente no banco de dados. Em seguida, SET autocommit = 0 desabilita o commit automático, fazendo com que as operações subsequentes (INSERT de SOFIA, UPDATE de ANA, DELETE de JULIA) façam parte de uma nova transação implícita. O ROLLBACK desfaz apenas as operações realizadas após o último COMMIT e antes do ROLLBACK (ou seja, as operações feitas enquanto autocommit estava desabilitado). Assim, o INSERT de SOFIA, o UPDATE para ANA e o DELETE de JULIA são desfeitos, e os dados confirmados anteriormente permanecem.
  • (C) Incorreta: Esta é a alternativa mais tentadora. A armadilha aqui é não entender que o ROLLBACK desfaz a inserção de 'SOFIA' (e a atualização para 'ANA'). Embora 'SOFIA' tenha sido inserida, ela não foi confirmada (commit) antes do ROLLBACK, sendo, portanto, desfeita.
  • (D) Incorreta: Esta alternativa está incorreta porque a atualização de 'SOFIA' para 'ANA' foi desfeita pelo ROLLBACK, pois não havia sido confirmada.
  • (E) Incorreta: Esta alternativa está incorreta porque a inserção de 'JULIA' foi confirmada e não foi desfeita, e a atualização para 'ANA' foi desfeita pelo ROLLBACK.

Fonte: FGV TJ-AP 2024 Analista Judiciário - TI - Banco de Dados (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho