SóProvas


ID
704248
Banca
CESPE / CEBRASPE
Órgão
MPE-PI
Ano
2012
Provas
Disciplina
Banco de Dados
Assuntos

A respeito de administração de banco de dados relacionais;
administração de usuários e perfis de acesso; controle de proteção,
integridade e concorrência; restauração de dados; tolerância a falhas
e continuidade de operação e otimização de desempenho, julgue os
itens de 85 a 87.

A garantia de consistência do banco de dados, na ocorrência de uma queda de sistema enquanto uma transação T, para transferência de 50 dólares de uma conta A para uma conta B, estiver sendo executada, após o débito em A e antes do crédito em B, que resulte em perda dos conteúdos de memória, requer a manutenção das informações de modificações em um sistema de armazenamento estável.

Alternativas
Comentários
  • ..."requer a manutenção das informações de modificações em um sistema de armazenamento estável." está falando dos logs de modificações, que servem entre outras funções para recuperar um bd em caso de falhas.
    Abraços, vamo que vamo.
  • So lembrando q os logs sao quase indestrutiveis, sempre podendo ser recuperado(apenas em casos de desastres fatais, ou disco corrompido, eles nao podem mais ser recuperados, porem, nesses casos, se nao houver plano B, como espelhamento ou backup, nem mesmo a base poderia ser recuperada, quando mais a consistencia!).
    Outro detalhe: ao contrario do q se poderia supor, o log nao eh gravado depois do commit, mas imediatamente antes da transacao ser confirmada(se fosse gravado depois da confirmacao, se houvesse uma queda de energia, o log poderia nao ser gravado e um possivel rollback tbm nao seria possivel. Entao, o log precisa ser gravado no intervalo entre o final das operacoes de uma transacao e seu commit.
  • Todas as alterações em uma transação ativa são gravados no log de UNDO (arquivo em memória estável), pois caso aconteça o que a questão citou (falha na memória), a transação será desfeita (desfeita pois ainda não foi dado COMMIT). Quando a transação for dado COMMIT, as alterações desta transação serão transferidos para uma outra área, também em memória estável (disco), chamado REDO. Nesta área, se houver alguma falha no banco, a transação poderá ser refeita.
  • A questão está correta (inclusive gabarito). O que está errado é o assunto: estamos tratando de recuperação e controle de transação.
  • A questão é boa, mas pra mim incompleta, e realmente não dá pra entender que tipo de conhecimento o avaliador quer testar.

    Pra ficar legal, teria que especificar que tipo de abordagem de recuperação está sendo utilizada. No caso ESPECÍFICO do problema, a técnica de recuperação baseada em Atualização Adiada (mesmo sem log, ou qualquer "sistema de armazenamento estável") garantiria o banco de dados consistente(lembrando que esta técnica só utiliza o Log para REDO em falhas durante a gravação física após o ponto de efetivação(Navathe 4ed. p443), o que não ocorre no caso). Visto que o débito da conta origem (A) não seria gravado no físico e após o restart a operação de débito seria descartada, e como a atualização do saldo de A só seria permanente após a transação alcançar o ponto de efetivação(o que não ocorreu no exemplo), naturalmente o saldo de A retornaria igual ao início da operação e o de B nem se fala, pois, nenhuma operação alterou seu valor.

    Resumindo, apenas o descarte do Buffer seria suficiente para manter o BD consistente, neste problema(ou qualquer outra similar), então, NÂO requer o tal "sistema de armazenamento ...etc... etc...."

    Na minha opinião claro. Gabarito Errado

  • Coloquei errado pois interpretei que "requer a manutenção das informações de modificações em um sistema de armazenamento estável." se referia a um ambiente estável, ou seja, em que seja raro quedas de sistemas. Mas ao que parece o tal do "sistema de armazenamento estável" se refere à volatilidade dos dados, ou seja, um disco rígido (onde ficaria o log), e não um buffer.