Exercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis

Documentos relacionados
23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Bases de Dados Distribuídas

14/03/12. Fragmentação Vertical. Projeto de Bancos de Dados Distribuídos (Parte 02) Complexidade. Objetivo. Complexidade. Abordagens Heurísticas

Projeto de Bancos de Dados Distribuídos

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

3 Plano de Execução de Consultas

Universidade Federal do Maranhão

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

Projeto de Bancos de Dados Distribuídos (Parte 01)

14/03/12. Tipos de fragmentação. Projeto de Bancos de Dados Distribuídos (Parte 01) Correção das regras de fragmentação. Grau de fragmentação

Projeto de Bases de Dados Distribuídas

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

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Sistemas de Bancos de Dados Distribuídos

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

Sistemas de Bancos de Dados Distribuídos

Top. Esp em Banco de Dados

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.

Alcides Pamplona

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

Escrita ( W ) do Resultado

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Hashing: conceitos. Hashing

Tabelas de dispersão/hash

O Modelo e a Álgebra Relacional

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

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Processamento de Produtos ( X )

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

Sistema de Gestão de Banco de Dados SGBD. David Fernandes França

Matrizes esparsas: definição

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

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

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Formação de DBAs SQL Server 2008

Metodologia para projeto de fragmentação de dados XML sobre bases distribuídas

1 o Período Administração 24/11/2015

Processamento da Consulta. Processamento da Consulta

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

Essencialmente, um ponteiro nada mais é do que uma variável que ao invés de conter um valor, contém um endereço de memória.

Sumário. BD Distribuído (BDD)

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

Bancos de Dados Distribuídos

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

AULA 06: PROGRAMAÇÃO EM MÁQUINAS PARALELAS

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

Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:

Objectivo Melhoria do desempenho Incremento da disponibilidade dos dados Acesso distribuído aos dados

a) Procurar um elemento em um vetor ordenado ou em um vetor não ordenado;

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais

Aula 02. Evandro Deliberal

Bases de Dados 2008/2009

Modelo Relacional - Manipulação

DISCO MAGNÉTICO Cabeçote Trilha

Gerência do Sistema de Arquivos. Adão de Melo Neto

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

Gerenciamento de Memória

ACH2025. Laboratório de Bases de Dados Aula 8. Indexação e Hashing Parte 1. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Banco de Dados Distribuído

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

Métodos de Ordenação Parte I

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

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

Índices. SCE-203 Algoritmos e Estruturas de Dados II

1) Defina os principais conceitos de orientação a objetos. 4) Porque é desejável programar com foco em interfaces?

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Modelagem Multidimensional - Nível Físico -

Árvores Genéricas de Busca

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

Gerência do Sistema de Arquivos. Adão de Melo Neto

Algoritmos e Estruturas de Dados I

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Arquitetura e organização de computadores

29/04/2015. Trabalho de Programação 3. Prof. Flávio Miguel Varejão. I. Descrição

SISTEMAS OPERACIONAIS. 1ª. Lista de Exercícios

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

7 Fundamentos de BDs Distribuídos

Tipos de Sistemas Operacionais. Professores : Jones - Wendell

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

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

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

Modelos Probabilísticos Filas M/M/1, M/G/1. Profa. Jussara M. Almeida 1 o Semestre de 2014

de Bases de Dados Exame 2

Modelagem Multidimensional - Nível Físico -

Hashing Externo. SCC-503 Algoritmos e Estruturas de Dados II. Thiago A. S. Pardo M.C.F. de Oliveira Cristina Ciferri

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?

Introdução a Bancos de Dados

Barramento. Prof. Leonardo Barreto Campos 1

Curso: Banco de Dados I. Conceitos Iniciais

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

Normalização para Bancos de Dados Relacionais

Álgebra Relacional e SQL operações de interesse

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

Subconsulta na Cláusula FROM

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

Caracterização de Sistemas Distribuídos

Transcrição:

Exercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis 1 a. Questão Quais são as principais etapas de um projeto de distribuição de dados? 2 a. Questão Seja uma aplicação de locação de vídeos conforme abaixo. F (NFilme, Nome, Categoria, Loc) % Tabela de filmes C (CodCli, Nome, End, Idade, PontosFid) % Tabela de clientes E (NFilme, CodCli, Data) % Tabela de empréstimos R (NFilme, CodCli, Prioridade) % Tabela de reservas Faça o projeto de distribuição dessa aplicação usando fragmentação horizontal primária e derivada. Mostre os seguintes passos do projeto de fragmentação: 1. Mostrar a representação de dono (owner) e membro (member) das tabelas da aplicação 2. Usar as consultas abaixo como as mais significativas: a) Que clientes com menos de 20 anos possuem filme de COMEDIA emprestado? b) Que filmes possuem reserva na categoria de TERROR? c) Quais os clientes com pontos de fidelidade > 5.000 e idade maior que 30? 3. Apresentar a definição algébrica de cada fragmento gerado para cada tabela de fragmentação primária e derivada. 5. Justifique as fragmentações derivadas. 6. Mostre como a reconstrução é verificada no seu projeto de distribuição. 3 a. Questão a) Quais as vantagens da fragmentação vertical? b) Caso você fosse fazer uma fragmentação vertical na aplicação da 2 a. questão, que relação você escolheria? Que fragmentação vertical você proporia para essa relação? Por quê? Responda com base na matriz de uso entre os atributos. c) Escreva uma consulta que seja beneficiada pela sua fragmentação. d) Qual a operação algébrica usada na reconstrução da fragmentação vertical?

4 a. Questão Quais os resultados do processo de alocação no Projeto de Distribuição de Dados? Quais são as diferenças no custo de replicação para operações de atualização e para operações de leitura? Por que a alocação em SBDD é mais complexa que a alocação de arquivos em sistemas operacionais? 5 a. Questão Quais são as vantagens e as dificuldades da fragmentação híbrida? Quais as vantagens da fragmentação horizontal derivada e quando deve ser empregada? 6 a. Questão Considere a relação V e as consultas a seguir. V (NVoo, Origem, Destino, Preço, CodCia) % Tabela de vôos (V (NVoo, A1, A2, A3, A4) % Tabela de vôos ) q1: Quais os vôos da Cia Air France que custam menos de 300? q2: Quais os vôos e preços de vôos com origem no Rio e destino em Paris? q3: Que vôos existem com origem no Rio e destino em Roma? q4: Qual a média de preços de vôos da cia AirFrance? Considere agora o peso das consultas baseado na freqüência de uso pelas aplicações. peso (q1) = 10, peso (q2) = 2, peso (q3) = 10, peso (q4) = 10 a) Gere a matriz de uso entre os atributos A1, A2, A3 e A4. b) Analise a matriz de uso e baseado no bom senso proponha uma fragmentação vertical para a relação V. Justifique seu projeto de fragmentação vertical. Não se esqueça de apresentar uma fragmentação que obedece às regras de correção. 7 a. Questão Seja um projeto de alocação de um fragmento F1 num SGBDD com 3 sítios e o seguinte modelo de custo: Leitura local = 10; leitura remota = 50; atualização local= 30; atualização remota = 60. Apresente o custo de execução das operações a seguir, i) Leitura de F1 pelos sítios 2 e 3 ii) Atualização de F1 pelo sítio 1 para os 3 projetos de alocação abaixo. Existe outra alternativa mais barata? Por que? Sítio 1 Sítio 2 Sítio 3 (a) F1 F1 F1 (b) F1 -- F1 (c) F1 -- --

8 a. Questão Com base no esquema de fragmentação da 2ª. Questão, escreva a consulta correspondente a : Qual o nome do cliente e a data de empréstimo para clientes que possuem mais de 25 anos. a) Desenhe a árvore genérica de forma algébrica que representa a consulta sobre as tabelas globais. b) Desenhe a árvore localizada que representa a consulta sobre as tabelas fragmentadas conforme o esquema de fragmentação da 2ª. questão. Mostre as transformações utilizadas na árvore genérica, passo a passo, na fase de Localização (Mapeamento), para tentar reduzir os fragmentos na árvore da consulta expressa sobre os fragmentos. c) Caso a consulta tenha sido reduzida, explique o porquê ( detalhado ), tanto do ponto de vista de custo quanto de tempo de resposta. Caso não tenha sido reduzida justifique. 9a. Questão Seja uma aplicação de passagens aéreas conforme abaixo. V (NVoo, Origem, Destino, Preço, CodCia) C (CodCia, Nome, Sede, Fatur) % Tabela de vôos % Tabela de cias aéreas P (CPF (int), Nome (char), Endereço(char), Milhagem (int), Nota(int)) R (NVoo (int), CPF(int), Prioridade (int)) Seja a seguinte consulta: Tabela de clientes % Tabela de Reservas Qual o Endereço, Milhagem e a Nota dos Clientes com milhagem menor que 10000 que estão com reservas em voos cujo preço é maior que 500? Assuma que as relações V, P e R estão fragmentadas como: V1 = (σ Preço < 1000 ( V ) ) V2 = (σ Preço >= 1000 ( V ) ) P11 = π CPF, Nome, End (P1), onde P1 = σ Milhagem < 25000 ( P ) P12 = π CPF, Milhagem, Nota (P1), onde P1 = σ Milhagem < 25000 ( P ) P2 = (σ Milhagem >= 25000 ( P ) ) R1 = R R2 = R P1 P2 a) Desenhe a árvore genérica de forma algébrica que representa a consulta sobre as tabelas globais. Estamos assumindo que a consulta está correta e normalizada. b) Desenhe a árvore localizada que representa a consulta sobre as tabelas fragmentadas conforme o esquema de fragmentação acima. Mostre as transformações da árvore genérica passo a passo utilizadas na fase de Localização para tentar reduzir a árvore localizada. c) Caso a consulta tenha sido reduzida, explique o porquê ( detalhado ), tanto do ponto de vista de custo quanto de tempo de resposta. Caso não tenha sido reduzida justifique.

10a. Questão Considere as seguintes relações: T( ta, tb, tc ) U( ud, ue, uf) Elas estão armazenadas em um servidor paralelo com 4 nós e fragmentadas de maneira circular, sendo que a tabela T possui tuplas nos nós 1 e 2 e a tabela U possui tuplas nos nós 2, 3 e 4. Elas apresentam as seguintes características: card(t) = 1000, card(u) = 3000, tam(tupla(t)) = 100 bytes, tam(tupla(u) = 75 bytes. O custo de leitura de uma tupla do disco é de 1 unidade. O custo de envio de um byte entre diferentes nós é de 5 unidades. Qual seria o melhor plano de execução para a consulta a seguir, considerando o Tempo de Resposta? select tb, uf from T,U where ta = ue Não considere o custo de armazenamento do resultado final. 11a. Questão Considere o esquema da tabela P da 9a questão. Suponha que o Nó 1 (onde se encontra a tabela P) seja um servidor paralelo com arquitetura de memória distribuída e 4 nós. A consulta abaixo é uma das mais frequentemente submetidas ao servidor: select CPF from P where nota =?; Que tipo de paralelismo pode ser implementado durante a execução desta consulta, considerando as estratégias de alocação de dados abaixo? Sem realizar cálculos, responda: qual das estratégias de alocação possibilitará execuções com menor Custo Total e qual delas apresentará menor Tempo de Resposta? Justifique todas as suas respostas. (a) Espalhamento (hashing) baseado no atributo Nota. (b) Intervalos baseados nos valores do atributo CPF.

As questões resolvidas em sala de aula não fazem parte desse gabarito. Questão 6 Seja a matriz de uso: PESO A1 A2 A3 A4 10 Q1 0 0 1 1 02 Q2 1 1 1 0 10 Q3 1 1 0 0 10 Q4 0 0 1 1 V1 = Π Nvoo, A1, A2 (V) V2 = Π Nvoo, A3, A4 (V) O projeto atende bem às consultas Q1, 3 e 4, pois poderão ser resolvidas com apenas um dos fragmentos de V, obtendo os benefícios da fragmentação vertical que é o de reduzir a quantidade de dados trafegando na hierarquia de memória. A consulta Q2 será prejudicada, pois precisará fazer a junção entre os fragmentos V1 e V2, no entanto como trata-se de uma consulta com peso menor, optou-se por privilegiar as consultas de maior peso. O projeto de fragmentação atende às regras de correção: - completo: todos os atributos de V participam de algum fragmento; - disjunto: os atributos de V, com exceção da chave primária, aparece em um e apenas um fragmento; - reconstrução: por meio da operação de junção sobre o atributo Nvoo de V1 e V2 é possível reconstruir V. Questão 7 Os custos para as 3 alternativas são: (a) para i): 10 + 10 ; para ii): 30 + 60 + 60 ; total = 170 (b) para i): 50 + 10 ; para ii): 30 + 60; total = 150 (c) para i): 50 + 50 ; para ii): 30; total = 130 Com esse modelo de custos, as 2 operações mais frequentes, dentre as 3 alternativas, a mais barata é a (c). As demais alternativas seriam: Sítio 1 Sítio 2 Sítio 3 (d) F1 F1 -- (e) -- F1 F1 (f) -- F1 -- (g) -- -- F1 (d) para i): 10 + 50 ; para ii): 30 + 60 = 150 (e) para i): 10 + 10 ; para ii): 60 + 30 +30 = 140 (f) para i): 10 + 50 ; para ii): 60 = 120 (g) para i): 50 + 10 ; para ii): 60 = 120 Sim, existem duas opções mais baratas que são (f) e (g) empatadas. Devido ao custo de manter a consistência das atualizações em F1, as alternativas mais baratas são as que não fazem replicação de F1, sendo que, como os custos de leitura e atualização remotas são próximos e altos, e como há 2 leituras e 1 atualização, dentre (c), (f) e (g), as opções mais baratas são as que favorecem a proximidade de acesso para a leitura e não para a atualização.

Questão 9 σ Milh < 10000 σ Preco > 500 P R V σ Milh < 10000 σ Preco > 500 P R

σ Milh < 10000 σ Preco > 500 P σ Milh < 10000 σ Preco > 500 P 2 P 11 P 12

Redução por FHP em P p1: Milh < 10000 σ Preco > 500 P 2 P 11 P 12 Redução por FHP em P p1: Milh < 10000 como: p1 ^ Milh >= 25000 é vazio, P2 pode ser eliminado. σ Preco > 500 P 2 P 11 P 12

Redução por FHP em V p2: Preco > 500 como a conjunção dos predicados de frag com p2 não é vazio, V1 e V2 não podem ser eliminados. P 11 P 12 Redução por FHD em R seja P1 = P11 P12 P 11 P 12

Redução por FHD em R seja P1 = P11 P12 P1 Redução por FHD em R seja P1 = P11 P12 P1 R 1 P1 R 2

Redução por FHD em R seja P1 = P11 P12 como R2 = R P2 à R2 P1 é vazio P1 R 1 P1 R 2 Árvore final: Redução por FHP em P e FHD em R. Do ponto de vista de custo, ela foi reduzida devido à eliminação do acesso aos fragmentos P2 e R2. Com isso, diminui o tráfego de dados no disco e memória e o numero de operações de comparação, tanto na seleção quanto na junção. Do ponto de vista de tempo de resposta, a árvore também possui ganho por conta do paralelismo que poderá ser aplicado na junção com os 2 fragmentos de V P1 R 1

Questão 11 Estratégia (a): como a alocação de dados é por espalhamento baseado no atributo nota, não é necessário paralelismo para o processamento desta consulta, pelo motivo a seguir. A consulta busca apenas tuplas que contenham UM valor de nota. Pelas características do espalhamento, apenas um nó conterá os dados que satisfarão o seu predicado. Estratégia (b): Neste caso, os dados se encontram distribuídos de acordo com os valores do atributo CPF. Qualquer nó poderá conter tuplas que possuam o valor para o atributo nota determinado no predicado da consulta. Logo, todos os nós deverão realizar buscas sobre seus dados. Neste caso, teremos paralelismo intra-consulta na modalidade intra-operador, pois a seleção será executada paralelamente por todos os nós. Considerações sobre o custo total e o tempo de resposta de cada estratégia. Nestas considerações, assumiremos que as estratégias de alocação produziram fragmentos de tamanhos idênticos para cada nó. O custo total representa a soma dos tempos de processamento gastos por todos os nós envolvidos no processamento da consulta. Torna-se óbvio que a estratégia (b) apresentará maior tempo total, visto que todos os nós estarão envolvidos no processamento da consulta. Supondo a ausência de índices baseados no atributo nota em todos os nós, a consulta deverá ser processada através de varredura total da tabela. Assumindo que o custo da varredura é C em cada nó, a estratégia (a) apresentará custo total igual a C, enquanto a (b) apresentará custo total igual a 4C. Em relação aos tempos de resposta, não se pode esperar diferenças entre as duas estratégias dado que haja igualdades de condições na busca realizada internamente por cada nó. Assim, assumimos que ou não há índice baseado em nota em nenhuma das estratégias ou que há índices baseados em nota em ambas. O tempo de resposta em cada nó é então o mesmo, a saber, igual a T. No caso da estratégia (a), onde só há um nó envolvido, o tempo de resposta será T. No caso da estratégia (b), ele também será T, visto que os 4 nós trabalham em paralelo. Como não há nenhum processamento extra (agregações, agrupamento, ordenações, etc), nenhuma diferença significativa no tempo de resposta deve ser observada.