Académique Documents
Professionnel Documents
Culture Documents
Definio
Incio e Fim de uma Transao
Estados de Execuo de uma Transao
Controle de Transaes
Savepoint
Exemplo
Manipulao de Dados
Objetivos na Manipulao
Estado dos Dados
Consistncia de Leitura
Exemplo
Definio
Transao uma unidade lgica, que consiste de uma srie de operaes executadas,
onde o sistema de banco de dados precisa manter certas propriedades para garantir o
sucesso sem perda de informaes lgicas.
1) Transao uma unidade lgica de trabalho, envolvendo diversas operaes de
bancos dados (C. J. Date);
2) uma unidade lgica de processamento no BD (Navathe);
3) uma unidade de execuo do programa que acessa e possivelmente atualiza vrios
itens de dados (Silberschatz).
Pode ser um programa inteiro, uma parte dele ou somente um comando. Deve-se
especificar explicitamente o incio da transao e o seu fim. Todas as operaes entre estas
clusulas so consideradas parte de uma transao.
Uma transao inicia-se, basicamente, com uma instruo BEGIN e termina com um
COMMIT ou ROLLBACK.
COMMIT
Indica a concluso de uma transao bem-sucedida (parcialmente efetivada), informando
ao gerenciador de transaes do SGBD que uma unidade lgica de trabalho foi concluda
com sucesso. Com essa ao, o banco retoma o seu estado consistente e todas as
atualizaes feitas por essa unidade j podem se tornar permanentes (efetivada).
ROLLBACK
Indica a concluso de uma transao mal sucedida (em falha). Ela informa ao gerenciador a
ocorrncia desta falha. Nesse momento o banco pode estar inconsistente, portanto todas
as atualizaes realizadas pela transao devem ser desfeitas (abortada).
Controle de Transaes
Uma transao uma srie de instrues SQL que pode ser aplicada com sucesso,
falhar, ou cancelar.
Os comandos para controlar transaes so:
COMMIT [WORK] para confirmar uma transao;
ROLLBACK [WORK] [TO SAVEPOINT x] para cancelar parte ou toda uma transao;
SAVEPOINT para criar um ponto de referncia (salvamento) na transao;
SET TRANSACTION para alterar o modo de consistncia de leitura em uma transao.
Savepoint
Exemplo
Exemplo
Manipulao de Dados
DML (Data Manipulation Language) - Uma instruo DML executada quando feita:
Adio de novas linhas em uma tabela;
Modificao de linhas existentes em uma tabela;
Remoo de linhas existentes em uma tabela.
Objetivos na Manipulao
Antes do COMMIT/ROLLBACK:
Aps o COMMIT:
10 Consistncia de Leitura
10 Consistncia de Leitura
Para o comando SELECT, o ORACLE marca o incio da sua execuo como o instante
(timestamp) a partir do qual a consistncia de leitura deve ser mantida.
A partir deste momento, quaisquer alteraes feitas em uma tabela por outros usurios no
sero vistas por quem emite um comando SELECT. Isto s ocorrer quando os outros
usurios terminarem suas transaes, com os comandos COMMIT ou ROLLBACK.
11 Exemplo
s dez horas e dois minutos o usurio A efetiva sua transao. Neste momento os
segmentos de rollback que estavam alocados so liberados para uso em novas transaes
(sem apagar seu contedo).
10 h 02 min SQL> COMMIT;
Finalmente, s dez horas e trs minutos o usurio B passa a enxergar as alteraes feitas
na tabela EMP (pelo comando UPDATE) do usurio A, pois a transao foi terminada e
efetivada com o comando COMMIT.
10 h 03 min SQL> SELECT ... FROM emp;
11 Exemplo