Вы находитесь на странице: 1из 24

Bases de Dados II Transacces

Definico Propriedades

9/3/2012

Vali Issufo

Agenga
O que so Transaes? Conceito ACID de Transaes Problemas de Concorrncia Tcnicas de controle concorrncia
Estratgias de Bloqueio (Locking)
Bloqueio Otimista e Pessimista Deadlocks
9/3/2012 Vali Issufo 2

Transaes so sequncia de Aes (Operaes de Banco de Dados) que so executadas como um conjunto:
Ou todas so executas com sucesso Ou Nenhuma delas

Exemplo
Um banco transfere dinheiro entre duas contas (saque + deposito) Se qualquer uma das operaes falhar, a trasferncia ser cancelada
9/3/2012 Vali Issufo 3

Leitura
Situao Inicial (Durvel)
Gravao

Gravao
Commit Situao Final Durvel e consistente

Coleo de leituras e gravaes

Rollback

Sintaxe geral:

9/3/2012

Vali Issufo

Transaes garantem a consistncia e intregridade do banco de dados


Todas as modificaes da transao so temporrias Modificaes so persistidas apenas aps o Commit A qualquer momento (Antes do commit) as modificaes podem ser canceladas atravs de um Rollback

Todas as operaes so executadas como uma unidades ( ou nenhuma ser)


9/3/2012 Vali Issufo 5

Exemplo: Caixa Automtica (ATM)


Levantar 100Mt

1. Ler o saldo atual 2. Saldo = Saldo atual - Saque

3. Registrar Saldo
4. Entregar Dinheiro

9/3/2012

Vali Issufo

Exemplo: Caixa Automtica (ATM)


Transferncia 100Mt da conta1 para conta2 1. 2. 3. 4. 5. 6. Ler saldo conta1 Saldo conta1= Saldo atual conta1 - 100 Ler Saldo conta2 Saldo conta2 = Saldo Anterior conta2+ 100 Gravar Saldo conta1 Gravar saldo conta2

9/3/2012

Vali Issufo

Imagine que:
Algumas operaes falham!
Ex., Flhaas de Software, comunicao, Banco de Dados ou Hardware

Interferncia entre transaes!


O que acontece se multiplas alteraes forem feitas na mesma conta?

Parte dos dados perdida


Comunicao falha entre o Saque e o Depsito.
9/3/2012 Vali Issufo 8

Proriedades ACID

ACID Siginifica:
Atomicidade Consistencia Isolamento Durabilidade
9/3/2012 Vali Issufo 9

Atomicidade
Atomicidade significa que
Transaes so execudas como uma UNIDADE SGDB garante que todas as transaes so executadas ou desfeitas

Exemplos
Transferncia de valores entre contas
Ou o Depsito+Saque so registrados com sucesso ou nenhum dos dois ser Em caso de falha o BD permanece inalterado
9/3/2012 Vali Issufo 10

Consistencia
Consistencia significa que:
O Banco de dados est consitente (ntegro) antes e depois da transao
Apenas dados vlidos foram gravados

A Transao no pode quebrar regras de integridade e respeita:


Chaves primrias, estrangeiras e nicas

Exemplo
Transao no pode encerrar com chave duplicada
9/3/2012 Vali Issufo 11

Isolamento
Isolamento significa que
Multiplas transaes simultneas no afetam umas as outras Transaes no enxergam dados no COMMITADOS. O Nvel de isolamento define o quanto uma transao enxerga alteraes das outras Read committed, read uncommitted, repeatable read, serializable, etc.

Exemplo
Gerentes podem ver transferncias entre contas (dbito ou crdito) mas no as 2 operaes.
9/3/2012 Vali Issufo 12

Durabilidade significa que Se uma transao confirmada (COMMIT) ela ser persistente
No pode ser perdida nem desfeita

Durabilidade

Garantida atravs de LOGS de TRANSAO e Backup Exemplo ps concluida a transferncia, a energia falha Ao retornar, os dados continuam ntegros e registrados conforme o momento imediatamente anterior falha

9/3/2012

Vali Issufo

13

Problemas de Concorrencia
Atualizao Perdida
Essa situao ocorre quando duas transaes que acessam o mesmo item de dado tm suas Essa situao ocorre quando duas transaes que acessam o mesmo item de dado tm suas operaes intercaladas de mane ira a tornar o dado incorreto.

9/3/2012

Vali Issufo

14

Problemas de Concorrencia
O Problema da Perda de Atualizao

9/3/2012

Vali Issufo

15

Problemas de Concorrencia
Dependncia de uma atualizao no confirmada ou leitura suja. Ocorre quando uma transao atualiza ou recupera um registro que fora atualizado por outra transao, mas que ainda no foi confirmada. Cas o a transao falhe, as operaes realizadas transao, mas que ainda no foi confirmada. Caso a transao falhe, as operaes realizadas sero desfeitas (ROLLBACK).
9/3/2012 Vali Issufo 16

Problemas de Concorrencia
Dependncia de uma atualizao no confirmada ou leitura suja.

9/3/2012

Vali Issufo

17

Problemas de Concorrencia
O Problema da anlise inconsistente
Se uma transao est calculando uma funo de agregao sobre um nmero de registros, enquanto outras esto atualizando alguns desses registros, a funo de agregao pode calcular alguns valores antes que eles sejam atualizados e outros aps suas atualizaes!

9/3/2012

Vali Issufo

18

Problemas de Concorrencia
O Problema da anlise inconsistente

9/3/2012

Vali Issufo

19

Tcnicas de Controle de Concorrencia


Pessimista -bloqueio -timestamp (marca de tempo) Otimista -validao

As tcnicas pessimistas presumem que sempre ocorrer interferncia entre as transaes e, ento, buscam sempre garantir a serializao enquanto uma transao estiver ocorrendo. J as tcnicas otimistas supem que raramente ocorrer a interfe -rncia entre as transaes e somente verificam o aspecto da serializao ao final.
9/3/2012 Vali Issufo 20

Tcnicas de Controle de Concorrencia


Bloqueio
Consiste em estabelecer bloqueios sobre o dado a ser acessado pela transao, de modo a restringir o acesso a este dado. A unidade de bloqueio, geralmente, a de registro.

So definidos dois tipos de bloqueios:


Exclusivo (E): se uma transao obteve um bloqueio E em um dado, ento a transao pode ler e escrever neste dado. Compartilhado (C): se uma transao obteve um bloqueio C em um dado, esta transao e as demais podem somente ler este dado

9/3/2012

Vali Issufo

21

Tcnicas de Controle de Concorrencia


Bloqueio- matriz de compartilhamento de bloqueio

Transaces Bloqueio Compartilhado Bloqueio Exclusivo

Bloqueio Compartilhado SIM NAO

Bloqueio Exclusivo NAO NAO

9/3/2012

Vali Issufo

22

Tcnicas de Controle de Concorrencia


Bloqueio- Exemplo
T1 lock_E(x) read(x) T2

x=x-1 write(x) unlock(x)

lock_E(x) espera ... ... ... lock_E(x) x=x+100 write(x) unlock(x)


Vali Issufo 23

9/3/2012

Creditos
Vinicius Augustus Paluch- Transaes e Gerenciamento de Transaes em Bancos de Dados Carlos Henrique C. Tolentino- Analise e Desenho de Sistemas Ana Claudia- Banco de Dados - Oracle

9/3/2012

Vali Issufo

24