Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... ·...
-
Upload
trinhxuyen -
Category
Documents
-
view
217 -
download
0
Transcript of Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... ·...
![Page 1: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/1.jpg)
Processamento de Transações
Banco de Dados: Teoria e Prática
André SantanchèInstituto de Computação – UNICAMP
Outubro 2012
Pic
ture
by
Ben
Co
llin
s [h
ttp
://w
ww
.flic
kr.c
om
/ph
oto
s/g
rayl
igh
t/]
![Page 2: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/2.jpg)
Transação
▪ Execução concorrente de programas é essencial para a boa performance do SGBD
▫ Acesso a disco é frequente mas lento →concorrência melhora aproveitamento da CPU
▪ Perspectivas sobre os dados:
▫ Programa do usuário pode realizar vários →operação com os dados
▫ SGBD se preocupa apenas com leituras e →gravações
(Ramakrishnan, 2003b)
![Page 3: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/3.jpg)
Transação e Concorrência
▪ Transação: visão abstrata do SGBD sobre um programa do usuário:
▫ Uma sequência de leituras e gravações
▪ Perspectivas sobre a transação:
▫ Usuário sua transação sendo executada →individualmente
▫ SGBD concorrência intercalando →leituras/gravações de várias transações
![Page 4: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/4.jpg)
Modelo Simplificado do BD
▪ BD: coleção de itens nomeados
▪ Conceitos são independentes de granularidade
▪ Operações:
▫ ler(X): lê item X do BD e armazena na variável X do programa
▫ gravar(X): grava variável X do programa no item X do BD
(Elmasri, 2010)
![Page 5: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/5.jpg)
Operação de LeituraComo Acontece
▪ ler(X)
▫ encontra bloco X no disco
▫ copia bloco para buffer da memória principal (se ainda não estiver lá)
▫ copia o item X do buffer para a variável X da memória principal
(Elmasri, 2010)
X210X
30Y
bloco
210X
30Y
buffer
210X210X
30Y
bloco
210X
30Y
buffer
Memória Principal Banco de Dados
![Page 6: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/6.jpg)
Operação de LeituraComo Abstraímos
▪ ler(X)Memória Principal
X
Banco de Dados
210X
30Y
210X210X
30Y
![Page 7: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/7.jpg)
210X X
30Y
bloco
X
30Y
buffer
210X X
30Y
bloco
210X
30Y
buffer
Memória Principal Banco de Dados
210X210X
30Y
bloco
210X
30Y
buffer
Operação de GravaçãoComo Acontece
▪ gravar(X)
▫ encontra bloco X no disco
▫ copia bloco para buffer da memória principal (se ainda não estiver lá)
▫ copia variável X da memória principal para o buffer
▫ atualiza o buffer no disco
(Elmasri, 2010)
![Page 8: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/8.jpg)
Operação de GravaçãoComo Abstraímos
▪ gravar(X)Memória Principal
210X
Banco de Dados
X
30Y
210X210X
30Y
![Page 9: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/9.jpg)
Transação
Estados de Execução▪ BEGIN_TRANSACTION
▪ READ ou WRITE
▪ END_TRANSACTION
▪ COMMIT_TRANSACTION
▪ ROLLBACK (ou ABORT)
![Page 10: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/10.jpg)
Exemplo
Transação 1: Transferência
N livros
Prateleira X Prateleira Y
transferência
T1 ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
![Page 11: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/11.jpg)
Exemplo
Transação 2: Aquisição
T2 ler(X)X = X + Mgravar(X)
M livros
aquisição
Prateleira X
![Page 12: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/12.jpg)
T1 T2ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Transações ConcorrentesPlano de Execução
▪ Necessidade de um Plano de Execução
![Page 13: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/13.jpg)
T1 T2ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano de Execução Serial
![Page 14: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/14.jpg)
Plano de Execução SerialS
ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
![Page 15: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/15.jpg)
Plano de Execução IntercaladoT1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
![Page 16: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/16.jpg)
Plano de Execução IntercaladoS
ler(X)X = X – N
ler(X)X = X + M
gravar(X)ler(Y)
gravar(X)
Y = Y + Ngravar(Y)
![Page 17: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/17.jpg)
Plano de Execução (Schedule)
▪ Aplicável a várias transações simultâneas
▪ Lista de ações de conjunto de transações
▫ leitura, gravação, abort, commit
▪ Na schedule:
▫ S para transações T1, T
2, …, T
n
▫ ordem de ações no plano Ti = ordem das ações em
S
![Page 18: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/18.jpg)
Ordem Total e Parcial
![Page 19: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/19.jpg)
Exemplo
Transações Concorrentes
▪ Problemas?
T1 T2ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
![Page 20: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/20.jpg)
Problema?T1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
![Page 21: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/21.jpg)
ProblemaT1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
▪ Atualização Perdida
(Elmasri, 2010)
![Page 22: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/22.jpg)
ProblemaT1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
▪ Sobrescrita de dados alterados sem commit
▫ conflito WW (write/write)
(Ramakrishnan, 2003)
![Page 23: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/23.jpg)
Problema?
T1 T2ler(X)X = X – Ngravar(X)
ler(Y)***crash***
ler(X)X = X + Mgravar(X)
![Page 24: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/24.jpg)
ProblemaDirty Read
T1 T2ler(X)X = X – Ngravar(X)
ler(Y)***crash***
ler(X)X = X + Mgravar(X)
▪ Leitura de dados alterados sem commit
▫ conflito WR (write/read)
(Ramakrishnan, 2003)
▪ Atualização Temporária
(Elmasri, 2010)
![Page 25: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/25.jpg)
Exemplo
Transação 3: SumárioT3
soma = 0ler(A)soma = soma + A
...
ler(X)soma = soma + Xler(Y)soma = soma + Y
...
Problema?
![Page 26: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/26.jpg)
T1 T3
ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
soma = 0ler(A)soma = soma + A
...
ler(X)soma = soma + Xler(Y)soma = soma + Y
...
Intercalação com Transferência
Problema?
![Page 27: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/27.jpg)
ProblemaT1 T3
ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
soma = 0ler(A)soma = soma + A
...
ler(X)soma = soma + Xler(Y)soma = soma + Y
...
▪ Resumo Incorreto
(Elmasri, 2010)
![Page 28: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/28.jpg)
ProblemaT1 T3
ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
soma = 0ler(A)soma = soma + A
...
ler(X)soma = soma + Xler(Y)soma = soma + Y
...
▪ Leitura de dados alterados sem commit
▫ conflito WR
![Page 29: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/29.jpg)
ExemploTransação 4: Reserva de Livro
T4 ler(B)verifica(B)...ler(B)reserva(B)gravar(B)
![Page 30: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/30.jpg)
Intercalação da Reserva
Problema?
T4 T4'ler(B)verifica(B)
...
ler(B)reserva(B)gravar(B)
ler(B)verifica(B)...ler(B)reserva(B)gravar(B)
![Page 31: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/31.jpg)
Intercalação da Reserva
Problema?
T4 T4'ler(B)verifica(B)
...
ler(B)reserva(B)gravar(B)
ler(B)verifica(B)...ler(B)reserva(B)gravar(B)
▪ Leitura de dados alterados sem commit
▫ conflito WR (write/read)
(Ramakrishnan, 2003)
▪ Atualização Temporária
(Elmasri, 2010)
![Page 32: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/32.jpg)
ProblemaLeitura Não Repetitiva
T4 T4'ler(B)verifica(B)
...
ler(B)reserva(B)gravar(B)
ler(B)verifica(B)...ler(B)reserva(B)gravar(B)
▪ Leitura Não Repetitiva
▫ conflito RW (read/write)
(Ramakrishnan, 2003)
▪ Leitura Não Repetitiva
(Elmasri, 2010)
![Page 33: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/33.jpg)
Problemas com Transações Concorrentes
▪ Atualização Perdida
▪ Atualização Temporária
▪ Resumo Incorreto
▪ Leitura não repetitiva
(Elmasri, 2010)
![Page 34: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/34.jpg)
Problemas com Transações Concorrentes
▪ Conflito WR
▫ Leitura de dados alterados sem commit
▪ Conflito RW
▫ Leitura não repetível
▪ Conflito WW
▫ Sobrescrita de dados alterados sem commit
(Ramakrishnan, 2003)
![Page 35: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/35.jpg)
Propriedades ACID
▪ Atomicidade: todas as operações da transação acontecem ou nenhuma acontece
▪ Preservação de Consistência: a execução completa de uma transação faz o BD passar de um estado consistente para outro
▪ Isolamento: uma transação deve ser executada como se estivesse isolada das demais
▪ Durabilidade ou permanência: se uma transação é efetivada, seu efeito persiste
![Page 36: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/36.jpg)
Plano de Execução Restaurável
▪ Plano Restaurável
▫ T realiza commit somente depois que todas as transações cujos valores T leu realizam commit
▪ Plano Livre de Cascata (cascadeless)
▫ T só lê valores que foram alterados por transações que já realizaram commit
▪ Plano Estrito
▫ T só lê e/ou grava valores que foram alterados por transações que já realizaram commit
![Page 37: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/37.jpg)
Plano Serial e Serializável
▪ Plano Serial
▫ Transações completas são executadas em série
▫ Não há intercalação de operações entre transações
▪ Plano Serializável
▫ equivalente a algum plano serial
![Page 38: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/38.jpg)
T1 T2ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano Serial 1
![Page 39: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/39.jpg)
T1 T2
ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano Serial 2
![Page 40: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/40.jpg)
Plano Serializável?T1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
![Page 41: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/41.jpg)
Não SerializávelT1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
![Page 42: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/42.jpg)
T1 T2ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano Serializável?
![Page 43: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/43.jpg)
T1 T2ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Serializável
![Page 44: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/44.jpg)
Plano Serializável
Grafo de Precedência
![Page 45: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/45.jpg)
Grafo de Precedência
Algoritmo▪ Para cada transação crie um nó no grafo
▪ Para cada caso em S
▫ Tj ler(x) depois de Ti gravar(x)→ →◦ aresta(Ti Tj)→
▫ Tj gravar(x) depois de Ti ler(x)→ →◦ aresta(Ti Tj)→
▫ Tj gravar(x) depois de Ti gravar(x)→ →◦ aresta(Ti Tj)→
▪ Serializável sem ciclos→(Elmasri, 2010)
![Page 46: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/46.jpg)
T1 T2ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano Serial 1
T1 T2
Plano Serial 1
X
![Page 47: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/47.jpg)
T1 T2
Plano Serial 2
X
T1 T2
ler(X)X = X – Ngravar(X)ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Plano Serial 2
![Page 48: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/48.jpg)
Não SerializávelT1 T2
ler(X)X = X – N
gravar(X)ler(Y)
Y = Y + Ngravar(Y)
ler(X)X = X + M
gravar(X)
T1 T2
Plano Não Serializável
X
X
![Page 49: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/49.jpg)
T1 T2ler(X)X = X – Ngravar(X)
ler(Y)Y = Y + Ngravar(Y)
ler(X)X = X + Mgravar(X)
Serializável
T1 T2
Plano Serializável
X
![Page 50: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/50.jpg)
Equivalência
▪ Planos Conflito Equivalentes
▪ Equivalência de Visão
![Page 51: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/51.jpg)
Plano Conflito Serializável
▪ Planos Conflito Equivalentes
▫ Ordem de operações conflitantes for a mesma em ambos
▫ Operações conflitantes
◦ pertencem a diferentes transações
◦ acessam o mesmo item
◦ pelo menos uma for gravar
▪ Plano Conflito Serializável
▫ Conflito equivalente a um plano serial
![Page 52: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/52.jpg)
Grafo de Precedência
Algoritmo▪ Para cada transação crie um nó no grafo
▪ Para cada caso em S
▫ Ti precede e conflita com Tj
◦ aresta(Ti Tj)→
▪ Serializável sem ciclos→(Ramakrishnan, 2003)
![Page 53: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/53.jpg)
Equivalência de Visão
▪ Dois planos S e S' possuem equivalência se:
▫ Possuem as mesmas transações e operações
▫ No plano S, se há um read(X) em Ti que seja valor
original (antes de S) ou gravado por um write(X) em T
j, o mesmo acontece em S'
▫ No plano S, se write(Y) é a última operação em Y a gravar em T
k, o mesmo acontece em S'
![Page 54: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/54.jpg)
Falha
▪ Tipos de Falha:
▫ Sem dano físico ao BD:
◦ O computador falhar (crash ou queda de sistema)
◦ Um erro de transação ou sistema
◦ Erros locais ou condições de exceção detectadas pela transação
◦ Imposição do controle de concorrência
▫ Com dano físico ao BD:
◦ Falha de disco
◦ Problemas físicos e catástrofes
![Page 55: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/55.jpg)
Transação e Atomicidade
▪ A transação é uma unidade de trabalho atômica:
▫ ou é executada completamente ou é não é executada por inteiro
▫ transações podem reverter (rollback)
▪ Exemplos:
▫ T1, T2 & T3 completas
▫ T4 & T5 devem ser revertidas
(Ramakrishnan, 2003b)
![Page 56: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/56.jpg)
Transação e Durabilidade
▪ O que fazer se o SGBD parar?
▪ Exemplos:
▫ T1, T2 & T3 tem que permanecer
(Ramakrishnan, 2003b)
![Page 57: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/57.jpg)
![Page 58: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/58.jpg)
André Santanchèhttp://www.ic.unicamp.br/~santanche
![Page 59: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/59.jpg)
Referências
▪ Elmasri, Ramez; Navathe, Shamkant B. (2005) Sistemas de Bancos de Dados. Addison-Wesley, 4a edição em português.
▪ Elmasri, Ramez; Navathe, Shamkant B. (2010) Sistemas de Banco de Dados. Pearson, 6a edição em português.
▪ Ramakrishnan, Raghu; Gehrke, Johannes (2003) Database Management Systems. McGraw-Hill, 3rd edition.
▪ Ramakrishnan, Raghu; Gehrke, Johannes (2003b) Database Management Systems. McGraw-Hill, 3rd edition (companion slides).
![Page 60: Processamento de Transações - ic.unicamp.brsantanch/teaching/db/2013-1/slides/bd10... · concorrência melhora aproveitamento da CPU Perspectivas sobre os dados:](https://reader031.fdocument.pub/reader031/viewer/2022020304/5bea005f09d3f24f1b8d039b/html5/thumbnails/60.jpg)
Licença▪ Estes slides são concedidos sob uma Licença Creative
Commons. Sob as seguintes condições: Atribuição, Uso Não-Comercial e Compartilhamento pela mesma Licença.
▪ Mais detalhes sobre a referida licença Creative Commons veja no link:http://creativecommons.org/licenses/by-nc-sa/3.0/
▪ Agradecimentos: fotografia da capa e fundo por Ben Collins -http://www.flickr.com/photos/graylight/.Ver licença específica em http://www.flickr.com/photos/graylight/261480919/