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

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

© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.

Apresentações semelhantes


Apresentação em tema: "© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara."— Transcrição da apresentação:

1 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara

2 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 2 Objetivos 1.Compreender a necessidade do uso das transações; 2.Entender o que é transação; 3.Conhecer as características de uma transação.

3 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 3 Bibliografia 1.ELMASRI, Ramez; NAVATHE, Shamkant B, Sistemas de banco de dados. 4. ed. Pearson Brasil, Capítulo 19 2.KORTH, Henry F.; SILBERSCHATZ, Abraham Sistemas de banco de dados. 3. ed, São Paulo: Makron Books, Capítulo 13

4 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 4 Sumário 1.Relembrando Conceitos 2.Por que transação? 3.Definição de transação 4.Propriedades da transação 5.Estados da transação 6.Fechamento

5 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 5 Relembrando Conceitos Banco de Dados –Coleção de dados relacionados. Ex: Planilha, Fichário, SGBD, etc. Sistema Gerenciador de Banco de Dados (SGBD) –Coleção dos programas que permitem os usuários criar e manipular um banco de dados; Sistema de Banco do Dados –União do SGBD + Base de dados

6 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 6 Sistema de Banco de Dados Relembrando Conceitos Meta-dados Banco de dados SGBD Software de acesso ao dados Software de processamento das consultas Aplicativo

7 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 7 Relembrando Conceitos Características de SGBD Natureza auto-descritiva (Meta-dados) Abstração dos dados Suporte a múltiplas visões Compartilhamento dos dados Processamento de Transações Multi-usuário

8 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 8 Sumário 1.Relembrando Conceitos 2.Por que transação? 3.Definição de transação 4.Propriedades da transação 5.Estados da transação 6.Fechamento

9 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 9 Por que existe a transação? write(B) B = B - A write(B) B = B + 50 read(B) write(A) read(B) write(A) A = A+A*0.1 read(A) A = A – 50 read(A) P2P2 P1P1 P 1 interfere em P 2 P 2 interfere em P 1 Problema da perda da atualização

10 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 10 Por que existe a transação? write(B) B = B / A read(B) write(A) A = A+A*0.1 read(A) write(A) A = A – 50 read(A) P2P2 P1P1 P 1 falha Desfazer operações P 2 atualiza valor inválido Problema da atualização temporária

11 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 11 Por que existe a transação? print(S) S = S + B read(B) write(A) A = A+A*0.1 read(A) S = S + A S = 0 read(A) P2P2 P1P1 P 1 valor inconsistente P 2 atualiza valor de A Problema da totalização dos valores

12 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 12 Sumário 1.Relembrando Conceitos 2.Por que transação? 3.Definição de transação 4.Propriedades da transação 5.Estados da transação 6.Fechamento

13 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 13 Transação Unidade lógica de processamento em um SGBD Composta de uma ou mais operações –seus limites podem ser determinados em SQL De forma abstrata e simplificada, uma transação pode ser encarada como um conjunto de operações de leitura e escrita de dados read(x) x = x – i read(y) y = y * x write(x) write(y) TxTx lê o dado X do BD e o armazena na variável X grava no dado Y do BD o valor da variável Y

14 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 14 Sumário 1.Relembrando Conceitos 2.Por que transação? 3.Definição de transação 4.Propriedades da transação 5.Estados da transação 6.Fechamento

15 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 15 Propriedades de uma Transação Requisitos que sempre devem ser atendidos por uma transação Chamadas de propriedades ACID –Atomicidade –Consistência –Isolamento –Durabilidade ou Persistência

16 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 16 Atomicidade Princípio do Tudo ou Nada –ou todas as operações da transação são efetivadas com sucesso no BD ou nenhuma delas se efetiva preservar a integridade do BD Responsabilidade do subsistema de recuperação contra falhas (subsistema de recovery) do SGBD –desfazer as ações de transações parcialmente executadas

17 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 17 Atomicidade Deve ser garantida, pois uma transação pode manter o BD em um estado inconsistente durante a sua execução read(x) x.saldo = x.saldo – write(x) read(y) y.saldo = y.saldo write(y) T x (transferência bancária) saldonúmero Contas x y falha! execução

18 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 18 Consistência Uma transação sempre conduz o BD de um estado consistente para outro estado também consistente Responsabilidade conjunta do –DBA definir todas as RIs para garantir estados e transições de estado válidos para os dados –exemplos: salário > 0; salário novo > salário antigo –subsistema de recovery desfazer as ações da transação que violou a integridade

19 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 19 Isolamento No contexto de um conjunto de transações concorrentes, a execução de uma transação T x deve funcionar como se T x executasse de forma isolada –T x não deve sofrer interferências de outras transações executando concorrentemente Responsabilidade do subsistema de controle de concorrência (scheduler) do SGBD garantir escalonamentos sem interferências

20 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 20 Isolamento write(B) B = B - A read(B) write(B) B = B + 50 read(B) write(A) A = A+A*0.1 read(A) write(A) A = A – 50 read(A) T2T2 T1T1 write(B) B = B - A write(B) B = B + 50 read(B) write(A) read(B) write(A) A = A+A*0.1 read(A) A = A – 50 read(A) T2T2 T1T1 escalonamento válidoescalonamento inválido T 1 interfere em T 2 T 2 interfere em T 1

21 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 21 Durabilidade ou Persistência Deve-se garantir que as modificações realizadas por uma transação que concluiu com sucesso persistam no BD –nenhuma falha posterior ocorrida no BD deve perder essas modificações Responsabilidade do subsistema de recovery –refazer transações que executaram com sucesso em caso de falha no BD

22 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 22 Sumário 1.Relembrando Conceitos 2.Definição de transação 3.Por que transação? 4.Propriedades da transação 5.Estados da transação 6.Fechamento

23 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 23 Estados de uma Transação Uma transação é sempre monitorada pelo SGBD quanto ao seu estado –que operações já fez? concluiu suas operações? deve abortar? Estados de uma transação –Ativa, Em processo de efetivação, Efetivada, Em processo de aborto, Concluída –Respeita um Grafo de Transição de Estados

24 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 24 Transição de Estados de uma Transação Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso reads e writes encerramento sem sucesso

25 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 25 Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso transação deve ser desfeita Estado inicial de toda transação selecionada para execução Enquanto ativa, uma transação executa uma ou mais operações read e write reads e writes Transição de Estados de uma Transação

26 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 26 encerramento sem sucesso Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso reads e writes Entra nesse estado após executar sua última operação (solicitação de COMMIT) Neste momento, o SGBD precisa garantir que as suas atualizações sejam efetivadas com sucesso (não sofra falhas) – aplicação de técnicas de recovery Transição de Estados de uma Transação

27 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 27 Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso reads e writes Entra nesse estado após o SGBD confirmar que todas as modificações da transação estão garantidas no BD (COMMIT OK) – exemplos: gravação em Log, descarga de todos os buffers em disco Transição de Estados de uma Transação encerramento sem sucesso

28 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 28 Transição de Estados de uma Transação Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso reads e writes encerramento sem sucesso Entra nesse estado se não puder prosseguir a sua execução pode passar para esse estado enquanto ativa (I) ou em processo de efetivação (II) – exemplo (I): violação de RI – exemplo (II): pane no S.O. suas ações já realizadas devem ser desfeitas (ROLLBACK)

29 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 29 encerramento sem sucesso Transição de Estados de uma Transação Ativa Em Processo de Efetivação Efetivada Em Processo de Aborto Concluída iniciar transação finalizar transação transação deve ser desfeita conclusão da transação com sucesso encerramento com sucesso conclusão da transação sem sucesso reads e writes Estado final de uma transação Indica uma transação que deixa o sistema – as informações da transação mantidas em catálogo podem ser excluídas operações feitas, dados manipulados, buffers utilizados,... – se a transação não concluiu com sucesso, ela pode ser reiniciada automaticamente

30 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 30 Sumário 1.Relembrando Conceitos 2.Definição de transação 3.Por que transação? 4.Propriedades da transação 5.Estados da transação 6.Fechamento

31 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 31 Gerência Básica de Transações T 1 inicia Ações da Aplicação ou Usuário Ações do SGBD inicia ações para garantir Atomicidade de T 1 T 1 submete operações DML executa operações DML, garantindo Isolamento de T 1, e testa RIs imediatas, com possível rollback e msg erro, para garantir Consistência de T 1 T 1 termina testa RIs postergadas, com possível rollback e msg erro, para garantir Consistência de T 1 executa ações para garantir Durabilidade de T 1 confirma o término de T 1 para a aplicação/usuário

32 © Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 32 Fechamento 1.Uso da transação Facilita o desenvolvimento de aplicações: Garante a consistência dos dados; Se responsabiliza pelo controle de concorrência; 2.Um SGBD tradicional deve suportar as propriedades ACID; 3.Uma transação possui vários estados: –Ativa, Em processo de efetivação, Efetivada, Em processo de aborto, Concluída 4.A operação COMMIT deve ser utilizada para solicitar a efetivação da transação 5.A operação ROLLBACK deve ser utilizada para solicitar o aborto da transação


Carregar ppt "© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara."

Apresentações semelhantes


Anúncios Google