A respeito de arquitetura, segurança, integridade, concorrên...
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.
- Gabarito Comentado (1)
- Aulas (3)
- Comentários (10)
- Estatísticas
- Cadernos
- Criar anotações
- Notificar Erro
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:
- Transação A: INSERT INTO clientes VALUES (1, 'João')
- 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