Você está na página 1de 32

Disciplina Banco de Dados II

Gerenciamento de transaes
Msc, Marcelo Bezerra de Alcntara malcantara@fa7.edu.br
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 1

Objetivos
1. Compreender a necessidade do uso das transaes; 2. Entender o que transao; 3. Conhecer as caractersticas de uma transao.

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 2

Bibliografia
1. ELMASRI, Ramez; NAVATHE, Shamkant B, Sistemas de banco de dados. 4. ed. Pearson Brasil, 2005.
1. Captulo 19

2. KORTH, Henry F.; SILBERSCHATZ, Abraham Sistemas de banco de dados. 3. ed, So Paulo: Makron Books, 1999.
1. Captulo 13
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 3

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 4

Relembrando Conceitos
Banco de Dados
Coleo de dados relacionados. Ex: Planilha, Fichrio, SGBD, etc.

Sistema Gerenciador de Banco de Dados (SGBD)


Coleo dos programas que permitem os usurios criar e manipular um banco de dados;

Sistema de Banco do Dados


Unio do SGBD + Base de dados

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 5

Relembrando Conceitos
Sistema de Banco de Dados Aplicativo SGBD Software de processamento das consultas

Software de acesso ao dados

Meta-dados

Banco de dados

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 6

Relembrando Conceitos
Caractersticas de SGBD
Natureza auto-descritiva (Meta-dados) Abstrao dos dados

Processamento de Transaes Multi-usurio


Suporte a mltiplas vises Compartilhamento dos dados

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 7

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 8

Por que existe a transao?


P1
read(A)

P2

Problema da perda da atualizao

A = A 50
read(A) A= A+A*0.1 write(A) read(B) write(A)

P1 interfere em P2 P2 interfere em P1
Marcelo Bezerra de Alcntara

read(B) B = B + 50 write(B) B=B-A write(B)


Banco de Dados II - Transao - 9

Por que existe a transao?


P1
read(A)

P2

Problema da atualizao temporria

A = A 50
write(A) read(A) A= A+A*0.1 write(A)

P1 falha Desfazer operaes P2 atualiza valor invlido


Marcelo Bezerra de Alcntara

read(B) B=B/A

write(B)

Banco de Dados II - Transao - 10

Por que existe a transao?


P1 P2

Problema da totalizao dos valores

S=0 read(A) S=S+A read(A) A= A+A*0.1 write(A) read(B)

P2 atualiza valor de A
S=S+B

P1 valor inconsistente

print(S)

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 11

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 12

Transao
Unidade lgica de processamento em um SGBD Composta de uma ou mais operaes
seus limites podem ser determinados em SQL

De forma abstrata e simplificada, uma transao pode ser encarada como um conjunto de operaes de leitura e escrita de dados
Tx read(x) x=xi read(y) y=y*x write(x) write(y)
Marcelo Bezerra de Alcntara

l o dado X do BD e o armazena na varivel X

grava no dado Y do BD o valor da varivel Y


Banco de Dados II - Transao - 13

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Por que transao? Definio de transao Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 14

Propriedades de uma Transao


Requisitos que sempre devem ser atendidos por uma transao Chamadas de propriedades ACID
Atomicidade Consistncia Isolamento Durabilidade ou Persistncia

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 15

Atomicidade
Princpio do Tudo ou Nada
ou todas as operaes da transao so efetivadas com sucesso no BD ou nenhuma delas se efetiva
preservar a integridade do BD

Responsabilidade do subsistema de recuperao contra falhas (subsistema de recovery) do SGBD


desfazer as aes de transaes parcialmente executadas
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 16

Atomicidade
Deve ser garantida, pois uma transao pode manter o BD em um estado inconsistente durante a sua execuo
Contas
nmero saldo

100 200 ...

500.00 200.00

Tx (transferncia bancria) read(x) x.saldo = x.saldo 100.00 x write(x) y read(y) y.saldo = y.saldo + 100.00 execuo write(y)

falha!

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 17

Consistncia
Uma transao sempre conduz o BD de um estado consistente para outro estado tambm consistente Responsabilidade conjunta do
DBA
definir todas as RIs para garantir estados e transies de estado vlidos para os dados
exemplos: salrio > 0; salrio novo > salrio antigo

subsistema de recovery
desfazer as aes da transao que violou a integridade
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 18

Isolamento
No contexto de um conjunto de transaes concorrentes, a execuo de uma transao Tx deve funcionar como se Tx executasse de forma isolada
Tx no deve sofrer interferncias de outras transaes executando concorrentemente

Responsabilidade do subsistema de controle de concorrncia (scheduler) do SGBD


garantir escalonamentos sem interferncias

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 19

Isolamento
T1
read(A) A = A 50 write(A) read(A)

T2

T1
read(A) A = A 50

T2

read(A) A = A+A*0.1 write(A) read(B) write(A) read(B)

A = A+A*0.1
write(A) read(B) B = B + 50 write(B) read(B) B=B-A write(B)

T1 interfere em T2

B = B + 50
write(B) B=B-A write(B)

T2 interfere em T1

escalonamento vlido
Marcelo Bezerra de Alcntara

escalonamento invlido
Banco de Dados II - Transao - 20

Durabilidade ou Persistncia
Deve-se garantir que as modificaes realizadas por uma transao que concluiu com sucesso persistam no BD
nenhuma falha posterior ocorrida no BD deve perder essas modificaes

Responsabilidade do subsistema de recovery


refazer transaes que executaram com sucesso em caso de falha no BD

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 21

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Definio de transao Por que transao? Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 22

Estados de uma Transao


Uma transao sempre monitorada pelo SGBD quanto ao seu estado
que operaes j fez? concluiu suas operaes? deve abortar?

Estados de uma transao


Ativa, Em processo de efetivao, Efetivada, Em processo de aborto, Concluda Respeita um Grafo de Transio de Estados

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 23

Transio de Estados de uma Transao


reads e writes

Em Processo de Efetivao
iniciar transao

Ativa

finalizar transao

encerramento com sucesso

encerramento sem sucesso

transao deve ser desfeita

Efetivada
concluso da transao com sucesso

Em Processo de Aborto concluso

da transao sem sucesso


Marcelo Bezerra de Alcntara

Concluda

Banco de Dados II - Transao - 24

Transio de Estados de uma Transao


reads e writes

Em Processo de Efetivao
iniciar transao

Ativa

finalizar transao

encerramento com sucesso

Estado inicial de toda Efetivada transao deve transao selecionada ser desfeita concluso para execuo da transao Enquanto ativa, uma com sucesso transao executa uma Em Processo ou mais operaes read de Aborto concluso e write da transao Concluda
sem sucesso
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 25

transao deve ser desfeita

Transio de Estados de uma Transao


reads e writes

Em Processo de Efetivao
iniciar transao

Ativa

finalizar transao

encerramento com sucesso

encerramento sem sucesso

Efetivada Entra nessetransao estado aps deve executar sua ltima operao ser desfeita concluso (solicitao de COMMIT) da transao Neste momento, o SGBD com sucesso Emas Processo precisa garantir que suas Aborto com atualizaes sejam de efetivadas concluso da transao Concluda sucesso (no sofra falhas) sem sucesso aplicao de tcnicas de recovery
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 26

Transio de Estados de uma Transao


reads e writes

Em Processo de Efetivao
iniciar transao

Ativa

finalizar transao

encerramento com sucesso

encerramento sem sucesso

Entra nesse estado aps transao deveo SGBD confirmar que todas as ser desfeita modificaes da transao esto garantidas no BD (COMMIT OK) Em em Processo exemplos: gravao Log, descarga de todos os buffers de Aborto
em disco

Efetivada
concluso da transao com sucesso

Concluda

Marcelo Bezerra de Alcntara

concluso da transao sem sucesso Banco de Dados II - Transao - 27

Transio de Estados de uma Transao


Entra nesse estado se no puder reads e writes
iniciar transao

prosseguir a sua execuo Em Processo pode passar para esse enquanto encerramento deestado Efetivao com sucesso ativa (I) ou em processo de efetivao (II) finalizar
encerramento exemplo (I): violao de RI transao Ativa sem sucesso exemplo (II): pane no S.O. suas aes j realizadas devem ser desfeitas Efetivada transao deve (ROLLBACK) ser desfeita concluso da transao com sucesso

Em Processo de Aborto concluso

da transao sem sucesso


Marcelo Bezerra de Alcntara

Concluda

Banco de Dados II - Transao - 28

Transio de Estados de uma Transao


Estado reads e writes final de uma transao
iniciar transao

as informaes da transao finalizar encerramento mantidas em catlogo podem ser transao Ativa sem sucesso excludas operaes feitas, dados Efetivada transao deve manipulados, buffers utilizados, ... desfeitano concluiu com se aser transao concluso sucesso, ela pode ser reiniciada da transao automaticamente com sucesso

Indica uma transao deixa o Emque Processo sistema de Efetivao

encerramento com sucesso

Em Processo de Aborto concluso

da transao sem sucesso


Marcelo Bezerra de Alcntara

Concluda

Banco de Dados II - Transao - 29

Sumrio
1. 2. 3. 4. 5. 6. Relembrando Conceitos Definio de transao Por que transao? Propriedades da transao Estados da transao Fechamento

Marcelo Bezerra de Alcntara

Banco de Dados II - Transao - 30

Gerncia Bsica de Transaes


Aes da Aplicao ou Usurio
T1 inicia T1 submete operaes DML T1 termina

Aes do SGBD
inicia aes para garantir Atomicidade de T1 executa operaes DML, garantindo Isolamento de T1, e testa RIs imediatas, com possvel rollback e msg erro, para garantir Consistncia de T1 testa RIs postergadas, com possvel rollback e msg erro, para garantir Consistncia de T1 executa aes para garantir Durabilidade de T1 confirma o trmino de T1 para a aplicao/usurio
Banco de Dados II - Transao - 31

Marcelo Bezerra de Alcntara

Fechamento
1. Uso da transao
Facilita o desenvolvimento de aplicaes:
Garante a consistncia dos dados; Se responsabiliza pelo controle de concorrncia;

2. Um SGBD tradicional deve suportar as propriedades ACID; 3. Uma transao possui vrios estados:
Ativa, Em processo de efetivao, Efetivada, Em processo de aborto, Concluda

4. A operao COMMIT deve ser utilizada para solicitar a efetivao da transao 5. A operao ROLLBACK deve ser utilizada para solicitar o aborto da transao
Marcelo Bezerra de Alcntara Banco de Dados II - Transao - 32

Você também pode gostar