Número:_________________ Nome: _________________________________________ -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame 1 2 Julho 2009 -------------------------------------------------------------------------------------------------------------- A duração deste exame é de 2H30. É um exame com consulta. O número total de pontos é 20. Marque as suas respostas NA FOLHA DE EXAME. Escreva o seu número e nome no topo de cada página. Escreva todas as fórmulas. Para o uso oficial somente 1 2 2 2 3 4 4 4 5 4 6 4 SUM 20 1 Número:_________________ Nome: _________________________________________ 2 1. (2v) Miscelânea 1.1)(1v) Relativamente ao SQL Server 2008, indique nas alíneas seguintes quais as verdadeiras e as falsas. Cada alínea vale 0,25 valores. Se acertar, tem a cotação toda; se errar, é-lhe descontado 0,1 valores por cada alínea errada. a) Uma base de dados SQL Server 2008 pode conter vários data files e vários log files, ambos organizados em um ou vários file groups. b) Uma interrogação SQL que utiliza o hint NOLOCK apresenta um comportamento equivalente à utilização do nível de isolamento READ UNCOMMITED. c) O SQL Server 2008 suporta transparentemente o particionamento horizontal e vertical de índices e tabelas. d) O SQL Server 2008 suporta a criação de vistas materializadas. 1.2)(1v) Indique se as seguintes afirmações são verdadeiras ou falsas. Cada alínea vale 0,25 valores. Se acertar, tem a cotação toda; se errar, é-lhe descontado 0,1 valores por cada alínea errada. a) Um índice do tipo extendable hash tem a vantagem de suportar de forma eficiente pesquisas por intervalos de valores, enquanto que um índice baseado em hash convencional apenas suporta pesquisas por condições de igualdade. b) O nível de isolamento REPETABLE READ está sujeito a anomalias do tipo phantom reads. c) O algoritmo ARIES garante que uma operação de REDO nunca é feita mais que uma vez. d) O algoritmo ARIES garante que uma operação de UNDO nunca é feita mais que uma vez. Número:_________________ Nome: _________________________________________ 3 2. (2v) Sistema de Ficheiros 2.1) (0,5v) Apresente um comando T-SQL que permita criar uma base de dados com o seguinte conjunto de características: A base de dados deve chamar-se BDExameAOBD e deve conter ter dois ficheiros de dados, ambos no filegroup primário. O primeiro ficheiro de dados deve ter um tamanho inicial de 100MB, e o segundo ficheiro deve ter um tamanho inicial de 200MB. A base de dados deve ainda ter um ficheiro de log com um tamanho inicial de 50MB. Tanto os data files como o ficheiro de log devem ter um tamanho máximo de 500MB, crescendo a uma taxa de 10%. 2.2) (0,5v) Considere que, para a base de dados da alínea anterior, se pretendiam armazenar os dois ficheiros de dados em filegroups distintos (i.e., o primeiro ficheiro de dados no filegroup primário e outro no secundário). Apresente a instrução T-SQL correspondente a este caso e indique uma potencial vantagem desta divisão em dois filegroups distintos. Número:_________________ Nome: _________________________________________ 4 1.3) (1v) Indique se, no SQL Server 2008, cada base de dados pode ter vários ficheiros de log. Em caso de resposta afirmativa, indique ainda se estes ficheiros de log podem ser associados em filegroups distintos. Número:_________________ Nome: _________________________________________ 5 3. (4v) Índices 3.1) (2v) Considere uma árvore B+ com n=3 que representa um índice para um atributo do tipo inteiro. Partindo de uma árvore vazia, desenhe o resultado dos vários passos de inserção à medida que insere os elementos 62, 81, 35, 41, 13, 22, 73, por esta ordem. Número:_________________ Nome: _________________________________________ 6 3.2) (2v) Desenhe o resultados dos vários passos de remoção à medida que remove os mesmos elementos da alínea anterior, pela mesma ordem (i.e. do elemento 62 até ao elemento 73) até chegar a uma árvore vazia. Número:_________________ Nome: _________________________________________ 7 4. (4v) Processamento e optimização de interrogações Considere o seguinte esquema relacional e a seguinte interrogação sobre o esquema. LOJA(IDL,NOME,LOCALIZACAO,VVENDAS) // 1000 tuplos - IDL chave primária EMPREGADO(BI,IDL,IDD,SALARIO) // 20000 tuplos - BI chave primária DEPARTAMENTO(IDD,IDL,NOME) // 1000 tuplos - IDD chave primária SELECT FROM WHERE AND AND AND AND E.BI, L.IDL, D.NOME EMPREGADO E, LOJA L, DEPARTAMENTO D D.IDL=L.IDL L.VVENDAS<500.000 E.IDL=D.IDL E.IDD=D.IDL E.SALARIO>2500 Assuma que o atributo EMPREGADO.SALARIO está uniformemente distribuído no intervalo 500-5000 e que o atributo LOJA.VENDAS está uniformemente distribuído no intervalo 100.000-800.000. Assuma ainda que existe um índice clustered no atributo EMPREGADO.SALARIO, um índice clustered em LOJA.IDL, e um índice clustered em DEPARTAMENTO.IDD. 4.1) (0,5v) Explique por palavras suas qual o resultado obtido pela interrogação SQL que se apresenta. 4.2) (1v) Liste os planos de execução considerados por um optimizador semelhante ao do sistema-R para a interrogação apresentada. Número:_________________ Nome: _________________________________________ 8 4.3) (1,5v) Dos planos considerados anteriormente, qual seria o que apresenta um custo estimado mais baixo? Número:_________________ Nome: _________________________________________ 9 4.4) (1v) Se o índice em DEPARTAMENTO.IDD fosse unclustered, o custo estimado anteriormente mudaria substancialmente? Justifique a sua resposta Número:_________________ Nome: _________________________________________ 10 5. (4v) Transacções, controlo de concorrência e gestão de recuperação 5.1) (1v) Considere a técnica de checkpointing no sistema de recuperação de um dado SGBD. a) (0,5v) Indique como a frequência dos checkpoints afecta o desempenho do sistema quando não ocorrem falhas. b) (0,5v) Indique como a frequência dos checkpoints afecta o tempo necessário para recuperar de uma falha do sistema. 5.2) (2v) Considere um esquema de recuperação que use modificação imediata. Mostre, através de um exemplo, como a base de dados pode ficar num estado inconsistente se não fôr garantido que o log de recuperação é escrito em disco antes das páginas de dados. Número:_________________ Nome: _________________________________________ 11 5.3) (1v) Quais as vantagens e desvantagens de usar uma técnica de modificação imediata, quando comparada com uma técnica de modificação diferida? Número:_________________ Nome: _________________________________________ 12 6. (4v) Database tuning Considere a seguinte relação normalizada, em que a chave primária é o atributo BI: Empregados(BI, NOME, ORDENADO, DEPARTAMENTO, ANO-CONTRATAÇÃO) Existem quatro interrogações igualmente frequentes e importantes: a) Qual o número médio de empregados por departamento? b) Quais os B.I.s de empregados com o salário mais alto? c) Qual o gasto em salários efectuado por cada departamento? d) Quantos empregados foram contratados no ano corrente? 6.1) (1v) Que índices criaria sobre a relação? Para cada índice, indique qual o tipo (i.e., hash ou B+tree) e indique se o índice seria clustered ou non-clustered. Justifique a sua resposta? Número:_________________ Nome: _________________________________________ 13 6.2) (1v) Sugeriria a utilização de algum esquema de particionamento horizontal, como forma de melhorar o desempenho das interrogações? Justifique a sua resposta. 6.3) (1v) Que alterações, ao nível do modelo de dados, poderiam trazer benefícios em termos de desempenho? Justifique a sua resposta. Número:_________________ Nome: _________________________________________ 14 6.4) (1v) Considere que o SGBD apenas implementa os níveis de isolamento READ COMMITED e SERIALIZABLE. Qual o nível de isolamento mais indicado para cada uma das interrogações? Justifique a sua resposta.