1 / 17

Introdução

Gdes. bancos de dados: múltiplos usuários múltiplas transações Concorrência: multiprocessamento multiprogramação Transação: unidade lógica com uma ou mais operações totalmente executada ou não-executada. Introdução. Lost Update

zena
Download Presentation

Introdução

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gdes. bancos de dados: múltiplos usuários múltiplas transações Concorrência: multiprocessamento multiprogramação Transação: unidade lógica com uma ou mais operações totalmente executada ou não-executada Introdução

  2. Lost Update Transação A - Transferência de R$50 da conta x para a conta y. Transação B - Retirada de R$20 da conta y. Nec. de Controle de Concorrência Transação ATransação B (1) read(x) (2) x := x - 50 (3) write(x) (4) read(y) (5) read(y) (6) y := y - 20 (7) y := y + 50 (8) write(y) (9) write(y) Suponhamos que o saldo da conta y tivesse R$15 antes das duas operações. Ao final, ao invés do valor esperado de R$45 (15 + 50 -20) ela terá R$ -5!

  3. Dirty Read • Transação A - Transferência de R$50 da conta x para a conta y. • Transação B - Retirada de R$20 da conta x. Transação ATransação B read(x) x := x - 50 write(x) read(x) x := x - 20 write(x) read(y) abort A transação B foi realizada com base num dado escrito por uma transação que falhou. O valor de x não é mais válido (atomicidade de A).

  4. Agregação Incorreta • Cálculo de função de agregação (soma, multiplic...) enquanto itens estão sendo atualizados • Leitura não-repetida: • Duas leituras de um mesmo item com valores diferentes (atualização do valor por outra transação)

  5. Necessidade de Recuperação de Falhas • Falhas no computador • Erros de transação ou do sistema • Condições de exceção: cancelam. de trans. • Imposição do controle de concorrência: “deadlocks” • Falha de disco • Problemas físicos e catástrofes • Obs: Falhas 1 a 4: • Mais comuns • Manutenção de informações para recuperação

  6. Ativa Parcialmente comitted Committed Falhada Terminada Estados da Transação Fim trans. PARC. COMMITTED ATIVA Commit Abortar Abortar COMMITTED Início trans. FALHADA TERMINADA

  7. Log grava operacões das transações: leitura, escrita, confirm. (commit) e aborto Commit Todas as operações executadas com sucesso Efeito de todas as operações registrado no log Grava-se registro de “commit” no log Possibilidade de desfazer ou refazer (se houve commit) com base no log Log e Commit

  8. Propriedades de uma transação: Atomicidade Transações não podem ser executadas parcialmente. Consistência (Preservação da) Supõe-se que cada transação, isoladamente, preserva a consistência da base de dados. Independência Os resultados de uma transação não podem estar visíveis para as demais até que a primeira tenha terminado (Commit). Durabilidade Os resultados escritos por uma transação bem sucedida no BD não podem ser perdidos por falhas. Propriedades Desejáveis de Transações

  9. Ordem de exec. de operações das transações concorrentes Respeita a ordenação relativa das operações de uma transição Operações de interesse: wi(X), ri (X): write e read do item x pela trans. i. ci,ai: commit e abort da trans. i Conflito de op. A e op. B A e B em diferentes trans. acessam mesmo item X Uma das op. é de escrita Escalonamento de Transações

  10. Inclusão de todas as operações de todas as trans. Última op. de cada trans. é commit ou abort Manut. da ordem original entre ops. de uma mesma transação P/ quaisquer ops. conflitantes: ordem definida (obs: escalonamento poderia estabelecer apenas ordem parcial) Escalonamento Completo

  11. Recuperáveis: Transação “committed” nunca é desfeita Espera confirmação (commit) das transações que escreveram valores lidos Recup. complexa, mas possível Exs: r1(X); w1(X); r2(X); r1(Y);w2(X);c2; a1: não recuperável r1(X); w1(X); r2(X); r1(Y);w2(X);c1; c2: recuperável r1(X); w1(X); r2(X); r1(Y);w2(X);a1; a2: recuperável, mas com rollback em cascata Evitam Rollback em Cascata (ERC): Leitura apenas de valores gravados por transações “committed” Ex: r1(X); w1(X); r2(Z); r1(Y); c1; r2(X); w2(X); c2 Caracterizando Escalon. c/ base na Recup.

  12. Escalonamento Estrito Item X não pode ser lido ou gravado até que última transação que alterou X seja committed (ou aborted). Recuperação simples: basta restaurar valor antigo Obs: restauração do valor antigo em esquema ERC mas não estrito leva a erro. Ex: X= 9 inicialmente w1(X,5); w2(X,8); a1;c2; Restabeleceria 9 erradamente após c2 Caracterizando Escalon. c/ base na Recup. (2)

  13. Escalonamentos seriais: transações inteiras em ordem serial (s/ entrelaçamento) correto (indep. da ordem) desperdício de tempo: espera por E/S transações longas bloqueariam acesso ao BD Escalonamento Serializável: equivalente a algum escal. serial Serialização de Escalonamentos

  14. Em resultado: produzem mesmo resultado final pode não ser suficiente equivalência pode depender da entrada Em conflitos ordem de qq. 2 ops. em conflito é a mesma Serializável por conflito: equivalente em conflito a algum escal. serial Ex: r1(X); r2(X); w1(X); w2(X) não é serializável por conflito Equivalência de Escalonamentos

  15. Teste: grafos (dirigidos) de precedência nós são transações transição de T1 p/ T2 se há ops. em conflito nas trans. e op. de T1 ocorre antes ciclos: escalonamento não é serializável Usos admitir como correto o escalonamento serializável permitir entrelaçamentos: ganho de eficiência protocolos para garantir serialização Serialização

  16. EquivalênciaVisões: exigir que valores lidos por uma op. foram escritos pela mesma op. nos dois escal. permite gravação cega seriável em visões: equivalente em visões a esc. serial teste complicado Serialização pode ser muito restritiva. Serialização (II)

  17. Sem begin_transaction SQL2: SET TRANSACTION define características modo de acesso (read only ou read/write) isolamento read uncommitted read committed repeatable read serializable evita leitura suja evita leitura não repetitiva evita “fantasmas”: novas linhas inseridas em tabela não detectadas Suporte na SQL

More Related