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

Documentos relacionados
de Bases de Dados Exame 1

de Bases de Dados Exame 2

de Bases de Dados Exame 1

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

Administração e Optimização de BDs

Administração e Optimização de BDs

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

Bases de Dados 2008/2009

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

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

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

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. Exame de 1 a Época. Identifique todas as folhas. Exame sem consulta. Duração: 2h30.

Administração e Optimização de BDs

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

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.

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

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

Sistemas de Gestão de Bases de Dados e-fólio B. Resolução e Critérios de Correção

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

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.

Bases de Dados 2007/2008 Exame

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

3 Plano de Execução de Consultas

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

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

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

Sumário. Definição do Plano de Execução

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

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.

Processamento Cosequencial: Ordenação Interna e Externa. Thiago A. S. Pardo Leandro C. Cintra M.C.F. de Oliveira Cristina D. A.

Dois parâmetros essenciais t T tempo de transferência de um bloco. assume-se igual para operações de leitura e escrita

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

Processamento de Produtos ( X )

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

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

Ordenação e Busca em Arquivos

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. 18 de julho de 2012

Bases de Dados Paralelas

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

Administração e Optimização de BDs

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

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

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Bases de Dados 2008/2009

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

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

Processamento de Transações

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

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

Tabelas de dispersão/hash

Escrita ( W ) do Resultado

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Processamento de Transações

INSTRUÇÕES GERAIS AOS CANDIDATOS

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

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

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

Sistemas de Gestão de Bases de Dados e-fólio A. Resolução e Critérios de Correção

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

ANÁLISE E PROJETO DE BANCO DE DADOS

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

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

Modelo Relacional. Josino Rodrigues

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

BANCO DE DADOS 2 TRANSAÇÃO

Técnicas de Controle de Concorrência

Sumário. Controle de Concorrência

Processamento da Consulta. Processamento da Consulta

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

Organização de Arquivos

Técnicas de Controle de Concorrência

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

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

Técnica UNDO/REDO. Checkpoint

Tecnologias de Bancos de Dados

Bases de Dados 2013/2014 Controlo de Concorrência

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

Informática II Cap. 5-2 Bases de Dados - MsAccess

Edital de Seleção 055/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Rápida revisão do Modelo Relacional

Edital de Seleção 032/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

Parte I (correspondente à matéria do 1º teste)

ALGORITMOS DE ORDENAÇÃO

Sumário. Recuperação de Falhas

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

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

5. Algoritmos de Ordenação

t n e z m r A o o d ç a a d B e L s i u e f F s L e

Árvore-B. Árvore B. Características Gerais. Sistemas de Banco de Dados. Características Gerais. Revisão

Administração e Optimização de BDs

Transcrição:

Número: Nome: -------------------------------------------------------------------------------------------------------------- INSTITUTO SUPERIOR TÉCNICO Administração e Optimização de Bases de Dados Exame - Solução Julho 9 -------------------------------------------------------------------------------------------------------------- A duração deste exame é de H3. É um exame com consulta. O número total de pontos é. 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 3 4 5 SUM 5 5 5 3

Número: Nome:. (v) Miscelânea Indique, nas alíneas seguintes, quais as verdadeiras e as falsas. Cada alínea certa tem a cotação completa de.5 valores. Por cada alínea errada são descontados. valores da cotação total da pergunta. a) O SQL Server 8 permite a utilização do query hint FASTFIRSTROW, levando a que o optimizador de interrogações opte por uma estratégia de execução que maximiza a velocidade de retorno do primeiro tuplo. V b) O optimizador do SQL Server 8 iria, em princípio, optar por um algoritmo merge join em lugar de um hash join no caso de uma das tabelas envolvidas numa junção ser grande e a outra pequena. F c) Num índice do tipo árvore B+, a estrutura da árvore final depende da ordem porque são inseridas as chaves (i.e., se as chaves forem inseridas por uma ordem diferente, a árvore resultante poderá ser diferente). V d) Num índice do tipo extendable hashing, a estrutura final depende da ordem pela qual são inseridas as chaves (i.e., se as chaves forem inseridas por uma ordem diferente, a estrutura resultante poderá ser diferente). Assuma que não existem overflow buckets e que a ordem das chaves nos buckets não é relevante. F e) Numa caso de uma relação não ordenada que não cabe totalmente em memória, para executar uma selecção é mais eficiente ordenar a tabela e executar uma pesquisa binária do que executar um scan total à tabela. F f) A fase de REDO do algoritmo de recuperação ARIES inicia-se na localização correspondente ao último checkpoint. F g) O estado de um SGBD, depois da execução do terminada a execução do algoritmo de recuperação ARIES, reflecte sempre os efeitos de todas as transacções que tenham feito o commit antes de um crash do sistema. V h) Uma relação normalizada conduz sempre a interrogações mais eficientes do que uma relação desnormalizada. F

Número: Nome: 3. (5v) Índices.. (.5 valores) Num SGBD relacional é possível existirem dois índices primários sobre a mesma tabela? Justifique a sua resposta. Não. Os índices primários caracterizam-se por ter uma chave de pesquisa na mesma ordem que aquela que é usada para a ordenação física dos dados da relação. Como apenas pode haver uma única ordem na disposição física dos dados, apenas pode existir um único índice primário para cada relação... (3.5 valores) Considere uma estrutura de dados extendable hash com 4 valores em cada bucket, que representa um índice para um atributo do tipo inteiro. Assuma que a função de dispersão associada à estrutura de dados é a seguinte: h(x) = x mod a) ( valores) Partindo de uma tabela vazia, desenhe o resultado dos vários passos de inserção à medida que insere os elementos,,, 3, 6,, 4, 7, e 5. Inserção do,, e 3 3... Inserção do 6, seguindo-se o 6 3 6 4 3 Inserção do 4

Número: Nome: 4 6 4 3 7 Inserção do 7 e do 6 4 Inserção do 5 3 7 5

Número: Nome: 5 b) (.5 valores) Insira o valor 8 sobre a estrutura resultante da alínea anterior. 8 3 3 7 5 3 6 4

Número: Nome: 6 3. (5v) Processamento e optimização de interrogações 3.. ( valor) Considere duas relações R e R. Assuma que R pode ser contida totalmente em memória e que R é demasiado grande para caber totalmente em memória. Usaria o mesmo algoritmo para ordenar ambas as relações? Justifique a sua resposta. Não. Para a relação que cabe totalmente em memoria, usaria o algoritmo quicksort para ordenar a relação. Para a relação que não cabe totalmente em memoria, usaria o algoritmo sort-merge. O desempenho médio do quicksort é melhor do que o sort-merge, mas apenas assumindo um tempo de acesso constante para todos os objectos a ordenar. Este pressuposto pode ser verdadeiro no caso de objectos armazenados em RAM, mas falha no caso de objectos armazenados em disco (o tempo de acesso para leituras sequenciais é muito menor do que para leituras aleatórias). 3.. ( valor) Considere um optimizador de interrogações semelhante ao proposto pelo Sistema R da IBM. Indique, justificando a sua resposta, duas razões possíveis para o optimizador poder produzir planos de execução sub-óptimos. Duas respostas possíveis seriam: O optimizador do sistema R apenas considera planos de execução left-deep. No entanto, planos de execução diferentes podem ser mais eficientes, explorando por exemplo funcionalidades tais como o paralelismo na execução das operações. As estimativas de custo para as operações envolvidas são apenas valores aproximados. As estimativas não levam em conta aspectos tais como a existência de valores em cache, ou a proximidade física dos dados armazenados no disco. 3.3. (3 valores) Considere as relações R(A,B,C), R(C,D,E) e R3(E,F), respectivamente com chave primária A, C e E. Considere também que a relação R contém 5 tuplos, a relação R contém tuplos e a relação R3 contém 6 tuplos. a) ( valor) Estime, justificando com os cálculos necessários, o tamanho máximo em termos do número de tuplos para a relação resultante da seguinte operação: R x R x R3

Número: Nome: 7 Vamos fazer o join de R com R pelo atributo C, e depois fazer o join do resultado anterior com R3 pelo atributo E. Para a operação R x R, têm-se que em R o atributo C pode tomar 5 valores (distintos ou não) e em R o atributo C toma obrigatoriamente valores distintos. O resultado da operação tem um tamanho máximo de 5 tuplos (e.g., para cada um dos 5 valores distintos de C em R, existe um valor correspondente em R). Temos depois 5 valores para o atributo E em R x R, distintos ou não, e para cada um deles pode existir uma correspondências no atributo E de R3. O número total de tuplos é então, no máximo, de 5. b) ( valor) Indique uma estratégia eficiente para calcular a junção das 3 relações. Justifique a sua resposta. Assumindo que o SGBD cria automaticamente um índice primário sobre os atributos chave das relações envolvidas: - Índex nested loop join entre R e R (com R como a ínner relation) - Índex nested loop join entre o resultado do passo anterior e R3 (com R3 como a inner relation), potencialmente explorando o pipelining dos resultados. Note-se que a alternativa de fazer primeiro a junção entre R e R3 (usando o índice em R3) também poderia explorar um algoritmo do tipo nested loop join, mas teria um custo mais elevado pois a inner relation em R x R3 tem um número de tuplos maior e o número de tuplos de R x R é menor que o número de tuplos de R x R3. Assumindo que não existem índices, todos os joins poderiam ser efectuados através do algoritmo nested loop join. A estratégia mais eficiente passaria por juntar R com R primeiro (usando R como a inner relation), pois o número de tuplos desta junção é menor do que o de R x R3, restringindo-se assim tão cedo quanto possível o número de tuplos a considerar na segunda junção. c) ( valor) Suponha que, ao desenhar a base de dados, foi decidido que em vez das três relações R, R e R3, teríamos apenas uma única relação R(A,B,C,D,E,F), equivalente ao resultado da operação R x R x R3. Indique, justificando, quais as vantagens e desvantagens desta abordagem? Vantagens : - Melhor desempenho na obtenção dos tuplos correspondentes á operação de join (custo de um scan à tabela, em lugar do custo associado às operações de junção)

Número: Nome: 8 Desvantagens: - Problemas inerentes à desnormalização dos dados (i.e., armazenamento de informação redundante e anomalias na actualização da informação). - Potencias problemas em termos de contenção no acesso aos dados (i.e. locks, mesmo que efectuados ao nível dos tuplos, seriam sempre efectuados sobre quantidades maiores de informação). 3 Pior desempenho para interrogações que apenas necessitassem de aceder a algumas das colunas da relação R. 4. (5v) Transacções, controlo de concorrência e gestão de recuperação 4.. (.5 valores) Considere o algoritmo de recuperação ARIES. Responda a cada uma das seguintes alíneas, justificando claramente a sua resposta. a) O que fazem os checkpoints periódicos e qual a sua principal vantagem. A operação de checkpointing, no ARIES, escreve um registo de checkpoint no ficheiro de log, em memoria estável, que contem a lista de transacções activas e a lista de páginas modificadas existentes em buffer. Os checkpointings periódicos diminuem o tamanho do log a analisar durante a recuperação, ajudando assim a minimizar o tempo necessário à execução da recuperação, b) Qual o propósito de se criarem compensation log records (CLRs). Os CLRs registam no log as operações de UNDO efectuadas durante a recuperação, levando a que o algoritmo de recuperação não faça UNDO de passos que já tenham sido desfeitos anteriormente. c) Ao executar o algoritmo, como é que um sistema sabe quais as transacções que devem ser desfeitas? Usando a tabela de transacções construída aquando da fase de análise, o algoritmo identifica todas as transacções activas aquando do crash do sistema (i.e., as transacções que não fizeram ainda o commit respectivo). Esta tabela contem a lista de transacções activas na altura de checkpointing. A esta lista, são acrescentadas as transacções que se iniciaram após o checkpointing e não fizeram commit até á ocorrência da falha. 4.. (3.5 valores) Considere as seguintes 3 transacções e o seguinte escalonamento concorrente das 3 transacções:

Número: Nome: 9 T: begin(); write(x); read(y); write(z); commit(); T: begin(); read(x); write(z); commit(); T3: begin(); read(z); write(y); commit(); T3:read(z), T:read(x), T:write(x), T3:write(y), T:read(y), T:write(z), T:write(z) a) ( valor) Apresente o grafo de precedências para o escalonamento concorrente das 3 transacções. Preencha também a tabela de conflitos entre as três transacções T T T3 Aresta no grafo Existe conflito? Razão para o conflito T -> T Não T -> T3 Não T -> T Sim Passos e 3 (e ainda passos 6 e 7) T -> T3 Não T3 -> T Sim Passos e 7 (e ainda passos 4 e 5) T3 -> T Sim Passos e 6 b) ( valor) O escalonamento concorrente é serializável? Em caso afirmativo, apresente um escalonamento série correspondente. Caso contrário, justifique o porquê da sua resposta. Sim, pois o grafo de precedencias não apresenta ciclos. Um escalonamento série equivalente seria T3, T, T. c) (,5 valores) Considere um protocolo two-phase locking, em que uma transacção adquire sempre um lock sobre um objecto antes de o utilizar. O escalonamento concorrente apresentado poderia ter sido produzido através do protocolo two-phase locking? Justifique claramente a sua resposta.

Número: Nome: Não, o escalonamento não poderia ter sido produzido através de um protocolo twophase-locking. O two-phase locking não permite que uma transacção adquira mais locks depois de ter libertado alguns. No escalonamento apresentado esta regra é quebrada, visto que por exemplo a transacção T adquire um lock em x no passo e depois liberta-o antes do passo 3 (uma vez que a transacção T necessita de adquirir o lock em x antes do passo 3), e no entanto a mesma transacção T necessita de adquirir um lock em z antes do passo 6. 5. (3v) Database tuning Considere duas relações R(a,b) e S(a,c). Assuma que todos os atributos são inteiros e que ambas as relações contêm N tuplos, em que N excede a capacidade da memória RAM. Considere ainda a seguinte interrogação SQL: SELECT R.a FROM R, S WHERE S.c > AND R.a = S.a 5.. (.5 valores) Escreva duas expressões em álgebra relacional equivalentes à interrogação SQL apresentada. R.a ( S.c > (R x R.a=S.a S)) R.a ( S.c > (S) x R.a=S.a R) 5. ( valor) Qual das duas expressões apresentadas na alínea anterior é, em princípio, mais eficiente? Justifique a sua resposta. A segunda expressão seria a mais eficiente. Ao efectuar a selecção sobre a relação S antes da junção entre as duas tabelas eliminam-se tuplos da relação S, diminuindo-se assim o custo da operação de junção. 5.3 (.5 valores) Para as mesmas relações, considere as seguintes duas interrogações SQL equivalentes: SELECT R.a FROM R WHERE R.a NOT IN (SELECT S.a FROM S WHERE S.c=); (SELECT R.a FROM R) EXCEPT (SELECT S.a FROM S WHERE S.c=); Assumindo que não existem índices e que o SGBD executa a primeira interrogação de uma forma simplista (i.e., calcula a sub-interrogação para cada tuplo de R), qual das interrogações

Número: Nome: SQL lhe parece ser mais eficiente? Justifique a sua resposta, estimando o custo para cada uma das interrogações em termos do tamanho das relações R e S. A segunda interrogação será a mais eficiente. O custo da primeira interrogação corresponde ao algoritmo nested loop join = NPagsR*NPagsS + NPagsS no máximo A operação de diferença pode ser executada usando uma variante do algoritmo de merge-join, após a ordenação das relações de entrada ou uma variante do algoritmo hash-join. No caso do algoritmo hash-join, o custo é no máximo: 3*(NPagsR + NPagsS)