Banco de Dados II Aula 11 - Gerenciamento de transação (transações - fundamentos e caraterísticas)
1. # Banco de Dados II #
Aula 11 – GERENCIAMENTO DE TRANSAÇÃO
(Fundamentos e Características)
Prof. Leinylson Fontinele Pereira
2. Naaulaanterior...
LINGUAGEM DE CONSULTA SQL
# SQL Avançada
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
3. Introdução
22:44 3 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
4. O que vamosaprender?
GERENCIAMENTO DE TRANSAÇÃO
# Fundamentos
# Características
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
5. Vamos começar?
22:44 5 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
6. O que são Transações?
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
7. O que sãoTransaçõ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) que
sã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 umadas operações falhar, a transferência será cancelada
8. O que sãoTransaçõ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
9. O que sãoTransaçõ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 de
operações de leitura e escrita de dados
10. Estadosde umaTransaçã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 ao
seu 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
11. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
12. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
13. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
14. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
15. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
16. Transiçãode Estadosde uma Transação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
17. 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
18. TransactionsBehavior
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ções
podem ser canceladas através de um Rollback
20. O que é Transação?
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
21. Exemplode 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:
22. Propriedadesde umaTransaçã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 propriedadesACID
Atomicidade
Consistência
Isolamento
Durabilidade
23. Atomicidade
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
Princípio do “Tudoou 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 asações de transações parcialmente executadas
24. 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 estado
consistenteparaoutroestadotambémconsistente
Sem necessariamente preservar o estado de
consistência em todos os pontos intermediários
25. 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
26. 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çõesdas outras
# Read committed, read uncommitted, repeatable read, serializable, etc.
27. 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, a
execução de uma transação
# Tx devefuncionarcomose Tx executassede formaisolada
• Tx não deve sofrer interferências de outras transações executando
concorrentemente
Responsabilidade do subsistema de controle de concorrência
(scheduler) do SGBD
# Garantir escalonamentos sem interferências
28. Isolamento
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
29. 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 Backup
Exemplo
# Ápós concluida a transferência, a energia falha
# Ao retornar, os dados continuam íntegros e registrados conforme o
momento imediatamente anterior à falha
30. Transaçõesem 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
35. Transaçõesem 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 ocorrerque 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)
37. Exemplosimplesde umatransação
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
StartTransaction(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 possibilidadede um rollback de qualquer comando
executado após este ponto salvo.
**Cuidado: Ao efetuar um novo savepoint com o mesmo nome, o antigo será sobreescritopelo novo criado.
Rollbackto 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.
43. Nestaaulaaprendemos...
GERENCIAMENTO DE TRANSAÇÃO
# Fundamentos
# Características
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)
44. Napróximaaulaveremos...
GERENCIAMENTO DE TRANSAÇÃO
# Controle de Concorrência
22:44 Banco de Dados II: Aula 11 – GERENCIAMENTO DE TRANSAÇÃO (Fundamentos e Características)