banco de dados i - bruno morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute...

54
Banco de Dados I Aula 18 - Prof. Bruno Moreno 22/11/2011

Upload: hoangquynh

Post on 08-Aug-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Banco de Dados I

Aula 18 - Prof. Bruno Moreno

22/11/2011

Page 2: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Plano de Aula

• Introdução – SPT

– Sistemas monousuários e multiusuários

– Sistemas multiprogramados

• Transação - Definição

• Concorrência de Transações

• Log do Sistema

• Propriedades ACID

• Históricos (planos)

11:40

Page 3: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Sistemas de Processamento de Transações – SPT

• Grandes bancos de dados

– Muitos usuários executando transações concorrentes

– Exemplos

• Sistemas de reservas de passagens

• Sistemas bancários

• Sistemas de cartões de crédito

• Sistemas de ações

11:40

Alta disponibilidade e baixo tempo de resposta

Page 4: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Sistemas monousuários vs multiusuários

• Um dos critérios de classificação de bancos de dados

• Monousuário

– Somente um usuário pode acessar o sistema em um determinado instante

• Multiusuário

– Muitos usuários podem usá-lo concorrentemente

11:40

Page 5: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Multiprogramação

• Sistemas com uma só CPU: processamento concorrente é simultâneo

– É ilusão o processamento de diversos processos ao mesmo tempo.

– Em sistemas operacionais fala-se em paralelismo (pseudo-paralelismo)

• Sistemas multi-programados realizam pseudo-paralelismo

11:40

A multiprogramação permite que o computador execute diversos programas – ou processos – ao

“mesmo tempo”

Page 6: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Multiprogramação

• A multiprogramação utiliza o conceito de que processos são parados e retomados de acordo com determinadas regras

11:40

Concorrência intercalada Paralelismo real

Page 7: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações – Definição

• “é um programa que representa uma unidade lógica de processamento do banco de dados” Navathe – Inserções

– Exclusão

– Alteração

– Recuperação

• Uma transação é estabelecida com delimitadores de início e fim.

11:40

Page 8: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações – Operações

• Operações básicas

– Ler_item(X)

• Lê um item X do banco de dados

– Gravar_item(X)

• Grava um item X no banco de dados

11:40

Page 9: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações – Operações

• Ler_item(X)

1) Encontrar o endereço do bloco do disco que contém o item X

2) Copiar esse bloco para um buffer na memória principal

3) Copiar o item X do buffer para a variável X do programa

11:40

Page 10: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações – Operações

• Gravar_item(X)

1) Encontrar o endereço do bloco de disco que contém o item X;

2) Copiar esse bloco do disco para um buffer na memória principal;

3) Copiar o item X de uma variável de programa chamada X para seu local correto no buffer

4) Armazenar o bloco atualizado no buffer de volta para o disco (atualização de fato)

11:40

Page 11: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações - Exemplos

(a) Transferência bancária do valor N da conta de saldo X para a conta de saldo Y

(b) Depósito do valor M para conta de saldo X

11:40

Page 12: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Concorrência de Transações

• Diferentes transações podem ser executadas concorrentemente mesmo se acessando os mesmos itens no banco de dados

11:40

Page 13: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Concorrência de Transações

• Se a execução delas for descontrolada, ocorrerão problemas de inconsistência no banco de dados

11:40

Page 14: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações descontroladas

• Transações descontroladas geram três tipos de problemas

(1) Atualização perdida

(2) Atualização temporária (dirty read)

(3) Sumário Incorreto

• Considere um exemplo de sistema de reservas

11:40

Page 15: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações descontroladas

Problema 1: Atualização Perdida

– Duas transações acessam os mesmos itens e possuem suas operações intercaladas, tornando os valores destes itens como incorretos.

11:40

T1: Transferência de Reservas X → Poltronas Reservadas no vôo X Y → Poltronas Reservadas no vôo Y N → Reservas transferidas

T2: Reserva de Poltronas em X X → Poltronas Reservadas no vôo X M → Reserva de poltronas

Operações intercaladas geraram um valor incorreto de X para T2

Page 16: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações descontroladas

Problema 2: Atualização Temporária

– Uma transação atualiza um item de BD e, a seguir, falha por alguma razão.

11:40 Se a transação T1 falhar deverá retornar ao

seu valor original, senão T2 lê o valor errado.

Page 17: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Transações descontroladas

• Problema 3: Sumário Incorreto

– Uma transação aplica uma função agregada para um número de registros enquanto outra transação está atualizando um destes registros

11:40

T3 lê X já subtraído de N T3 lê Y antes de T1 somar N a Y

Page 18: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Recuperação de Transações

• Um SGBD deve garantir que

(1) Todas as operações na transação foram completadas com sucesso e seu efeito será persistido

(2) A transação que falhou não terá nenhum efeito sobre o banco de dados ou

(3) Transações devem operar isoladamente, sem trazer nenhum efeito sobre outras transações

11:40

DURABILIDADE

ATOMICIDADE

CONSISTÊNCIA

ISOLAMENTO

Page 19: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Tipos de falhas

(1) Computador falhar

– Hardware, software,rede

(2) Erro de transação ou sistema

– Estouro de memória, erro de divisão, parâmetros errados

(3) Erros locais ou condições de exceção detectadas

– Saldo insuficiente em uma operação bancária

11:40

Page 20: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Tipos de falhas

(4) Imposição do controle de concorrência

– O método de controle de concorrência decide abortar uma transação que viola a serialização ou devido a um deadlock, por exemplo

(5) Falha de disco

(6) Problemas físicos e catástrofes

11:40

Page 21: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Estados de Transações

Uma transação é uma unidade atômica de trabalho que ou estará completa ou não foi

realizada

• Para controlar uma transação o sistema de controle precisa saber quando uma transação inicia, quando termina e de suas efetivações e interrupções

– Begin, read, write, end, commit e rollback (abort)

11:40

Page 22: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Estados de Transações

11:40

Page 23: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Log do Sistema

Onde ficam os registros das ocorrências das transações e dos instantes em que iniciaram e

finalizaram?

11:40

Page 24: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Log do Sistema

• Controla operações da transação que afetem valores dos itens do BD

• Registros de log – [start_transaction, T]:

• Transação T começou a ser executada

– [escrever_item, T, X, valor_antigo, novo_valor] • T mudou o valor de X do valor_antigo para o novo_valor

– [ler_item, T, X] • T leu o item X do banco de dados

– [commit, T] • T foi completada com sucesso e seus efeitos podem ser efetivados

– [abort, T] • Indica que a transação T foi interrompida

11:40

Page 25: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Ponto de Efetivação

• Uma transação alcança seu ponto de efetivação quando todas as operações foram registradas no log

• No ponto de efetivação, a transação é efetivada (committed) e seu efeito é registrado no BD

• Quando efetivada, a transação escreve no log uma entrada do tipo [commit, T]

• Uma transação é cancelada quando possui uma entrada [start_transaction, T] no log mas nenhum [commit, T]

11:40

Page 26: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Propriedades das Transações

• Propriedades ACID

Atomicidade: Uma transação é uma unidade atômica.

Consistente: A execução completa de uma transação faz o BD passar de um estado consistente para outro.

Isolamento: Uma transação é executada isoladamente das demais.

Durabilidade: As mudanças realizadas por uma transação no banco de dados são persistidas.

11:40

Page 27: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Propriedades das Transações

• Atomicidade

– Garante que uma transação seja executada por completo

– É de responsabilidade do subsistema de restauração de transações do SGBD garantir essa propriedade

– Se uma transação falhar, o SGBD garante que todos os efeitos serão desfeitos.

11:40

Page 28: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Propriedades das Transações

• Consistência

– É de responsabilidade do programador (especialmente do projetista)

• Restrições de integridade são garantidas pelo SGBD mas devem ser implementadas pelo projetista

– O que é um estado consistente?

– O SGBD garante que qualquer estado do BD é consistente.

11:40

Page 29: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Propriedades das Transações

• Isolamento

– Imposto pelo subsistema de controle de concorrência do SGBD

– Um SGBD deve garantir que uma transação torna suas atualizações invisíveis até que seja efetivada.

11:40

Page 30: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Propriedades das Transações

• Durabilidade

– Responsabilidade do subsistema de restauração do SGBD.

11:40

Propriedade Responsabilidade

Atomicidade Subsistema de Restauração de Transações

Consistência Programador e SGBD

Isolamento Subsistema de Controle de Concorrência

Durabilidade Subsistema de Restauração de Transações

Page 31: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Planos de Execução

• Representa todas as operações das transações

– Para um plano S de n transações T1, T2, ..., Tn, S deve conter as operações na mesma ordem em que elas ocorrem em Ti

– Operações de outras transações Tj poderão ser intercaladas com as operações de Ti em S

– Notação para codificação de um plano

• r, w, c e a para read, write, commit e abort

11:40

Page 32: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Planos de Execução

• Sa: r1(X); r2(X); w1(X); r1(Y); w2(X); w1(Y);

11:40

Page 33: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Planos de Execução

• Sb: r1(X); w1(X); r2(X); w1(X); r1(Y);

11:40

Page 34: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Planos de Execução

• Duas operações em um plano estão em conflito se eles satisfizerem as seguintes condições

(1) Forem de transações diferentes;

(2) Acessarem o mesmo item X;

(3) Pelo menos uma das operações for de escrita.

• Exemplo 1: r1(X); r2(X); w1(X); r1(Y); w2(X); w1(Y);

• Exemplo 2: r1(X); w1(X); r2(X); w1(X); r1(Y);

11:40

Page 35: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos

• Planos podem ser classificados de acordo com a restaurabilidade ou baseado na serialidade

– Um plano S é restaurável se nenhuma transação T de S for efetivada (commit) até que todas as transações T’ que tiverem gravado um item lido por T, tenham sido efetivadas.

Sc: r1(X); w1(X); r2(X); r1(Y); w2(X); c2; a1;

– A transação 2 escreve X depois da transação 1 lê-lo?

11:40

Não-restaurável

Page 36: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos

• Planos podem ser classificados de acordo com a restaurabilidade ou baseado na serialidade

– Um plano S é restaurável se nenhuma transação T de S for efetivada (commit) até que todas as transações T’ que tiverem gravado um item lido por T, tenham sido efetivadas.

Sd: r1(X); w1(X); r1(Y); w2(X); w1(Y); c1; c2;

– A transação 2 escreve X depois da transação 1 lê-lo?

11:40

Restaurável

Page 37: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Considere um sistema de reservas onde T1 e T2 ocorrem aproximadamente ao mesmo tempo

11:40

Page 38: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Se a intercalação de operações não for permitida temos as duas opções:

11:40

(I) (II)

Page 39: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Se a intercalação de operações for permitida, temos diversas opções. Dentre elas:

• Serialidade de planos permite identificar planos corretos quando há intercalação de operações

11:40

(III) (IV)

Page 40: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Planos seriais são planos em que as operações de cada transação são executadas consecutivamente, sem intercalação

11:40

(I) (II)

Page 41: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Planos não seriais

11:41

(III) (IV)

Page 42: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Exemplos

– X = 90, Y = 90, N = 3 e M = 2

11:41

T1 read_item X → 90

X = 90-3= 87 write_item X → 87 read_item Y → 90

Y = 90 + 3 = 93 write_item Y → 93

T2 read_item X → 87

X = 87+2= 89 write_item X → 89

X = 89 e Y = 93

(I)

Page 43: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Exemplos

– X = 90, Y = 90, N = 3 e M = 2

11:41

T2 read_item X → 90

X = 90+2= 92 write_item X → 92

T1 read_item X → 92

X = 92-3= 89 write_item X → 89 read_item Y → 90

Y = 90 + 3 = 93 write_item Y → 93

X = 89 e Y = 93

(II)

Page 44: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Exemplos

– X = 90, Y = 90, N = 3 e M = 2

11:41

T1 read_item X → 90

X = 90-3= 87

T2 read_item X → 90

X = 90+2= 92

T1 write_item X → 87 read_item Y → 90

T2 write_item X → 92

T1 Y = 90 + 3 = 93

write_item Y → 93

(III)

X = 92 e Y = 93

Atualização Perdida!

Valor Incorreto!

Page 45: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Exemplos

– X = 90, Y = 90, N = 3 e M = 2

11:41

T1 read_item X → 90

X = 90-3= 87 write_item X → 87

T2 read_item X → 87

X = 87+2= 89 write_item X → 89

T1 read_item Y → 90

Y = 90 + 3 = 93 write_item Y → 93

(IV)

X = 89 e Y = 93 Plano é não-serial com resultado correto!

Page 46: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

A serialidade é um conceito que determina se um plano não-serial é capaz de fornecer um

resultado correto.

11:41

Serialidade tem a ver com equivalência de planos não seriais com planos seriais

Page 47: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Classificação de planos baseado na serialidade

• Um plano é serializável se ele for equivalente a algum plano serial com as mesmas transações

• Dizer que um plano não serial é serializável é equivalente a dizer que é correto

– Deixa o BD em um estado consistente

– A intercalação é apropriada e o resultado é o mesmo se o plano fosse serial

– Porém mais eficiente do que um plano serial

• Concorrência

11:41

Page 48: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Equivalência de planos

• Equivalência quanto a resultado

– Planos equivalentes produzem o mesmo resultado

– Equivalência por resultado não é satisfatória

• S1: r(X); X:=X+10; w(X)

• S2: r(X); X:=X*1,1; w(X)

• Equivalentes com valor de X inicial igual a 100

11:41

Page 49: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Equivalência de planos

• Equivalência de conflito

– Dois planos são conflito equivalentes se a ordem de quaisquer duas operações conflitantes for a mesma em ambos os planos

– Um plano S é conflito serializável se ele for conflito equivalente a um plano serial S’

11:41

Page 50: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Equivalência de planos

• Equivalência de conflito

– O plano (IV) é conflito serializável porque é equivalente ao plano (I)

11:41

(IV) (I)

Page 51: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Equivalência de planos

• Equivalência de conflito

– O plano (III) é equivalente aos plano (I) e (II)?

11:41

(III)

(I) (II)

Page 52: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Projeto: ultima iteração dia 25/11

11:41

Page 53: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Prova dia 02/12

11:41

Page 54: Banco de Dados I - Bruno Morenobrunomoreno.com/wordpress/wp-content/uploads/2012/... · execute diversos programas ... •Planos seriais são planos em que as operações de cada

Freqüência!

22/11/2011

11:41