A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo.

Apresentações semelhantes


Apresentação em tema: "Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo."— Transcrição da apresentação:

1 Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo

2 Bancos de dados Single-users versus Multiusers ● classificação baseada no número de usuários que pode utilizar o sistema de forma concorrente processamento intercalado X processamento paralelo

3 Transações ● Unidade lógica de processamento de banco de dados; ou ● Conjunto de operações que devem ser executadas como uma operação atômica

4 Transações concorrentes São aquelas que podem interferir entre si Exemplo clássico: Duas transações que incrementam um valor X = 0 X = 1 ou X = 2 ?

5 Problemas de concorrência ● Problema da atualização perdida

6 ● Problema da atualização temporária (leitura suja) Problemas de concorrência

7 ● Síntese incorreta Problemas de concorrência

8 ● Problema de não repetição de leitura Exemplo: Reserva de lugares num vôo read(L): assentos livres escolhe_lugar(): pessoa escolhe assento read(L): lê novamente assentos livres Problemas de concorrência

9 Outros Problemas ● Falha de hardware; ● Falha no sistema ou na transação; ● Erros locais ou condições de exceção detectadas pela transação ● Controle de execução da concorrência (deadlocks, violação da serialização) ● Falha de disco ● Problemas físicos e catástrofes

10 Propriedades Desejáveis Transações idealmente devem possuir as propriedades ACID: ● Atomicidade ● Consistência ● Isolamento ● Durabilidade

11 Atomicidade ● Cada transação é executada como se fosse uma operação atômica, ou seja, indivisível ● Ela é executada até o final, ou não é executada (não tem efeito) ● Característica garantida pelo subsistema de recuperação de transações

12 Consistência ● Transação leva de um estado consistente a outro ● É de responsabilidade do programador ou do módulo de restrições de integridade

13 Isolamento ● Transações não interferem entre si ● Responsabilidade do subsistema de controle de concorrência ● Proteção contra os problemas por níveis: ● Nível 0: atualizações temporárias; ● Nível 1: atualizações perdidas; ● Nível 2: nível 0 nível 1; ● Nível 3: nível 2 + leitura consecutivas

14 Durabilidade ● Se transação foi concretizada (committed), será preservada no banco de dados ● Se o SGBD confirmou a concretização, não poderá desfazer a transação depois ● Responsável: subsistema de recuperação de transações

15 Histórico de Transações Histórico de N transações: ● Ordenamento das operações dessas transações ● Operações de uma mesma transação preservam sua ordem relativa ● Operações de diferentes transações podem ser intercaladas

16 Histórico de Transações Conflito de operações ocorre se as operações: 1. pertencem a transações distintas; e 2. acessam o mesmo item X; e 3. pelo menos uma das operações é write(X)

17 Histórico Completo ● Contém todas as operações de todas as transações ● Inclusive commit/abort como última operação de cada transação; ● Preserva ordem relativa das operações de cada transação; ● Se duas operações conflitam, uma certamente ocorre antes da outra

18 Histórico de Transações ● Dinâmico, pois novas operações são constantemente incluídas no histórico pelo SGBD ● Histórico nem sempre contém transações completas ● Projeção completa: subconjunto do histórico que é completo, ou seja, operações de commit/abort de cada transação está presente

19 Escalonamento de Transações Recuperabilidade através do histórico do escalonador: ● Pode haver dependências entre as transações ● Se uma falhar, pode ser necessário desfazer outras

20 Escalonamento Recuperável ● Se garantidamente, depois que ocorre o commit de uma transação, nunca é necessário desfazê-la ● T não salva permanentemente as alterações até que aconteça o commit de todas as transações T' que irão escrever itens que T lê

21 Escalonamento Recuperável Uma transação T lê de T' se: ● T lê item X depois que T' escreve item X; e ● cada T' não pode ter abortado antes de T ler de T'; e ● não há escritas depois de T' escrever e antes de T ler Pode ocorrer de uma falha cancelar outras transações (cascata de rollback)

22 Escalonamento sem cascatas T só lê itens de T' depois que T' salvou permanentemente as alterações (commit)

23 Escalonamento Estrito Nenhuma transação pode ler nem escrever item X até que a última transação que escreveu item X tenha efetuado uma alteração permanete (commit)

24 Serializabilidade ● Escalonamento serial: ● uma transação de cada vez ● Escalonamento não-serial: ● transações intercaladas ● Escalonamento serializável: ● equivalente a um escalonamento serial

25 Equivalência de Conflitos ● Diz-se que dois históricos S e S' possuem equivalência de conflitos se a ordem de quaisquer duas operações conflitantes é a mesma em ambos históricos ● S é conflito-serializável se possui equivalência de conflitos a um histórico serial S'

26 Teste de serialização de conflitos 1. Crie um grafo com um nó para cada transação 2. Adicione uma seta de Ti para Tj se: a. Ti escreve X, e depois Tj lê X; OU b. Ti lê X, e depois Tj escreve X; OU c. Ti escreve X, e depois Tj escreve X. 3. Histórico é serializável se e somente se o grafo não tiver ciclo.

27 Serializabilidade ● Normalmente, não se testa serializabilidade Muito caro primeiro gerar escalonamento, armazenar no histórico e depois descartar se não for serializável ● Em vez disso, garante-se que o escalonamento é serializável por construção Ex. locks (garantem que certas operações serão postergadas até um momento seguro)

28 Equivalência de Visualização ● Ordem relativa de leituras e escritas do mesmo item são preservadas ● Menos restritivo do que equivalência de conflitos ● Permite reordenar "escritas cegas"

29 Outros tipos de equivalência ● Dependentes da aplicação Ex. débito/crédito: somar um valor (positivo ou negativo) a um registro é comutativo

30 Dúvidas?

31 Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo


Carregar ppt "Arquitetura de Banco de Dados Processamento de Transações Carolina Nogueira Marcelo Eduardo Cardoso Rodrigo Dlugokenski Vítor De Araújo."

Apresentações semelhantes


Anúncios Google