Julgue o próximo item, a respeito de segurança e auditoria d...

Próximas questões
Com base no mesmo assunto
Q3257325 Banco de Dados
Julgue o próximo item, a respeito de segurança e auditoria de bancos de dados. 

Ocorre transação confirmada (commit) quando há informações suficientes no log do banco de dados para garantir que, mesmo se houver falha no sistema, as atualizações da transação serão refeitas. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é: C - certo

Tema central da questão:

A questão aborda o conceito de transações em bancos de dados, especificamente quando uma transação é considerada confirmada ou "committed". Este é um tema essencial em segurança e auditoria de bancos de dados, pois garante a integridade e consistência dos dados, mesmo em caso de falhas de sistema.

Resumo teórico:

Em sistemas de banco de dados, uma transação é um conjunto de operações que devem ser executadas de forma atômica. Isso significa que ou todas as operações são concluídas com sucesso, ou nenhuma delas é aplicada. Um commit ocorre quando uma transação é finalizada e suas alterações são permanentemente gravadas no banco de dados.

Para garantir que as alterações sejam preservadas mesmo após uma falha, os sistemas utilizam um log de transações. Esse log armazena informações suficientes para que, em caso de falha, seja possível refazer (reaplicar) as alterações realizadas até o ponto do commit. Este conceito está alinhado com o princípio de durabilidade do modelo ACID (Atomicidade, Consistência, Isolamento e Durabilidade).

Justificativa da alternativa correta:

A alternativa está correta porque descreve precisamente a função do log em garantir a durabilidade das transações. Com informações suficientes no log, mesmo que ocorra uma falha, o sistema pode restaurar as atualizações realizadas pela transação até o commit, conforme descrito em materiais acadêmicos como "Database System Concepts" de Silberschatz, Korth e Sudarshan.

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

esperar o Marlon vir comentar nessa kkkkkkkkkkk, achei que quando tinha commit, n era mais refeita

Certo

  • Atomicidade: cada instrução de uma transação (leitura, gravação, atualização ou exclusão de dados) é tratada como uma única unidade. Ou as instruções são todas executadas ou nenhuma é executada. Essa propriedade evita perda ou corrupção de dados, como quando a fonte de dados de streaming falha no meio do fluxo.
  • Consistência: garante que as transações apenas modifiquem as tabelas de maneiras predefinidas e previsíveis. A consistência transacional mantém as tabelas consistentes em caso de corrupção de dados ou erros, evitando resultados de execução não intencionais.
  • Isolamento: vários usuários podem ler e gravar na mesma tabela ao mesmo tempo, mas as transações são isoladas para que as simultâneas não interfiram ou afetem umas às outras. Na verdade, cada solicitação é tratada como se estivesse ocorrendo de forma independente, mesmo que ocorram simultaneamente.
  • Durabilidade: garante que as alterações de dados feitas por transações executadas com sucesso sejam preservadas, mesmo em caso de falha do sistema.

Fonte: https://www.databricks.com/br/glossary/acid-transactions

 Write-Ahead Logging (WAL): Todas as alterações da transação são primeiro escritas no log (em disco).

Gab C.

Vamos ver se eu consigo ajudar kkkkk

[1] COMMIT_TRANSACTION. Esta sinaliza um final bem-sucedido da transação, de modo que quaisquer mudanças (atualizações) executa das pela transação podem ser seguramente confirmadas (committed) ao banco de dados e não serão desfeitas.

ROLLBACK (ou ABORT). Esta operação sinaliza que a transação foi encerrada sem sucesso, de modo que quaisquer mudanças ou efeitos que a transação possa ter aplicado ao banco de dados precisam ser desfeitos.

[1] A transação então grava um registro de confirmação [commit, T] no log. Se houver uma falha no sistema, podemos pesquisar de volta no log para todas as transações T que gravaram um registro [start_transaction, T] no log.

[2] As transações também têm a garantia de serem duráveis (ou persistentes) no sentido de que, uma vez que uma transação execute uma operação COMMIT com sucesso, suas atualizações terão a garantia de serem aplicadas ao banco de dados, mesmo que ocorra alguma falha subsequente do sistema em determinado instante.

[3] Resumidamente, pelo que entendi, caso ocorra uma falha no BD, você consegue retornar ao último ponto (commit), e refazer o que já tinha sido gravado no Banco de Dados. Afinal, temos que lembrar das propriedades do BD, ACID.

Obs: Veja que Navathe diz que não será desfeita, isso porque mesmo que haja falha ela ainda irá persistir e você conseguirá refazê-la.

Fonte:

[1] Navathe

[2] C. J. Date

Qualquer erro me avisem.

Certo.

O item descreve corretamente o conceito de transação confirmada (commit) em sistemas de banco de dados com suporte a logs de transações.

Quando uma transação é confirmada (COMMIT), o SGBD garante que todas as operações realizadas por ela foram:

  • Gravadas de forma permanente no log de transações,
  • Em seguida, sincronizadas com o armazenamento físico (disco),
  • De tal forma que, em caso de falha do sistema, essas operações possam ser refeitas (redo) durante a recuperação.

Papel do log de transações:

Ele armazena todas as mudanças realizadas pelas transações antes que essas mudanças sejam aplicadas definitivamente nos arquivos de dados.

Em caso de falha (ex: queda de energia), o banco pode:

  • Refazer (REDO) transações confirmadas,
  • Desfazer (UNDO) transações não confirmadas.

By Futuro DEV Estável.

Clique para visualizar este comentário

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