A respeito de arquitetura, segurança, integridade, concorrên...

Próximas questões
Com base no mesmo assunto
Q3156735 Banco de Dados

A respeito de arquitetura, segurança, integridade, concorrência, recuperação após falhas e gerenciamento de transições em sistemas de gerenciamento de banco de dados (SGDB), julgue o próximo item.


Se a recuperação de falhas for realizada por meio do rollback, o SGDB que utiliza log de transações retornará todas as transições, tanto as confirmadas quanto as não confirmadas, a fim de garantir que o sistema retorne ao estado anterior à falha.

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Para abordar a questão proposta, é essencial compreender o tema central em torno dos Sistemas de Gerenciamento de Banco de Dados (SGBD), especificamente a recuperação de falhas e o uso do log de transações.

Nos SGBDs, o log de transações é um componente crítico para garantir a integridade e a consistência dos dados em caso de falhas. Este log registra todas as operações realizadas no banco de dados, permitindo que o sistema retome um estado consistente após uma interrupção.

Durante a recuperação de falhas, duas operações são fundamentais: rollback e redo. O rollback desfaz transações que não foram confirmadas (ou committed), enquanto o redo reaplica operações de transações que já haviam sido confirmadas antes da falha.

No enunciado, é afirmado que um SGBD ao utilizar rollback retornaria todas as transições (ou transações), tanto as confirmadas quanto as não confirmadas. Aqui está o ponto central do erro: o rollback apenas desfaz transações não confirmadas, não afetando transações confirmadas.

A alternativa correta, portanto, é Errado (E), uma vez que a afirmação de que o rollback retornaria todas as transações, inclusive as confirmadas, é incorreta.

Portanto, para resolver questões desse tipo, é fundamental compreender a diferença entre as operações de rollback e redo e o papel do log de transações em garantir a integridade dos dados após falhas.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

errada

só as que não foram confirmadas retornarão.

JUSTIFICATIVA - Errado. Em SGBDs que utilizam log de transações, o processo de recuperação de falhas usa “rollback” para desfazer transações não confirmadas, assegurando que apenas as transações confirmadas permaneçam no banco de dados. Isso mantém a integridade dos dados, revertendo operações não concluídas em caso de falha.

Imagine um banco de dados que está processando duas transações:

  1. Transação A: INSERT INTO clientes VALUES (1, 'João')
  2. Transação B: UPDATE saldo SET valor = valor - 100 WHERE conta = 123
  • Se o sistema falhar:
  • Antes de registrar Transação A no log: Nenhuma alteração será aplicada ao banco de dados, então o registro de João não aparecerá.
  • Após registrar Transação A no log, mas antes de aplicá-la no banco de dados: O sistema pode reaplicar a operação após a recuperação, garantindo que João seja inserido.
  • Durante a execução de Transação B: Se for interrompida antes de ser completamente registrada no log, qualquer mudança parcial será desfeita.

Rollback é um processo que permite reverter uma transação em um sistema de gerenciamento de banco de dados (SGBD). Ele é uma ferramenta importante para manter a integridade dos dados e garantir que as operações possam ser desfeitas em caso de falhas. 

O rollback é utilizado quando uma transação falha e o banco de dados deve retornar ao estado anterior ao início da transação. 

O rollback é implementado com um log de transações, mas também pode ser implementado por meio do controle de simultaneidade multiversão. 

O comando ROLLBACK é um dos comandos que fazem parte do TCL (Transaction Control Language) no SQL. 

Revisando DTL (Data Translaction Language):

Comandos que controlam transações no banco de dados.

  • COMMIT: Confirma todas as alterações feitas em uma transação.
  • ROLLBACK: Desfaz as alterações feitas desde o último COMMIT.

Ou seja, as transações que ja foram confirmadas pelo COMMIT não serão alteradas.

Gabarito: Errado

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo