-
ERRADO. Se o erro aconteceu durane a transação, significa que os dados ainda não foram persistidos por meio de um COMMIT. Neste caso, basta fazer um rollback (na questão está escrito roolback, errado). O banco de dados irá retornar ao seu último estado consistente. O recovery não é necessário. Este é o erro da questão.
-
facilmente anulável pois o correto é "rollback" e não "roolback"
-
O commit não foi realizado.
-
O erro é que, se nenhuma mudança foi finalizada (ainda não foi feito o COMMIT), não é necessário (e nem faz sentido) fazer um rollback.
-
Relativamente ao comentário do colega acima, o ROLLBACK faz sentido sim, justamente porque não foi feito o COMMIT. Esta é justamente a função dele. Uma vez executado o COMMIT, o ROLLBACK não tem mais efeito sobre a(s) transação(ões).
Bons estudos!!
-
O livro do Silberchatz elenca dois tipos de falhas: falhas de transações e falhas de sistema;
No caso das falhas de sistema, objeto da questão, a recuperação dá-se em duas fases:
fase redo: varre o log, repete todas as atualizações a partir do último checkpoint até o fim do log; Nesta mesma fase são identificadas as transações que começaram mas que não haviam sido concluídas.
fase undo: as transações não comitadas, identificadas na fase anterior, são revertidas (rollback);
Ou seja, primeiro faz o replay de todas as transações a partir do último ponto de verificação e na sequencia reverte (faz o rollback) das pendentes.
-
Commit: processo de gravação no BD da transação efetuada com sucesso
RollBack: é um processo que retorna à configuração anterior caso ela não seja bem sucedida.
"Dessa forma, se tudo ocorrer bem, as operações de gravação de uma transação devem ser confirmadas – o que chamamos de COMMIT; caso ocorra alguma falha, as operações de gravação de uma transação devem ser desfeitas – o que chamamos de ROLLBACK."
Fonte: Estratégia.
-
GABARITO ERRADO!
.
.
Os comandos DTL são responsáveis por gerenciar diferentes transações ocorridas dentro de um banco de dados.
Ele é dividido em 3 comandos:
BEGIN TRAN (OU BEGIN TRANSACTION) – Marca o começo de uma transação no banco da dados que pode ser completada ou não.
COMMIT – Envia todos os dados da transação permanentemente para o banco de dados.
ROLLBACK – Desfaz as alterações feitas na transação realizada.