A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Cap. 19 – Conceitos sobre Proc. de Transações 1 Introdução Gdes. bancos de dados: – múltiplos usuários –múltiplas transações Concorrência: –multiprocessamento.

Apresentações semelhantes


Apresentação em tema: "Cap. 19 – Conceitos sobre Proc. de Transações 1 Introdução Gdes. bancos de dados: – múltiplos usuários –múltiplas transações Concorrência: –multiprocessamento."— Transcrição da apresentação:

1 Cap. 19 – Conceitos sobre Proc. de Transações 1 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

2 Cap. 19 – Conceitos sobre Proc. de Transações 2 Nec. de Controle de Concorrência 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. Transação A Transaçã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 ( ) ela terá R$ -5!

3 Cap. 19 – Conceitos sobre Proc. de Transações 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 A Transaçã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 Cap. 19 – Conceitos sobre Proc. de Transações 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 Cap. 19 – Conceitos sobre Proc. de Transações 5 Necessidade de Recuperação de Falhas 1. Falhas no computador 2. Erros de transação ou do sistema 3. Condições de exceção: cancelam. de trans. 4. Imposição do controle de concorrência: deadlocks 5. Falha de disco 6. Problemas físicos e catástrofes Obs: Falhas 1 a 4: Mais comuns Manutenção de informações para recuperação

6 Cap. 19 – Conceitos sobre Proc. de Transações 6 Estados da Transação Ativa Parcialmente comitted Committed Falhada Terminada ATIVA FALHADA PARC. COMMITTED COMMITTED TERMINADA Fim trans. Início trans. Abortar Commit

7 Cap. 19 – Conceitos sobre Proc. de Transações 7 Log e Commit 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

8 Cap. 19 – Conceitos sobre Proc. de Transações 8 Propriedades Desejáveis de Transações Propriedades de uma transação: –A tomicidade Transações não podem ser executadas parcialmente. –C onsistência (Preservação da) Supõe-se que cada transação, isoladamente, preserva a consistência da base de dados. –I ndependência Os resultados de uma transação não podem estar visíveis para as demais até que a primeira tenha terminado (Commit). –D urabilidade Os resultados escritos por uma transação bem sucedida no BD não podem ser perdidos por falhas.

9 Cap. 19 – Conceitos sobre Proc. de Transações 9 Escalonamento de Transações 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: –w i (X), r i (X): write e read do item x pela trans. i. –c i,a i : 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

10 Cap. 19 – Conceitos sobre Proc. de Transações 10 Escalonamento Completo 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)

11 Cap. 19 – Conceitos sobre Proc. de Transações 11 Caracterizando Escalon. c/ base na Recup. Recuperáveis: –Transação committed nunca é desfeita –Espera confirmação (commit) das transações que escreveram valores lidos –Recup. complexa, mas possível –Exs: r 1 (X); w 1 (X); r 2 (X); r 1 (Y);w 2 (X);c 2 ; a 1 : não recuperável r 1 (X); w 1 (X); r 2 (X); r 1 (Y);w 2 (X);c 1 ; c 2 : recuperável r 1 (X); w 1 (X); r 2 (X); r 1 (Y);w 2 (X);a 1 ; a 2 : recuperável, mas com rollback em cascata Evitam Rollback em Cascata (ERC): –Leitura apenas de valores gravados por transações committed –Ex: r 1 (X); w 1 (X); r 2 (Z); r 1 (Y); c 1 ; r 2 (X); w 2 (X); c 2

12 Cap. 19 – Conceitos sobre Proc. de Transações 12 Caracterizando Escalon. c/ base na Recup. (2) 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 w 1 (X,5); w 2 (X,8); a 1 ; c 2 ; Restabeleceria 9 erradamente após c 2

13 Cap. 19 – Conceitos sobre Proc. de Transações 13 Serialização de Escalonamentos 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

14 Cap. 19 – Conceitos sobre Proc. de Transações 14 Equivalência de Escalonamentos 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: r 1 (X); r 2 (X); w 1 (X); w 2 (X) não é serializável por conflito

15 Cap. 19 – Conceitos sobre Proc. de Transações 15 Serialização 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

16 Cap. 19 – Conceitos sobre Proc. de Transações 16 Serialização (II) 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.

17 Cap. 19 – Conceitos sobre Proc. de Transações 17 Suporte na SQL 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


Carregar ppt "Cap. 19 – Conceitos sobre Proc. de Transações 1 Introdução Gdes. bancos de dados: – múltiplos usuários –múltiplas transações Concorrência: –multiprocessamento."

Apresentações semelhantes


Anúncios Google