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

Post on 23-Aug-2020

4 views 0 download

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

http://www.tiagodemelo.info

Conceitos e teorias de processamento de transações

Prof. Tiago Eugenio de Melotiagodemelo@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.

3http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

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

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

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)].

6http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Etapas da transação de leitura:

7http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Etapas da transação de escrita:

8http://www.tiagodemelo.info

Sistemas monousuários e multiusuários

Exemplos de transações

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.

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.

11http://www.tiagodemelo.info

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

Problema do resumo incorreto

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.

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.

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.

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)

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

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.

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.

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.

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.

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.

22http://www.tiagodemelo.info

Suporte para transação em SQL

Nível de isolamento

23http://www.tiagodemelo.info

Suporte para transação em SQL

Exemplo de uma transação SQL

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.

25http://www.tiagodemelo.info

Referências

Capítulo 21 do livro: