Processamento de Transações II

Documentos relacionados
Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires

Processamento de Transações

Processamento de Transações

PROCESSAMENTO DE TRANSAÇÕES

Processamento de Transações

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Processamento de Transações

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações

Controle de Transação

Introdução. Processamento de Transações. Introdução. Introdução. Transações. Transações. Transação

BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva

BD II (SI 587) Controle de Concorrência. Josenildo Silva.

Banco de Dados. Controle de Concorrência e Recuperação de Transação. Prof. João Eduardo Ferreira Prof. Osvaldo Kotaro Takai

Gerenciamento de Transações em Banco de Dados

Lista de Exercícios 12 Transações

Banco de Dados I 6 Transações e Controle de Concorrência

TRANSAÇÕES E CONTROLE DE CONCORRÊNCIA Em resumo: Transações: clientes podem necessitar que um servidor execute uma sequência de requisições de forma a

Scheduler Baseado em Timestamp

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

BDII SQL TRANSAÇÃO Revisão 2

Técnicas de Controle de Concorrência

Técnicas de Controle de Concorrência

Técnicas de Controle de Concorrência. Laboratório de Bancos de Dados

Avisos. Processamento de Transações Controle de Concorrência. Roteiro da aula. Tipos de bloqueio: Binários. Protocolos baseados em bloqueio

Exercícios Módulo Banco de Dados I (08/07/2006)

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Módulo II: Controle de. Concorrência. (Aulas 1 e 7) Clodis Boscarioli

Controle de Concorrência

Sistemas Distribuídos Transações

GBC043 - Sistemas de Banco de Dados Lab8 : Transações no PostgreSql

Técnicas de Controle de Concorrência

Gerência de Transações Distribuídas

Controle de Transações. Banco de Dados André Luiz do Vale Soares

Banco de Dados II. Transações (Oracle) Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Sistemas Distribuídos

Transações, Controle de Concorrência e o Hibernate. Clodis Boscarioli

Banco de Dados II. Transações. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

Controle de Concorrência em Banco de Dados

CONCORRÊNCIA. Buscando aumentar os níveis de concorrência redução da espera em detrimento do isolamento, a SQL definiu alguns níveis de isolamento.

Sincronização e Comunicação entre Processos. Adão de Melo Neto

Oracle Comandos para Processamento de Transações

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.

Lock. Administração de Banco de Dados

TRANSAÇÕES: SISTEMA DE RECUPERAÇÃO E CONTROLE DE CONCORRÊNCIA

Aula 03. Evandro Deliberal

Transcrição:

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA Banco de Dados II Processamento de Transações II Carlos Eduardo Portela Serra de Castro *

Processamento de Transações II Sumário Definindo Plano de Execução Baseado na Restaurabilidade Baseado na Seriabilidade Suporte a Transações em SQL 2

Definindo Plano de Execução Baseado na Restaurabilidade (Schedules Recoverability) Planos de Execução (Histórico) de Transações. A ordem de execução das operações de várias transações executando concorrentemente na forma Intercalada. Um plano S de n transações T 1, T 2,..., T n é a ordenação das operações dessas transações, sujeito à uma restrição, tal que, para cada transação Ti em S, as operações de Ti em S devem aparecer na mesma ordem que elas ocorrem em Ti. 3

Plano de Execução para o problema da atualização perdida Sa : r1(x); r2(x); w1(x); r1(y); w2(x); w2(y); r: read, w: write, c: commit; a;abort 2005 by Pearson Education Sistemas de Banco de Dados 4

Operações Conflitantes em um escalonamento Duas operações são ditas em conflito se: 1 - Pertencem a diferentes transações; 2 - Acessam o mesmo item X; 3 - Pelo menos uma das operações é um escrever_item(x). 5

Plano completo Um plano é chamado de plano completo se: 1 As operações em S são exatamente as operações de T 1, T 2,..., T n, tendo um commit ou um abort como última operação de cada transação no plano; 2 Para quaisquer pares de operação da mesma transação T i, sua ordem de aparecimento em S será a mesma que em T i ; 3 Para quaisquer operações conflitantes, uma das duas precisa aparecer antes de outra no plano. 6

Plano restaurável (recuperável) Um plano S é restaurável se nenhuma transação T em S for efetivada até que todas as transações T que tiverem gravado um item lido por T, tenham sido efetivadas. Plano restaurável: Sa': r1(x); r2(x); w1(x); r1(y); w2(x); c2; w1(y); c1; Plano não restaurável: Sc: r1(x); w1(x); r2(x); r1(y); w2(x); c2; a1; T2 lê X de T1e é efetivada antes de T1. 7

Reversão em Cascata (cascading rollback) Uma transação não efetivada tem que ser revertida porque lê um item de uma transação que falhou. Plano livre de reversão em Cascata (avoid cascading rollback) Cada transação do plano lê somente itens que foram gravados por transações efetivadas. Plano Restrito (restrict schedule) Nenhuma transação pode ler ou escrever itens até que a última transação que grave X tenha ainda sido efetivada ou abortada 8

(Schedules Serializability) Definindo Plano de Execução Baseado na Serialidade Serializabilidade de Escalonamentos Sem intercalação, se duas transações são submetidas, então todas as operações da transação T1 (em seqüência) são seguidas por todas as operações de T2, ou vice-versa. Teoria da Serializabilidade Tenta determinar quais escalonamentos são corretos e quais não são e desenvolver técnicas que permitam apenas escalonamentos corretos. 9

Exemplos de planos seriais e não-seriais envolvendo as transações T 1 e T 2. (a) Plano serial A: T 2, seguido por T 2. (b) Plano serial B: T 2 seguido por T 1. (c) Dois planos não-seriais, C e D, com intercalação de operações. 2005 by Pearson Education Sistemas de Banco de Dados 10

Planos Seriais, Não-Seriais e de Conflitos Serializáveis Escalonamento Serial As operações de cada transação são executadas consecutivamente, sem operações intercaladas com as de outras transações Escalonamento Não-serial As operações de uma transação são executadas intercaladas com operações de outra transação Escalonamento Serializável É equivalente a algum escalonamento serial com as mesmas n transações Escalonamento de Resultados Equivalentes Produzem o mesmo resultado final do BD 11

Dois planos que têm resultados equivalentes quando o valor inicial de X = 100, mas que, no geral, não são resultados equivalentes. 2005 by Pearson Education Sistemas de Banco de Dados 12

Testando o Conflito de Serialidade de um Plano Grafo de Precedência: grafo dirigido G=(N,E) que consiste de um conjunto de nós N={T1, T2,..., Tn} e um conjunto de setas dirigidas E={e1, e2,..., em}onde cada nó representa uma transação do plano. *(Grafo de Precedência ou Grafo de Serialização) 13

Construindo os grafos de precedência para teste de conflito serialidade dos planos A a D da Figura 17.5. (a) Grafo de precedência para o plano serial A. (b) Grafo de precedência para o plano serial B. (c) Grafo de precedência para o plano C (não serializável). (d) Grafo de precedência para o plano D (serializável, equivalente ao plano A). 2005 by Pearson Education Sistemas de Banco de Dados 14

Teste de Conflito de Serialidade Algoritmo 1. Para cada transação participando de um escalonamento S, criar um nó rotulado Ti no grafo de precedência 2. Para cada caso em S onde uma transação Tj executa um ler_item(x) após um escrever_item(x) executado por outra transação Ti crie uma seta (Ti ->Tj) no grafo de precedência 15

Teste de Conflito de Serialidade 3. Para cada caso em S onde uma transação Tj executa um escrever_item(x) após um ler_item(x) executado por outra transação Ti crie uma seta (Ti -> Tj) no grafo de precedência 4. Para cada caso em S onde uma transação Tj executa um escrever_item(x) após um escrever_item(x) executado por outra transação Ti crie uma seta (Ti -> Tj) no grafo de precedência 5. Um plano S será serializável se e somente se o grafo de precedência não tem ciclos 16

Aplicações de Serialidade Plano serial x Plano serializável 17

Outro exemplo de teste de serialidade. (a) As operações READ e WRITE das três transações T 1, T 2, e T 3. (b) Plano E. (c) Plano F. 2005 by Pearson Education Sistemas de Banco de Dados 18

Outro exemplo de teste de serialidade. (d) Grafo de precedência para o plano E. (e) Grafo de precedência para o plano F. (f) Grafo de precedência com dois planos seriais equivalentes. 2005 by Pearson Education Sistemas de Banco de Dados 19

Suporte de Transações SQL Conceito similar ao já definido Não existe Begin_Transaction explícita Modo de acesso: Read_only Reas_Write Nível de Isolamento: Read uncommited Read commited Repeatle read Serializable 20

2005 by Pearson Education Sistemas de Banco de Dados 21

Elmasri - Navathe Atenção: Leitura do Capítulo 17 Introdução aos Conceitos e à Teoria do Processamento de Transações 2005 by Pearson Education Sistemas de Banco de Dados 22