Escolar Documentos
Profissional Documentos
Cultura Documentos
Processamento de Transaes
Banco de Dados II
Discutiremos: Discutiremos: Mono_usurio Versus Multiusurio Transaes, operaes de leitura e Transaes, gravao,log do sistema Porque o Controle de Concorrncia necessrio Porque a recuperao necessria
Transaes
Uma transao uma unidade lgica de processamento no banco de dados. Podendo incluir operaes de:
Incluso Excluso Modificao Recuperao
Uma transao deve ser indivisvel no que se refere a sua recuperabilidade. recuperabilidade.
Exemplo
T1 : Transfere R$50,00 da conta X R$50,00 para a conta Y:
read(X); read(X); X:=X - 50; write(X); write(X); read(Y); read(Y); Y:= Y+ 50; write(Y); write(Y);
Acha endereo do bloco que contm x Copia o bloco em buffer na memria principal Copia item x do buffer p/ a varivel de programa chamada x.
Acha endereo do bloco que contm tem x Copia o bloco em buffer na memria principal Copia tem x da varivel de programa x p/ a sua localizao correta no buffer. Armazena bloco atualizado do buffer p/ o disco
T1
read(x); read(x); X:=X -50;
T2
read(x); read(x); X:=X +70;
Item X tem um valor incorreto pois a atualizao feita por T1 foi perdida.
T2
T3
SUM:=0;
A transao T1 falha e X dever retornar ao seu valor original, portanto T2 leu um valor incorreto de X.
read(x); read(x); SUM:= SUM + X read(Y); read(Y); SUM:= SUM + Y read(y); read(y); Y:= Y+ N; write(Y) write(Y)
ROLLBACK;
Ativa
end_transaction rollback
commit
Committed
Falha
Terminada
Log do Sistema
O LOG (registro de ocorrncias do sistema) registra os seguintes tipos de entradas: Id_transao: Identificador da transao, gerado Id_transao: automaticamente pelo sistema. [START_TRANSACTION, T] [WRITE_ITEM, T, X, valor-antigo, valor_novo] valor[LER_ITEM, T, X] ID da [COMMIT, T] transao [ABORT, T]