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