Você está na página 1de 4

Transação

• Unidade lógica de processamento em um SGBD

• Composta de uma ou mais operações

– seus limites podem ser determinados em SQL

• De forma abstrata e simplificada, uma transação pode ser encarada como um conjunto de operações de leitura e escrita de dados

T x

read(x)

x = x – i

read(y)

y = y * x

write(x)

write(y)

lê o dado X do BD e o

armazena na variável X

grava no dado Y do BD o

valor da variável Y

Estados de uma Transação

• Uma transação é sempre monitorada pelo SGBD quanto ao seu estado

– que operações já fez? concluiu suas operações? deve abortar?

• Estados de uma transação

– Ativa, Em processo de efetivação, Efetivada, Em processo de aborto, Concluída – Respeita um Grafo de Transição de Estados

Transição de Estados de uma Transação

reads e writes Em Processo de Efetivação finalizar encerramento Ativa transação sem sucesso Efetivada
reads e writes
Em Processo
de Efetivação
finalizar
encerramento
Ativa
transação
sem sucesso
Efetivada
transação deve

encerramento

com sucesso

ser desfeita Em Processo de Aborto
ser desfeita
Em Processo
de Aborto

conclusão

da transação

com sucesso

conclusão Concluída
conclusão
Concluída

da transação

iniciar

transação

sem sucesso

Transição de Estados de uma Transação

reads e writes Em Processo encerramento de Efetivação com sucesso iniciar finalizar transação Ativa
reads e writes
Em Processo
encerramento
de Efetivação
com sucesso
iniciar
finalizar
transação
Ativa
transação
transação deve
•estado inicial de toda
ser desfeita
Efetivada
transação deve
ser desfeita
transação selecionada
para execução
• enquanto ativa, uma
conclusão
transação executa uma ou
da transação
mais operações read e write
com sucesso
Em Processo
de Aborto
conclusão
Concluída
da transação

sem sucesso

Transição de Estados de uma Transação

reads e writes Em Processo encerramento de Efetivação com sucesso iniciar finalizar transação encerramento
reads e writes
Em Processo
encerramento
de Efetivação
com sucesso
iniciar
finalizar
transação
encerramento
Ativa
transação
sem sucesso
Efetivada
•entra nesse estado após
transação deve
executar sua última operação
ser
desfeita
(solicitação de COMMIT)
• neste momento, o SGBD
precisa garantir que as suas
conclusão
da transação
com sucesso
atualizações sejam efetivadas
Em Processo
com sucesso (não sofra falhas)
de Aborto
– aplicação de técnicas de
recovery
conclusão
Concluída
da transação
sem sucesso

Transição de Estados de uma Transação

reads e writes Em Processo encerramento de Efetivação com sucesso iniciar finalizar transação encerramento
reads e writes
Em Processo
encerramento
de Efetivação
com sucesso
iniciar
finalizar
transação
encerramento
Ativa
transação
sem sucesso
Efetivada
transação deve
•entra nesse estado após o
SGBD confirmar que todas as
ser
desfeita
conclusão
modificações da transação estão
garantidas no BD (COMMIT OK)
da transação
com sucesso
– exemplos: gravação em Log,
Em Processo
descarga de todos os buffers
em disco
de Aborto
conclusão
Concluída
da transação

sem sucesso

Transição de Estados de uma Transação •entra nesse estado se não puder prosseguir a sua
Transição de Estados de uma Transação
•entra nesse estado se não puder
prosseguir a sua execução
•pode passar para esse estado enquanto
reads e writes
ativa (I) ou em processo de efetivação (II)
– exemplo (I): violação de RI
– exemplo (II): pane no S.O.
Em Processo
encerramento
de Efetivação
?suas ações já realizadas devem ser desfeitas
com sucesso
iniciar
(ROLLBACK)
finalizar
transação
encerramento
Ativa
transação
sem sucesso
Efetivada
transação deve
ser desfeita
conclusão
da transação
com sucesso
Em Processo
de Aborto
conclusão
Concluída
da transação

sem sucesso

Transição de Estados de uma Transação •estado final de uma transação reads e writes •indica
Transição de Estados de uma Transação
•estado final de uma transação
reads e writes
•indica uma transação que deixa o
sistema
Em Processo
– as informações da transação
encerramento
de Efetivação
mantidas em catálogo podem ser
com sucesso
iniciar
excluídas
finalizar
transação
encerramento
? operações feitas, dados
Ativa
transação
manipulados, buffers utilizados,
sem sucesso
– se a transação não concluiu com
Efetivada
sucesso, ela pode ser reiniciada
transação deve
automaticamente
ser desfeita
conclusão
da transação
com sucesso
Em Processo
de Aborto
conclusão
Concluída
da transação

sem sucesso

5