Gerenciamento de Transações - Introdução

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais Aula II
Advertisements

Gerenciamento de Projetos
Checkpoint SGBD com alta demanda de transações Checkpoint
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Controle de Concorrência Serializabilidade
Sistemas Cliente/Servidor Introdução
Técnicas para operações E/S
01/08/2011 Professor Leomir J. Borba- –
TECNOLOGIA EM SISTEMAS PARA INTERNET Banco de dados em aplicativos WEB Aula /08/2011 Professor Leomir J. Borba- –
© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
Motor de Armazenamento
SGBD.
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Cap Recuperação Pretende garantir a atomicidade e durabilidade das transações. Atomicidade => É responsabilidade do gerente de recuperação voltar.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Problemas com Entrada e Saída
Processamento de Transação
Banco de Dados Oracle AESO.
Controle de Concorrência em Sistemas Distribuídos
Fundamentals of Database Processing
RECUPERAÇÃO APÓS FALHA
Sistemas Operacionais I
Processadores – Aula 3 Professor: André Luis Meneses Silva
Processadores – Aula 3 Professor: André Luis Meneses Silva
Sistemas Operacionais I
Gerência de Transações em Sistema de Banco de Dados Móvel
Controle de Concorrência
Locks.
Problema de Inconsistência em Transações
Sistemas Operacionais
Banco de Dados e Usuários do Banco de Dados (capítulo 1)
Data Replication and Resiliency Trabalho realizado por: Rui Ferreira Nº Eng. Informática.
Laboratório I Mateus Raeder Material baseado nos originais da
Prof. Alessandro Gonçalves
Transações Prof: Galina
Transações Lílian Simão Oliveira.
SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS Hélder Lima e Silva - hmls
Conteúdo Processos e threads Partes do processo
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Transações Atômicas Distribuídas Prof. Alcides Calsavara
Controle de concorrência
TRANSAÇÕES Lílian Simão Oliveira. Fonte: Material de referência do SQL Server 2008 R2, disponível em: br/library/bb418439%28v=SQL.10%29.aspx.
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Controle de Concorrência Locks. Conceito de Transação Transações podem ser vistas como um grupo de operações combinadas em uma unidade lógica de trabalho.
Transações Concorrentes
SCC Bancos de Dados e Suas Aplicações
SISTEMAS DISTRIBUÍDOS Transações Atômicas
Problema de Inconsistência em Transações
SISTEMAS OPERACIONAIS I
Introdução a Banco de Dados Aula 04
Entrada e Saída (E/S).
Falhas.
Protocolo de Bloqueios
Fundamentos de linguagens de programação
Serialização Relaxada em Banco de Dados Múltiplos Andressa Sebben
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Sumário 1 Processamento de Consultas 2 Introdução a Transações
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.
Sistemas de Arquivos- Cap4
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Interações entre objetos
Transcrição da apresentação:

Gerenciamento de Transações - Introdução Lílian Simão Oliveira

Conceitos iniciais: Transação É uma coleção de operações que executa uma função lógica única numa aplicação de banco de dados. Cada transação é uma unidade atômica Exemplos Processar venda Fazer transferência entre contas Fechar balanço mensal

Propriedades de uma transação Para preservar a integridade dos dados, o SGBD tem de assegurar as seguintes propriedades: Atomicidade Consistência / Seriabilidade Isolamento Durabilidade

1. Atomicidade Todas as operações da transação são refletidas corretamente no banco de dados ou nenhuma delas Exemplos: Processar venda Totalizar e fechar venda Baixar em estoque Gerar conta a receber

2. Consistência/Seriabilidade A execução de uma transação isolada preserva a consistência do banco de dados, – ou seja, se o banco de dados estiver consistente antes da transação iniciar a sua execução, – deverá permanecer em um estado consistente após a sua execução. Exemplos de consistência a ser mantida: Venda processada sem baixa em estoque Retirada de uma conta sem processamento em outra conta

3. Isolamento Embora várias transações possam ser executadas ao mesmo tempo, – o sistema garante que não haverá anomalias no banco de dados, em função desta execução concorrente. Assim, cada transação não tem ciência da execução das outras no sistema.

4. Durabilidade Após uma transação ser completada com sucesso, as mudanças que ela fez no banco de dados persistem, mesmo que existam falhas no sistema.

Exemplo: transação para transferir $50 da conta A para conta B Requisito da Consistência – a soma de A e B não pode mudar pela execução da transação. Requisito da Atomicidade — se a transação falha após o passo 3 ou antes do passo 6, o sistema deve assegurar que as atualizações não refletem no DB, senão, o DB ficará inconsistente. Requisito da Durabilidade — uma vez que o utilizador foi notificado que a transação terminou (i.e., a transferência de $50 teve lugar), as atualizações do DB feitas pela transação devem persistir apesar das falhas. Requisito do Isolamento — se entre os passos 3 e 6, outra transação é permitido o acesso a um DB parcialmente atualizado, ela encontrará um DB inconsistente (a soma A + B será menor que o que deve ser). Pode ser assegurado por correr transações em série, uma após a outra. Contudo, executar várias transações concorrentemente tem benefícios significativos.

Estados de uma transação Ativo Falho Abortado Executado Parcialente executado

Estados de uma transação o estado inicial; a transação permanece neste estado durante a execução. Ativo Falho Abortado Executado Parcialente executado

Estados de uma transação Ativo Falho Abortado Executado Parcialente executado Depois que a última instrução foi executada

Estados de uma transação Ativo Falho Abortado Executado Parcialente executado depois da descoberta de que uma execução normal não pode mais prosseguir.

Estados de uma transação Ativo Falho Abortado Executado Parcialente executado após a transação ter sido desfeita (roll back) e o DB restaurado para o seu último estado consistente antes do início da transação. Duas opões após abortar a transação: re-inicia a transação – só se nenhum erro lógico interno ocorreu elimina a transação

Estados de uma transação Ativo Falho Abortado Executado Parcialente executado depois de completada com sucesso

Execução concorrente Os sistemas de processamento de transações normalmente permitem que várias transações sejam executadas ao mesmo tempo Essa atualização de dados simultânea causa várias complicações com a consistência dos dados o que gera um trabalho extra no gerenciamento dos mesmos. Vantagens Melhor throughput e utilização dos recursos Tempo de resposta reduzido

Execução Concorrente As seqüências de execução de transações em um SGBD são denominados schedules. Eles determinam a ordem cronológica em que as instruções de uma transação são executados no sistema.

Execução Concorrente Schedule serial Schedule não-serial Consiste em uma seqüência de instruções de várias transações, em que as instruções pertencentes a uma única transação aparecem juntas nesse schedule. Schedule não-serial o sistema pode executar uma transação por um tempo, depois executar a segunda transação por algum tempo e depois voltar à primeira transação por algum tempo e, assim por diante, compartilhando o tempo de CPU para a execução das diversas transações.

Execução concorrente A tarefa do SGBD é garantir que qualquer schedule executado deixe o banco de dados em um estado consistente. O componente de controle de acesso concorrente que possui esta tarefa. Para ilustrar o conceito de schedules seriais e não seriais, consideramos alguns exemplos: Problema clássico do saque em conta Transferência entre contas T1 transfere R$50,00 da conta A para a conta B, Enquanto T2 transfere 10% da conta A para a conta B.

Execução concorrente Problema 2 Imagine um saque em conta bancária, cuja transação é a seguinte: Leia Saldo Conta Diminua o Valor do Saque Salve Novo Saldo Conta Acompanhe explicação no quadro

Schedule Serial Uma transação executa após a outra Qual o saldo final depois de dois saques de 400? T1 T2 read (Saldo, s) s = s - 400 write (Saldo,s)

Schedule não serial Imagine que as transações podem ser interrompidas “no meio” A primeira executa primeira linha Lê o saldo de 500 Após isso ela deve parar pois chegou a vez de outro processo A segunda realiza por completo Lê também um saldo de 500 Realiza o saque A primeira retoma Com o saldo lido de 500 Também realiza o saque Conclusão Com 500 em saldo Foi permitido sacar 800

Schedule não serial Acompanhe visualmente Qual o problema nesta execução? Qual o saldo ao final depois de dois saques de 400? T1 T2 read (Saldo, s) s = s - 400 write (Saldo,s)

Subsistemas de trasações em um SGBD

Subsistemas de trasações em um SGBD Transaction Manager. Coordena as transações após a solicitação do programa de aplicação. Comunica com o scheduler. Scheduler implementa a estratégia para o controle de concorrência. Se ocorre qualquer falha, o recovery manager encarrega-se de tratá-la. Buffer manager tem a tarefa de transferir dados entre o disco e a RAM. File manager manipula os ficheiros subjacentes e gere a alocação de espaço em disco. File manager não manipula diretamente a entrada/saída física dos dados; em vez disso, passa os pedidos para o access manager. Um método de acesso apropriado é usado para ler ou escrever dados para o system manager.

Bibliografia R. Ramakrishnan and J. Gehrke. “Database Management Systems”. Addison-Wesley, 2003 (cap.16). Aula do professor Otacílio José Pereira