300 likes | 423 Views
UNDB. BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com. 1. 2. Integridade x confiabilidade. Update tbContas set SALDO = 1000 where Cliente = 1; Select SALDO from tbContas where Cliente = 1; Resultado: Saldo 1000.00. 3.
E N D
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 1
Integridade x confiabilidade Update tbContas set SALDO = 1000 where Cliente = 1; Select SALDO from tbContas where Cliente = 1; Resultado: Saldo 1000.00 3
Integridade x confiabilidade Integridade física (hardware) Integridade de regra de negócios Integridade relacional 4
Integridade x confiabilidade Integridade física (hardware) - Problemas de disco, memória, portas, cabos… 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
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
Integridade x confiabilidade O operador queria lançar um novo SALDO DE R$ 1.000,00 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
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
Transação A - Atomicidade C - Consistência I - Isolamento D - Durabilidade 11
Estados da Transação Parcialmente confirmada Confirmada Ativa Abortada Falha 12
Implantação de atomicidadee durabilidade Visando garantir a consistência do banco de dados Técnica Cópia de sombra 13
Cópia de sombra - pressupostos 1) Uma transação ativa por vez 2) Banco de dados está gravado em um único arquivo 14
Cópia de sombra DBPointer T R A N S A Ç Ã O DBPointer Banco de dados Banco de dados antigo Nova cópia do BD 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
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
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
Cópia de sombra – vantagens/desvantagens Simples de implantar Lento Não permite simultaneidade 19
Execuções simultâneas de transações Geram problemas ? Por que usar ? 20
Execuções simultâneas de transações Melhor throughput e utilização de recursos 21
Execuções simultâneas de transações Tempo de espera reduzido 22
Execuções simultâneas de transações Esquemas de controle de concorrência T1 T2 read(A); Temp := A*0.1 A := A – temp; Write (A); Read (B); B := B + temp; Write (B); read(A); A := A -50; Write (A); Read (B); B := B + 50; Write (B); 23
Execuções simultâneas T1 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
Execuções simultâneas T2 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
Execuções simultâneas T1 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
Execuções simultâneas T1 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
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
UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 30