de Bases de Dados Exame 2

Documentos relacionados
de Bases de Dados Exame 1

de Bases de Dados Exame 1

Bases de Dados 2008/2009

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

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

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

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 2013/2014 Transações. Helena Galhardas. Sumário!

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

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.

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

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

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 Bases de Dados 2.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

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

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

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 fevereiro de 2014 INSTRUÇÕES

Bases de Dados 2006/2007 Exame

Bases de Dados 2007/2008 Exame

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

Administração e Optimização de BDs

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.

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

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

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

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

Bases de Dados 2008/2009

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

Tipos de Índices. Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

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

BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados

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

Planificação Anual. Departamento Expressões e Tecnologias

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

Processamento de Transações

Processamento de Transações

3 Plano de Execução de Consultas

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

Organização de Arquivos

Processamento de Consultas. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

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

SQL (Tópicos) Structured Query Language

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

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

Processamento de Produtos ( X )

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

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

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

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

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

BD II (SI 587) Transações em Banco de Dados. Prof. Josenildo Silva

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.

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

Compilação, Otimização e Execução de Consultas. Profa. Dra. Cristina Dutra de Aguiar Ciferri

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

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

Época de Recurso Sem consulta

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

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

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

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

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

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

INE5384 Estruturas de Dados. Sumário

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Bases de Dados 2013/2014 Controlo de Concorrência

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

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

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

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

Criando Transações. Prof. Fernanda Baião. TbEstoqueLivros. TbEstoqueLivros. ID IDLoja IDLivro Estoque

Processamento de Transações

Processamento de Transações. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Administração de Banco de Dados

ORGANIZAÇÃO DE COMPUTADORES

Concorrência. Prof. Márcio Bueno. Material do Prof. Paulo Pires

Escrita ( W ) do Resultado

ANÁLISE E PROJETO DE BANCO DE DADOS

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

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

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

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

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 21. Escola Politécnica da Universidade de São Paulo

Arquitetura de Microprocessadores

Processamento da Consulta. Processamento da Consulta

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

Processamento de Transações. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

1º Teste Sem consulta

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

Sumário. Controle de Concorrência

MySql. Introdução a MySQL. Andréa Garcia Trindade

Transcrição:

Ano lectivo 2009/2010 2 o semestre Administração e Optimização de Bases de Dados Exame 2 Regras O exame tem a duração de 2 horas. O exame é individual e com consulta Só poderá abandonar a sala ao fim de 1 hora, mediante a entrega do exame. Todas as folhas devem ser identificadas com o número do aluno. Deve apresentar sempre os cálculos que fez para as questões. Deve responder às questões no espaço reservado nas folhas do enunciado. Cotação das questões Questão 1 4 5 Alínea (a) (b) (c) (a) (d) Valor 2,5 1 0,5 1 Nome: IST Pág. 1 de 13

1 Considere a seguinte consulta em SQL: select a.nome, o.nome from artista a, obra o, galeria g where a.idart = o.idart and o.idobra = g.idobra and g.nome = Galeria Molotov and o.data = 2008-12-25 and a.idade < 25 Assuma que não existem quaiquer índices sobre as tabelas utilizadas. a) Desenhe um plano de execução (em forma de árvore) para a consulta. O plano deve indicar os algoritmos a utilizar em cada operação. π a.nome,o.nome σ g.nome= Galeria Molotov σ a.idade<25 σ o.data= 2008-12-25 galeria artista obra Todas as selecções são feitas com full table scan e todos os joins são feitos com block nested-loop join. b) Diga quais os índices a criar para optimizar a consulta. Para cada índice indique se é do tipo hash table ou ordenado e se é primário ou secundário, justificando as suas opções. IST Pág. 2 de 13

Devem ser criados os seguintes índices: Primário, ordenado ou hash, sobre artista.idart, para optimizar a junção com obra; Eventualmente, também um índice secundário, hash, sobre obra.idart, para otpimizar a junção com artista; Primário, ordenado, sobre obra.idobra, para optimizar a junção com galeria; Primário, ordenado, sobre galeria.idobra, para optimizar a junção com obra (por exemplo, fazendo um merge join); Secundário, hash, sobre obra.data, para optimizar a selecção; Secundário, hash, sobre galeria.nome, para optimizar a selecção. c) Desenhe um novo plano de execução, desta vez tendo em conta os índices que indicou na alína anterior. Justifique todas as alterações em relação ao plano da alína (a). As alterções ao plano anterior seriam nos algoritmos de junção usados: um indexed nested-loop join para artista obra e um merge join para obra galeria; e nos algoritmos de selecção, que passariam a usar index scans. IST Pág. 3 de 13

2 Considere a seguinte consulta em SQL, resolvida com o auxilio de uma tabela temporária. insert into temp select a.nome, o.idobra, o.valor, o.data from artista a, obra b where a.idart = o.idart select t.nome, sum(t.valor) from temp t, galeria g where t.idobra = g.idobra and t.data < 2009-03-03 group by t.nome a) Diga qual é, ou quais são, as desvantagens de executar a consulta desta forma. Ao executar a consulta desta forma, estamos a fazer que seja executada a junção de artista com obra, antes da selecção sobre a data. Ora, pode ser vantajoso executar a selecção primeiro, uma vez que reduziria o tamanho das tabelas para a junção. b) Reescreva a consulta numa única instrução SQL, da forma mais optimizada possível. select a.nome, sum(o.valor) from artista a, obra o, galeria g where a.idart = o.idart and o.idobra = g.idobra and o.data < 2009-03-03 group by a.nome c) Suponha que deseja ver os resultados da consulta ordenados pelo nome do artista. Diga o que alteraria na consulta e qual o possível impacto desta alteração na maneira como o SGBD executaria a consulta. Justifique. IST Pág. 4 de 13

Bastaria acrescentar a cláusula order by a.nome à consulta. Na execução da consulta, esta operação poderia implicar uma das seguintes situações: 1. O optimizador já tinha ordenado os resultados para executar o group by e, portanto, a ordenação não tem qualquer impacto; ou 2. O optimizador usou uma hash table para fazer o group by e, portanto, terá que ordenar os resultados, acrescendo o custo da ordenação à execução da consulta. IST Pág. 5 de 13

3 Considere uma árvore B+ com n=3 que representa um índice secundário para um atributo numérico de uma tabela numa base de dados relacional. a) Partindo de uma árvore B+ vazia, mostre o resultado de cada passo das seguintes duas sequências de operações: 1. Inserção dos elementos 62, 83, 32, 38, 12, 21, 77, por esta ordem. 2. Remoção dos elementos 62, 83, 32, 38, 12, 21, 77, por esta ordem. Inserç~ao dos elementos 62, 83, 32, 38, 12, 21, 77 por esta ordem. 62 62 83 +----- 83 -----+ 32 6283 +----- 62 83 -----+ 32 6262 83 +---------- 62 ---------+ +----- 38 +----- 83 12 3238 62 83 +---------- 62 ---------+ +----- 32 38 -----+ +----- 83 12 2132 38 62 83 +---------- 62 ---------+ +----- 32 38 -----+ +----- 83 12 2132 38 62 7783 IST Pág. 6 de 13

Remoç~ao dos elementos 62, 83, 32, 38, 12, 21, 77 por esta ordem. +---------- 38 ---------+ +----- 32 +----- 62 12 2132 38 77 83 +---------- 38 ---------+ +----- 32 +----- 62 12 2132 38 77 +----- 38 62 -----+ 12 2138 77 +----- 62 12 2177 21 77 77 b) O índice representado pela árvore B+ desta pergunta pode ser esparso? Justifique a sua resposta, ilustrando com um exemplo. O índice secundário não pode ser esparso. Suponha uma tabela com os atributos nome e número, ordenada por nome e com o índice secundário sobre o atríbuto número. Suponha que a tabela contém registos com idade igual a 62, 83, 32, 38, 12, 21, 77 e 50 e que o índice contem ponteiros apenas para os registos com idade igual a 62, 83, 32, 38, 12, 21 e 77 (sendo, portanto, esparso). Tal índice seria inútil para procurar um registo em que idade seja igual a 50: uma vez que a tabela não está ordenada por idade, seria sempre necessário percorrer todos os registos. c) Imagine que em lugar de uma árvore B+ com n=3, tinhamos uma árvore B+ com n=30. Em termos de implementação, se os nós desta árvore B+ estiverem organizados como um array de elementos, a adição ou remoção de um elemento poderia IST Pág. 7 de 13

tornar-se pouco eficiente, pois em média metade do array teria de ser deslocado como resultado da operação. Sugira uma organização alternativa para os nós desta árvore B+, justificando de que forma a sua proposta seria vantajosa. Os nós da árvore B+ podem ser organizados eles próprios como uma árvore B+, facilitando-se desta forma a inserção e remoção de valores e mantendo-se a ordenação dos mesmos. IST Pág. 8 de 13

Considere o seguinte escalonamento de transacções concorrentes: T1 r(a) r(b) w(a) T2 r(a) r(b) T3 w(b) T4 w(a) T5 r(b) r(a) 4 a) Tendo em conta o escalonamento apresentado, responda às seguintes duas questões: Indique se o escalonamento é serializável, justificando a sua resposta. Apresente a ordem pela qual as transacções devem fazer commit de forma a que o escalonamento seja recuperável, justificando a sua resposta. O escalonamento não seria serializável, pois o grafo de precedências não é acíclico. Aresta de T1 para T3 Aresta de T1 para T4 Aresta de T1 para T5 Aresta de T2 para T1 Aresta de T2 para T4 Aresta de T3 para T2 Aresta de T5 para T4 Aresta de T5 para T3 Para o escalonamento ser recuperável, uma transacção T a que leia itens escritos por outra transacção T b, só pode fazer commit depois de T b ter feito commit. No escalonamento apresentado esta situação pode ocorrer em 2 casos: T1 e T5 com o objecto A; T3 e T2 com o objecto B. Logo, a ordem dos commits no escalonamento dado deveria uma em que T1 se execute antes de T5, e em que simultâneamente T3 se execute antes de T2. Um exemplo seria T1, T5, T3, T2. A ordem da transacção T4 seria irrelevante. IST Pág. 9 de 13

b) Considere que o SGBD no qual se executa o escalonamento apresentado efectua o controlo de concorrência com base em timestamps, em que o timestamp é o número da transacção. Indique que transacções chegariam ao fim e que transacções sofreriam rollback, justificando a sua resposta. T1 sobre rollback porque write(a) vem tarde demais, i.e. vem depois de T2 já ter feito read(a). T3 sobre rollback porque write(b) vem tarde demais, i.e. vem depois de T5 já ter feito read(b). T2 sofre rollback porque read(b) vem tarde demais, i.e. vem depois de T3 ter feito write(b). As restantes transacções chegariam ao fim sem problemas. c) Considere que o SGBD no qual se se executa o escalonamento apresentado usa a estratégia de escrita imediata. Indique se o commit de cada transacção garante a escrita dos dados em disco, justificando a sua resposta. Não garante. Durante o commit, os dados são escritos num buffer em memória, que apenas é copiado para disco ocasionalmente. Portanto, o commit não garante a escrita dos dados em disco. Só há garantia se tiver havido um checkpoint. IST Pág. 10 de 13

5 a) Responda às seguintes questões. Índices compostos (i.e., sobre múltiplos atributos) e covering indexes podem ser úteis para garantir a execução de index-only plans. Diga qual é a diferença entre estes dois tipos de índices. Exemplifique, mostrando uma consulta que possa ser resolvida com um index-only plan, mas em que seja mais vantajoso usar o primeiro tipo de índice (composto) do que o segundo (covering). Um índice composto, por exemplo, sobre os atributos A e B, conterá os valores de ambos os aributos e estará ordenado primeiramente por A e em seguida por B. Um covering index pode também conter os valores de vários atributos, mas estará ordenado apenas por um subconjunto destes. Por exemplo, índice sobre A pode ser covering sobre B, o que significa que contém os valores de B mas está ordenado apenas por A. Uma consulta em que o primeiro tipo de índice é mais vantajoso seria a seguinte: select A, B from T where A = 100 and B > 500 and B < 1000 b) Suponha que, no SGBD que administra, uma dada página de dados, de 16Kb, é acedida a cada 15 minutos. Sabendo que 1Gb de memória custa cerca de 30e e que um disco de 500G custa cerca de 60e, o que pode dizer sobre a vantagem, ou desvantagem, de manter a página em memória, em relação à velocidade de leitura do disco? IST Pág. 11 de 13

Sabes que vale a pena manter uma página em memória se esta for acedida mais frequentemente do que a cada T minutos, em que T = DP P M RP P S em que DP é o preço do disco, P M é o número de páginas em cada Mb de memória, RP é o preço de 1Mb de RAM e AS é o número de páginas por segundo lidas pelo disco. Para o problema acima temos que DP = 60, P M = 1024/16 = 64 e RP = 30. Sabemos também que T = 15. De acordo com a regra podemos ver que: 15 = 60 64 30 P S P S = 8.54 pag/seg Logo, valeria a pena manter a página em memória apenas se o disco conseguisse ler menos do que 8.54 páginas por segundo. c) O Microsoft SQL Server 2008 utiliza um mecanismo de indexação baseado em árvores B+, em que as folhas do índice armazenam os dados associados às tabelas. Indique uma potêncial vantagem deste mecanismo de indexação, justificando claramente os benefícios obtidos. O armazenamento dos dados nas folhas dos índices primários B+ tem como principal vantagem o custo mais reduzido nas operações de manutenção de índices secundários. No SQL Server 2008, as folhas índices secundários não armazenam ponteiros para o local onde os dados se encontram armazenados, mas sim as chaves de pesquisa através do índice primário (o qual contém os dados associados à tabela). Desta forma, evitam-se re-estruturações profundas nos índices secundários aquando da inserção e remoção de valores. O armazenamentos dos dados nas folhas dos índices primários permite ainda evitar o armazenamento de apontadores até aos locais onde os dados se encontram armazenados. d) Considere o protocolo de recuperação ARIES. Se o sistema de gestão de base de dados falhar repetidamente durante a recuperação, qual é o número máximo de registos de log que podem ser escritos pelo ARIES até a recuperação se completar com sucesso. Apresente a sua resposta em função do número de registos de presentes no log aquando da falha do sistema. IST Pág. 12 de 13

Consideremos o pior caso, i.e. cada registo de log corresponde a um update de uma transacção ainda não confirmada, e cada registo de log corresponde a uma transacção diferente. Neste caso, existem n registos de n transacções diferentes e cada um deles necessita de ser desfeito. Durante a recuperação, temos de adicionar um registo CLR para cada update a ser desfeito e um registo de fim de transacção depois de cada CLR. Temos então um máximo de 2n novos registos no log. IST Pág. 13 de 13