Nome: Número: INSTITUTO SUPERIOR TÉCNICO DEPARTAMENTO DE ENGENHARIA INFORMÁTICA Bases de Dados Repescagem do 2º Teste (LEIC Tagus) Não se esqueçam de identificar todas as folhas! 13 de Fevereiro de 2004 – 10H Duração: 1H30 Grupo 1 – Índices (5v) Considere o seguinte índice B+tree: 7 6 15 3 5* 14 6* 8* 17 16* 18* 19* a) Escreva a árvore que resulta da inserção do registo com chave igual a 20. b) Escreva a árvore que resulta da remoção do registo 16* da árvore inicial. Grupo 1 - Resposta 1 Nome: Número: Grupo 2 – Processamento de interrogações (4v) Suponha que é o arquitecto de um Sistema de Gestão de Bases de Dados, o NovoSGBD. A data limite para o lançamento no mercado do produto está muito próxima. 1) Você só tem tempo para implementer um algoritmo de join. Qual dos seguintes: tuplenested-loop join, block-nested-loop join, index-nested-loop join, sort-merge join, or hash join, vai escolher e porquê? 2) Também só tem tempo para implementar uma estrutura de índice. Qual escolheria: B+tree ou extendible hashing? Grupo 2 - Resposta 2 Nome: Número: Grupo 2 - Resposta 3 Nome: Número: Grupo 3 – Tuning de bases de dados (6v) 1. Considere o seguinte esquema relacional: Autor(artigoID, nomeAutor, país) Artigo(artigoID, título, ano) A relação Artigo guarda informação sobre um conjunto de artigos publicados. A relação Autor guarda o conjunto de autores para cada artigo, logo existe uma linha na tabela Autor para cada autor de cada artigo. Suponha que não existem índices sobre nenhuma das tabelas. Suponha a interrogação SQL: select título, nomeAutor from Artigo ar, Autor a where ar.artigoID = a.artigoID and ar.ano = 2002 and país = ‘Portugal’ a) Escreva um plano de execução para esta interrogação representado através da respectiva árvore de operadores algébricos. b) Será o plano de execução apresentado em a) o mais eficiente. Se sim, diga porquê. Senão, indique um alternativo que seja mais eficiente (pode usar um índice se assim o desejar). 2. Considere o seguinte esquema relacional da base de dados de uma organização: Projectos(numero, nomeP, deptoP, gestorID, orçamento) Gestores(ID, nomeG, deptoG, salário, sexo, idade) Diga quais os índices (B+tree ou hash-index) que devem ser criados para tornar a execução do seguinte conjunto de interrogações mais eficiente. Especifique se o índice é clustered ou unclustered. Considere as duas situações: index-only plans são suportados ou não. a) Qual a média de idades dos gestores? b) Qual o total dos orçamentos para cada gestor? A interrogação deve retornar dois campos: o ID do Gestor e a quantia total gerida. 4 Nome: Número: Grupo 3 - Resposta 5 Nome: Número: Grupo 3 - Resposta 6 Nome: Número: Grupo 4 – Transacções, Controlo de concorrência e Recuperação (5v) 1. Diga se o schedule que se segue é serializable, recuperável e strict: T1:W(X), T2:R(X), T1:W(X), T2:commit, T1:abort 2. Diga se são verdadeiras ou falsas as seguintes afirmações: a. O protocolo WAL (Write-ahead logging) diz que todos os registos de log de uma transacção têm que ser escritos para disco depois da transacção fazer commit. b. Na fase de Análise do algoritmo de recuperação ARIES, são procuradas as transacções que fizeram commit e as que abortaram desde o último checkpoint. c. A tabela de transacções usada no algoritmo ARIES guarda as transacções que abortaram e a tabela de dirty pages guarda as páginas de disco que foram modificadas e que potencialmente ainda não foram escritas para disco. Grupo 4 - Resposta 7