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

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

Disciplina Banco de Dados II Revisão da Matéria VP2

Apresentações semelhantes


Apresentação em tema: "Disciplina Banco de Dados II Revisão da Matéria VP2"— Transcrição da apresentação:

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

2 Objetivos Revisar a matéria sobre as Técnicas de controle de concorrência – Aula 05; Revisar Controle de Acesso – Aula 06; © Marcelo Bezerra de Alcântara

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

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

5 Resposta 1 lock-X(D, Tx) início se lock(D) = ‘U’ então 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); © Marcelo Bezerra de Alcântara

6 Resposta 1 unlock-X(D, Tx) início se lock(D) = ‘X' então
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 remove Tx da fila-READ(D) se fila-READ(D) = vazia então lock(D)=U; © Marcelo Bezerra de Alcântara

7 Questão 2 Explique o princípio da técnica de bloqueio de duas fases e mostre exemplo? © Marcelo Bezerra de Alcântara

8 Resposta 2 Premissa Protocolo de duas fases
“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 Fase de expansão ou crescimento Tx pode obter bloqueios, mas não pode liberar nenhum bloqueio Fase de retrocesso ou encolhimento Tx pode liberar bloqueios, mas não pode obter nenhum bloqueio © Marcelo Bezerra de Alcântara

9 Resposta 2 Gráfico de bloqueios de Tx execução de operações de Tx
número bloqueios ponto em que os bloqueios para todos os dados desejados por Tx foram obtidos (Pmax(Tx)) crescimento encolhimento tempo start commit execução de operações de Tx © Marcelo Bezerra de Alcântara

10 Resposta 2 T1: r(Y) w(Y) w(Z) T2: r(X) r(Y) w(Y) r(Z) w(Z)
Contra-Exemplo HN-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 H2PL = 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 não é 2PL! T1 T2 não garantiu SR! Pmax(T1) é SR! T1 T2 Pmax(T2) © Marcelo Bezerra de Alcântara

11 Questão 3 Explique o que é Deadlock? © Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

13 Questão 4 Quais são os protocolos de prevenção de Deadlock baseado em timestamp? © Marcelo Bezerra de Alcântara

14 Resposta 4 Timestamp Técnicas rótulo de tempo associado à Tx (TS(Tx))
tempo de start de Tx 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 © Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

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

17 Resposta 5 Princípio de Funcionamento Vantagem Desvantagem
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 © Marcelo Bezerra de Alcântara

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

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 comparti- lhados número bloqueios exclusivos Pmax(Tx) Pmax(Tx) cresci- mento encolhi- mento crescimento start commit tempo start commit tempo © Marcelo Bezerra de Alcântara

20 Resposta 6 Scheduler 2PL Estrito Scheduler 2PL (Estrito) Rigoroso
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 Pmax(Tx) crescimento start commit tempo © Marcelo Bezerra de Alcântara

21 Questão 7 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 © Marcelo Bezerra de Alcântara

22 Resposta 7 H1 = r1(a) r2(a) r3(a) c1 c2 c3 - OK
H2 = r1(a) w1(a) r2(a) c1 c2 - OK H3 = r1(a) r1(b) r2(a) r2(b) w2(a) w2(b) c1 c2 - ok H4 = r1(a) r1(b) r2(a) w2(a) w1(b) c1 c2 - ok H5 = r2(a) w2(a) w1(a) r2(a) c1 c2 - Errado H6 = r2(a) w2(a) r1(b) r1(c) w1(c) w2(b) c1 c2 - OK © Marcelo Bezerra de Alcântara

23 Questão 8 Explique o funcionamento do Scheduler Baseado em validação
© Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

25 Resposta 8 Cada transação Tx passa por 3 fases: Leitura Validação
Tx lê dados de transações committed do BD e atualiza dados em cópias locais Validação análise da manutenção da serializabilidade de conflito caso as atualizações de Tx sejam efetivadas no BD 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 © Marcelo Bezerra de Alcântara

26 Resposta 8 Vantagens Desvantagem
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 © Marcelo Bezerra de Alcântara

27 Pergunta 9 Quais os tipos de bloqueios de intensão e para que serve?
© Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

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) © Marcelo Bezerra de Alcântara

30 Resposta 10 BD Tabela X Tabela Y IX (T1) IS (T1) IX (T1) IS (T2) ...
Tupla X Tupla Bn-M ... Tupla Y Tupla Bm-P ... X (T1) S (T2) © Marcelo Bezerra de Alcântara

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

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ício abort(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); 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 senão início executar write(dado); R-TS(dado).TS-Write  TS(Tx); © Marcelo Bezerra de Alcântara

33 Questão 12 Para que server o operador grant do SQL
© Marcelo Bezerra de Alcântara

34 Resposta 12 O Comando grant é usado para conferir autorização. A forma básica deste comando é: grant <lista de privilégios> on <nome da relação ou visão> to <lista de usuários> © Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

36 Questão 13 Para que server a opção with grant option?
© Marcelo Bezerra de Alcântara

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

38 Questão 14 Para que server a operação revoke?
© Marcelo Bezerra de Alcântara

39 Resposta 14 Para revogar a autorização, o comando revoke é usado. Ele toma a forma quase idêntica àquela do comando grant: revoke <lista de privilégios> on <nome da relação ou visão> from <lista de usuários> © Marcelo Bezerra de Alcântara

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 © Marcelo Bezerra de Alcântara

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

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. © Marcelo Bezerra de Alcântara

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

44 Questão 16 O que são visões em um SGBD? © Marcelo Bezerra de Alcântara

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. © Marcelo Bezerra de Alcântara

46 Questão 17 Para que servem operador create view e drop view respectivamente? © Marcelo Bezerra de Alcântara

47 Resposta 17 Create view para criar uma visão Drop view para remover
© Marcelo Bezerra de Alcântara

48 Questão 18 Para que server o Audit Trail?
© Marcelo Bezerra de Alcântara

49 Resposta 18 Audit trail: componente de todo SGBD que armazena histórico de informações de auditoria © Marcelo Bezerra de Alcântara


Carregar ppt "Disciplina Banco de Dados II Revisão da Matéria VP2"

Apresentações semelhantes


Anúncios Google