Buscar

IMP BD VenturyAula 09

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

IMPLEMENTAÇÃO DE BANCO DE DADOS
Aula 9- Transações
IMPLEMENTAÇÃO DE BANCO DE DADOS
Conteúdo Programático desta aula
Transações
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
TRANSAÇÕES
 
Uma transação é uma unidade de execução de programa que acessa e, possivelmente, atualiza vários itens de dados. Uma transação, geralmente, é o resultado da execução de um programa de usuário escrito em uma linguagem de manipulação de dados, e é delimitada da forma: 
begin transaction 
.........
end transacion. 
A transação consiste de todas as operações ali executadas, entre o começo e o final da transação. Durante a execução de uma transação o banco de dados pode passar por estados de inconsistência por vários motivos como:
Queda de energia,
Falha física,
Etc..
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
TRANSAÇÃO
INÍCIO DA 
TRANSAÇÃO
FIM DA 
TRANSAÇÃO
EXECUÇÃO DA TRANSAÇÃO
BANCO DE DADOS EM 
ESTADO CONSISTENTE
BANCO DE DADOS TEMPORARIAMENTE 
EM ESTADO INCONSISTENTE
T1
T2
IMPLEMENTAÇÃO DE BANCO DE DADOS
 TRANSAÇÃO
COMANDO UPDATE
TABELA
TODA TRANSAÇÃO TERMINA
INSUCESSO (ROLLBACK)
SUCESSO (COMMIT)
IMAGEM ANTIGA
NOVA IMAGEM
IMPLEMENTAÇÃO DE BANCO DE DADOS
5
EXEMPLOS DE TRANSAÇÃO
BEGIN_TRANSACTION
UPDATE EMP
SET SAL = SAL * 1.1
WHERE CODEPT = 10
COMMIT
BEGIN_TRANSACTION
UPDATE CONTA
SET SALDO = SALDO - 200
WHERE NRCC = 1000
UPDATE CONTA 
SET SALDO = SALDO + 200
WHERE NRCC = 1002
COMMIT
BEGIN_TRANSACTION
UPDATE EMP
SET SAL = SAL * 1.1
WHERE CODEPT = 10
ROLLBACK
IMPLEMENTAÇÃO DE BANCO DE DADOS
PROPRIEDADES DAS TRANSAÇÕES
- ATOMICIDADE
	- CONSISTÊNCIA
		 - ISOLAMENTO
			-DURABILIDADE		
A C I D
IMPLEMENTAÇÃO DE BANCO DE DADOS
ATOMICIDADE
PROPRIEDADE DO TUDO OU NADA
 NRCC NOME	 CPF SALDO
 1000 J SILVA 123 500,00
 1001 A BARROS 143 500,00
 1002 J SILVA 123 200,00
 1003 S SALES 223 500,00
UPDATE CONTA SET SALDO = SALDO - 200 WHERE NRCC = 1000
300,00
400,00
UPDATE CONTA SET SALDO = SALDO + 200 WHERE NRCC = 1002
200,00
BEGIN_TRANSACTION
COMMIT
IMPLEMENTAÇÃO DE BANCO DE DADOS
GRAUS DE CONSISTENCIA
GRAU 3 - OUTRAS TRANSAÇÕES NÃO MODIFICAM 
QUALQUER DADOS DE T ANTES DE T TERMINAR
GRAU 2 - T NÃO LE DADOS MODIFICADOS
 POR OUTRA TRANSAÇÃO
GRAU 1 - T NÃO FAZ COMMIT DE DADOS
ESCRITOS ANTES DO FIM DA TRANSAÇÃO
GRAU 0 - T NÃO SOBRE-ESCREVE DADOS
 MODIFICADOS POR OUTRAS TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
 ISOLAMENTO
UPDATE EMP...
EMP
Imagem ao inicio do select
Nova Imagem
SELECT * 
FROM EMP
IMPLEMENTAÇÃO DE BANCO DE DADOS
10
CONSISTÊNCIA/ISOLAMENTO
 NRCC NOME	 CPF SALDO
 1000 J SILVA 123 500,00
 1001 A BARROS 143 500,00
 1002 J SILVA 123 200,00
 1003 S SALES 223 500,00
AGENCIA
 R$ 300,00
------------------
COMPENSAÇÃO
500,00
200,00
500,00
200,00
300,00
R$ 200,00
300,00
IMPLEMENTAÇÃO DE BANCO DE DADOS
 DURABILIDADE
UPDATE EMP...
EMP
SELECT * 
FROM EMP
Imagem Antiga
COMMIT
MECANISMO
 DE
 RECUPERAÇÃO
IMPLEMENTAÇÃO DE BANCO DE DADOS
12
ESTADOS DA TRANSAÇÃO
IMPLEMENTAÇÃO DE BANCO DE DADOS
Execução concorrente 
Sejam T1 e T2 duas transações que transferem fundos de uma conta para outra. 
O saldo inicial de A é 100 e de B 200
A transação T1 transfere 50 reais da conta A para a conta B.
A transação T2 transfere 10 por cento do saldo da conta A para a conta B.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Execução concorrente
T1:
	read(A);
	A := A – 50;
	write(A);
	read(B);
	B := B + 50;
	write(B);
T2:
	read(A);
	temp := A * 0,1;
	A := A – temp;
	write(A);
	read(B);
	B := B + temp;
	write(B);
IMPLEMENTAÇÃO DE BANCO DE DADOS
Execução em seqüência
T1
T2
T1
T2
read(A);
A := A – 50;
write(A);
read(B);
B := B + 50;
write(B);
read(A);
temp := A * 0,1;
A := A – temp;
write(A);
read(B);
B := B + temp;
write(B);
read(A);
A := A – 50;
write(A);
read(B);
B := B + 50;
write(B);
read(A);
temp := A * 0,1;
A := A – temp;
write(A);
read(B);
B := B + temp;
write(B);
Escalas de execução em seqüência: observe que o estado do BD é sempre 
consistente.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Execução concorrente ...
T1
T2
read(A);
A := A – 50;
write(A);
read(B);
B := B + temp;
write(B);
read(B);
B := B + 50;
write(B);
read(A);
temp := A * 0,1;
A := A – temp;
write(A);
Correta
T1
T2
read(A);
A := A – 50;
write(A);
read(B);
B := B + 50;
write(B);
read(A);
temp := A * 0,1;
A := A – temp;
write(A);
read(B);
B := B + temp;
write(B);
Incorreta
IMPLEMENTAÇÃO DE BANCO DE DADOS
Serialização
O sistema de banco de dados deve controlar a execução concorrente de transações para assegurar que o estado do banco de dados permaneça consistente.
A consistência do banco de dados, sob execução concorrente, pode ser assegurada por meio da garantia que qualquer escala executada tenha o mesmo efeito de outra que tivesse sido executada sem qualquer concorrência.
Isto é, uma escala de execução deve, de alguma forma, ser equivalente a uma escala seqüencial.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Controle de Concorrência
IMPLEMENTAÇÃO DE BANCO DE DADOS
Protocolos com Base em Bloqueio (Métodos Pessimistas)
Uma das formas de garantir que apenas escalonamentos serializáveis sejam produzidos é obrigar que o acesso aos itens de dados seja feito de maneira mutuamente exclusiva:
Enquanto uma transação acessa um item de dados, nenhuma outra transação pode modificá-lo.
Para implementar isso pode-se usar o método de bloqueio (lock).
IMPLEMENTAÇÃO DE BANCO DE DADOS
Bloqueios
Bloqueio compartilhado:
Se uma transação Ti obteve um bloqueio compartilhado (denotado por S) sobre o item de dado Q, então Ti pode ler, mas não escrever em Q.
Bloqueio exclusivo:
Se uma transação Ti obteve um bloqueio exclusivo (denotado por X) do item de dado Q, então Ti pode tanto ler como escrever em Q.
Toda transação precisa solicitar o bloqueio apropriado antes de executar qualquer operação sobre Q.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Bloqueios
T1: 
	lock-X(B);
	read(B);
	B := B – 50;
	write(B);
	unlock(B);
	lock-X(A);
	read(A);
	A := A + 50;
	write(A);
	unlock(A);
T2:
	lock-S(A);
	read(A);
	unlock(A);
	lock-S(B);
	read(B);
	display (A + B);
	unlock(B);
Se A = 100 e B = 200, o valor mostrado em T2
= 300.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Ordenamento Timestamp (Método Otimista)
Garante seriabilidade:
Envolve o uso de timestamp para ordenar a execução das transações de forma que o escalonamento formado seja equivalente ao escalonamento serial.
Timestamp: identificador único criado pelo SGBD para identificar uma transação. São associados na ordem em que as transações são submetidas ao sistema.
TS(T) = timestamp da transação T
No escalonamento as transações tomam a ordem de seus timestamps
IMPLEMENTAÇÃO DE BANCO DE DADOS
Algoritmo Básico
Associa dois timestamps a cada item X:
Read_TS(x): o timestamp de leitura de X é o maior entre todos os timestamps de transações que leram X com sucesso;
Write_TS(x): o timestamp de escrita de X é o maior entre todos os timestamps de transações que escreveram X com sucesso; 
Esses timestamps são atualizados sempre que uma instrução read(x) ou write(x) é executada. 
Assegura que as operações de leitura e escrita sejam executadas por ordem de timestamp.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Algoritmo Básico
Situação 1: a transação T requer uma operação de leitura.
Se TS(T) < Write_TS(x), então T quer ler o valor de x que já foi sobrescrito por uma transação mais nova. Assim, a operação read é rejeitada e T é desfeita.
Se TS(T) >= Write_TS(x), a transação que requer o dado é mais nova que a últimaque o escreveu. Assim, a operação read é executada e o Read_TS(x) recebe o maior valor entre o atual e o TS(T).
IMPLEMENTAÇÃO DE BANCO DE DADOS
Algoritmo Básico
Situação 2: A transação T requer uma operação de escrita
Se TS(T) < Read_TS(x), a transação é mais velha que a última transação que leu, ou seja, o valor de X que T está produzindo seria necessário antes. A operação de write é rejeitada e T é desfeita.
2.	Se TS(T) < Write_TS(x) então T está tentando escrever um valor obsoleto em X. Logo, essa operação é rejeitada e T é desfeita.
3.	De outro modo, a operação write é executada e o Write_TS(x) é atualizado como TS(T).
IMPLEMENTAÇÃO DE BANCO DE DADOS
Esquema de Multiversão
Os esquemas de controle de concorrência por bloqueio ou por timestamp garantem a serialização atrasando a operação ou abortando a transação responsável por tal operação.
Essas dificuldades podem ser evitadas se o sistema providenciar cópias de cada item de dado.
Em um sistema de banco de dados multiversão, cada operação write(Q) cria uma nova versão de Q. Quando é emitida uma operação read(Q), o sistema seleciona uma das versões de Q para ser lida.
O esquema de controle de concorrência precisa garantir que a seleção da versão lida seja tal que assegure a serialização.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Controle de Transação no ORACLE
IMPLEMENTAÇÃO DE BANCO DE DADOS
PREPARAR O AMBIENTE
e
e
IMPLEMENTAÇÃO DE BANCO DE DADOS
PREPARAR O AMBIENTE
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Subconsulta em DML
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Acesso ao Dicionario de Dados
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Próxima Aula
Aprender a respeito de otimizações
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS

Outros materiais