banco de dados ii aula 11 - gerenciamento de transação (transações - fundamentos e...
TRANSCRIPT
# Banco de Dados II #Aula 11 – GERENCIAMENTO DE TRANSAÇÃO
(Fundamentos e Características)
Prof. Leinylson Fontinele Pereira
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)
Introdução
22:44 3Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
Vamos começar?
22:44 5Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
O que são Transações?
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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
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
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
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
Transição de Estados de uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
Transição de Estados de uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
Transição de Estados de uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
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
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
Exemplos de Transactions
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
O que é Transação ?
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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:
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
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
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
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
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.
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
Isolamento
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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
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
Principais Comandos
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Principais Comandos
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Principais Comandos
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Principais Comandos
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
Exemplo simples de uma transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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.
Exemplo - Isolation Level Serializable;
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Exemplo de Rollback;
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Exemplo de Rollback;
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Exemplo Completo de Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Caracterí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)
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)
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)