de Bases de Dados Exame 1

Documentos relacionados
INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Sistemas de Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Bases de Dados 2008/2009

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Bases de Dados 2006/2007 Exame

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Responda a cada grupo nas páginas respectivas do grupo. Exame sem consulta.

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Bases de Dados 2007/2008 Exame

INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Há vários algoritmos para processar junções nested-loop join block nested-loop join indexed nested-loop join merge-join hash-join

Bacharelado em Ciência da Computação UFU Disciplina GBC053 Gerência de Banco de Dados Profa. Sandra de Amo

Sistemas de Informação e Bases de Dados 2012/2013. Transações. Alberto Sardinha

Administração e Optimização de BDs

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

Bases de Dados. Apresentação da disciplina. Programa

Banco de Dados I 6 Transações e Controle de Concorrência

1º Exame de Base de Dados (2015/2016);

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

Prova de Fundamentos de Bancos de Dados 1 a Prova

ACH2024. Aula 22 Hashing Externo - Hashing estático e dinâmico (extensível) Prof Helton Hideraldo Bíscaro

Exercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis

Processamento de Transações

Processamento de Transações

Bases de Dados 2008/2009

Sumário. Recuperação de Falhas

Otimização e Execução de Consultas Caso Centralizado Parse Query

Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP

Técnicas de Recuperação em Banco de Dados

Hashing: conceitos. Hashing

Técnicas de Controle de Concorrência

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Lista de Exercícios 12 Transações

Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

revisão Controle de Concorrência com Locks Bancos de Dados I 2015/02

Bases de Dados 2007/2008 Exame

BD II (SI 587) Técnicas de Recuperação. Josenildo Silva.

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

SGBD. Definição. Funções básicas

Técnicas de Controle de Concorrência

Transcrição:

Ano lectivo 2011/2012 2 o semestre Administração e Optimização de Bases de Dados Exame 1 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta. Poderá consultar o livro, slides da disciplina, e outros materiais de estudo que não exercícios resolvidos. Só poderá abandonar a sala onde decorre a prova ao fim de 1 hora, mediante a entrega do exame. Deve responder às questões numa folha de prova, identificando todas as páginas com o respectivo número do aluno. Deve apresentar sempre os cálculos que fez para as questões. Cotação das questões Questão 1 4 5 Alínea (a) (b) (c) (a) (d) Valor 2,5 1 0,5 1 IST Pág. 1 de 6

1 Considere as estruturas de dados utilizadas no contexto dos Sistemas de Gestão de Bases de Dados, como forma de suportar a indexação. Responda às seguintes questões. a) Considere um índice do tipo B+Tree, onde cada nó contém um máximo de 4 apontadores (i.e., cada nó armazena no máximo 3 valores). Mostre a estrutura obtida pela inserção dos valores 2369, 3760, 4692, 4871, 5659, 1821, 1074, 7115, 1620, 4748, 6975, e 9208. Deve apresentar a estrutura após a inserção de cada elemento. Em cada passo, não é necessário repetir a apresentação dos nós que não mudaram. b) Considere agora um índice hash do tipo extendable hashing, onde cada bucket armazena 2 valores, e onde é usada a função de dispersão h(x) = x mod 128. Mostre a estrutura obtida pela inserção dos valores 2369, 3760, 4692, 4871, 5659, 1821, 1074, 7115 e 1620. Deve apresentar a estrutura após a inserção de cada elemento. Em cada passo, não é necessário repetir a apresentação dos buckets que não mudaram. Abaixo apresenta-se a representação em binário para os valores obtidos pela aplicação da função de dispersão. 1000001 = 065 = 2369 mod 128 0110000 = 048 = 3760 mod 128 1010100 = 084 = 4692 mod 128 0000111 = 007 = 4871 mod 128 0011011 = 027 = 5659 mod 128 0011101 = 029 = 1821 mod 128 0110010 = 050 = 1074 mod 128 1001011 = 075 = 7115 mod 128 1010100 = 084 = 1620 mod 128 c) Considere o índice do tipo B+Tree obtido como resultado na primeira alínea deste exercício. Mostre a estrutura obtida pela remoção dos valores 7115, 3760, 2369 e 4692. Deve apresentar a estrutura após a remoção de cada elemento. Em cada passo, não é necessário repetir a apresentação dos nós que não mudaram. IST Pág. 2 de 6

2 Considere o protocolo de recuperação ARIES. Considere ainda que, aquando de uma falha no SGBD, temos a seguinte informação registada no log de recuperação. Aquando do checkpoint, a dirty page table e a transaction table encontravam-se vazias. 1. Checkpoint 2. Update: T1 escreve na página B 3. Update: T3 escreve na página D 4. Update: T2 escreve na página C 5. Update: T3 escreve na página A 6. Commit: T3 7. Update: T2 escreve na página D a) Mostre qual o resultado da aplicação do protocolo de recuperação ARIES no cenário acima, descrevendo claramente: A tabela de transacções e a dirty page table após a fase de análise. Os registos do log envolvidos na fase de redo. Os registos do log envolvidos na fase de undo. Os registos do log após a execução do protocolo ARIES. b) Indique, justificando, se o protocolo de recuperação ARIES poderia ser utilizado num sistema de gestão de bases de dados em que o controlo da execução concorrente de transacções fosse efectuado através de um protocolo two-phase locking simples. Em caso de resposta negativa, indique como modificaria o sistema (e.g., através de uma técnica de recuperação alternativa) que pudesse ser mais indicada para este sistema, justificando a sua resposta. c) Compare o algoritmo ARIES com um outro mecanismo de recuperação, introduzido nas aulas, baseado na regra Write-Ahead Logging (WAL). Indique explicitamente quais as diferenças principais em relação ao ARIES. IST Pág. 3 de 6

3 Considere duas relações R(A, B) e S(A, C) em que A é chave primária em R e S. Considere também que: A relação R contém 45000 tuplos; A relação S contém 20000 tuplos; Os valores do atributo A encontram-se uniformemente distribuídos entre 1 e 1.000.000; A relação S tem um índice primário do tipo B+Tree sobre o atributo A, com 100 valores armazenados em cada nó do índice. Cada bloco do sistema de armazenamento contém até 25 tuplos da relação R, 30 tuplos da relação S, e um nó do índice. a) Determine o número de I/Os envolvidos nos seguintes algoritmos de execução para a operação R S, quando 3 blocos estão disponíveis no buffer. Block nested loop join; Indexed nested loop join, usando o índice na relação S; Hash join. b) Determine a melhor estratégia de acesso, e o número de I/Os envolvido, para as seguintes operações de selecção: σ A=100.000 (S) σ A<100.000 (S) σ A>100.000 (S) c) Considere as características enunciadas para as relações R e S, em particular os índices existentes. Assuma ainda que cabem 3 blocos de cada vez em memória. Calcule o custo, em termos do número de I/Os, envolvido na execução de um algoritmo merge join para obter os resultados de R S. IST Pág. 4 de 6

4 Tendo em conta os conceitos relacionados com a gestão de transacções concorrentes em sistemas de gestão de bases de dados, responda às seguintes questões: a) Considerando o seguinte escalonamento para as operações de 3 transacções concorrentes T 1, T 2 e T 3, desenhe o grafo de precedências para o escalonamento apresentado e indique se o mesmo é conflict serializable, justificando. T1 T2 T3 read(z) read(y) write(y) read(y) read(z) read(x) write(x) write(y) write(z) read(x) read(y) write(y) write(x) b) Considere agora as operações individuais envolvidas nas transacções T 1, T 2 e T 3, da alínea anterior, tal como apresentadas abaixo. T1 : read(x) ; write(x) ; read(y) ; write(y) T2 : read(z) ; read(y) ; write(y) ; read(x) ; write(x) T3 : read(y) ; read(z) ; write(y) ; write(z) Coloque as instruções de lock e unlock que lhe pareçam apropriadas, por forma a obedecer a um protocolo de gestão de concorrência two-phase locking, e por forma a que apenas escalonamentos recuperáveis pudessem ser gerados. Indique ainda se o escalonamento da alínea anterior poderia ser produzido como resultado do protocolo two-phase locking, justificando. c) Considere o escalonamento para as operações de 3 transacções concorrentes T 1, T 2 e T 3, apresentado na primeira alínea desta pergunta. Indique quais os passos tomados por um protocolo de gestão de concorrência baseado em timestamps, sem considerar múltiplas versões para os recursos. Indique claramente quais as transacções que seriam executadas, e quais as que teriam a sua execução cancelada. IST Pág. 5 de 6

5 Responda às seguintes questões. a) Considere uma relação R(A, B, C) e a seguinte expressão de álgebra relacional: π T.B (σ T.A>S.A S.C= xpto (ρ T (R) ρ S (R))) Escreva uma expressão de álgebra relacional equivalente, cuja execução possa ser mais eficiente. Justifique a sua resposta. b) Descreva, de forma resumida, o funcionamento de uma estrutura de dados que seja tipicamente utilizada no contexto dos SGBDs para o processamento de interrogações envolvendo múltiplas condições de selecção, sobre atributos que tipicamente tomem um número reduzido de valores distintos. c) Considere as seguinte duas interrogações em SQL, efectuadas sobe duas relações com esquemas R(A, B) e S(A, C). Considere ainda que o atributo A é chave primária apenas na relação R, tendo sido criado um índice primário com base neste atributo. SELECT * FROM R WHERE A IN (SELECT A FROM S); SELECT DISTINCT R1.A, S.C FROM (SELECT R.A FROM R WHERE A > 10) AS R1 NATURAL JOIN S; Reescreva as duas interrogações, apresentando instruções SQL que produzam resultados equivalentes, mas cuja execução possa ser mais eficiente. Justifique a sua resposta, indicando o porquê da execução mais eficiente. d) Explique como poderia estimar a selectividade da seguinte interrogação em SQL (i.e., apresente a(s) formula(s) que permitiria(m) calcular a estimativa), e indique qual a informação necessária para poder efectuar a estimativa. SELECT * FROM estudantes WHERE (curso = LEIC OR curso= LERC ) AND NOT ( datanascimento < 01.01.1979 AND medianotas > 14 ) IST Pág. 6 de 6