Transacoes em banco de dados pt1

9,725 views

Published on

Tradução (parcial) da apresentação criada por Svetlin Nakov.

Published in: Technology
  • Eu necessito de sua ajuda para completar o meu gerençiamento de dados,em numeros de contas ,numeros de cartões,valores em banco em todo o mundo.Em nome de,Victor manuel rocha fitas da graça.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Transacoes em banco de dados pt1

  1. 1. Transações e Gerenciamento de Transações em Bancos de Dados Tradução do Orignal em Ingles de Svetlin Nakov National Academy for Software Development academy.devbg.org Tradução e Adaptação:Vinicius Augustus Paluch Versão Original disponível em : http://www.slideshare.net/nakov/svetlin-nakov-database-transactions
  2. 2. Agenda <ul><li>O que são Transações? </li></ul><ul><li>Conceito ACID de Transações </li></ul><ul><li>Problemas de Concorrência </li></ul><ul><li>Técnicas de controle concorrência </li></ul><ul><li>Estratégias de Bloqueio (Locking) </li></ul><ul><ul><li>Bloqueio Otimista e Pessimista </li></ul></ul><ul><ul><li>Deadlocks </li></ul></ul><ul><li>Transações e Recuperação </li></ul>
  3. 3. Agenda (2) <ul><li>Transações na Linguagem SQL </li></ul><ul><li>Niveis de Isolamento de Transações </li></ul><ul><li>Onde e Quando usar Transações </li></ul>
  4. 4. O que são Transações?
  5. 5. Transactions <ul><li>Transações são sequência de Ações ( Operações de Banco de Dados ) que são executadas como “um conjunto” : </li></ul><ul><ul><li>Ou todas são executas com sucesso </li></ul></ul><ul><ul><li>Ou Nenhuma delas </li></ul></ul><ul><li>Exemplo </li></ul><ul><ul><li>Um banco transfere dinheiro entre duas contas ( saque + deposito ) </li></ul></ul><ul><ul><li>Se qualquer uma das operações falhar, a trasferência será cancelada </li></ul></ul>
  6. 6. A Transaction Rollback Commit Leitura Gravação Gravação Situação Inicial (Durável) Situação Final Durável e consistente Coleção de leituras e gravações
  7. 7. Transactions Behavior <ul><li>Transações garantem a consistência e intregridade do banco de dados </li></ul><ul><ul><li>Todas as modificações da transação são “temporárias” </li></ul></ul><ul><ul><li>Modificações seão “persistidas” apenas após o Commit </li></ul></ul><ul><ul><li>A qualquer momento (Antes do commit) as modificações podem ser canceladas através de um Rollback </li></ul></ul><ul><li>Todas as operações são executadas como uma unidades ( ou nenhuma será) </li></ul>
  8. 8. Transactions: Examples <ul><li>Saque R$100 </li></ul><ul><li>Ler Poupança </li></ul><ul><li>Saldo Poupança = Saldo atual - 100 </li></ul><ul><li>Ler Saldo Ccorr. </li></ul><ul><li>Saldo Ccorr. = Saldo Anterior+ 100 </li></ul><ul><li>Gravar Saldo Poupança </li></ul><ul><li>Gravar saldo Ccorr. </li></ul><ul><li>Ler o saldo atual </li></ul><ul><li>Saldo = Saldo atual - Saque </li></ul><ul><li>Registrar Saldo </li></ul><ul><li>Entregar Dinheiro </li></ul>Transferência R$100
  9. 9. What Can Go Wrong? <ul><li>Algumas operações falham </li></ul><ul><ul><li>Ex., Flahas de Software, comunicação, Banco de Dados ou Hardware </li></ul></ul><ul><li>InterferÊncia entre transações </li></ul><ul><ul><li>O que acontece se multiplas alterações forem feitas na mesma conta? </li></ul></ul><ul><li>Parte dos dados é perdida … </li></ul><ul><ul><li>Comunicação falha entre o Saque e o Depósito. </li></ul></ul>
  10. 10. Transações ACID
  11. 11. Propriedade das Transações <ul><li>SGDBs possuem suporte imbutido à Transações </li></ul><ul><li>ACID Siginifica: </li></ul><ul><ul><li>A tomicidade </li></ul></ul><ul><ul><li>C onsistencia </li></ul></ul><ul><ul><li>I solamento </li></ul></ul><ul><ul><li>D urabilidade </li></ul></ul>
  12. 12. Atomicidade <ul><li>Atomicidade significa que </li></ul><ul><ul><li>Transações são execudas como uma UNIDADE </li></ul></ul><ul><ul><li>SGDB garante que todas as transações são executadas ou desfeitas </li></ul></ul><ul><li>Exemplos </li></ul><ul><ul><li>Transferência de valores entre contas </li></ul></ul><ul><ul><ul><li>Ou o Depósito+Saque são registrados com sucesso ou nenhum dos dois será </li></ul></ul></ul><ul><ul><ul><li>Em caso de falha o BD permanece inalterado </li></ul></ul></ul>
  13. 13. Consistencia <ul><li>Consistenc ia significa que: </li></ul><ul><ul><li>O Banco de dados está consitente (íntegro) antes e depois da transação </li></ul></ul><ul><ul><li>Apenas dados válidos foram gravados </li></ul></ul><ul><ul><li>A Transação não pode quebrar regras de integridade e respeita: </li></ul></ul><ul><ul><ul><li>Chaves primárias, estrangeiras e únicas </li></ul></ul></ul><ul><ul><li>Exemplo </li></ul></ul><ul><ul><ul><li>Transação não pode encerrar com chave duplicada </li></ul></ul></ul>
  14. 14. Isolamento <ul><li>Isolamento significa que </li></ul><ul><ul><li>Multiplas transações simultâneas não afetam umas as outras </li></ul></ul><ul><ul><li>Transações não enxergam dados não COMMITADOS. </li></ul></ul><ul><ul><li>O Nível de isolamento define o quanto uma transação “enxerga” alterações das outras </li></ul></ul><ul><ul><ul><li>Read committed, read uncommitted, repeatable read, serializable, etc. </li></ul></ul></ul><ul><li>Exemplo </li></ul><ul><ul><li>Gerentes podem ver transferências entre contas (débito ou crédito) mas não as 2 operações. </li></ul></ul>
  15. 15. Durabilidade <ul><li>Durabilidade significa que </li></ul><ul><ul><li>Se uma transação é confirmada (COMMIT) ela será persistente </li></ul></ul><ul><ul><ul><li>Não pode ser perdida nem desfeita </li></ul></ul></ul><ul><ul><li>Garantida através de LOGS de TRANSAÇÂO e Backup </li></ul></ul><ul><li>Exemplo </li></ul><ul><ul><li>Ápós concluida a transferência, a energia falha </li></ul></ul><ul><ul><li>Ao retornar, os dados continuam íntegros e registrados conforme o momento imediatamente anterior à falha </li></ul></ul>
  16. 16. Transações ACID e Bancos de Dados <ul><li>Bancos transacionais mais populares </li></ul><ul><ul><li>Oracle Database </li></ul></ul><ul><ul><li>Microsoft SQL Server </li></ul></ul><ul><ul><li>IBM DB2 </li></ul></ul><ul><ul><li>PostgreSQL </li></ul></ul><ul><ul><li>Borland InterBase / Firebird </li></ul></ul><ul><ul><li>MySQL só será compatícel com ACID se substituir a engine de armazenamento!!! </li></ul></ul>
  17. 17. Outras apresentações... <ul><li>Problemas de Concorrência </li></ul><ul><li>Técnicas de Controle de Concorrência </li></ul><ul><li>Estratégias de Bloqueio (Locking) </li></ul><ul><li>Transações e Recuperação (Recovery) </li></ul><ul><li>Transações em linguagem SQL </li></ul><ul><li>Níveis de Isolamento de Transações </li></ul>
  18. 18. Agradecimentos Tradução do Orignal em Ingles de Svetlin Nakov National Academy for Software Development academy.devbg.org

×