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

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

Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.

Apresentações semelhantes


Apresentação em tema: "Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções."— Transcrição da apresentação:

1 Transações Banco de Dados II Aline S Costa 1

2 TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções em uma linguagem de manipulação de dados delimitada por declarações da forma begin transaction e end transaction; Uma transação sempre é executada por completo. 2

3 PROPRIEDADES (ACID) Atomicidade Consistência Isolamento Durabilidade 3

4 Acesso aos dados Read(X) – operação que transfere o item de dados X do banco de dados para um buffer local alocado à transação que executou a operação read Write(X) - operação que transfere o item de dados X do buffer local da transação que executou a operação write de volta ao banco de dados. 4

5 Acesso aos dados Em um sistema de banco de dados real, a operação write não resulta necessariamente na atualização imediata dos dados no disco; a operação write pode ser armazenada temporariamente na memória e ser executada depois no disco. Por enquanto, vamos supor que write atualiza o banco de dados imediatamente. 5

6 PROPRIEDADES (ACID) Exemplo (transferência entre contas) Ti :read (A); A := A - 50; write (A); read (B); B := B + 50; write (B); 6

7 PROPRIEDADES - Consistência Se o banco de dados é consistente antes de uma transação, permanecerá consistente depois da execução da transação. Ex.: A soma de A com B deve permanecer inalterada após a execução da transação. 7

8 PROPRIEDADES - Atomicidade Se a atomicidade for garantida, todas as ações da transação serão refletidas no banco de dados ou nenhuma delas o será. Se a transação não se completar, os valores antigos são restabelecidos para fazer com que pareça que ela nunca foi executada. 8

9 PROPRIEDADES - Atomicidade Ex.: Supondo que os valores de A e B sejam 1.000 e 2.000, respectivamente, antes da Execução de Ti. Além disso, supondo que uma falha tenha ocorrido depois da execução da operação write (A), mas antes da operação write (B). Os valores de A e B são 950 e 2.000, estando portanto, inconsistentes. O sistema deve garantir que a situação de consistência seja restabelecida. 9

10 PROPRIEDADES - Durabilidade Garante que, uma vez completada a transação com sucesso, todas as atualizações realizadas no banco de dados persistirão, até mesmo se houver uma falha de sistema após a transação se completar. 10

11 PROPRIEDADES - Isolamento Quando diversas transações concorrentes são executadas, suas operações podem ser intercaladas de modo inconveniente, resultando em um estado inconsistente. A propriedade de isolamento garante que a execução simultânea de transações resulte em uma situação no sistema equivalente ao estado obtido caso as transações tivessem sido executadas uma de cada vez, em qualquer ordem. 11

12 PROPRIEDADES - Isolamento Ex.: Durante a transação Ti, o banco de dados fica temporariamente inconsistente - após write (A) e antes de write (B). Se uma segunda transação, em execução concorrente, ler A e B nesse ponto intermediário, observará um valor inconsistente. Se executar atualizações baseadas nesses valores, o banco de dados permanecerá inconsistente mesmo após a execução das transações. 12

13 EXECUÇÕES CONCORRENTES Transações Sequenciais Implementação mais simples Transações Concorrentes Implementação complexa Assegurar a consistência exige trabalho O paralelismo entre CPU e I/O pode ser explorado para executar diversas transações em paralelo - aumento do throughput do sistema 13

14 EXECUÇÕES CONCORRENTES Transações Concorrentes (Cont.) Mistura de transações em execução simultânea no sistema. Sequencial - transação deve esperar até que uma transação longa se complete, gerando atrasos imprevisíveis em sua execução. Concorrentes - compartilham os ciclos de CPU e os acessos a disco entre si, implicando em redução de atrasos imprevisíveis e do tempo médio de resposta. 14

15 EXECUÇÕES CONCORRENTES Esquemas de Controle de Concorrência Controla as interações entre as transações concorrentes para impedi-las de destruir a sua consistência. Escalas de Execução (schedules) Ordens de execução que podem garantir a manutenção da consistência. 15

16 EXECUÇÕES CONCORRENTES - Exemplo T 1 (transfere R$ 50,00 da conta A para a conta B) T 1 :read (A); A := A - 50; write (A); read (B); B := B + 50; write (B); 16

17 EXECUÇÕES CONCORRENTES - Exemplo T 2 (transfere 10% do saldo da conta A para a conta B) T 2 :read (A); temp := A * 0,1; A := A - temp; write (A); read (B); B := B + temp; write (B); 17

18 EXECUÇÕES CONCORRENTES - Exemplo Sejam 1.000 e 2.000 os valores correntes de A e B, respectivamente Escala 1 - uma escala (schedule) sequencial na qual T 1 é sequido por T 2 18

19 EXECUÇÕES CONCORRENTES - Exemplo Escala 2 - uma escala de execução sequencial na qual T 2 é sequido por T 1 Em ambos os casos - preservação da soma A + B 19

20 EXECUÇÕES CONCORRENTES - Exemplo Escala 3 - uma escala de execução concorrente equivalente à Escala 1 Preservação da soma A + B 20

21 EXECUÇÕES CONCORRENTES - Exemplo Escala 4 - uma escala de execução concorrente Estado inconsistente 21

22 EXECUÇÕES CONCORRENTES Conclusões Se o controle da execução concorrente é deixado completamente sob a responsabilidade do sistema operacional, muitas escalas de execução possíveis, inclusive aquelas que deixam o BD em um estado inconsistente como a descrita anteriormente, são factíveis. É tarefa do banco de dados garantir que qualquer escala executada deixe o BD em estado consistente. 22

23 EXECUÇÕES CONCORRENTES Conclusões (Cont.) O componente do banco de dados que executa esta tarefa é chamado de componente de controle de concorrência. Deve-se garantir que qualquer escala sob execução concorrente 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 sequencial. 23

24 SERIALIZAÇÃO Equivalência de uma escala a uma escala serial As únicas operações significativas de uma transação, do ponto de vista da escala de execução, são suas instruções de leitura (read) e escrita (write). 24

25 SERIALIZAÇÃO Quais escalas de execução podem garantir a consistência e quais não irão fazê-lo? 25

26 RECUPERAÇÃO Se uma transação Ti falhar, por qualquer razão, precisamos desfazer seus efeitos para garantir a propriedade de atomicidade da transação. Em um sistema que permite a execução concorrente, também é necessário assegurar que qualquer transação Tj que seja dependente de Ti também seja abortada. 26

27 ESCALAS DE EXECUÇÃO RECUPERÁVEIS Na situação abaixo é impossível se recuperar corretamente da falha T8: Supondo que T9 foi efetivada (não falhou). Se T8 falhar depois de write(A) terá que ser abortada e assim T9 também, só que T9 não falhou e será completada...isso não deveria acontecer. É uma escala não recuperável. 27

28 ESCALAS DE EXECUÇÃO RECUPERÁVEIS Na situação abaixo é impossível se recuperar corretamente da falha T8 A maioria dos sistemas de banco de dados exige que todas as escalas sejam recuperáveis. 28

29 ESCALAS DE EXECUÇÃO RECUPERÁVEIS Uma escala recuperável é aquela na qual, para cada par de transações Ti e Tj, tal que Tj leia itens previamente escritos por Ti, a efetivação de Ti apareça antes da efetivação de Tj. 29

30 ESCALAS SEM CASCATA A transação T10 escreve um valor para A que é lido pela transação T11. A transação T11 escreve um valor para A que é lido pela transação T12. Se T10 falhar, T10 deverá ser desfeita. Como T11 é dependente de T10, T11 deverá ser desfeita. Como T12 é dependente de T11, T12 deverá ser desfeita. Esse fenômeno é chamado de retorno em cascata (cascading rollback) 30

31 ESCALAS SEM CASCATA O retorno em cascata é indesejável. É conveniente restringir as escalas àquelas nas quais os retornos em cascata não possam acontecer. 31

32 ESCALAS SEM CASCATA Escala sem cascata: Se Tj lê um item de dados previamente escrito por Ti, a operação de efetivação de Ti deve aparecer antes da leitura de Tj. 32


Carregar ppt "Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções."

Apresentações semelhantes


Anúncios Google