A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Alessandro Gonçalves

Apresentações semelhantes


Apresentação em tema: "Prof. Alessandro Gonçalves"— Transcrição da apresentação:

1 Prof. Alessandro Gonçalves
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves 1 1 1

2 2 2

3 Integridade x confiabilidade
Update tbContas set SALDO = 1000 where Cliente = 1; Select SALDO from tbContas where Cliente = 1; Resultado: Saldo 3 3 3

4 Integridade x confiabilidade
Integridade física (hardware) Integridade de regra de negócios Integridade relacional 4 4 4

5 Integridade x confiabilidade
Integridade física (hardware) - Problemas de disco, memória, portas, cabos… 5 5 5

6 Integridade x confiabilidade
Integridade de negócio Create table tbprofessor (Codprofessor integer, Nomeprofessor varchar(50) not null, Apelido varchar(50) unique, Sexo varchar(1) check (‘M’,’F’), Primarykey Codprofessor); 6 6 6

7 Integridade x confiabilidade
Integridade relacional Create table tbdisciplinas (Coddisciplina integer, Nomedisciplina varchar(50) not null, Codprofessor integer not null, Primary key coddisciplina, Foreign key (coddprofessor) references tbprofessor.codprofessor on delete restrict on update cascade 7 7 7

8 Integridade x confiabilidade
O operador queria lançar um novo SALDO DE R$ 1.000,00 8 8 8

9 Transação ? O problema da conta bancária
Select Saldo from tbContas where Cliente = 1 Update tbContas set Saldo = Saldo – 50 where Cliente = 1 Select Saldo from tbContas where Cliente = 2 Update tbConta set Saldo = Saldo + 50 where Cliente = 2 ? 9 9 9

10 Transação Coleção de operações, executado como uma só operação
Executa tudo ou nada Begin transaction Comando 1 Comando 2… Commit 10 10 10

11 Transação A - Atomicidade C - Consistência I - Isolamento
D - Durabilidade 11 11 11

12 Parcialmente confirmada
Estados da Transação Parcialmente confirmada Confirmada Ativa Abortada Falha 12 12 12

13 Implantação de atomicidade e durabilidade
Visando garantir a consistência do banco de dados Técnica Cópia de sombra 13 13 13

14 Cópia de sombra - pressupostos
1) Uma transação ativa por vez 2) Banco de dados está gravado em um único arquivo 14 14 14

15 Cópia de sombra DBPointer T R A N S Ç Ã O DBPointer Banco de dados
antigo Nova cópia do BD 15 15 15

16 Cópia de sombra - algoritmo
1) Recebe pedido de transação 2) Copia todo o banco de dados para um novo BD 3) Deixa a cópia de sombra intocável 4) Se a transação for concluída, aguarda confirmação do S.O. de que todas as páginas foram gravadas ok. 5) Depois que o S.O. Confirma, o db pointer aponta para a nova cópia 6) Cópia antiga é excluída 16 16 16

17 Cópia de sombra – falha de transação/sistema
O que fazer ? Desprezar a nova cópia do banco Continuar apontando o DB Pointer para o antigo 17 17 17

18 Cópia de sombra – exemplo
Editor de texto 1) Cria um novo arquivo temporário 2) Executa as alterações neste arquivo 3) Ao gravar, renomeia o arquivo temporário->real 3.1) Apaga o arquivo antigo 18 18 18

19 Cópia de sombra – vantagens/desvantagens
Simples de implantar Lento Não permite simultaneidade 19 19 19

20 Execuções simultâneas de transações
Geram problemas ? Por que usar ? 20 20 20

21 Execuções simultâneas de transações
Melhor throughput e utilização de recursos 21 21 21

22 Execuções simultâneas de transações
Tempo de espera reduzido 22 22 22

23 Execuções simultâneas de transações
Esquemas de controle de concorrência T1 T2 read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); read(A); Temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); 23 23 23

24 Execuções simultâneas
read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); T2 read(A); Temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); 24 24 24

25 Execuções simultâneas
read(A); Temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); T1 read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); 25 25 25

26 Execuções simultâneas
read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); T2 read(A); temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); 26 26 26

27 Execuções simultâneas
read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); T2 read(A); temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); 27 27 27

28 Seriação Como garantir a ordem correta de execução nos schedules ? 28

29 RESUMO Cópia de sombra – atomicidade/durabilidade
Vantagens e desvantagens Execuções simultâneas de transações Melhor utilização de recursos O problema do schedule 29 29 29

30 Prof. Alessandro Gonçalves
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves 30 30 30


Carregar ppt "Prof. Alessandro Gonçalves"

Apresentações semelhantes


Anúncios Google