Download - Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)
![Page 1: Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/1.jpg)
# 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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/2.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/3.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/4.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/5.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/6.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/7.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/8.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/9.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/10.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/11.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/12.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/13.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/14.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/15.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/16.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/17.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/18.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/19.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/20.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/21.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/22.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/23.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/24.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/25.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/26.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/27.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/28.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/29.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/30.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/31.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/32.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/33.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/34.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/35.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/36.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/37.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/38.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/39.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/40.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/41.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/42.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/43.jpg)
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)](https://reader031.vdocuments.net/reader031/viewer/2022031814/589ef17a1a28abe97f8b689b/html5/thumbnails/44.jpg)
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)