Baixe o app para aproveitar ainda mais
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
Compartilhar