Prof. Alessandro Gonçalves UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 1 1 1
2 2
Integridade x confiabilidade Update tbContas set SALDO = 1000 where Cliente = 1; Select SALDO from tbContas where Cliente = 1; Resultado: Saldo 1000.00 3 3 3
Integridade x confiabilidade Integridade física (hardware) Integridade de regra de negócios Integridade relacional 4 4 4
Integridade x confiabilidade Integridade física (hardware) - Problemas de disco, memória, portas, cabos… 5 5 5
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
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
Integridade x confiabilidade O operador queria lançar um novo SALDO DE R$ 1.000,00 8 8 8
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
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
Transação A - Atomicidade C - Consistência I - Isolamento D - Durabilidade 11 11 11
Parcialmente confirmada Estados da Transação Parcialmente confirmada Confirmada Ativa Abortada Falha 12 12 12
Implantação de atomicidade e durabilidade Visando garantir a consistência do banco de dados Técnica Cópia de sombra 13 13 13
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
Cópia de sombra DBPointer T R A N S Ç Ã O DBPointer Banco de dados antigo Nova cópia do BD 15 15 15
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
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
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
Cópia de sombra – vantagens/desvantagens Simples de implantar Lento Não permite simultaneidade 19 19 19
Execuções simultâneas de transações Geram problemas ? Por que usar ? 20 20 20
Execuções simultâneas de transações Melhor throughput e utilização de recursos 21 21 21
Execuções simultâneas de transações Tempo de espera reduzido 22 22 22
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
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
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
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
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
Seriação Como garantir a ordem correta de execução nos schedules ? 28
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
Prof. Alessandro Gonçalves UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 30 30 30