conceitos e teorias de processamento de transações prof ... · conceitos e teorias de...
TRANSCRIPT
http://www.tiagodemelo.info
Conceitos e teorias de processamento de transações
Prof. Tiago Eugenio de [email protected]
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.