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

Documentos relacionados
de Bases de Dados Exame 1

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

de Bases de Dados Exame 1

Administração e Optimização de BDs

de Bases de Dados Exame 2

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

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

Administração e Optimização de BDs

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

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de fevereiro de 2014 INSTRUÇÕES

Administração e Optimização de BDs

Administração e Optimização de BDs 2º semestre

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

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

se a transacção falhar entre os passos 4 6, os passos 1 3 ficam sem efeito

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

Bases de Dados 2006/2007 Exame

se a transação falhar entre os 3 passos 4 6, os passos 1 3 ficam sem efeito 4 read(b) Consistência

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

BD II (SI 587) Algoritmos de recuperação Avançado e ARIES. Josenildo Silva.

Conceitos. Gestão de Transacções. Transacção. Conceitos e Propriedades. Controlo de Concorrência. Recuperação. Transacções no SGBD Oracle

Administração e Optimização de BDs

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 13 de julho de 2015 INSTRUÇÕES

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.

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 19 de fevereiro de 2013 INSTRUÇÕES

Bases de Dados. Índices. Discos. transferência rápida e aos bytes. transferência lenta e em blocos (512B ~ 4KB) memória. disco BD / aplicação

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

U.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Bases de Dados 2007/2008 Exame

Bases de Dados. Índices. Discos. transferência lenta. transferência rápida e em blocos (512B ~ 4KB) e aos bytes. memória.

Sumário. Recuperação de Falhas

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

Administração e Optimização de BDs

erro lógico: a transacção não pode completar devido a condição de erro erro de sistema: o sistema entrou num estado que impede a transacção

Bases de Dados 2008/2009

U.C Sistemas de Gestão de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES

Bases de Dados 2013/2014 Transações. Helena Galhardas. Sumário!

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

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

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Recuperação. Carlos Eduardo Portela Serra de Castro

Bases de Dados. Algoritmos. Custo de operação. Algoritmos de selecção. Algoritmo de ordenação. Algoritmos de junção.

Bases de Dados. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.

Processamento de Produtos ( X )

BANCO DE DADOS 2 TRANSAÇÃO

Processamento de Transações

Processamento da Consulta. Processamento da Consulta

Transacções concorrentes exemplo. B := B 50 write(b) read(a) A := A + 50 write(a)

Processamento de Transações

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

Bases de Dados. Parte I: Conceitos Básicos

Instruções INDIQUE O SEU NOME E NÚMERO EM CADA FOLHA DO EXAME

Controle de Transação

Organização de Arquivos

Lock. Administração de Banco de Dados

!" # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional

Bases de Dados 2013/2014 Gestão de Recuperação. Helena Galhardas. Sumário

Sumário. Introdução a Transações

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

Chapter 12: Query Processing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

Bases de Dados. Parte I: Conceitos Básicos

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 18 de julho de 2012

Oracle Comandos para Processamento de Transações

BDII SQL TRANSAÇÃO Revisão 2

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa

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

Época de Recurso Sem consulta

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.

PostgreSQL Performance

Índices. 1. Introdução. Universidade Federal de Pelotas Departamento de Informática Bacharelado em Ciência da Computação Banco de Dados I

Sistemas de Informação e Bases de Dados 2012/2013. Índices. Alberto Sardinha

Rápida revisão do Modelo Relacional

Modelo Relacional. Josino Rodrigues

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

Informações de Impressão

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

Contato. professorluisleite.wordpress.com

BANCO DE DADOS Índices em BD Árvores B+

Bases de Dados. Parte I: Conceitos Básicos. Parte I

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 26 de fevereiro de 2016

Bases de Dados 2013/2014 Controlo de Concorrência

Bases de Dados. Remoções em árvores B + Remoção em árvores B +

Lista de Exercícios 12 Transações

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

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

Características dos sistemas convencionais de gestão

Sumário. Controle de Concorrência

Parte 2 Abordagem Comparativa

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

indexação e hashing Construção de Índices e Funções Hash Diego Gomes Tomé - MSc. Informática Orientador: Prof. Dr. Eduardo Almeida October 13, 2016

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

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Bases de Dados. Optimização de planos de execução. Plano de execução

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

SQL-99: Esquema de BD EMPRESA

No contexto informático. Requisitos

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

Transcrição:

Número: Nome: 1 -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame 2 - solução 5 Julho 2008 -------------------------------------------------------------------------------------------------------------- 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 3 4 5 6 SUM 2 2 4 4 4 4 20

Número: Nome: 2 1. (2v) Miscelânea Indique, nas alíneas seguintes, quais as verdadeiras e as falsas. a) O optimizador do SQL Server 2005 iria optar por um algoritmo hash join em lugar de um nested loop join no caso das duas tabelas envolvidas na junção serem grandes. Verdadeiro. b) O SQL Server 2005 suporta o particionamento horizontal de indices e tabelas. Verdadeiro. c) O SQL Server 2005 oferece suporte nativo para índices do tipo hash e B+Tree. Falso. d) Na técnica de write-ahead logging, todas as páginas de dados em memória devem ser escritas em disco antes que as páginas de log em memória possam ser escritas em disco. Falso. e) Uma junção efectuada através do algoritmo nested-loop tem sempre um custo maior do que uma junção efectuada com um algoritmo sort-merge-join. Falso. f) Um grafo de precedências acíclico corresponde a um escalonamento que não pode resultar em deadlock. Falso. g) Numa selecção apenas com disjunções, basta não existir índices para uma das condições, para que seja necessário executar um scan a toda a tabela. Verdadeiro. h) O desempenho de um índice do tipo hash degrada-se com o crescimento da tabela indexada. Verdadeiro.

Número: Nome: 3 2. (2v) Sistema de Ficheiros Os disco rígidos modernos contêm mais sectores nas pistas exteriores (i.e. uma vez que a velocidade de rotação é constante, a transferência sequencial de dados é maior nas pistas exteriores, mantendo-se o tempo de pesquisa para um acesso aleatório). Descreva boas estratégias (isto é, em que pistas exteriores ou interiores - devem ser colocados o ficheiro de dados e o ficheiro de índice, se existir) para colocar neste disco rígido as tabelas de uma BD que apresentem os seguintes padrões de acesso: a) Uma tabela grande na qual se executam operações que envolvem a consulta de todos os tuplos da tabela. b) Uma tabela grande com um índice non-clustered, na qual se executam operações que envolvem o acesso a tuplos individuais com base na chave do índice. c) Uma tabela pequena na qual se executam operações que envolvem a consulta de todos os tuplos da tabela. d) Uma tabela pequena na qual se executam operações que envolvem o acesso a tuplos individuais. a) A tabela deve ser colocada nas pistas exteriores. A velocidade de acesso sequêncial é mais importante e as pistas exteriores maximizam este parâmetro. b) A tabela e o índice devem ser colocada nas pistas interiores, poupando assim espaço nas pistas exteriores para outras tabelas. Ter um índice fisicamente próximo da tabela também traz a vantagem de minimizar o tempo envolvido nos acessos alternados às páginas do indice e da tabela. c) A tabela deve ser colocada nas pistas interiores, poupando assim espaço nas pistas exteriores para outras tabelas. d) A tabela deve ser colocada nas pistas interiores. O acesso sequêncial a uma tabela pequena é semelhante ao acesso aleatório, na medida em que é dominado pelo custo da procura da primeira página.

Número: Nome: 4 3. (4v) Índices Considere um índice do tipo árvore B+, em que o número máximo de descendentes de cada nó, N, é 3. a) Desenhe a árvore resultante da inserção dos seguintes valores, pela ordem dada: 1 10 5 3 6 8 4 b) Qual seria a alteração no índice da alínea anterior, se fosse inserido novamente o valor 4? c) Desenhe a árvore resultante da alínea (a), após a remoção dos valores 3 e 10. Nas alíneas (a) e (c), deve apresentar a árvore após a inserção/remoção de cada elemento, e não apenas a árvore final. Em cada árvore, não é necessário repetir os nós que não mudaram. a) b) A árvore não seria modificada, mas seria inserido mais um apontador no bucket correspondente ao valor 4 nas folhas da árvore.

Número: Nome: 5 c)

Número: Nome: 6 4. (4v) Processamento e optimização de interrogações 4.1. (3v) Considere as seguintes relações e a seguinte interrogação: Bolseiro(idb,id_inst,nome,salario); // 10000 tuplos Instituicao(idi,nome,orcamento); // 1000 tuplos Projecto(idp,id_inst,nome); // 1000 tuplos SELECT B.idb, I.idi, P.idp FROM Bolseiro B, Instituicao I, Projecto P WHERE I.orcamento>20.000 AND B.salario=1000 AND B.id_inst=I.idi AND I.idi=P.id_inst Assuma que o atributo Bolseiro.salario está uniformemente distribuido no intervalo 500-3000 e que o atributo Instituicao.orcamento está uniformemente distribuido no intervalo 15.000-25.000. Assuma ainda que existe um índice clustered no atributo Bolseiro.salario, um índice clustered em Instituicao.idi, e um índice clustered em Projecto.idp a) Liste os planos de execução considerados por um optimizador semelhante ao do sistema-r para a interrogação apresentada. b) Dos planos considerados anteriormente, qual seria o que apresenta um custo estimado mais baixo? c) Se o indice em Projecto.id fosse unclustered, o custo estimado anteriormente mudaria substâncialmente? Justifique a sua resposta. d) Se o indice em Bolseiro.salario fosse unclustered, o custo estimado anteriormente mudaria substâncialmente? Justifique a sua resposta. e) Considere que existe um índice sobre o atríbuto Instituição.orcamento. Imagine agora que o plano de execução gerado pelo optimizador não utilizava este índice para calcular a selecção sobre este atributo. Indique uma possível causa para este facto, e indique como procederia para que o índice fosse considerado. a) Um optimizador semelhante ao do sistema R iria aplicar as condições de selecção tão cedo quanto possível e iria ignorar planos envolendo produtos cartesianos. Seriam assim considerados os seguintes dois planos de execução: select-salario(b) x select-orcamento(i) x P select-orcamento(i) x P x select-salario(b) b) O plano de execução com o custo mais baixo corresponde a utilizar o indice no atríbuto salário para eliminar tuplos da tabela Bolseiros, seguindo-se o join com a tabela Instituição usando o índice em Instituição.id. De seguida, seria aplicado o predicado de selecção sobre o atríbuto orcamento ao resultado desse join. Finalmente, seria feito o join com a tabela Projecto.

Número: Nome: 7 c) O indice non-clustered na tabela Projecto iria aumentar o número de IOs envolvido mas não substâncialmente, uma vez que o número de tuplos a ser retornado da tabela é relativamente pequeno. d) O indice non-clustered na tabela Bolseiro teria um impacto mais significativo no número de IOs, pois o número de tuplos envolvido na tabela Bolseiros é maior do que o número de tuplos envolvido na questão anterior. O segundo plano de execução considerado podia vir a ser mais eficiente, consoante o número de tuplos envolvido. e) Uma possível razão para a não utilização dos indice sobre o atríbuto salário seria o facto das estatísticas disponíveis sobre o índice estarem desactualizadas (e.g. a selectividade da condição de selecção era estimada de uma forma errada). Para resolver este problema, poderiam ser recalculadas as estatísticas associadas ao índice.

Número: Nome: 8 5. (4v) Transacções, controlo de concorrência e gestão de recuperação Considere o seguinte excerto de um log do algoritmo ARIES, lido após uma falha no sistema. 100: T1, start 110: T2, start 120: T1, insert P5, 100 125: checkpoint 130: T4, start 140: T1, delete P6, 120 150: T2, delete P5, 110 170: T4, insert P5, 130 180: T1, end 190: T2, rollback 195: CLR: T2, undo(delete P5), 110 Os registos de update do log indicam: LSN, "transacção", "operação" "página alterada", lastlsn No momento do checkpoint, foram escritas para o disco as tabelas: Dirty Page Table Transaction Table PID PageLSN RecLSN TID LastLSN P5 120 120 T1 120 T2 110 T3 80 O PageLSN das páginas P5 e P6, no disco é, respectivamente, 170 e 30. a) Mostre, em cada passo da fase de análise, o conteúdo das tabelas Dirty Page Table, Transaction Table e Undo List. Em cada passo, indique o LSN que está a ser analisado. b) Usando apenas o trecho do log que é aqui mostrado, consegue determina todas instruções que serão desfeitas? Porquê? c) Suponha que a falha na base de dados se deu antes do registo do log com LSN 195 ter sido escrito no disco, mas depois do UNDO correspondente ter sido executado. Isto poderia ocasionar uma inconsistência nos dados, após a execução do algoritmo ARIES? Justifique. a) 125: DPT = (P5,120,120) TT = (T1,120), (T2,110), (T3,80) UL = T1, T2, T3 130: DPT = (P5,120,120) TT = (T1,120), (T2,110), (T3,80), *(T4,130)*

Número: Nome: 9 UL = T1, T2, T3, *T4* 140: DPT = (P5,120,120), (P6, 140,140) TT = (T1,*140*), (T2,110), (T3,80), (T4,130) UL = T1, T2, T3, T4 150: DPT = (P5,*150*,120), (P6, 140,140) TT = (T1,140), (T2,*150*), (T3,80), (T4,130) UL = T1, T2, T3, T4 170: DPT = (P5,*170*,120), (P6, 140,140) TT = (T1,140), (T2,150), (T3,80), (T4,*170*) UL = T1, T2, T3, T4 170: DPT = (P5,*170*,120), (P6, 140,140) TT = (T1,140), (T2,150), (T3,80), (T4,*170*) UL = T1, T2, T3, T4 180: DPT = (P5,170,120), (P6, 140,140) TT = (T2,150), (T3,80), (T4,170) UL = T2, T3, T4 195: DPT = (P5,*195*,120), (P6, 140,140) TT = (T2,*195*), (T3,80), (T4,170) UL = T2, T3, T4 b) Não. Uma das transacções a ser desfeita é a T3. No entanto, nenhuma das suas instruções está presente neste trecho do log. c) Não. O algoritmo ARIES usa Write-Ahead Logging (WAL). Esta regra obriga a que os dados resultantes de uma operação sejam escritos em disco apenas depois do registo de log correspondente ter sido escrito no disco. Assim, se o registo LSN 195 não está em disco, podemos ter a certeza que os dados alterados também não estão.

Número: Nome: 10 6. (4v) Database tuning 6.1(0,5v) No contexto da gestão de buffer no SQL Server 2005, explique o conceito de readahead processing (aka prefetching) e o porquê da sua importância. O Read-ahead processing é um mecanismo usado pelo SQL Server para reduzir o tempo de espera associada com a leitura física de dados do disco. Aquando da execução de uma operação que envolva o acesso sequêncial a páginas de dados ou de indice (e.g. um table scan), o SGBD começa a fazer o "pre-fetching" de páginas para a cache antes mesmo que seja feito um pedido para a sua leitura. Desta forma, maximizam-se as leituras sequênciais de dados no disco (geralmente mais rápidas) e minimizam-se os acessos aleatórios. 6.2 (0,5v) Considere os padrões de acesso típicos a bases de dados para aplicações de Data Warehousing ou OLTP. Em qual delas poderia fazer sentido usar um nível de isolamento mais baixo (e.g. READ UNCOMMITED). E um nível de isolamento mais elevado (e.g. SERIALIZABLE)? Justifique a sua resposta. Data Warehousing - menor isolamento, visto muitas vezes estarmos interessados em obter tendências e valores aproximados. - OLTP - maior isolamento, visto queremos maiores garantias sobre a execução concorrente das transacções

Número: Nome: 11 6.3.(3v) Considere o seguinte esquema relacional normalizado correspondente a um subconjunto da base de dados de uma universidade: Professor(nmec, nomep, gabinete, idade, sexo, investigacao, deptid) Departamento(did, nomed, orcamento, nummajors, profresp) Suponha que sabe que as seguintes interrogações são as mais frequentes e que são igualmente equivalentes em frequência e importância: a) Quais os nomes, idades e gabinetes dos professores de um determinado sexo e cujo tema de investigação é um determinados (por exemplo, bases de dados). Assuma que não é muito comum que vários professores investiguem exactamente no mesmo assunto. b) Listar toda a informação sobre departamento para aos departamentos com professores numa determinada gama de idades. c) Qual o id, nome, e responsável dos departamentos com um determinado número de majors. d) Qual o orçamento mínimo de todos os departamentos da universidade? e) Listar toda a informação dos professores que são responsáveis de departamento. Assumindo que estas interrogações são mais importantes do que quaisquer actualizações, execute para cada alínea o seguinte: Escreva as interrogações correspondentes em SQL. Diga quais os atributos que devem ser indexados, qual o tipo de índice que deve ser usado (árvore B+ ou hash), e se é clustered ou non-clustered. Para os índices indicados na alínea anterior, indique os casos em que a interrogação pode ser respondida só com a informação do índice (index-only plan), se o SGBD o permitir. Caso o SGBD não o permita, indique quais os índices alternativos, se existirem. a) select P.nomep, P.idade, P.gabinete from Professor P where P.sexo = M and P.investigacao = BD -- poucos profs têm esta especialidade Unclustered hash index sobre Profesor<investigacao, sexo> ou Unclustered hash index sobre Professor<investigacao> (melhor ainda, porque só existem dois valores possíveis de sexo) b) select D.* from Departamento D, Professor P where D.did = P.deptid and P.idade > k1 and P.idade < k2

Número: Nome: 12 -- k1 e k2 são constantes inteiras Clustered B+tree sobre Professor<idade, deptid> (=> index-only plan) e unclustered hash index sobre Departamento<did> c) select D.did, D.dnomed, P.nomep from Departamento D, Professor P where D.nummajors = k and P.nummec = D.profresp -- k é uma constante inteira Unclustered hash index sobre Departamentot<num_majors> d) select min(orcamento) from Departamento Clustered B+ tree index sobre Departamento<orcamento> e) select P.* from Professor P, Departamento D where P.nmec = D.profresp Unclustered B+ tree sobre Departamento<profresp> (=> index-only scan, se suportado) e Hash index sobre Professor<nmec>

Número: Nome: 13