Conceitos e teorias de processamento de transações Prof ... · Conceitos e teorias de...

25
http://www.tiagodemelo.info Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo [email protected]

Transcript of Conceitos e teorias de processamento de transações Prof ... · Conceitos e teorias de...

Page 1: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

http://www.tiagodemelo.info

Conceitos e teorias de processamento de transações

Prof. Tiago Eugenio de [email protected]

Page 2: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

2http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Monousuário → um único usuário acessa o sistema por vez.

Exemplo: computador pessoal.

Multiusuário → vários usuários acessam o sistema simultaneamente.

A maioria dos sistema é multiusuário.

Page 3: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

3http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Multiprogramação → o s.o. executa vários programas (processos) ao mesmo tempo.

Page 4: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

4http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Transação → é um programa em execução que forma uma unidade lógica de processamento de banco de dados.

Uma transação pode incluir uma ou mais operações (inserção, exclusão ou modificação) no BD.

Limites de uma transação: begin transaction end transaction

Page 5: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

5http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

As transações podem ser apenas de leitura [read_item(x)] ou leitura-gravação [write_item(x)].

Page 6: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

6http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Etapas da transação de leitura:

Page 7: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

7http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Etapas da transação de escrita:

Page 8: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

8http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Exemplos de transações

Page 9: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

9http://www.tiagodemelo.info

Por que o controle de concorrência é necessário?

Problema da atualização perdida Esse problema ocorre quando duas transações que

acessam os mesmos itens do bd têm suas operações intercaladas de modo que isso torna o valor de alguns itens do bd incorreto.

Page 10: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

10http://www.tiagodemelo.info

Por que o controle de concorrência é necessário?

Problema da atualização temporária Esse problema ocorre quando uma transação

atualiza um item do bd e depois a transação falha por algum motivo.

Problema também conhecido como leitura suja.

Page 11: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

11http://www.tiagodemelo.info

Por que o controle de concorrência é necessário?

Problema do resumo incorreto

Page 12: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

12http://www.tiagodemelo.info

Por que o controle de concorrência é necessário?

Problema da leitura não repetitiva Uma transação T lê o mesmo item duas vezes e o

item é alterado por outra transação T1 entre as duas leituras.

Logo, T recebe dois valores diferentes para suas duas leituras do mesmo item.

Page 13: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

13http://www.tiagodemelo.info

Por que a recuperação é necessária?

Regra de ouro: O SGBD não deve permitir que algumas operações

de uma transação T sejam aplicadas ao bd enquanto que outras operações de T não o são, pois a transação inteira é uma unidade lógica de processamento de bd.

Page 14: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

14http://www.tiagodemelo.info

Por que a recuperação é necessária?

Tipos de falhas Falha do computador (falha do sistema). Ex: falha

de hardware. Um erro de transação ou do sistema. Ex: estouro

de inteiro. Erros locais ou condições de exceção detectadas

pela transação. Imposição de controle de concorrência. Falha de disco. Problemas físicos e catástrofes.

Page 15: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

15http://www.tiagodemelo.info

Conceitos de transação e sistema

Estados de transações Begin_transaction Read ou write End_transaction Commit_transaction Rollback (ou abort)

Page 16: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

16http://www.tiagodemelo.info

Conceitos de transação e sistema

Diagrama de transição de estado ilustrando os estados para execução da transação

Page 17: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

17http://www.tiagodemelo.info

Conceitos de transação e sistema

Log do sistema O log registra todas as operações de transação que

afetam os valores dos itens de bd, bem como outras informações de transação que podem ser necessárias para permitir a recuperação de falhas.

O arquivo de log precisa ser mantido no disco.

Page 18: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

18http://www.tiagodemelo.info

Propriedades desejáveis das transações

As transações devem atender às propriedades ACID.

Atomicidade. Uma transação é uma unidade de processamento atômica; ela deve ser realizada em sua totalidade ou não ser realizada de forma alguma.

Consistência. Uma transação deve preservar a consistência, significando que, se ela for completamente executada do início ao fim sem interferência de outras transações, deve levar o bd de um estado consistente para outro.

Page 19: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

19http://www.tiagodemelo.info

Propriedades desejáveis das transações

Isolamento. Uma transação deve parecer como se fosse executada isoladamente de outras transações, embora muitas delas estejam sendo executadas de maneira simultânea. Ou seja, a execução de uma transação não deve ser interferida por quaisquer outras transações que acontecem simultaneamente.

Durabilidade. As mudanças aplicadas ao bd pela transação confirmada precisam persistir no bd. Essas mudanças não devem ser perdidas por causa de alguma falha.

Page 20: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

20http://www.tiagodemelo.info

Suporte para transação em SQL

Não existe a instrução begin_transaction explícita no SQL.

Cada transação precisa ter uma instrução de fim explícita (COMMIT ou ROLLBACK).

Toda transação tem algumas características próprias:

Modo de acesso. Tamanho da área de diagnóstico. Nível de isolamento.

Page 21: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

21http://www.tiagodemelo.info

Suporte para transação em SQL

Modo de acesso READ ONLY. READ WRITE.

Tamanho da área de diagnóstico Especifica um valor inteiro que indica o número de

condições que podem ser mantidas de maneira simultânea na área de diagnóstico.

Essas condições fornecem informações de feedback (erros ou exceções) ao usuário ou programa nas n instruções SQL executadas mais recentemente.

Page 22: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

22http://www.tiagodemelo.info

Suporte para transação em SQL

Nível de isolamento

Page 23: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

23http://www.tiagodemelo.info

Suporte para transação em SQL

Exemplo de uma transação SQL

Page 24: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

24http://www.tiagodemelo.info

Exercícios

O que representa uma falha catastrófica? Para que é usado o log do sistema? O que signfica a sigla ACID? O que você entende por leitura suja? Discuta as ações tomadas pelas operações

read_item e write_item em um banco de dados.

Page 25: Conceitos e teorias de processamento de transações Prof ... ·  Conceitos e teorias de processamento de transações Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com

25http://www.tiagodemelo.info

Referências

Capítulo 21 do livro: