Controle de Transação

Documentos relacionados
ANÁLISE E PROJETO DE BANCO DE DADOS

PROCESSAMENTO DE TRANSAÇÕES

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque

Processamento de Transações

Banco de Dados I. Aula 18 - Prof. Bruno Moreno 22/11/2011

Orientações. Transações - PostgreSQL. Relembrando: Propriedades desejáveis. Abrir Prompt de comando ROLLBACK

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

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

Processamento de Transações

Processamento de Transações

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

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

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

BANCO DE DADOS 2 TRANSAÇÃO

Sumário. Introdução a Transações

e c d o o r B s s n i : l e F s

BDII SQL TRANSAÇÃO Revisão 2

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

Processamento de Transações

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

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

Aula 03. Evandro Deliberal

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

Banco de dados. Prof. Emiliano S. Monteiro

Lista de Exercícios 12 Transações

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

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 Transações. Banco de Dados André Luiz do Vale Soares

Sistemas de Gerência de Bancos de Dados

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

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

Lock. Administração de Banco de Dados

Processamento de Transações II

Conceitos Básicos. Fundação Centro de Análise, Pesquisa e Inovação Tecnológica Instituto de Ensino Superior - FUCAPI. Disciplina: Banco de Dados

23/05/12. Conteúdo. Introdução ao gerenciamento de transações. Motivação. Motivação. Motivação. Motivação

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.

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

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

Adriano Maranhão TRANSAÇÕES

Sumário. Controle de Concorrência

Bancos de Dados Notas de Aula Introdução Prof. Dr. Daniel A. Furtado

Sistemas Distribuídos Transações

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

BCD29008 Banco de dados

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

BCD29008 Banco de dados

AULA SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo

Oracle Comandos para Processamento de Transações

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

Gerenciamento de Transações em Banco de Dados

Sistemas Distribuídos

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

Sumário. Recuperação de Falhas

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

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Banco de Dados. SGBDs. Professor: Charles Leite

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

SISTEMAS DE GERENCIAMENTO DE BANCO DE DADOS

Contato. professorluisleite.wordpress.com

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

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

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

Administração e Optimização de BDs

Checkpoint. Checkpoint

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

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

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

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

Técnica UNDO/REDO. Checkpoint

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

Processamento de INDUSTRIA 4.0. Big Data. Aula #8 - Transações e concorrência MARMELADA NO RING, FONTE: ESTADAO EDUARDO CUNHA DE ALMEIDA

Sumário. Motivação. Aplicações precisam acessar o BD Linguagens BD X Linguagens Programação. paradigmas diferentes (impedance mismatch)

Universidade Federal do Maranhão

SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS - SGBD

Introdução. Motivação. Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados (BD) Sistema de Banco de Dados (SBD)

Sincronização e Concorrência

Introdução. Qual é a importância dos bancos de dados no nosso dia a dia? Imaginem como seria as grandes empresas sem os bancos de dados?

A instância Oracle é composta de :

6.1 Resumo das Características do Modelo Proposto

Gerência de Transações Distribuídas

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

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

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

SGBD. Definição. Funções básicas

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

MODELO DE BANCO DE DADOS RELACIONAL

Triggers(Gatilhos) Tiago Alves de Oliveira

Transcrição:

Curso: Ciência da Computação Disciplina: Banco de Dados Campus Lages Controle de Transação Prof. Edjandir C. Costa edjandir.costa@ifsc.edu.br

Agenda Conceitos de transação e sistema Propriedades desejáveis das transações Suporte para transação em SQL Aplicação com o banco de dados Postgresql

O conceito de transação oferece um mecanismo para descrever unidades lógicas de processamento de banco de dados; Os sistemas de processamento de transação são sistemas com grandes bancos de dados e centenas de usuários simultâneos que executam transações de banco de dados. Ex: Sistemas bancários, reservas aéreas, compras online e outros.

Os sistemas exigem alta disponibilidade e tempo de resposta rápido; O conceito de transação é usado para representar uma unidade lógica de processamento que deve ser concluída por inteiro para garantir a exatidão. Nesse contexto o controle de concorrência é essencial, pois várias transações submetidas ao mesmo tempo por diversos usuários interferem umas nas outras e podem produzir um resultado incorreto.

Sistemas monousuários versus multiusuários: nos sistemas monousuário somente um usuário pode acessar o sistema enquanto nos sistemas multiusuários vários acessos são permitidos simultaneamente; No modelo multiusuário, o conceito de multiprogramação é utilizado para permitir que o SO execute vários processos ao mesmo tempo.

Em arquiteturas com apenas 1 CPU, a execução dos processos é intercalada, enquanto em arquitetura com múltiplos processadores é possível realizar processamento em paralelo. A maior parte da teoria referente a controle de concorrência é desenvolvida em relação à concorrência intercalada.

Uma transação é um programa em execução que forma uma unidade lógica de processamento de banco de dados. Ela inclui uma ou mais operações de acesso ao banco de dados estas podem incluir operações de inserção, exclusão, modificação ou busca. Um modo de especificar os limites de transação é determinando pelas explícias begin transaction e end transaction em um programa de aplicação. Nesse caso, as operações entre os dois marcadores são consideradas formando uma transação.

Se as operações de banco de dados em uma transação não atualizarem os dados, mas apenas recuperarem dados, a transação é chamada de transação somente de leitura; caso contrário, ela é conhecida como transação de leitura-gravação.

Os mecanismos de controle de concorrência e recuperação tratam principalmente dos comandos de banco de dados em uma transação. As transações submetidas pelos diversos usuários podem ser executadas simultaneamente, acessar e atualizar os mesmo itens de banco de dados. Se a execução simultânea não for controlada, ela pode ocasionar problemas, deixando o bando de dados inconsistente.

Por que o controle de concorrência é necessário? Problema de atualização perdida: duas transações que acessam os mesmos itens do banco de dados têm suas operações intercaladas o que torna o valor de alguns itens incorretos.

Por que o controle de concorrência é necessário? Problema da atualização temporária (leitura suja): ocorre quando uma transação atualiza um item do banco de dados e depois a transação falha por algum motivo. Nesse meio-tempo, o item atualizado é lido por outra transação, antes de ser alterado de volta para seu valor original.

Por que o controle de concorrência é necessário? Problema do resumo incorreto: se uma transação está calculando uma função de resumo de agregação em uma série de itens de banco de dados, enquanto outras transações estão atualizando alguns desses itens, a função de agregação pode calcular alguns valores antes que eles sejam atualizados e outros depois.

Por que o controle de concorrência é necessário? Problema da leitura não repetitiva: acontece quando uma transação lê o mesmo item duas vezes e o item é alterado por outra transação entre as duas leituras. Logo, a primeira transação recebe valores diferentes para suas duas leituras do mesmo item.

Por que a recuperação é necessária O sistema deve garantir que todas as operações na transação sejam concluídas com sucesso, e assim persistindo no banco de dados ou que a transação não tenha qualquer efeito. No primeiro caso a transação é considerada confirmada (commited), e no segundo, a transação é abortada. Se a transação falhar em alguma de suas operações, mas antes de executar todas elas, as já executadas precisam ser desfeitas (rollback).

Tipos de falhas: 1) Falha do computador/sistema: erro de hardware, rede durante a execução de uma transação; 2) Erro de transação ou do sistema: erro de programação; 3) Erros locais ou condições de exceção: podem ocorrer condições que necessitam de cancelamento da transação. Saldo insuficiente da conta, por exemplo; 4) Imposição de controle de concorrência: devido a violação de serialização ou deadlocks. São reiniciadas automaticamente em outro momento; 5) Falha de disco: erro durante uma operação de leitura ou gravação da transação; 6) Problemas físicos ou catástrofes: lista sem fim de problemas, desde falha elétrica a incêndio.

As falhas dos tipos 1, 2, 3 e 4 são mais comuns do que as dos tipos 5 e 6. Sempre que ocorrer uma falha dos tipos 1 a 4, o sistema precisa manter informações suficientes para recuperar-se rapidamente da falha. O conceito de transação é fundamental para muitas técnicas de controle de concorrência e recuperação de falhas.

Conceitos de transação e sistema Estados de transação e operações Para fins de recuperação, o sistema precisa registrar quando cada transação começa, termina e confirma ou aborta. Desse modo o SGBD precisa acompanhar as seguintes operações: BEGIN_TRANSACTION: marca o início da transação READ ou WRITE: operações de leitura ou gravação nos itens do banco de dados que acontecem dentro da transação END_TRANSACTION: marca o final da execução da transação.

Conceitos de transação e sistema Estados de transação e operações COMMIT_TRANSACTION: sinaliza um final bem sucedido da transação de modo que as mudanças podem ser confirmadas no banco de dados; ROLLBACK (ou ABORT): transação finalizada sem sucesso, as operações precisam ser desfeitas.

Conceitos de transação e sistema Log do Sistema Para recuperar-se de falhas que afetam as transações, o sistema mantém um log para registrar todas as operações de transação que afetam os valores dos itens de banco de dados. O log é um arquivo sequencial, apenas para inserção, que é mantido no disco, de modo que não é afetado por qualquer tipo de falha, exceto por uma pane no disco.

Conceitos de transação e sistema Ponto de confirmação de uma transação Uma transação alcança seu ponto de confirmação quando todas suas operações tiverem sido executadas com sucesso e o efeito tenha sido registrado no log. Além do ponto de confirmação, a transação é considerada confirmada, e s e u e f e i t o d e v e s e r r e g i s t r a d o permanentemente no banco de dados.

Conceitos de transação e sistema Propriedades desejáveis das transações Atomicidade: u m a t r a n s a ç ã o é u m a u n i d a d e d e processamento atômica; ela deve ser realizada em sua totalidade ou não ser realizada de forma alguma; Consistência: u m a t r a n s a ç ã o d e v e p r e s e r v a r a consistência. Se ela for completamente executada do início ao fim, sem interferência de outras transações, deve levar o banco de dados de um estado ao outro;

Conceitos de transação e sistema Propriedades desejáveis das transações Isolamento: um transação deve parecer como se fosse executada isoladamente de outras transações, mesmo quando elas sejam executadas simultaneamente. Durabilidade: as mudanças aplicadas ao banco de dados pela transação confirmada precisam persistir no banco de dados. Essas mudanças não devem ser perdidas por causa de alguma falha. ACID

Suporte para transação em SQL Em SQL não existe uma instrução Begin_Transaction explícita. O início da transação é feito implicitamente quando instruções SQL em particular são encontradas. Porém, cada transação precisa ter um COMMIT ou um ROLLBACK. Cada transação tem características atribuídas a ela que são especificadas por uma instrução SET TRANSACTION. As características são: modo de acesso, tamanho da área de diagnóstico e o nível de isolamento.

Suporte para transação em SQL Modo de acesso: READ ONLY ou READWRITE (default); Tamanho da área de diagnóstico: número de condições que podem ser mantidas de maneira simultânea na área de diagnóstico; Nível de isolamento (ISOLATION LEVEL): READ UNCOMMITED, READ COMMITED, REPEATABLE READ ou SERIALIZABLE (nível máximo).

Suporte para transação em SQL Leitura suja: uma transação pode ler a atualização de outra transação que ainda não foi confirmada Leitura não repetitiva: uma transação faz a leitura de uma valor de uma tabela. Se outra transação atualizar esse valor, uma nova leitura da primeira transação retorna um valor diferente do original. Fantasma: uma transação lê linhas de tabela com base em alguma condição especificada pela cláusula WHERE. Se uma outra transação inserir uma nova linha que também satisfaça a cláusula WHERE a primeira transação verá uma linha que não existia inicialmente.

Suporte para transação em SQL

Bibliografia Para elaborar esta apresentação utilizei a seguinte referência bibliográfica: NAVATHE, Shamkant B.; ELMASRI, Ramez. Sistemas de banco de dados. Tradução de Daniel Vieira. 6. ed. São Paulo: Pearson Addison-Wesley, 2011. 788 p., il., 28 cm. Bibliografia. ISBN 9788579360855.