banco de dados ii aula 11 - gerenciamento de transação (transações - fundamentos e...

45
# Banco de Dados II # Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características) Prof. Leinylson Fontinele Pereira

Upload: leinylson-fontinele

Post on 11-Feb-2017

129 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

# Banco de Dados II #Aula 11 – GERENCIAMENTO DE TRANSAÇÃO

(Fundamentos e Características)

Prof. Leinylson Fontinele Pereira

Page 2: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Na aula anterior...

LINGUAGEM DE CONSULTA SQL# SQL Avançada

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 3: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Introdução

22:44 3Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 4: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que vamos aprender?

GERENCIAMENTO DE TRANSAÇÃO# Fundamentos

# Características

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 5: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Vamos começar?

22:44 5Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 6: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que são Transações?

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 7: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que são Transações?

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

São sequência de Ações (Operações de Banco de Dados) quesão executadas como “um conjunto”:

# Ou todas são executas com sucesso ou Nenhuma delas

Exemplo

# Um banco transfere dinheiro entre duas contas (saque + depósito)

# Se qualquer uma das operações falhar, a transferência será cancelada

Page 8: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que são Transações?

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

SGBD

# Sistema de processamento de operações de acesso ao BD

SGBDs são em geral multi-usuários

# Processam simultaneamente operações disparadas por vários usuários

• Deseja-se alta disponibilidade e tempo de resposta pequeno

# Execução intercalada de conjuntos de operações

• Enquanto um processo i faz I/O, outro processo j é selecionado para execução

Page 9: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que são Transações?

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Uma transação pode ser encarada como um conjunto deoperações de leitura e escrita de dados

Page 10: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Uma transação é sempre monitorada pelo SGBD quanto aoseu estado

# Que operações já fez? concluiu suas operações? deve abortar?

Estados de uma transação

# Ativa, Em processo de efetivação, Efetivada, Em processo de aborto,Concluída

Page 11: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 12: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 13: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 14: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 15: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 16: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transição de Estados de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 17: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transações

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Rollback

Commit

Leitura Gravação

GravaçãoSituação

Inicial

(Durável)

Situação Final

Durável e

consistente

Coleção de

leituras e

gravações

Page 18: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transactions Behavior

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Todas as modificações da transação são “temporárias”

Modificações serão “persistidas” apenas após o Commit

A qualquer momento (antes do commit) as modificaçõespodem ser canceladas através de um Rollback

Page 19: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplos de Transactions

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 20: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

O que é Transação ?

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 21: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo de Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Suponha que se deseje transferir $100.00 da conta da Alice para a conta do Bob. Simplificando ao extremo, os comandos SQL para esta operação seriam:

Page 22: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Propriedades de uma Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Requisitos que sempre devem ser atendidos por uma transação

Chamadas de propriedades ACID

Atomicidade

Consistência

Isolamento

Durabilidade

Page 23: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Atomicidade

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Princípio do “Tudo ou Nada”

# ou todas as operações da transação são efetivadas com sucesso no BD

# ou nenhuma delas se efetiva

Responsabilidade do subsistema de recuperação contra falhas (subsistema de recovery) do SGBD

# desfazer as ações de transações parcialmente executadas

Page 24: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Consistência

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Uma transação sempre conduz o BD de um estadoconsistente para outro estado também consistente

Sem necessariamente preservar o estado deconsistência em todos os pontos intermediários

Page 25: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Consistência

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

O Banco de dados está consitente (íntegro) antes e depois da transação

Apenas dados válidos foram gravados

A Transação não pode quebrar regras de integridade e respeita:

# Chaves primárias, estrangeiras e únicas

Page 26: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Isolamento

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Múltiplas transações simultâneas não afetam umas as outras

Transações não enxergam dados não COMMITADOS.

O Nível de isolamento define o quanto uma transação “enxerga” alterações das outras

# Read committed, read uncommitted, repeatable read, serializable, etc.

Page 27: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Isolamento

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

No contexto de um conjunto de transações concorrentes, aexecução de uma transação

# Tx deve funcionar como se Tx executasse de forma isolada

• Tx não deve sofrer interferências de outras transações executandoconcorrentemente

Responsabilidade do subsistema de controle de concorrência(scheduler) do SGBD

# Garantir escalonamentos sem interferências

Page 28: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Isolamento

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 29: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Durabilidade

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Se uma transação é confirmada (COMMIT) ela será persistente# Não pode ser perdida nem desfeita

Garantida através de LOGS de TRANSAÇÂO e BackupExemplo

# Ápós concluida a transferência, a energia falha

# Ao retornar, os dados continuam íntegros e registrados conforme o momento imediatamente anterior à falha

Page 30: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transações em SQL

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Por default, todo comando individual é considerado uma transação# exemplo: DELETE FROM Pacientes

• exclui todas ou não exclui nenhuma tupla de pacientes, deve manter o BD consistente, etc

SQL Padrão (SQL-92)# SET TRANSACTION

• inicia e configura características de uma transação

# COMMIT [WORK]

• encerra a transação (solicita efetivação das suas ações)

# ROLLBACK [WORK]• solicita que as ações da transação sejam desfeitas

Page 31: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Principais Comandos

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 32: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Principais Comandos

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 33: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Principais Comandos

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 34: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Principais Comandos

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 35: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Transações em SQL

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Principais configurações (Set Transaction)# modo de acesso

• READ (somente leitura), WRITE (somente atualização) ou READ WRITE (ambos - default)

# nível de isolamento• indicado pela cláusula ISOLATION LEVEL nível

• nível para uma transação Ti pode assumir

– SERIALIZABLE (Ti executa com completo isolamento - default)

– REPEATABLE READ (Ti só lê dados efetivados e outras transações não podem escrever em dados lidos por Ti) – pode ocorrer que Ti só consiga ler alguns dados que deseja

– READ COMMITTED (Ti só lê dados efetivados, mas outras transações podem escrever em dados lidos por Ti)

– READ UNCOMMITTED (Ti pode ler dados que ainda não sofreram efetivação)

Page 36: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo simples de uma transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 37: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo simples de uma transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Start Transaction (ou BEGIN): Inicia explicitamente uma nova transação, mantendo ela aberta até que seja fechada (concluida) por um COMMIT ou ROLLBACK.

SavePoint: Um ponto delimitado na transação, que oferece a possibilidade de um rollback de qualquer comando executado após este ponto salvo.

**Cuidado: Ao efetuar um novo savepoint com o mesmo nome, o antigo será sobreescrito pelo novo criado.

Rollback to savepoint: Efetua o rollback da transação até o ponto criado. Este ponto continuará a existir mesmo após o rollback, permitindo que ele seja reutilizado.

Rollback: Cancela todas as alterações efetuadas na transação.

Commit: Torma permanente as alterações tratadas na transação ao banco de dados.

Page 38: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo - Isolation Level Serializable;

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 39: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo de Rollback;

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 40: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo de Rollback;

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 41: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Exemplo Completo de Transação

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 42: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Material: https://sites.google.com/site/leinylsonuespi

22:44

Aula baseada no material de

TRANSAÇÕES, Wagner Bianchi

Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 43: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Nesta aula aprendemos...

GERENCIAMENTO DE TRANSAÇÃO# Fundamentos

# Características

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 44: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Na próxima aula veremos...

GERENCIAMENTO DE TRANSAÇÃO# Controle de Concorrência

22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)

Page 45: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)

Alguma Dúvida?

22:44

Até a próxima aula...

[email protected]