Escolar Documentos
Profissional Documentos
Cultura Documentos
Gerenciamento de transaes
Msc, Marcelo Bezerra de Alcntara malcantara@fa7.edu.br
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 1
Objetivos
1. Compreender a necessidade do uso das transaes; 2. Entender o que transao; 3. Conhecer as caractersticas de uma transao.
Bibliografia
1. ELMASRI, Ramez; NAVATHE, Shamkant B, Sistemas de banco de dados. 4. ed. Pearson Brasil, 2005.
1. Captulo 19
2. KORTH, Henry F.; SILBERSCHATZ, Abraham Sistemas de banco de dados. 3. ed, So Paulo: Makron Books, 1999.
1. Captulo 13
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 3
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento
Relembrando Conceitos
Banco de Dados
Coleo de dados relacionados. Ex: Planilha, Fichrio, SGBD, etc.
Relembrando Conceitos
Sistema de Banco de Dados Aplicativo SGBD Software de processamento das consultas
Meta-dados
Banco de dados
Relembrando Conceitos
Caractersticas de SGBD
Natureza auto-descritiva (Meta-dados) Abstrao dos dados
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento
P2
A = A 50
read(A) A= A+A*0.1 write(A) read(B) write(A)
P1 interfere em P2 P2 interfere em P1
Marcelo Bezerra de Alcntara
P2
A = A 50
write(A) read(A) A= A+A*0.1 write(A)
read(B) B=B/A
write(B)
P2 atualiza valor de A
S=S+B
P1 valor inconsistente
print(S)
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento
Transao
Unidade lgica de processamento em um SGBD Composta de uma ou mais operaes
seus limites podem ser determinados em SQL
De forma abstrata e simplificada, uma transao pode ser encarada como um conjunto de operaes de leitura e escrita de dados
Tx read(x) x=xi read(y) y=y*x write(x) write(y)
Marcelo Bezerra de Alcntara
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento
Atomicidade
Princpio do Tudo ou Nada
ou todas as operaes da transao so efetivadas com sucesso no BD ou nenhuma delas se efetiva
preservar a integridade do BD
Atomicidade
Deve ser garantida, pois uma transao pode manter o BD em um estado inconsistente durante a sua execuo
Contas
nmero saldo
500.00 200.00
Tx (transferncia bancria) read(x) x.saldo = x.saldo 100.00 x write(x) y read(y) y.saldo = y.saldo + 100.00 execuo write(y)
falha!
Consistncia
Uma transao sempre conduz o BD de um estado consistente para outro estado tambm consistente Responsabilidade conjunta do
DBA
definir todas as RIs para garantir estados e transies de estado vlidos para os dados
exemplos: salrio > 0; salrio novo > salrio antigo
subsistema de recovery
desfazer as aes da transao que violou a integridade
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 18
Isolamento
No contexto de um conjunto de transaes concorrentes, a execuo de uma transao Tx deve funcionar como se Tx executasse de forma isolada
Tx no deve sofrer interferncias de outras transaes executando concorrentemente
Isolamento
T1
read(A) A = A 50 write(A) read(A)
T2
T1
read(A) A = A 50
T2
A = A+A*0.1
write(A) read(B) B = B + 50 write(B) read(B) B=B-A write(B)
T1 interfere em T2
B = B + 50
write(B) B=B-A write(B)
T2 interfere em T1
escalonamento vlido
Marcelo Bezerra de Alcntara
escalonamento invlido
Banco de Dados II - Transao - 20
Durabilidade ou Persistncia
Deve-se garantir que as modificaes realizadas por uma transao que concluiu com sucesso persistam no BD
nenhuma falha posterior ocorrida no BD deve perder essas modificaes
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Definio de transao Por que transao? Propriedades da transao Estados da transao Fechamento
Em Processo de Efetivao
iniciar transao
Ativa
finalizar transao
Efetivada
concluso da transao com sucesso
Concluda
Em Processo de Efetivao
iniciar transao
Ativa
finalizar transao
Estado inicial de toda Efetivada transao deve transao selecionada ser desfeita concluso para execuo da transao Enquanto ativa, uma com sucesso transao executa uma Em Processo ou mais operaes read de Aborto concluso e write da transao Concluda
sem sucesso
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 25
Em Processo de Efetivao
iniciar transao
Ativa
finalizar transao
Efetivada Entra nessetransao estado aps deve executar sua ltima operao ser desfeita concluso (solicitao de COMMIT) da transao Neste momento, o SGBD com sucesso Emas Processo precisa garantir que suas Aborto com atualizaes sejam de efetivadas concluso da transao Concluda sucesso (no sofra falhas) sem sucesso aplicao de tcnicas de recovery
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 26
Em Processo de Efetivao
iniciar transao
Ativa
finalizar transao
Entra nesse estado aps transao deveo SGBD confirmar que todas as ser desfeita modificaes da transao esto garantidas no BD (COMMIT OK) Em em Processo exemplos: gravao Log, descarga de todos os buffers de Aborto
em disco
Efetivada
concluso da transao com sucesso
Concluda
prosseguir a sua execuo Em Processo pode passar para esse enquanto encerramento deestado Efetivao com sucesso ativa (I) ou em processo de efetivao (II) finalizar
encerramento exemplo (I): violao de RI transao Ativa sem sucesso exemplo (II): pane no S.O. suas aes j realizadas devem ser desfeitas Efetivada transao deve (ROLLBACK) ser desfeita concluso da transao com sucesso
Concluda
as informaes da transao finalizar encerramento mantidas em catlogo podem ser transao Ativa sem sucesso excludas operaes feitas, dados Efetivada transao deve manipulados, buffers utilizados, ... desfeitano concluiu com se aser transao concluso sucesso, ela pode ser reiniciada da transao automaticamente com sucesso
Concluda
Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Definio de transao Por que transao? Propriedades da transao Estados da transao Fechamento
Aes do SGBD
inicia aes para garantir Atomicidade de T1 executa operaes DML, garantindo Isolamento de T1, e testa RIs imediatas, com possvel rollback e msg erro, para garantir Consistncia de T1 testa RIs postergadas, com possvel rollback e msg erro, para garantir Consistncia de T1 executa aes para garantir Durabilidade de T1 confirma o trmino de T1 para a aplicao/usurio
Banco de Dados II - Transao - 31
Fechamento
1. Uso da transao
Facilita o desenvolvimento de aplicaes:
Garante a consistncia dos dados; Se responsabiliza pelo controle de concorrncia;
2. Um SGBD tradicional deve suportar as propriedades ACID; 3. Uma transao possui vrios estados:
Ativa, Em processo de efetivao, Efetivada, Em processo de aborto, Concluda
4. A operao COMMIT deve ser utilizada para solicitar a efetivao da transao 5. A operao ROLLBACK deve ser utilizada para solicitar o aborto da transao
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 32