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

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

© Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP2 Msc, Marcelo Bezerra de Alcântara

Apresentações semelhantes


Apresentação em tema: "© Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP2 Msc, Marcelo Bezerra de Alcântara"— Transcrição da apresentação:

1 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP2 Msc, Marcelo Bezerra de Alcântara

2 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 2 Objetivos 1.Revisar a matéria sobre as Técnicas de controle de concorrência – Aula 05; 2.Revisar Controle de Acesso – Aula 06;

3 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 3 Bibliografia 1.ELMASRI, Ramez; NAVATHE, Shamkant B, Sistemas de banco de dados. 4. ed. Pearson Brasil, Capítulo 17 e 18 2.KORTH, Henry F.; SILBERSCHATZ, Abraham Sistemas de banco de dados. 3. ed, São Paulo: Makron Books, Capítulo 13 e 14

4 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 4 Questão 1 1.Proponha algoritmos de alto nível para as operações: a)lock-X(D, Tx) b)unlock(D, Tx) (considere que essa operação também pode retirar transações da fila-WAIT e solicitar novos bloqueios)

5 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 5 Resposta 1 lock-X(D, Tx) início se lock(D) = U então início Tu = Tx lock(D) X; fim senão se lock(D) = S então insere Tx na fila-WAIT(D) senão /* lock(D) = X */ insere (Tx, S) na fila-WAIT(D); fim

6 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 6 Resposta 1 unlock-X(D, Tx) início se lock(D) = X' então início se fila-WAIT(D) = vazia então lock(D) U; senão Obter o primeiro Tx da fila-WAIT(D) e realizar o lock desejado; fim senão se lock(D) = S então início remove Tx da fila-READ(D) se fila-READ(D) = vazia então lock(D)=U; fim

7 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 7 Questão 2 1.Explique o princípio da técnica de bloqueio de duas fases e mostre exemplo?

8 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 8 Resposta 2 Premissa –para toda transação Tx, todas as operações de bloqueio de dados feitas por Tx precedem a primeira operação de desbloqueio feita por Tx Protocolo de duas fases 1.Fase de expansão ou crescimento Tx pode obter bloqueios, mas não pode liberar nenhum bloqueio 2.Fase de retrocesso ou encolhimento Tx pode liberar bloqueios, mas não pode obter nenhum bloqueio

9 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 9 Resposta 2 número bloqueios Gráfico de bloqueios de Tx tempo start commit crescimentoencolhimento ponto em que os bloqueios para todos os dados desejados por Tx foram obtidos (P max (Tx)) execução de operações de Tx

10 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 10 Resposta 2 T1: r(Y) w(Y) w(Z) T2: r(X) r(Y) w(Y) r(Z) w(Z) Contra-Exemplo H N-2PL = lx1(Y) r1(Y) ls2(X) r2(X) u2(X) w1(Y) u1(Y) lx2(Y) r2(Y) w2(Y) u2(Y) lx2(Z) r2(Z) w2(Z) c2 lx1(Z) w1(Z) u1(Z) c1 Exemplo H 2PL = ls2(X) r2(X) lx1(Y) r1(Y) lx1(Z) w1(Y) u1(Y) lx2(Y) r2(Y) w1(Z) u1(Z) c1 w2(Y) lx2(Z) u2(X) u2(Y) w2(Z) u2(Z) c2 T1 T2 não garantiu SR! T1 T2 é SR! P max (T2) P max (T1) não é 2PL!

11 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 11 Questão 3 Explique o que é Deadlock?

12 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 12 Resposta 3 Ocorrência de deadlock –Ty está na Fila-WAIT(D1) de um dado D1 bloqueado por Tx –Tx está na Fila-WAIT(D2) de um dado D2 bloqueado por Ty Pode ser descoberto através de um grafo de espera de transações –se o grafo é cíclico existe deadlock! Tx Ty

13 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 13 Questão 4 Quais são os protocolos de prevenção de Deadlock baseado em timestamp?

14 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 14 Resposta 4 Timestamp –rótulo de tempo associado à Tx (TS(Tx)) Técnicas –consideram que Tx deseja um dado bloqueado por outra transação Ty –Técnica 1: esperar-ou-morrer (wait-die) se TS(Tx) < TS(Ty) então Tx espera senão início abort(Tx) start(Tx) com o mesmo TS fim tempo de start de Tx

15 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 15 Resposta 4 Técnicas (cont.) –Técnica 2: ferir-ou-esperar (wound-wait) se TS(Tx) < TS(Ty) então início abort(Ty) start(Ty) com o mesmo TS fim senão Tx espera –vantagem das técnicas evitam starvation (espera indefinida) de uma Tx –quanto mais antiga for Tx, maior a sua prioridade –desvantagem das técnicas muitos abortos podem ser provocados, sem nunca ocorrer um deadlock

16 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 16 Questão 5 Explique o funcionamento do protocolo de prevenção de deadlock Cautious-Waiting?

17 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 17 Resposta 5 Princípio de Funcionamento –se Tx deseja D e D está bloqueado por Ty então se Ty não está em alguma Fila-WAIT então Tx espera senão início abort(Tx) start(Tx) fim Vantagem –se Ty já está em espera, Tx é abortada para evitar um possível ciclo de espera Desvantagem –a mesma das técnicas baseadas em timestamp

18 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 18 Questão 6 Explique os outros protocolos do 2PL (Conservador, Estrito e Rigoroso) ?

19 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 19 Resposta 6 Scheduler 2PL Conservador ou Estático –evita deadlock, porém Tx pode esperar muito para executar Scheduler 2PL Estrito (muito usado pelos SGBDs) –Tx só libera seus bloqueios exclusivos após executar commit ou abort número bloqueios exclusivos tempo start commit P max (Tx) número bloqueios comparti- lhados tempo start commit P max (Tx) crescimento cresci- mento encolhi- mento

20 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 20 Resposta 6 Scheduler 2PL Estrito –vantagem: garante escalonamentos estritos –desvantagem: não está livre de deadlocks Scheduler 2PL (Estrito) Rigoroso –Tx só libera seus bloqueios após executar commit ou abort –vantagem menos overhead para Tx –Tx libera tudo apenas no final! –desvantagem limita mais a concorrência número bloqueios tempo start commit P max (Tx) crescimento

21 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 21 Questão 7 1.Considerando a técnica TS-Básico, verifique se alguma transação abaixo é desfeita e em que ponto a) H1 = r1(a) r2(a) r3(a) c1 c2 c3 b) H2 = r1(a) w1(a) r2(a) c1 c2 c) H3 = r1(a) r1(b) r2(a) r2(b) w2(a) w2(b) c1 c2 d) H4 = r1(a) r1(b) r2(a) w2(a) w1(b) c1 c2 e) H5 = r2(a) w2(a) w1(a) r2(a) c1 c2 f) H6 = r2(a) w2(a) r1(b) r1(c) w1(c) w2(b) c1 c2

22 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 22 Resposta 7 1.H1 = r1(a) r2(a) r3(a) c1 c2 c3 - OK 2.H2 = r1(a) w1(a) r2(a) c1 c2 - OK 3.H3 = r1(a) r1(b) r2(a) r2(b) w2(a) w2(b) c1 c2 - ok 4.H4 = r1(a) r1(b) r2(a) w2(a) w1(b) c1 c2 - ok 5.H5 = r2(a) w2(a) w1(a) r2(a) c1 c2 - Errado 6.H6 = r2(a) w2(a) r1(b) r1(c) w1(c) w2(b) c1 c2 - OK

23 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 23 Questão 8 1.Explique o funcionamento do Scheduler Baseado em validação

24 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 24 Resposta 8 Técnica na qual atualizações de uma transação Tx são feitas sobre cópias locais dos dados Quando Tx solicita commit é feita a sua validação –Tx violou a serializabilidade? SIM: Tx é abortada e reiniciada posteriormente NÃO: atualiza o BD a partir das cópias dos dados e encerra Tx

25 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 25 Resposta 8 Cada transação Tx passa por 3 fases: 1.Leitura Tx lê dados de transações committed do BD e atualiza dados em cópias locais 2.Validação análise da manutenção da serializabilidade de conflito caso as atualizações de Tx sejam efetivadas no BD 3.Escrita se fase de Validação for OK, aplica-se as atualizações de Tx no BD e Tx encerra com sucesso; caso contrário, Tx é abortada

26 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 26 Resposta 8 Vantagens –reduz o overhead durante a execução de Tx –evita aborto em cascata Tx não grava no BD antes de suas atualizações serem validadas em memória –se Tx interfere em outra Ty committed ou em validação, suas atualizações são descartadas Desvantagem –se houve interferência entre Tx e outras transações (isso não é esperado pois a técnica é otimista), isso é descoberto somente ao final da execução de Tx (na validação) e só após essa validação Tx pode ser reiniciada

27 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 27 Pergunta 9 Quais os tipos de bloqueios de intensão e para que serve?

28 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 28 Resposta 9 Indicam, em grânulos mais grossos, que Tx está bloqueando algum dado em um grânulo mais fino –vê o BD como uma árvore de grânulos Tipos de bloqueios de intenção –IS (Intention-Shared) indica que um ou mais bloqueios compartilhados serão solicitados em nodos descendentes –IX (Intention-eXclusive) indica que um ou mais bloqueios exclusivos serão solicitados em nodos descendentes –SIX (Shared-Intention-eXclusive) bloqueia o nodo corrente no modo compartilhado, porém um ou mais bloqueios exclusivos serão solicitados em nodos descendentes

29 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 29 Questão 10 Dada a transação abaixo, indique os bloqueios necessários para executar a transação considerando os níveis: Banco – Tabela - Tupla. read(tupla-X:TABELA-X) read(tupla-Y:TABELA-Z) x:=x+1 write(tupla-X:TABELA-X)

30 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 30 Resposta 10 BD Tabela XTabela Y Tupla X Tupla B n -MTupla Y Tupla B m -P... IS (T2) X (T1) IX (T1) IS (T1) S (T2)

31 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 31 Questão 11 Escreve o algoritmos do TS-Básico.

32 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 32 Pergunta 11 TS-Básico(Tx, dado, operação) início se operação = READ então se TS(Tx) < R-TS(dado).TS-Write então inícioabort(Tx); restart(Tx) com novo TS; fim senão início executar read(dado); se R-TS(dado).TS-Read < TS(Tx) então R-TS(dado).TS-Read TS(Tx); fim senão início /* operação = WRITE */ se TS(Tx) < R-TS(dado).TS-Read OU TS(Tx) < R-TS(dado).TS-Write então inícioabort(Tx); restart(Tx) com novo TS; fim senão inícioexecutar write(dado); R-TS(dado).TS-Write TS(Tx); fim

33 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 33 Questão 12 Para que server o operador grant do SQL

34 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 34 Resposta 12 O Comando grant é usado para conferir autorização. A forma básica deste comando é: grant on to

35 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 35 Resposta 12 grant select on agencia to U1, U2, U3 grant update on deposito to U1 grant references (nome-agencia) on agencia to U1

36 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 36 Questão 13 Para que server a opção with grant option?

37 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 37 Resposta 13 A opção with grant option, permite ao usuário que recebeu um privilégio repassar para quem quiser.

38 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 38 Questão 14 Para que server a operação revoke?

39 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 39 Resposta 14 Para revogar a autorização, o comando revoke é usado. Ele toma a forma quase idêntica àquela do comando grant: revoke on from

40 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 40 Resposta 14 revoke select on agencia from U1, U2, U3 revoke update on deposito from U1 revoke references (nome-agencia) on agencia from U1

41 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 41 Questão 15 Para que servem os pápeis (Role) no contexto de segurança no SGBD e como ela são criadas?

42 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 42 Resposta 15 É um identificador ao qual pode-se atribuir privilégios que não existem a princípio. Então pode-se atribuir a um usuário este papel (conjunto de privilégios) com um único comando GRANT. Pode-se inclusive ao criar um papel usar outros papéis já cadastrados. Ex. PapelVendedor, PapelVendedorSapatos, PapelVendedoFrutas.

43 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 43 Resposta 15 Sintaxe SQL:1999 CREATE ROLE nome-papel [WITH ADMIN {CURRENT_USER | CURRENT_ROLE}] Para remover um papel: DROP ROLE nome-papel;

44 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 44 Questão 16 O que são visões em um SGBD?

45 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 45 Resposta 16 Uma visão, na terminologia SQL, é uma tabela única e derivada de outra tabela, que pode ser uma tabela básica ou uma visão previamente definida. Uma visão não existe de forma física, ela é considerada uma tabela virtual, em contraste com as tabelas básicas, cujas tuplas são realmente armazenadas no banco de dados. Isso limita as operações de atualização possíveis para as visões, embora não imponha nenhuma limitação para consultas.

46 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 46 Questão 17 Para que servem operador create view e drop view respectivamente?

47 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 47 Resposta 17 Create view para criar uma visão Drop view para remover

48 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 48 Questão 18 Para que server o Audit Trail?

49 © Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 49 Resposta 18 Audit trail: componente de todo SGBD que armazena histórico de informações de auditoria


Carregar ppt "© Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP2 Msc, Marcelo Bezerra de Alcântara"

Apresentações semelhantes


Anúncios Google