Buscar

ADMBD_Tópicos_4_e_5

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 37 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 37 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 37 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

27/11/2012 
1 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Processamento de transações 
 
 
167 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Conceito de transação 
e de suas propriedades 
• Uma transação é uma unidade lógica de processamento do 
banco de dados que inclui uma ou mais operações de acesso ao 
banco de dados (inclusão, exclusão, modificação, recuperação). 
• Sistemas de processamento de transações: sistemas com grandes 
bancos de dados e centenas de usuários concorrentes que 
estejam executando transações do banco de dados. Ex: sistema 
bancário, sistema de processamento de cartões de crédito, ... 
• Exigem alta disponibilidade e tempo rápido de resposta para 
centenas de usuários concorrentes. 
 
168 
27/11/2012 
2 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Sempre que uma transação é submetida a um SGBD para 
execução, o sistema é responsável por certificar-se de que: 
• Ou todas as operações na transação se completam com sucesso e 
seu efeito registrado permanentemente no banco de dados; 
• Ou A transação não tem absolutamente nenhum efeito no banco 
de dados ou em quaisquer outras transações. 
• As transações devem ter diversas propriedades que são 
chamadas propriedades ACID e devem ser impostas pelos 
métodos de controle de concorrência e recuperação do 
SGBD. As propriedades ACID são as seguintes: 
 
 
169 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Atomicidade: uma transação é uma unidade atômica de 
processamento; é realizada integralmente ou não é realizada de 
modo algum. 
– Preservação de consistência: uma transação é preservadora de 
consistência se a sua plena execução levar o banco de dados de 
um estado consistente para outro estado também consistente. 
– Isolamento: uma transação deve parecer como se estivesse sendo 
executada isoladamente de outras transações. Ou seja, a execução 
de uma transação não deve sofrer interferência de quaisquer 
outras transações que estejam sendo executadas 
concorrentemente. 
– Durabilidade ou persistência: as alterações aplicadas ao banco de dados 
por meio de uma transação confirmada devem persistir no banco de 
dados. Essas alterações não devem ser perdidas por falha alguma. 
 170 
27/11/2012 
3 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Escalonamentos e recuperação 
 • Para qualquer sequência intercalada de operações das 
transações T1, T2, ... Tn, o resultado final terá que ser o 
mesmo. O SGBD tem a tarefa de garantir isto. 
• Exemplo de uma transação T1 que transfere N reservas de 
um vôo cujo número de assentos reservados está 
armazenado no item do banco de dados denominado X 
para um outro vôo cujo número de assentos reservados 
está armazenado no item do banco de dados denominado 
Y. 
 
 
171 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
ler_item (X); 
X:=X-N; 
escrever_item(X); 
ler_item(Y); 
Y:=Y+N; 
escrever_item(Y); 
 
Exemplo de uma transação T2 que reserva M assentos no 
primeiro vôo X referenciado na transação T1. 
ler_item(X); 
X:=X+M; 
escrever_item(X); 
 
 
172 
27/11/2012 
4 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Execuções concorrentes 
• Muitos problemas podem ocorrer quando transações 
concorrentes são executadas sem controle. Usando o 
exemplo das reservas de um vôo. 
 
173 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• O problema da perda de atualização 
 
 
 
 
Ocorre quando duas transações que acessam os mesmo itens do 
banco de dados têm suas operações entrelaçadas, de modo que 
torne incorreto o valor de algum item do banco de dados. 
Ex.: X = 100; Y = 60; N = 10; M = 5. 
Correto: X = 100 – 10 + 5 = 95. 
Problema: X = 105. 
 
 
174 
27/11/2012 
5 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• O problema da atualização temporária (ou 
leitura suja) 
 
 
 
 
 
Ocorre quando uma transação atualiza um item do banco de 
dados e, por algum motivo, a transação falha. O item atualizado é 
acessado por uma outra transação, antes de ser modificada de 
volta ao seu valor original. 
 
 
175 
Ex.: X = 100; Y = 60; N = 10; M = 5. 
Correto: T2 só deveria ler X após a 
efetivação de T1. 
Problema: T2 leu X antes da 
efetivação de T1. 
 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• O problema do sumário incorreto 
 
 
 
 
 
 
Ex.: X = 100; Y = 60; A = 20; N = 10; M = 5. 
Correto: soma = 20 + 90 + 70 = 180 ou 20 + 100 + 60 = 180. 
Problema: soma = 20 + 90 + 60 = 170. 
 176 
Se uma transação estiver calculando 
uma função de agregação em um 
número de registros, enquanto 
outras transações estiverem 
atualizando alguns desses registros, a 
função agregada pode calcular alguns 
valores antes que eles sejam 
atualizados e outros depois que 
tenham sido atualizados. 
 
Transação T3 calcula o número 
total de reservas em todos os 
vôos. 
 
 
27/11/2012 
6 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Técnicas de Controle de 
Concorrência 
 
177 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Protocolos com base em 
Bloqueios 
 • Bloqueios Binários 
– Este tipo de bloqueio pode ter dois estados: 
bloqueios e desbloqueios (1 e 0). 
– Se o bloqueio em um item X do banco de dados 
for 1, o item não pode ser acessado por uma 
operação de BD que solicite o item. 
– Se o valor do bloqueio em X for 0, o item pode 
ser acessado quando solicitado. 
 
 
178 
27/11/2012 
7 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Chamaremos o valor do bloqueio associado 
a um item X de LOCK(X). 
• Duas operações são usadas como bloqueio 
binário: lock_item e unlock_item. 
• Uma transação solicita acesso a um item X 
pelo primeiro resultado de uma operação 
lock_item(X). 
179 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
lock_item(X): 
B: if LOCK(X) = 0 (*item está desbloqueado)then 
 LOCK (X) <- 1 (*bloquear o item*) 
 else 
 begin 
 wait (até que LOCK(X) = 0 e 
 o gerenciador de bloqueio reinicie a transação); 
 goto B 
 end; 
 
unlock_item(X): 
 LOCK(X) <- 0; (*desbloquear o item*) 
Reiniciar uma das transações em espera; 
 180 
No máximo uma transação pode 
controlar o bloqueio de um dado 
item, assim, duas transações 
nunca podem acessar o mesmo 
item ao mesmo tempo. 
 
27/11/2012 
8 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Bancode Dados – Prof. Anderson Nascimento 
• Bloqueios Compartilhados/Exclusivos (ou 
Leitura/Escrita) 
– Este tipo de bloqueio permite que diversas 
transações acessem o mesmo item X, se todas 
acessarem X apenas com o propósito de leitura. 
– Mas, se a transação for alterar um item X, ela 
deve ter acesso exclusivo a X. 
– Este tipo de bloqueio pode ter três operações: 
read_lock(X), write_lock(X) e unlock(X). 
 
181 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– LOCK(X) agora tem três possíveis estados: 
read_locked, write-locked ou unlocked. 
– Um item read-locked é chamado de bloqueio-
compartilhado (share-locked) porque permite 
que outras transações leiam o item. 
– Um item write-locked é chamado de bloqueio 
exclusivo (exclusive-locked) porque uma 
transação única controla exclusivamente o 
bloqueio do item. 
 
182 
27/11/2012 
9 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Algoritmo para read_lock 
183 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Algoritmo para write_lock 
184 
27/11/2012 
10 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Algoritmo para unlock_lock 
185 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Multiversão 
– Estes protocolos mantêm os valores antigos de 
um item de dado quando o item é atualizado. 
– Quando uma transação escreve um item, 
escreve uma nova versão, e a versão anterior do 
item é mantida. 
– Desvantagem: necessidade de mais área para 
armazenar as múltiplas versões dos itens de BD. 
– Veremos dois esquemas: 
• Técnica Baseada em Ordenação por Timestamp. 
• Bloqueio em Duas Fases de Multiversão Usando 
Bloqueios de Certificação. 
 186 
27/11/2012 
11 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Técnica Baseada em Ordenação por 
Timestamp 
– Timestamp é um identificador único criado pelo 
SGBD para identificar uma transação. 
– Para cada uma das diversas versões X1, X2, X3, ..., 
Xk, dois timestamps são mantidos: 
• read_TS(Xi): o timestamp read de Xi é o maior de 
todos os timestamps das transações que tenham lido 
com sucesso a versão Xi. 
• write_TS(Xi): o timestamp write de Xi é o timestamp 
da transação que escreveu o valor da versão Xi. 
 
187 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Se uma transação T pode executar uma 
operação escrever_item(X) 
• (ou seja, se TS(T) > read_TS(Xi)) 
• uma nova versão Xk+1 do item X será criada 
• e write_TS(Xk+1) e read_TS(Xk+1) atualizadas para 
TS(T). 
• Caso contrário, T é abortada. 
– Quando uma transação T pode ler o valor da 
versão Xi 
• o valor de read_TS(Xi) será atualizado para TS(T) 
• caso este seja > que read_TS(Xi). 
 
188 
27/11/2012 
12 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Duas regras são usadas: 
– 1) 
• Se uma transação T tentar escrever_item(X) e a 
versão i de X tem a mais alta write_TS(Xi) de todas as 
versões de X que também é <= TS(T) e read_TS(Xi) > 
TS(T), então aborta T. 
• Caso contrário, criará uma nova versão Xj de X com 
read_TS(Xj) = write_TS(Xj)= TS(T). 
• Ex1: Transação 25 tenta escrever_item(X). A versão 
X6 foi a última atualizada, sendo write_TS(X6) = 18 e 
read_TS(X6) = 32. Aborta T. 
• Ex2: Idem ex1 mas read_TS(X6) = 23. Nova versão X7 
será criada com read_TS(X7) = write_TS(X7) = 25. 
 189 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– 2) 
• Se uma transação T tentar ler_item(X), encontra a 
versão i de X que tem a mais alta write_TS(Xi) de 
todas as versões de X que também é <= TS(T), então 
retorna o valor de Xi para a transação T e atualiza o 
valor de read_TS(Xi) para TS(T) caso este seja > que 
read_TS(Xi). 
• Ex: Transação 46 tenta ler_item(X). A versão X9 foi a 
última atualizada, sendo write_TS(X9) = 21. O valor 
de X9 é retornado para a transação 46 e read_TS(X9) 
= 46. 
 
 
190 
27/11/2012 
13 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Bloqueio em Duas Fases de Multiversão 
Usando Bloqueios de Certificação 
– Neste esquema, há três modos de bloqueio para 
um item: ler, gravar e certificar. 
– O estado de LOCK(X) para um item X pode ser 
 read_locked(leitura_bloqueada), 
 write_locked(escrita bloqueada), 
 certify_locked(certificação_bloqueada) ou 
 unlocked(desbloqueado). 
 
 
191 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Nesta abordagem, várias transações podem ler 
um item X enquanto uma outra transação 
controla o bloqueio de escrita em X. 
– Para isso, são utilizadas duas versões para cada 
item X: 
• uma delas deve sempre ser gravada por alguma 
transação efetivada 
• e a outra (X’) é criada quando uma transação T 
adquire um bloqueio em um item. 
– Outras transações podem continuar a ler a 
versão efetivada de X enquanto T controla o 
bloqueio de escrita. 
192 
27/11/2012 
14 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Quando T estiver pronta para efetivar, ela deve 
obter um bloqueio de certificação de todos os 
itens antes que ela efetive. 
– Desta forma, a transação pode atrasar a sua 
efetivação até que todos os seus itens sejam 
liberados. 
 
193 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Deadlock e Starvation 
– O deadlock ocorre quando cada transação em 
um conjunto de duas ou mais transações espera 
por algum item que esteja bloqueado por 
alguma outra transação. 
 
194 
27/11/2012 
15 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Há duas formas de prevenção e deadlocks: 
• Protocolos de Prevenção de Deadlock 
• Detecção de Deadlock e Timeouts 
– Veremos apenas a segunda abordagem que é 
mais prática. 
 
195 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Detecção de Deadlock e Timeouts 
• Esta abordagem verifica se um estado de deadlock 
realmente existe. 
• É uma solução atrativa se soubermos que existem 
poucas interferências entre as transações. 
• Podemos usar o grafo wait-for para detectar um 
estado de deadlock. 
 
 
196 
27/11/2012 
16 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Quando uma transação Ti está esperando para 
bloquear um item X, que está bloqueado por uma 
transação Tj, uma ligação direcionada (Ti-> Tj) é 
criada no grafo. Quando Tj libera o(s) bloqueio(s) dos 
itens pelos quais Ti estava esperando, a linha é 
eliminadado grafo. 
• Temos um estado de deadlock se o grafo tiver um 
ciclo. 
 
197 
T1’ T2’ 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• ‘Seleção de vítimas’ é o processo de escolha de quais 
transações abortar em um caso de deadlock. 
• O método de timeouts também pode ser utilizado 
para lidar com deadlocks. 
• Neste caso, se uma transação esperar por um 
período mais longo que um período de timeout 
definido pelo sistema, ele assumirá que a transação 
pode entrar em deadlock e abortará. 
 
198 
27/11/2012 
17 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Starvation (Inanição) 
• Ocorre quando uma transação não consegue terminar a sua 
execução enquanto outras transações continuam 
normalmente. 
• Isto pode acontecer se o esquema de espera para itens 
bloqueados for parcial, dando prioridade a algumas transações 
sobre as outras. 
• A solução neste caso é ter um esquema de espera imparcial. 
• Pode ocorrer também se o algoritmo de seleção de vítimas 
selecionar sempre a mesma transação como vítima 
repetidamente. 
• A solução neste caso pode ser usar prioridades mais altas para 
transações que tenham sido abortadas múltiplas vezes. 
 
199 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Técnicas de Recuperação 
200 
27/11/2012 
18 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Conceitos Básicos 
• Plano de recuperação 
– A recuperação de transações que falharam 
significa que o BD será restaurado para o estado 
de consistência mais recente, exatamente como 
antes do momento da falha. 
– Portanto, o sistema deve manter informações 
sobre as alterações que foram aplicadas pelas 
várias transações e o log é o responsável por 
armazenar estes dados. 
 
201 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Podemos resumir uma estratégia de 
recuperação da seguinte forma: 
• Caso haja um dano causado por falha catastrófica, 
como crash de disco, o método de recuperação 
restaura uma cópia anterior do BD que estava 
guardada em fita (geralmente) e refaz as operações 
das transações armazenadas no log até o instante da 
falha. 
• Se o BD não for danificado fisicamente mas houver 
uma falha qualquer, o BD desfaz e refaz algumas 
operações para restaurar um estado consistente do 
BD. 
 
 202 
27/11/2012 
19 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Categorização dos algoritmos de 
recuperação 
– Há duas técnicas de recuperação de falhas: 
• Atualização adiada (postergada) 
• Atualização imediata 
 
203 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Checkpoints 
– Checkpoint é um tipo de entrada no log que é 
escrito periodicamente no ponto em que o 
sistema grava no disco todos os buffers que 
tiverem sido modificados. 
– Desta forma, as transações que tiverem um 
commit antes de uma entrada de checkpoint 
não precisam ser refeitas no caso de queda do 
sistema. 
– O gerenciador de recuperação decide em quais 
intervalos submeter um checkpoint. 
 
204 
27/11/2012 
20 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Submeter um checkpoint consiste em: 
– Suspender a execução das transações 
temporariamente. 
– Forçar a gravação no disco dos buffers da 
memória que tenham sido alterados. 
– Escrever um registro de checkpoint no log. 
– Reassumir a execução das transações. 
 
205 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Rollback de transações 
– Se uma transação falhar por qualquer razão, 
depois de atualizar o BD, pode ser necessário 
reverter (rollback) a transação. 
– Se algum valor de item de dados tiver sido 
alterado pela transação e gravado no BD, ele 
deverá ser restaurado aos seus valores 
anteriores. 
 
206 
27/11/2012 
21 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Técnicas baseadas em atualização 
postergada (adiada) 
– Estas técnicas consistem em adiar qualquer 
atualização real no BD até que a transação 
complete sua execução com sucesso e alcance 
seu ponto de efetivação (commit). 
– Durante a execução da transação, as 
atualizações são registradas apenas no log e nos 
buffers. 
– Quando a transação alcançar seu ponto de 
efetivação, as atualizações serão registradas no 
BD (disco). 
 
 
207 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Se uma transação falhar antes de alcançar seu 
ponto de efetivação, não será necessário 
desfazer nenhuma operação porque a transação 
não afetou o BD no disco. 
– Esta técnica somente pode ser utilizada caso as 
transações sejam curtas e cada transação altere 
poucos itens. 
– Portanto: 
• Uma transação não pode mudar o BD em disco até 
que ela alcance seu ponto de efetivação. 
• Uma transação não alcança seu ponto de efetivação 
até que todas as suas operações de atualização 
sejam registradas no log. 
 208 
27/11/2012 
22 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Como o BD nunca é atualizado até que a 
transação seja efetivada, nunca será necessária 
qualquer operação de UNDO (desfazer). 
– REDO (refazer) será necessário no caso de o 
sistema falhar depois que uma transação for 
efetivada, mas antes que todas as suas 
mudanças sejam registradas no BD (disco). 
Neste caso, as operações serão refeitas a partir 
do log. 
 
209 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
• Técnicas baseadas em atualização imediata 
– Estas técnicas consistem em atualizar o BD 
(disco) quando uma transação emite um 
comando de atualização, sem necessidade de 
esperar que a transação alcance seu ponto de 
efetivação. 
– De qualquer forma, uma operação de 
atualização deve ser registrada no log antes de 
sua aplicação no BD (disco) para que possamos 
recuperá-la em caso de falha. 
 
 
210 
27/11/2012 
23 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
Exercícios 
211 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 212 
• Considere as transações abaixo e que o 
protocolo de bloqueio 
compartilhado/exclusivo esteja sendo 
utilizado para controle das transações: 
 
27/11/2012 
24 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Suponha que as transações T1 e T2 começaram 
a executar e a sequencia de operações iniciais é 
a seguinte: 
 
 
213 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administraçãode Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
 
214 
27/11/2012 
25 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
– Sim. Porque não há outra transação escrevendo 
o item X. 
 
 
 
215 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
 
 
216 
27/11/2012 
26 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
– Não. Porque a transação T1 está lendo o item X. 
 
 
217 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
218 
27/11/2012 
27 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
– Sim. Porque a transação T1 está apenas lendo o 
item X, mesma operação requerida por T3. 
 
 
219 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Suponha que as transações T1 e T2 começaram 
a executar e a sequencia de operações iniciais é 
a seguinte: 
 
220 
27/11/2012 
28 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
 
 
221 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
– Não. Porque a transação T2 está escrevendo o 
item X. 
 
 
 
 
222 
27/11/2012 
29 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
223 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
– Sim. Porque não há outra transação lendo ou 
escrevendo o item X. 
 
 
 
 
224 
27/11/2012 
30 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
225 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
– Não. Porque a transação T2 está escrevendo o 
item X. 
 
 
226 
27/11/2012 
31 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– Suponha que as transações T1 e T3 começaram 
a executar e a sequencia de operações iniciais é 
a seguinte: 
 
 
227 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
 
228 
27/11/2012 
32 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T1 pode continuar a executar 
normalmente? Por quê? 
 
– Sim. Porque não há outra transação escrevendo 
o item X. 
 
 
 
229 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
 
 
230 
27/11/2012 
33 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T2 pode continuar a executar 
normalmente? Por quê? 
 
– Não. Porque as transações T1 e T3 estão lendo o 
item X. 
 
231 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
232 
27/11/2012 
34 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
– A transação T3 pode continuar a executar 
normalmente? Por quê? 
 
– Sim. Porque não há outra transação escrevendo 
o item X. 
 
 
233 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
 2) Suponha que os seguintes grafos estejam 
sendo utilizados para identificar deadlocks 
em um determinado instante. 
 Para cada um deles, responda se um 
deadlock foi identificado. Caso positivo, dê 
uma solução para que as transações possam 
continuar as suas execuções. 
 
234 
27/11/2012 
35 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
a) 
235 
T1 T2 
T3 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
a) 
 
 
 
 
 
 Há um deadlock no grafo acima. Para que as 
transações continuem, é suficiente matar a 
transação T2 ou T3. 
 
236 
T1 T2 
T3 
27/11/2012 
36 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 237 
b) 
 
 
 
 
 
 
 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 238 
b) 
 
 
 
 
 
 
 Há um deadlock no grafo acima. Para que as 
transações continuem, é suficiente matar a 
transação T2 ou T3. 
 
27/11/2012 
37 
Escola de Ciência e Tecnologia 
Curso: Sistemas de Informação 
Disciplina: Administração de Banco de Dados – Prof. Anderson Nascimento 
FIM 
239

Outros materiais