Beruflich Dokumente
Kultur Dokumente
Processamento de Transaes
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Transaes
Unidade lgica de processamento em um BD que inclui uma ou mais operaes de acesso:
leitura recuperao escrita insero, atualizao, remoo
Motivao
Origem
aplicaes comerciais e financeiras
Problemas
compartilhamento de dados ocorrncia de falhas
Exemplo de aplicao
Transferncia de fundos
1. 2. 3.
obter n. contas origem e destino, quantidade obter saldo conta origem se saldo >= quantidade ento
1.
Objetivos
Transparncia
Compartilhamento de dados Recuperao de falhas
Simplificao da programao
Operaes de transaes
Operaes bsicas: read_item(X): L um item do banco de dados chamado X colocando o valor em uma varivel de programa write_item(X): Escreve o valor de uma varivel de programa X em um item de banco de dados chamado X Operaes delimitadoras:
Begin transaction End transaction
Execuo de transaes
(a) Estado consistente 1 (b) Estado consistente 1 transao Estado consistente 2 Estados intermedirios inconsistentes
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Recuperao de falhas
Tipos de falha
falhas de transao
sem perda de informao
falhas de sistema
com perda de informao da memria voltil
falhas de comunicao
perda de mensagem, corrupo, duplicao, mensagens fora de ordem particionamento de rede
Verses
Histrico de verses Verso shadow
Log
mantm registro de todas as operaes de transaes que afetam os valores de itens do BD. Estas informaes podem ser necessrias para recuperao mantido no disco; no afetado por falhas
Log
1. 2.
3. 4.
5.
[start_transaction,T]: registra que a transao T comeou a executar [write_item,T,X,old_value,new_value]: registra que a transao T mudou o valor do item do BD X de old_value para new_value [read_item,T,X]: registra que a transao T leu o valor do item X do BD [commit,T]: registra que a transao T completou com sucesso e efeitos foram registrados no BD [abort,T]: registro que a transao T foi abortada
Sumrio
Noes bsicas Propriedades Estados Mecanismos no processamento de transaes
Recuperao de falhas Controle de concorrncia
Controle de concorrncia
transaes sequenciais
garantia de consistncia compromete desempenho
transaes concorrentes
entrelaamento de interferncia melhora desempenho operaes provoca
Controle de concorrncia
Tipos de interferncia
Atualizao perdida (lost update) Atualizao temporria (dirty read) Sumrio incorreto
Objetivos
evitar interferncia produzir histricos corretos
Exemplos de interferncia
Atualizao perdida
X=80, N=5, M=4
X=84
Sumrio incorreto
Histricos (Schedules)
Ordem de execuo de operaes de vrias transaes Dado um histrico S de n transaes T1, T2, ..., Tn:
a ordem das operaes de uma transao Ti em S deve ser a mesma em que ocorrem em Ti As operaes de uma transao podem ser intercaladas com outras transaes de S
Tipos de histricos:
seriais - consistncia serializveis - consistncia e concorrncia
Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita
Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1
Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita
Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1
Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita
Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1
Histricos - conflitos
Duas operaes em um histrico conflitam se:
elas pertencem a duas transaes diferentes, acessam o mesmo item de dado e uma das operaes de escrita
Exemplo:
r1(X); r2(X); w1(X); r1(Y); w2(X); c2; w1(Y); c1
Histrico serial
Um histrico S serial se, para cada transao T no histrico S, todas as operaes de T so executadas consecutivamente nesse histrico
Todo histrico serial mantm consistncia Limita concorrncia
Histrico serial
T1 r(X) X:=X-N w(X) r(y) Y:=Y+N w(Y) r(X) X:=X+M w(X) T2
Histrico Serializvel
Um histrico S serializvel se ele equivalente a algum histrico serial das mesmas n transaes Dizer que um histrico no serial serializvel equivalente a dizer que correto, porque equivalente a um histrico serial (que considerado correto) Histrico serializvel um histrico correto:
Deixa o BD em um estado consistente A intercalao apropriada e o resultado o mesmo se caso as transaes tivessem sendo executadas serialmente Porm mais eficiente dada a execuo concorrente
Equivalncia de histricos
Equivalncia quanto ao resultado: dois histricos so equivalentes quanto ao resultado se eles produzem o mesmo estado final no BD
S1: r(X); X:=X+10; w(X) S2: r(X); X:=X*1,1; w(X) Com valor de X inicial igual a 100
Equivalncia quanto ao conflito: dois histricos so equivalentes quanto ao conflito se a ordem de qualquer duas operaes conflitantes a mesma em ambos os histricos Serialidade quanto ao conflito: um histrico S serializvel quanto ao conflito se ele equivalente quanto ao conflito a algum histrico serial S
histrico
4.
Identifique somente as operaes read_Item (X) e write_Item (X) Construa um grafo de precedncia (grafo de serializao) um grafo com arestas direcionadas Uma aresta criada de Ti para Tj se uma das operaes em Ti aparece antes de uma operao conflitante em Tj Um histrico serializvel se, e somente se, o grafo de precedncia no tem ciclos
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Exemplos
Premissa:
Na medida em que a operao de leitura de uma transao l o resultado da mesma operao de escrita em ambos os histricos, as operaes de escrita devem produzir os mesmos resultados
menos
restritiva
que
Qualquer histrico serializvel quanto ao conflito tambm serializvel quanto viso, mas no vice-versa