1 / 30

UNDB

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.

omana
Download Presentation

UNDB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 1

  2. 2

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

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

  5. Integridade x confiabilidade Integridade física (hardware) - Problemas de disco, memória, portas, cabos… 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

  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

  8. Integridade x confiabilidade O operador queria lançar um novo SALDO DE R$ 1.000,00 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

  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

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

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

  13. Implantação de atomicidadee durabilidade Visando garantir a consistência do banco de dados Técnica Cópia de sombra 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

  15. 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

  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

  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

  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

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

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

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

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

  23. 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

  24. 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

  25. 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

  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); 26

  27. 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

  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

  30. UNDB BANCO DE DADOS II Prof. Alessandro Gonçalves Alessandro.inovacao@gmail.com 30

More Related