Baixe o app para aproveitar ainda mais
Prévia do material em texto
Bases de Dados II Transaccões Definicão Propriedades 05-Nov-20 1 Vali Issufo 1 Agenga O que são Transações? Conceito ACID de Transações Problemas de Concorrência Técnicas de controle concorrência Estratégias de Bloqueio (Locking) Bloqueio Otimista e Pessimista Deadlocks 05-Nov-20 2 Vali Issufo 2 Transações são sequência de Ações (Operações de Banco de Dados) que são executadas como “um conjunto”: Ou todas são executas com sucesso Ou Nenhuma delas Exemplo Um banco transfere dinheiro entre duas contas (saque + deposito) Se qualquer uma das operações falhar, a trasferência será cancelada 05-Nov-20 3 Vali Issufo 3 Rollback Commit Leitura Gravação Gravação Situação Inicial (Durável) Situação Final Durável e consistente Coleção de leituras e gravações Sintaxe geral: 05-Nov-20 4 Vali Issufo 4 Transações garantem a consistência e intregridade do banco de dados Todas as modificações da transação são “temporárias” Modificações são “persistidas” apenas após o Commit A qualquer momento (Antes do commit) as modificações podem ser canceladas através de um Rollback Todas as operações são executadas como uma unidades ( ou nenhuma será) 05-Nov-20 5 Vali Issufo 5 Exemplo: Caixa Automática (ATM) Levantar 100Mt Ler o saldo atual Saldo = Saldo atual - Saque Registrar Saldo Entregar Dinheiro 05-Nov-20 6 Vali Issufo 6 Exemplo: Caixa Automática (ATM) Transferência 100Mt da conta1 para conta2 Ler saldo conta1 Saldo conta1= Saldo atual conta1 - 100 Ler Saldo conta2 Saldo conta2 = Saldo Anterior conta2+ 100 Gravar Saldo conta1 Gravar saldo conta2 05-Nov-20 7 Vali Issufo 7 Imagine que: Algumas operações falham! Ex., Falhas de Software, comunicação, Banco de Dados ou Hardware Interferência entre transações! O que acontece se multiplas alterações forem feitas na mesma conta? Parte dos dados é perdida … Comunicação falha entre o Saque e o Depósito. 05-Nov-20 8 Vali Issufo 8 Proriedades ACID ACID Siginifica: Atomicidade Consistencia Isolamento Durabilidade 05-Nov-20 9 Vali Issufo 9 Atomicidade Atomicidade significa que Transações são execudas como uma UNIDADE SGDB garante que todas as transações são executadas ou desfeitas Exemplos Transferência de valores entre contas Ou o Depósito+Saque são registrados com sucesso ou nenhum dos dois será Em caso de falha o BD permanece inalterado 05-Nov-20 10 Vali Issufo * 05-Nov-2007/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* 10## Consistencia Consistencia significa que: O Banco de dados está consitente (íntegro) antes e depois da transação Apenas dados válidos foram gravados A Transação não pode quebrar regras de integridade e respeita: Chaves primárias, estrangeiras e únicas Exemplo Transação não pode encerrar com chave duplicada 05-Nov-20 11 Vali Issufo * 05-Nov-2007/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* 11## Isolamento Isolamento significa que Multiplas transações simultâneas não afetam umas as outras Transações não enxergam dados não COMMITADOS. O Nível de isolamento define o quanto uma transação “enxerga” alterações das outras Read committed, read uncommitted, repeatable read, serializable, etc. Exemplo Gerentes podem ver transferências entre contas (débito ou crédito) mas não as 2 operações. 05-Nov-20 12 Vali Issufo * 05-Nov-2007/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* 12## Durabilidade Durabilidade significa que Se uma transação é confirmada (COMMIT) ela será persistente Não pode ser perdida nem desfeita Garantida através de LOGS de TRANSAÇÂO e Backup Exemplo Ápós concluida a transferência, a energia falha Ao retornar, os dados continuam íntegros e registrados conforme o momento imediatamente anterior à falha 05-Nov-20 13 Vali Issufo * 05-Nov-2007/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* 13## Problemas de Concorrencia Atualização Perdida Essa situação ocorre quando duas transações que acessam o mesmo item de dado têm suas operações intercaladas de maneira a tornar o dado incorreto. 05-Nov-20 14 Vali Issufo 14 Problemas de Concorrencia O Problema da Perda de Atualização 05-Nov-20 15 Vali Issufo 15 Problemas de Concorrencia Dependência de uma atualização não confirmada ou leitura suja. – Ocorre quando uma transação atualiza ou recupera um registro que fora atualizado por outra transação, mas que ainda não foi confirmada. Caso a transação falhe, as operações realizadas transação, mas que ainda não foi confirmada. Caso a transação falhe, as operações realizadas serão desfeitas (ROLLBACK). 05-Nov-20 16 Vali Issufo 16 Problemas de Concorrencia Dependência de uma atualização não confirmada ou leitura suja. 05-Nov-20 17 Vali Issufo 17 Problemas de Concorrencia O Problema da análise inconsistente Se uma transação está calculando uma função de agregação sobre um número de registros, enquanto outras estão atualizando alguns desses registros, a função de agregação pode calcular alguns valores antes que eles sejam atualizados e outros após suas atualizações! 05-Nov-20 18 Vali Issufo 18 Problemas de Concorrencia O Problema da análise inconsistente 05-Nov-20 19 Vali Issufo 19 Técnicas de Controle de Concorrencia Pessimista -bloqueio -timestamp (marca de tempo) Otimista -validação As técnicas pessimistas presumem que sempre ocorrerá interferência entre as transações e, então, buscam sempre garantir a serialização enquanto uma transação estiver ocorrendo. Já as técnicas otimistas supõem que raramente ocorrerá a interfe -rência entre as transações e somente verificam o aspecto da serialização ao final. 05-Nov-20 20 Vali Issufo 20 Técnicas de Controle de Concorrencia Bloqueio Consiste em estabelecer bloqueios sobre o dado a ser acessado pela transação, de modo a restringir o acesso a este dado. A unidade de bloqueio, geralmente, é a de registro. São definidos dois tipos de bloqueios: Exclusivo (E): se uma transação obteve um bloqueio E em um dado, então a transação pode ler e escrever neste dado. Compartilhado (C): se uma transação obteve um bloqueio C em um dado, esta transação e as demais podem somente ler este dado 05-Nov-20 21 Vali Issufo 21 Técnicas de Controle de Concorrencia Bloqueio- matriz de compartilhamento de bloqueio Transacões Bloqueio Compartilhado Bloqueio Exclusivo Bloqueio Compartilhado SIM NAO Bloqueio Exclusivo NAO NAO 05-Nov-20 22 Vali Issufo 22 Técnicas de Controle de Concorrencia Bloqueio- Exemplo T1 T2 lock_E(x) read(x) lock_E(x) espera x=x-1 ... write(x) ... unlock(x) ... lock_E(x) x=x+100 write(x) unlock(x) 05-Nov-20 23 Vali Issufo 23 Creditos Vinicius Augustus Paluch- Transações e Gerenciamento de Transações em Bancos de Dados Carlos Henrique C. Tolentino- Analise e Desenho de Sistemas Ana Claudia- Banco de Dados - Oracle 05-Nov-20 24 Vali Issufo 24 image1.jpeg image2.jpeg image3.png image4.png image5.png image6.png image7.jpeg
Compartilhar