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

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

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

de Bases de Dados Exame 1

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

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

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

de Bases de Dados Exame 2

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

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

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

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

UFU/FACOM/BCC Gerenciamento de Bancos de Dados 2019/1-1 a Lista de Exercícios Prof. Ilmério Reis da Silva

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

PostgreSQL Performance

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

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

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

BANCO DE DADOS Índices em BD Árvores B+

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

3 Plano de Execução de Consultas

Tabelas de dispersão/hash

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

Processamento de Produtos ( X )

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

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. 19 de fevereiro de 2013 INSTRUÇÕES

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

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

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

Processamento da Consulta. Processamento da Consulta

UNIVERSIDADE DE SÃO PAULO - ICMC Departamento de Ciências da Computação SCC-203 Algoritmos e Estruturas de Dados 2-2 Sem /2012 Profa.

Organização de Arquivos

Ordenação e Busca em Arquivos

Bases de Dados. Parte VIII. Organização Física dos Dados

de Bases de Dados Exame 1

Chapter 11: Indexing and Hashing. José Alferes Sistemas de Bases de Dados - ISCTEM janeiro de 2017

1. Em relação à organização de arquivos e índices, responda: (a) Dado um arquivo de dados, o que é a chave de um índice para o arquivo?

Administração e Optimização de BDs

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

Pesquisa binária em árvores-b + Índices em SQL

Classificação Externa: Geração de Partições Classificadas

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

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

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

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

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

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

Sistemas de Gerência de Bancos de Dados. Módulo 1 - Armazenamento

Sistemas de Arquivos. (Aula 23)

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2

Escrita ( W ) do Resultado

SISTEMAS OPERACIONAIS. 2ª. Lista de Exercícios Parte 2

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

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

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

Bases de Dados 2008/2009

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

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

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

SCC Algoritmos e Estruturas de Dados II. 6ª lista de exercícios

Acesso Sequencial Indexado

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (A) - 15/06/2007. Folha de Respostas

Cap. 5 Indexação Baseada em Hashing

Introdução ao PostgreSQL

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

9 Sistemas de ficheiros

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

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

Hierarquia de Memória

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (B) - 15/06/2007. Folha de Respostas

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

Sistemas de Bases de Dados

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Classificação Externa: Geração de Partições Classificadas

ACH2025. Laboratório de Bases de Dados Aula 7. Armazenamento Físico. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Sumário. Índices Ordenados: Nível Único. Índices Primários. Bancos de Dados Avançados Índices. Índices: Ordenados em nível único Multiníveis

Sistemas de Ficheiros

Bases de Dados. Parte IX: Organização Física dos Dados

ORDENAÇÃO EXTERNA DE ARQUIVOS: GERAÇÃO DE PARTIÇÕES CLASSIFICADAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Sistemas de Gerência de Bancos de Dados

Administração e Optimização de BDs

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

Bases de Dados 2007/2008 Exame

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

Época de Recurso Sem consulta

SQL (Tópicos) Structured Query Language

Profa. Dra. Cristina Dutra de Aguiar Ciferri. Estruturas de Indexação de Dados

1º Teste Sem consulta

Tarefa Orientada 17 Scripts

Árvore-B* Profa. Dra. Cristina Dutra de Aguiar Ciferri

Aula 21 Ordenação externa

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

PostgreSQL Desenvolvedor

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri

INF70 Gerenciamento de Banco de Dados 2 Índices baseados em Hash

Modelo Relacional. Josino Rodrigues

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

Transcrição:

DI-FCT/UNL 28 de abril de 2018 Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas N. º : Nome: Grupo 1 (7 valores) 1 a) Para cada uma das seguintes 5 frases, indique a opção correta. No caso de simples afirmações, use V (de Verdadeira) ou F (de Falsa). Nota: Nesta alínea cada resposta certa vale 0,3 valores, e cada resposta errada vale 0,3 valores (negativo, portanto). Se não sabe a resposta, não responda. A memória cache é mais rápida e mais cara (por KByte) do que a memória flash. V Para medição de tempos relativos a HDD costuma-se usar t S (seek) e t T (transfer), sendo t S > t T. Quando possível, procura-se que um ficheiro duma relação esteja fragmentado ao longo das várias pistas dum disco, para que a cabeça de leitura possa estar sempre próxima dum seu bloco. Num nested loop join é melhor usar que política de substituição de blocos do buffer? Least (L) ou Most (M) Recently Used (RU)? (LRU/MRU) Em organizações RAID usa-se block-striping para limpar os blocos duma relação (removendo o que não lhe diz respeito), para uma melhor compactação de informação, de modo a reduzir o espaço necessário. V F MRU F 1 b) Numa organização de ficheiro duma relação como uma sequência de n registos de comprimento constante, indique 3 opções de reorganização do ficheiro por remoção do registo número i. 1 Deslocar todos os registos i+1 n para a posição imediatamente anterior. 2 Passar o registo n para a posição i. 3 Não mover registos, mas manter uma lista de posições livres. Página 1 de 8

1 c) Descreva a forma de representação habitual para um registo de tamanho variável (por incluir atributos de tamanho variável, e por poder ter atributos NULL). Estrutura com uma primeira parte de tamanho fixo com todos os atributos armazenados por ordem, sendo que os de tamanho variável são representados por um par (de tamanho fixo) (distância,comprimento) indicando (em bytes) onde (à frente) pode ser lido o valor atual. Os campos a null são representados por um bitmap (normalmente colocado entre a informação de todos os atributos (primeira parte de tamanho fixo) e a parte dos valores dos atributos de tamanho variável. E.g. 1 d) I. Para que serve a estrutura de Slotted Pages? Uma slotted page (normalmente do tamanho de um bloco) é uma estrutura usada para armazenar registos de tamanho variável II. Legende devidamente, para as letras A a F, as respetivas porções da seguinte ilustração duma tal slotted page: Cabeçalho B C A D E F A N.º de registos D Espaço livre B Tamanhos dos registos E Apontadores para os registos C Registos F Fim do espaço livre Página 2 de 8

N. º : 1 e) Mostre um exemplo de organização de ficheiro em clustering multitabela, ilustrando com um caso concreto de 2 tabelas (com 2 a 6 tuplos cada). E.g. Tabelas Países(País, Língua) com tuplos {(Portugal,Português),(Brasil,Português)} e Cidades(Cidade, País) com tuplos {(Lisboa,Portugal), (Porto,Portugal), (Brasília,Brasil), (São Paulo,Brasil), (Rio de Janeiro,Brasil)}, com clustering pelo atributo País: Portugal Lisboa Porto Brasil Brasília São Paulo Rio de Janeiro Português Português 1 f) Dê 3 exemplos de metadados (relativos a uma base de dados) presentes no dicionário do sistema. 1 Nomes das tabelas e suas características (e.g. número de atributos, localização, ) 2 Nomes dos atributos nas tabelas, e suas características (e.g. tipo, comprimento ) 3 Nomes dos índices sobre tabelas e suas características (e.g. tipo, atributos, ) (Adicionalmente também se podia indicar dados de vistas, de utilizadores, ) Página 3 de 8

Grupo 2 (8 valores) 2 a) Qual a diferença entre um índice primário e um índice secundário? Num índice primário a chave de pesquisa corresponde à ordenação sequencial do ficheiro de dados, ao contrário do índice secundário (onde o ficheiro não está sequencialmente ordenado pela chave de pesquisa do índice). 2 b) Genericamente, indique 4 estratégias de pesquisa para a seguinte consulta, sabendo que não há índices sobre chaves de pesquisa compostas (i.e. com mais do que um atributo): Select nome, taças+campeonatos as trofeus from clubes where ano_fundacao > 1950 and cidade = Lisboa ; 1- usar uma pesquisa linear (linear scan) no ficheiro, testando a condição conjunta (a conjunção na cláusula where ) para todos os tuplos; 2- usar índice sobre ano_fundacao para apanhar todos os tuplos onde ano_fundacao>1950 e testar se cidade= Lisboa 3- usar índice sobre cidade para apanhar todos os tuplos relativos a Lisboa e testar se ano_fundacao>1950; 4- usar ambos os índices (sobre ano_fundacao e sobre cidade) para obter os apontadores dos tuplos que satisfazem a respetiva condição. Fazer então a interseção dos 2 conjuntos obtidos e seguir os apontadores para obter os tuplos desejados. Página 4 de 8

N. º : 2 c) I. Desenhe a árvore B+ (com nós onde cabem 4 apontadores) resultante da inserção dos valores chave de pesquisa (2,3,5,7,11,17) por esta ordem, estando inicialmente vazia. 5 11 2 3 5 7 11 17 II. A árvore resultante da inserção anterior seria a mesma independentemente da ordem de entrada desses valores? Se sim, explique porquê; se não, mostre um exemplo duma outra ordem de inserção e a respetiva árvore B+ diferente resultante. Não. E.g. (7,2,17,3,11,5): 7 2 3 5 7 11 17 Página 5 de 8

2 d) Num índice de hash dinâmico com a função de hash, e a estrutura de hash extensível mostradas em baixo (onde cada bucket suporta 2 tuplos), desenhe a estrutura resultante após a inserção do tuplo (22222,Einstein,Physics,95000). i i 1 0 1 i 2 Página 6 de 8

N. º : Grupo 3 (5 valores) 3 a) No algoritmo de sort-merge aplicado a uma relação com 111 tuplos e blocking factor f=2, quantos runs são inicialmente criados e quantos passos de junção (merge steps) são necessários para obter o resultado ordenado, se a capacidade da memória for M=4 blocos? (assuma que buffer blocks b b=1) Como apenas cabem 2 tuplos num bloco (f=2), a relação ocupa b=56 blocos ( 111/2 ). Com M=4 teremos 56/4=14 runs. O número de merge steps é dado por log M-1(b/M) = log 3(14) = 3 3 b) Recorde o algoritmo de block nested-loop join para junção das relações r e s (verificação para cada par de tuplos, com leituras bloco a bloco): for each block B r of r do begin for each block B s of s do begin for each tuple t r in B r do begin for each tuple t s in B s do begin Check if (t r,t s) satisfy the join condition if they do, add t r t s to the result. end end end end. Indique duas possíveis melhorias a este algoritmo. 1 ler M-2 blocos (em vez de um bloco) de cada vez na relação exterior (M é o tamanho da memória em blocos; os restantes 2 blocos são os buffers para a relação interior e para a saída/output). 2 Percorrer o ciclo (de blocos) interior alternadamente para a frente e para trás para aproveitar blocos ainda no buffer (assumindo política LRU). (Poderiam ainda ser indicados: a) o uso dum eventual índice na relação interior para obter mais rapidamente os tuplos que fazem junção com o tuplo corrente; e b) se o(s) atributo(s) de junção corresponderem a uma chave da relação interior, pode-se parar o ciclo interior na primeira correspondência) Página 7 de 8

3 c) Considere a tabela temperatura(id, cidade, ano, mês, dia, hora, valor) criada em SQL da seguinte forma: create table temperatura( id INTEGER NOT NULL primary key, Cidade INTEGER NOT NULL references cidades(id), Ano INTEGER NOT NULL, Mes INTEGER NOT NULL check(mes between 1 and 12), Dia INTEGER NOT NULL check(dia between 1 and 31), Hora INTEGER NOT NULL check(hora between 0 and 23), Valor INTEGER NOT NULL, unique(cidade,ano,mes,dia,hora)); Foram registados um milhão de valores de temperatura em 100 cidades europeias desde o ano 1999 (há várias medições em falta, no espaço e no tempo, por diferentes motivos). Considere que neste sistema um inteiro ocupa 10 bytes e que são usados blocos de 10000 bytes. I. Quantos blocos ocupa a tabela temperatura? b temperatura = 7*10*1000000 / 10000 = 7000 II. Quantos tuplos se esperam da consulta select * from temperatura where cidade=2 and mes in (12,1) and hora > 8;? n = 1000000 / (100*6*24/15) = 10000*15/(6*24) = 10000*5/(2*24) = 25000/24 = 1000+1000/24 ( 1042) III. Quantos tuplos se esperam da consulta select * from temperatura where cidade=20 or ano=2000;? n = 1000000 *(1-(1-1/100)*(1-1/20)) = 1000000 * (1-(99/100)*(19/20)) = 1000000*(1-1881/2000) = = 1000000*(119/2000) = 119000/2 = 59500 IV. Quantos tuplos se esperam da consulta with top as (select cidade, ano, max(valor) as maxt from temperatura group by cidade, ano) (select cidade, ano, mes, maxt-valor from temperatura natural inner join top);? E quantos blocos em disco ocuparia? n (tuplos) =? n = 1000000 b (blocos) =? b = 4*10*1000000 / 10000 = 4000 Página 8 de 8