SóProvas


ID
606193
Banca
CESGRANRIO
Órgão
FINEP
Ano
2011
Provas
Disciplina
Banco de Dados
Assuntos

O representante de um fabricante de SGBD respondeu assim à pergunta de um cliente sobre o que aconteceria às transações efetivadas, caso viesse a faltar energia:
“Não se preocupe, o nosso produto mantém um log duplo de transações, armazenados em discos fisicamente separados. Quando o núcleo do SGBD for novamente ativado (colocado no ar), todas as transações efetivadas, mas cujas tabelas não tenham sido alteradas, serão reprocessadas, de modo que a base de dados estará totalmente consistente quando o sistema retornar.”
A situação descrita acima relaciona-se à propriedade a que uma transação deve atender denominada

Alternativas
Comentários
  • a) atomicidade ERRADO
    OU todas as operações da transação são efetivadas com sucesso no BD ou nenhuma delas se efetiva


    b) consistência ERRADO
    Uma transação sempre conduz o BD de um estado consistente para outro estadotambém consistente


    c) isolamento ERRADO
    A execução de uma transação Txdeve funcionar como seTxexecutasse de forma isolada


    d) durabilidade CERTO
    Deve-se garantir que as modificações realizadas por uma transação que concluiu com sucesso persistam no BD


    e) concorrência ERRADO, Não é propriedade de Transação


    •Requisitos que sempre devem ser atendidos por uma transação •Chamadas de propriedades ACID –Atomicidade –Consistência –Isolamento –Durabilidade ou Persistência
     
  • Apesar da resposta correta ser "Durabilidade", entendi como sendo "Atomicidade", pelo fato de que como não houve completamento das transações e elas estão sendo reprocessadas, o que resultaria no próprio conceito de "Atomicidade", ou todas são ou nenhuma é processada.
  • Mauricio, realmente esta questão gera dúvidas.
    Para entendermos o porquê de a resposta ser Durabilidade e não Atomicidade, precisamos relembrar os estados possíveis de uma transação.

    Quando uma transação é iniciada (begin transaction) ela segue para o estado 'Ativa', e permanece neste estado enquanto leituras e escritas estiverem sendo realizadas de acordo com os comandos que estiverem dentro desta transação.

    Quando a transação for terminada (end transaction), verificamos se todos os comandos dentro desta transação foram executados com sucesso ou não. Se todos obtiveram sucesso, a transação segue para o estado 'Parcialmente efetivada', também conhecido como 'Em processo de efetivação', caso contrário, ela segue para o estado 'Falha' ou 'Em processo de aborto'. É neste instante que garantimos a atomicidade, na mudança do estado 'Ativa' para um dentre os dois estados mencionados.

    Por último, se a transação está no estado 'Em processo de efetivação', as atualizações precisam ser refletidas no banco. Neste instante, ao realizar o Commit da transação ela passa para o estado de 'Efetivada', garantindo a propriedade da durabilidade.

    Na questão, o autor diz que as transações efetivadas cujas tabelas não tenham sido alteradas, serão reprocessadas. Deste modo, podemos interpretar que ele está tratando das transações que já estão no estado 'Em processo de Efetivação'. Sendo assim, a atomicidade já foi garantida antes da chegada neste estado, faltando somente agora garantir a durabilidade.

    Não sei se ficou claro, mas segue o link de uma aula de um professor da UFRN com uma melhor explicação e ilustração dos estados possíveis de uma transação:
    http://www.dimap.ufrn.br/~paulo.pires/cursos/bd/transacoes.pdf

    Abraço.
  • GABARITO: D

    Durabilidade: 

     Os  efeitos  de  uma  transação  confirmada  não  podem  ser desfeitos, a menos que outra transação modifique tais dados, sendo  que  se  deve  prevenir  falhas  durante  a  efetivação  da transação. 

  • Muita cara de pau uma questão dessas. A pessoa pode entender que é atomicidade também. E aí como fica? Entra com recurso, a banca anula se quiser, e os filhos dos grandes entram, como sempre, show!

  • Só lembrando: durabilidade garante atomicidade ;)

  • pra mim isso é consistência

  • Resposta: D

    Durabilidade: Os efeitos de uma transação em caso de sucesso devem persistir no banco de dados mesmo em casos de quedas de energia, travamentos ou erros. Essa propriedade garante que os resultados de uma transação serão permanentes e estarão disponíveis em definitivo, podendo ser desfeitos somente por outra transação subsequente. Para se defender contra a perda de energia, as transações (ou seus efeitos) devem ser registradas em uma memória não volátil.

    Meu resumo*

  • Gente, observem o trecho: "...o que aconteceria às transações efetivadas... "

    A Durabilidade garante que os resultados de uma transação sejam permanentes e estajam disponíveis em definitivo, se já foi, foi! Pode cair o mundo.

  • Note que o item fala em transações efetivadas, ou seja, aquelas que foram concluídas com sucesso. Nesse caso, o sistema irá garantir que essas transações tenham seus resultados corretamente gravados no banco de dados, mesmo em caso de falha posterior. Essa é a propriedade da durabilidade.