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

Bases de Dados II Transacces

Definico Propriedades

8/8/2013

Vali Issufo

Agenda
O que so Transaes? Conceito ACID de Transaes Problemas de Concorrncia Tcnicas de controle concorrncia
Estratgias de Bloqueio (Locking)
Bloqueio Otimista e Pessimista Deadlocks
8/8/2013 Vali Issufo 2

Transaes so sequncia de Aes (Operaes de


que so executadas como um conjunto:
Banco de Dados)

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 transferncia ser cancelada
8/8/2013 Vali Issufo 3

Leitura
Situao Inicial (Durvel)
Gravao

Gravao
Commit Situao Final Durvel e consistente

Coleo de leituras e gravaes

Rollback

Sintaxe geral:

8/8/2013

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)


8/8/2013 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

8/8/2013

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

8/8/2013

Vali Issufo

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

Interferncia entre transaes!


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

Parte dos dados perdida


Comunicao falha entre o Saque e o Depsito.
8/8/2013 Vali Issufo 8

Proriedades ACID

ACID Significa:

A tomicidade C onsistncia I solamento D urabilidade


8/8/2013 Vali Issufo 9

Atomicidade
Atomicidade significa que
Transaes so executadas como uma UNIDADE; O 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 a BD permanece inalterado.
8/8/2013 Vali Issufo 10

Consistncia
Consistncia significa que:
A BD est consistente (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
8/8/2013 Vali Issufo 11

Isolamento
Isolamento significa que
Mltiplas 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.
8/8/2013 Vali Issufo 12

Durabilidade
Durabilidade significa que
Se uma transao confirmada (COMMIT) ela ser persistente ou seja no pode ser perdida nem desfeita; Garantida atravs de LOGS de TRANSAO e Backup Exemplo Aps concluda a transferncia, a energia falha: Ao retornar, os dados continuam ntegros e registrados conforme o momento imediatamente anterior falha

8/8/2013

Vali Issufo

13

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

8/8/2013

Vali Issufo

14

Problemas de Concorrncia
O Problema da Perda de Atualizao

8/8/2013

Vali Issufo

15

Problemas de Concorrncia
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. Caso a transao falhe, as operaes realizadas sero desfeitas (ROLLBACK).
8/8/2013 Vali Issufo 16

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

8/8/2013

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!

8/8/2013

Vali Issufo

18

Problemas de Concorrncia
O Problema da anlise inconsistente

8/8/2013

Vali Issufo

19

Tcnicas de Controle de Concorrncia


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 interferncia entre as transaes e somente verificam o especto da serializao ao final.
8/8/2013 Vali Issufo 20

Tcnicas de Controle de Concorrncia


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

8/8/2013

Vali Issufo

21

Tcnicas de Controle de Concorrncia


Bloqueio- matriz de compartilhamento de bloqueio

Transaces Bloqueio Compartilhado Bloqueio Exclusivo

Bloqueio Compartilhado SIM NAO

Bloqueio Exclusivo NAO NAO

8/8/2013

Vali Issufo

22

Tcnicas de Controle de Concorrncia


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

8/8/2013

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

8/8/2013

Vali Issufo

24

Вам также может понравиться