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

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Checkpoint SGBD com alta demanda de transações Checkpoint
Técnicas de Controle de Concorrência
CONTROLE DE CONCORRÊNCIA
CONTROLE DE CONCORRÊNCIA
Introdução Gdes. bancos de dados: Concorrência: Transação:
Controle de Concorrência Serializabilidade
INFORMAÇÕES COMPLEMENTARES
Segurança Renata Viegas.
Material pedagógico Multiplicar x 5 Clica!
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
Exercício do Tangram Tangram é um quebra-cabeças chinês no qual, usando 7 peças deve-se construir formas geométricas.
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Disciplina Banco de Dados II Técnicas de Controle de Concorrência
Disciplina Banco de Dados II Segurança em BD
© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
© Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Gestão de transacções noções básicas modelo simples modelo elaborado
Transações Atômicas Distribuídas
Transações Atômicas Distribuídas
Resolução.
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
PERSPECTIVA CONCEITUAL
EXPRESSÕES ARITMÉTICAS
Controle de Concorrência em Sistemas Distribuídos
Introdução a Mecanismos de controle de concorrência
Capítulo 3 Deadlocks - Impasses 3.1. Recurso
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Estudo de Caso 1: UNIX e LINUX
FUNÇÃO MODULAR.
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
RECUPERAÇÃO APÓS FALHA
Provas de Concursos Anteriores
Hamburgo, Alemanha Definir o caminho que irá permitir a Lions Clubs International alcançar o seu potencial pleno como organização.
Módulo Financeiro Centro de Custo.
Análise Preliminar de Riscos
MECÂNICA - ESTÁTICA Cabos Cap. 7.
(CESPE/ Técnico Judiciário do TRT 17ª Região/ES) O Superior Tribunal de Justiça entende que o candidato aprovado em concurso público dentro do limite.
MECÂNICA - DINÂMICA Exercícios Cap. 13, 14 e 17. TC027 - Mecânica Geral III - Dinâmica © 2013 Curotto, C.L. - UFPR 2 Problema
Aluno: Mário Monteiro Orientador: Sérgio Soares 1.
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Estruturas de Dados com Jogos
Coordenação Geral de Ensino da Faculdade
Capítulo 24 Segurança de banco de dados
Prof. Alessandro Gonçalves
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Controle Distribuído da Concorrência
Exercícios SGBD - CESPE
Controle de concorrência
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Olhe fixamente para a Bruxa Nariguda
Máquina de Turing Universal
Caminhos da Cana Relatório e show de imagens Marcos Fava Neves Prof. FEA/USP Ribeirão Preto Purdue University (2013)
Assunto: Transações concorrentes, Disciplina: Banco de dados II, profa. Cristina Paludo Max W. Ourique Ranieri R. Tremea
Bloqueios de Atualização
Protocolo de Bloqueios
Controle de Concorrência
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Transcrição da apresentação:

Disciplina Banco de Dados II Revisão da Matéria VP2 Msc, Marcelo Bezerra de Alcântara malcantara@fa7.edu.br © Marcelo Bezerra de Alcântara

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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