Processamento de Transações

Documentos relacionados
Processamento de Transações

Processamento de Transações

PROCESSAMENTO DE TRANSAÇÕES

Processamento de Transações II

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

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

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

Controle de Transação

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

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

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

Processamento de Transações

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

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

Gerenciamento de Transações em Banco de Dados

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

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

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

BDII SQL TRANSAÇÃO Revisão 2

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

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

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

Sistemas Distribuídos Transações

Controle de Concorrência em Banco de Dados

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

Gerência de Transações Distribuídas

Introdução a Banco de Dados

Técnicas de Controle de Concorrência

Aula 03. Evandro Deliberal

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

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

Sistemas Distribuídos

Técnicas de Recuperação em Banco de Dados

Roteiro. Noções de Recuperação de Falhas. BCC321 - Banco de Dados I. Ementa. Posicionamento

Técnicas de Controle de Concorrência

DDL). O resultado da compilação dos parâmetros DDLs é

Scheduler Baseado em Timestamp

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva.

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

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Banco de dados. Prof. Emiliano S. Monteiro

Bancos de Dados NoSQL

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

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Sistemas da Informação. Banco de Dados I. Edson Thizon

Banco de Dados. Introdução. Profa. Flávia Cristina Bernardini

Sumário. Recuperação de Falhas

Técnicas de Controle de Concorrência

SUMÁRIO... 6 ÍNDICE DE FIGURAS ÍNDICE DE TABELAS INTRODUÇÃO CAPÍTULO BANCO DE DADOS... 20

Banco de Dados. SGBDs. Professor: Charles Leite

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

Conceitos de Sistemas de Banco de Dados INE 5323

BCD29008 Banco de dados

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Transacções em Sistemas Distribuídos

Controle de Concorrência

Curso: Banco de Dados I. Conceitos Iniciais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

BCD29008 Banco de dados

Transcrição:

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

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

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

Transações concorrentes São aquelas que podem interferir entre si Exemplo clássico: Duas transações que incrementam um valor X = 0 T1 read(x) X++ write(x) T2 read(x) X++ write(x) X = 1 ou X = 2?

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

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

Problemas de concorrência Síntese incorreta

Problemas de concorrência 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

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

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

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

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

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

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

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

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)

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

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

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

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ê

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)

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

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)

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

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'

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.

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)

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"

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

Dúvidas?

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