Processamento de Transação - ppt carregar
PublicouGabrielle Coronel Alterado mais de 6 anos atrás
Apresentação em tema: "Processamento de Transação"— Transcrição da apresentação:
1 Processamento de Transação
Por Márcia Rodrigues DIMAp
2 Roteiro Introdução Necessidade de Controle de Concorrência
Necessidade do Controle de Recuperação Transações Schedules e Recuperabilidade Seriabilidade de Schedules Considerações finais DIMAp
3 Introdução Sistemas Multi-usuário e Mono-Usuário
sistemas operacionais multiprogramados Modelo Intercalado X Concorrente Transação: programa que acessa ou muda o conteúdo de um BD Operações de Leitura / Escrita read_item (X) e write_item(X) DIMAp
4 Introdução Atualização do disco - realizada pelo Gerenciador de Recuperação ou Sistema Operacional Controle de Concorrência e Mecanismos de Recuperação estão preocupados com os acessos ao BD através transação DIMAp
5 Necessidade do Controle de Concorrência
Seja um BD de reserva de linha aérea, cada registro possui informações dos vôos como o número de reservas. T1 T2 Read(X) X=X-N write(X) read (Y) Y=Y+N write (Y) Read(X) X=X+M write(X) Para N = 5, M = 4 e X = 80 DIMAp
6 Necessidade de Controle de Concorrência
Problema da atualização perdida: ocorre quando 2 transações que acessam o mesmo item do BD possuem operações intercaladas tornando o valor do item incorreto. Ex. A transação T1 e T2 são submetidas ao mesmo tempo. O valor do item X será incorreto DIMAp
7 Necessidade do Controle de Concorrência
Dirty Read : quando uma transação atualiza o BD e ocorre uma falha. O item atualizado é acessado por outra transação antes de mudar para o valor original T1 T2 Read(X) X=X-N write(X) read (Y) Read(X) X=X+M write(X) DIMAp
8 Necessidade de Controle de Concorrência
Problema de Análise Incorreta: ocorre qdo uma transação está somando dados de um registro e outras estão atualizando alguns destes registros Outro problema quando uma transação ler duas vezes um item e ao mesmo tempo outra transação atualiza o valor entre as duas leituras DIMAp
9 Necessidade do Controle de Recuperação
O SGBD não pode permitir que algumas operações da transação T sejam aplicadas ao BD enquanto outras operações de T não foram. Isto ocorre qdo uma transação falha Tipos de Falhas: 1. falha no computador (system crash) erros de software e hardware 2. Erro no sistema ou na transação (divisão por zero, overflow) DIMAp
10 Necessidade de Controle de Recuperação
3. Erros locais ou excessões detectadas pela transação (dados da transação não foram encontrados 4. Imposição do controle de concorrência - o método de controle de concorrência pode decidir abortar uma transação 5. Falha no disco 6. Problemas físicos - erros de operação, fogo, sabotagem, etc As falhas de 1 a 4 são mais comuns e o sistema deve ter informações para recuperar-se destas falhas DIMAp
11 Transações Estados da transação e Operações Adicionais
Fim da Transação ativo aborta Parcialmente commited commit committted falho Terminado DIMAp
12 Transações Inicio da transação:
Leitura e Escrita: operações de leitura e escrita no BD que são executadas como parte da transação Fim da transação: checar se as mudanças pela transação podem ser aplicadas ou se a transação viola o controle de concorrência Transação_commit: final da transação com sucesso Rollback(abort): final sem sucesso DIMAp
13 Transações Técnicas de Recuperação usam as operações
undo: similar ao rollback é aplicado a uma operação e não a toda transação redo: certas operações devem ser refeitas para garantir que todas as operações da transação committed foram aplicadas com sucesso DIMAp
14 Sistema de Log Para auxiliar na recuperação de falhas
Log: guarda as informações de todas as operações que afetam o BD Tipos de entradas no log: [start_transaction, T] [write_item,T,X,valor antigo, valor novo] [read_item,T,X] [commit,T] [abort,T] Obs.: o log pode ser reduzido apenas a operações de gravação DIMAp
15 Sistema Log Antes da transação alcançar seu ponto de commit, qualquer porção do log que não tenha sido escrito no disco deve ser escrito - processo de forçar a escrita Checkpoints: outro tipo de entrada no Log todas as transações que tenham as entradas [commit,T] no log antes da entrada checkpoint não precisarão ser refeitas DIMAp
16 Sistema Log SGBD deve decidir qual o intervalo entre um checkpoint e outro (medido em tempo ou número de transações "committed") Ações do checkpoint: suspender a execução das transações temporariamente forçar a escrita de todas as operações de atualização das transações committed Escrever o registro checkpoint no log e forçar a escrita no log retomar a execução das transações DIMAp