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

Documentos relacionados
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 Bancos de Dados Distribuídos (Parte 01)

Projeto de Bancos de Dados Distribuídos

Projeto de Bases de Dados Distribuídas

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

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

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

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

Universidade Federal do Maranhão

14/03/12. Formas Básicas de BD Distribuído. Integração de Banco de Dados. Abordagem Top-down. Abordagem Top-down (Distribuição de Dados)

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

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

Banco de Dados Distribuído

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

Bancos de dados. Sistemas de bancos de dados. Professor Emiliano S. Monteiro

Bancos de Dados III. Projeto de Base de Dados Distribuída

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

Bancos de Dados Distribuídos

3 Plano de Execução de Consultas

Bases de Dados Distribuídas

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

5 Busca Tratamento das Palavras-Chave de Entrada

Modelagem de Sistemas Web. Modelagem de BD

Arquitetura dos SBDs Características e Benefícios Visão Geral de Projeto de BD MER: Entidades e Atributos Atividade.

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

ORGANIZANDO DADOS E INFORMAÇÕES: Bancos de Dados

Aula 04. Evandro Deliberal

MODELO ENTIDADE RELACIONAMENTO

Banco de Dados. SGBDs. Professor: Charles Leite

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

Introdução a Banco de Dados Aula 02. Prof. Silvestri

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

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

Introdução a B anco de Dados. INE5206 Introdução à Informática INE/CTC/UFSC Prof. Roberto Willrich

Capítulo 9: Sistemas de banco de dados

Processos ca 3 pítulo

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

Formação de DBAs SQL Server 2008

Respostas aos Riscos Avaliados

Sistemas de Informação. Sistemas Operacionais

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de dados. Objetivo: Reter os dados de forma que possam ser utilizados em outros momentos

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Decisões arquiteturais importantes. Projeto arquitetural x projeto de algoritmos. Decomposição de dados. Decomposição de dados

Análise de Ponto de Função APF. Aula 05

MODELO RELACIONAL Prof.: Jacson Tiola Técnico em Redes de Computadores

Banco de Dados. SGBD - Sistema de Gerenciamento de Banco de Dados Parte 1. Prof. Leonardo Vasconcelos

Sumário. Etapas do Processamento de Consultas

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

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD

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

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

Sistema Gestor de Bancos de Dados (SGBD)

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Sistemas Operacionais. Gerência de Memória

Normalização para Bancos de Dados Relacionais

PCS3413 Engenharia de Software e Banco de Dados

Fundamentos de Sistemas Operacionais. Gerência de Memória. Prof. Edwar Saliba Júnior Março de Unidade Gerência de Memória

Análise de Ponto de Função APF. Aula 07

Normalização para Bancos de Dados Relacionais

Arquiteturas de Sistemas de Informação Geográfica

Sistemas de Gerência de Bancos de Dados

23/05/12. Conteúdo. Introdução ao gerenciamento de transações. Motivação. Motivação. Motivação. Motivação

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

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

SISTEMAS OPERACIONAIS. Gerência de Memória Apostila 7

04/03/12. Revisão: conceitos básicos de BD. MoAvação para distribuição. Processamento Distribuído. Arquitetura de um SBD Centralizado

Revisando Banco de Dados. Modelo Relacional

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Visões Arquiteturais. Visões Arquiteturais

ADLs. Exploração de Arquitetura. Aula 05

Anexo II Mapeamento entre modelos

Livro texto: Capítulo 1

Modelo Lógico de Dados. Modelo Relacional

Aula 04. Medições e Métricas de Software. Professor: José Alexandre Macedo versão: 1.0

Arquitetura Genérica do SGBDD

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

Teoria dos Grafos Aula 18

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

Informática. Banco de Dados Relacional. Professor Julio Alves.

PROJETO DE BANCO DE DADOS

Conteúdo. Integração de Dados, Web e Warehousing. Introdução. Introdução. BD Heterogêneos. Introdução. Introdução

Modelo Lógico de Dados (MLD) Origens do modelo relacional

SENSOMETRIA. Adilson dos Anjos. Curitiba, PR 21 de maio de Departamento de Estatística Universidade Federal do Paraná

Organizando os dados em um Banco de Dados

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Introdução ao Modelo Relacional

Rápida revisão do Modelo Relacional

Aprendizagem de Máquina

Introdução às Bases de Dados

Álgebra Relacional e SQL

Alcides Pamplona

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

O Modelo e a Álgebra Relacional

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Sistemas de arquivos distribuídos. ECO036 - Sistemas Paralelos e Distribuídos

Transcrição:

Fragmentação Vertical Projeto de Bancos de Dados Distribuídos (Parte 02) IN1128/IF694 Bancos de Dados Distribuídos e Móveis Ana Carolina Salgado acs@cin.ufpe.br Bernadette Farias Lóscio bfl@cin.ufpe.br Processo que divide uma relação em colunas, agrupando em cada fragmento parte dos atributos existentes na relação original Replicação da chave da tabela original nos fragmentos gerados Fato que permite a reconstrução da relação global Objetivo Complexidade Particionar uma relação em um conjunto de relações menores, para que aplicativos do usuário possam atuar apenas sobre um fragmento Caso uma aplicação precise de dados presentes em mais de um fragmento: fragmentação não benéfica (necessidade de junções, operação muito custosa) Processo inerentemente mais complexo que a fragmentação horizontal; Fragmentação horizontal: Se temos n predicados Teremos 2 n predicados minterm possíveis E destes tiramos ainda os minterm que não fazem sentido (contraditórios Complexidade Fragmentação vertical: A quantidade de fragmentos possíveis é dada por B(m), onde m são os atributos não chave e B é o número de Bell B(m) M m Ex.: B(4) = 15 B(10) 115.000 B(15) 10 9 B(30) 10 23 Esses valores indicam que não vale a pena tentar obter soluções ótimas, sendo necessário recorrer à abordagem heurística Abordagens Heurísticas Há dois tipos de abordagens heurísticas pra fragmentação vertical: Agrupamento: Começa atribuindo cada atributo a um fragmento e vai juntando outros atributos até achar os que satisfazem aos requisitos da aplicação Divisão*: Começa com uma relação e define como particionar de acordo com o comportamento de acesso aos atributos *se ajusta de forma mais natural dentro da metodologia de projeto top-down 1

Fragmentação vertical Por que replicar a chave primária nos fragmentos? Permitir junções para reconstrução da relação original Garantir a integridade semântica Garantir a dependência funcional entre os atributos da relação particionada Diminuir controle de concorrência nas atualizações Uma alternativa para não replicação da chave primária seria o uso de TID (Identificadores de tupla) gerados pelo sistema Fragmentação vertical Como a fragmentação vertical insere os atributos, que em geral são acessados em conjunto, em um único fragmento, surge a necessidade de algumas medidas que definam com maior precisão a noção de conjunto! Como identificar o conjunto de atributos que deve compor um fragmento vertical? 7 8 Afinidade de atributos: indica a proximidade dos relacionamentos entre atributos Como obter esse valor a partir dos dados do BD? Para isso, deve-se saber o que vem a ser valor de uso do atributo : Seja Q = {q 1,q 2,..., q m } consultas do usuário na relação R (A 1, A 2,..., A n ) Para cada consulta q i e cada atributo A j, associamos um valor de uso do atributo, denotado por uso(q i,a j ), definido como se segue: uso(q i,a j ) = 1, se o atributo A j é referenciado pela consulta q i uso(q i,a j ) = 0, caso contrário Os vetores de uso são definidos com facilidade se o projetista conhece os aplicativos que serão executados sobre o BD Regra 80/20 20% das consultas de usuários mais ativos respondem a 80% do total de acesso aos dados Relembrando a relação Projeto Projeto PNO PNome Orçamento Loc P01 BI 150000 Montreal P02 Des. de BD 135000 Nova York P03 CAD/CAM 250000 Nova York P04 Manutenção 310000 Paris Exemplificando: q1: encontrar orçamento de um projeto pelo valor do número do projeto SELECT orcamen FROM proj WHERE pno = valor q2: encontrar nomes e orçamentos dos projetos SELECT nome, orcamen FROM proj q3: encontrar nomes dos projetos em uma dada cidade SELECT nome FROM proj WHERE loc = valor q4: encontrar orçamentos dos projetos em uma dada cidade SELECT orcamen FROM proj WHERE loc = valor 2

Exemplificando: Matriz de uso de atributos: A1: pno A2: nome A3: orcamen A4: loc Esses valores ainda não são suficientes pra formar a base de divisão e fragmentação de atributos Esses valores não representam o peso das frequências dos aplicativos A medida de frequência pode ser incluída na definição da medida de afinidade de atributos aff(a i, A j ), que mede a ligação entre dois atributos de uma relação de acordo como eles são acessados pelos aplicativos q1 q2 q3 q4 A1 A2 A3 A4 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 Deve-se saber o peso das frequências dos aplicativos. Para isso o conceito de Afinidade entre Atributos é definido A medida de afinidade de atributos entre dois tributos A i e A j de uma relação R(A 1, A 2,..., A n ) com respeito ao conj. De consultas(aplicativos) Q = {q 1, q 2,..., q m } é definida em função de: refl (qk): número de acessos dos atributos (Ai, Aj) a cada execução de qk no site S l accl (qk): medida de frequência de acesso do aplicativo/ consulta (incluindo frequências em diferentes sites) Supondo refl(qk) = 1 pra todo k e pra todo l e as frequências: acc1(q1) = 15 acc2 (q1) = 20 acc3(q1) = 10 acc1(q2) = 5 acc2(q2) = 0 acc3(q2) = 0 acc1(q3) = 25 acc2(q3) = 25 acc3(q3) = 25 acc1(q4) = 3 acc2(q4) = 0 acc3(q4) = 0 Assim, a afinidade entre A1 e A3, por exemplo é dada por: Matriz de Afinidade dos atributos: O processo de fragmentação envolve primeiro o agrupamento em clusters dos atributos que têm uma grande afinidade entre si seguido pela divisão da relação de forma adequada Esta matriz é usada como base para o agrupamento em clusters de atributos com maior afinidade para posterior fragmentação 18 3

Algoritmos de agrupamento em clusters Tarefa fundamental da Fragmentação Vertical: agrupar atributos de uma relação em grupos Agrupar os atributos com base na matriz de afinidades Algoritmo de Energia de Ligação Algoritmo de Energia de Ligação foi considerado para esse propósito: 1. Atributos de mais afinidades em um cluster, atributos de menos afinidades em outro; 2. Os agrupamentos não dependem da ordem que os itens são apresentados ao algoritmo; 3. Complexidade de O(n²), sendo n o número de atributos; 4. Os inter-relacionamentos secundários entre grupos de atributos reunidos em clusters são identificáveis. 20 O algoritmo de energia de ligação aceita como entrada a matriz de afinidade de atributos, permuta suas linhas e colunas, gerando uma matriz de afinidade agrupada em clusters A permutação entre linhas e colunas é feita de modo a maximizar a medida de afinidade global A medida de afinidade global é dada em função das medidas de afinidade entre cada par de atributos O objetivo da atividade de divisão é encontrar conjuntos de atributos que são acessados unicamente, ou em sua maioria, por conjuntos de aplicativos distintos Se for possível identificar dois atributos A 1 e A 2, acessados apenas pelo aplicativo q 1, e os atributos A 3 e A 4 acessados por dois aplicativos q 2 e q 3, seria simples decidir sobre os fragmentos A tarefa de divisão consiste em encontrar um método de identificação desses grupos! 21 22 Fragmentação híbrida Consiste em realizar uma fragmentação vertical seguida de uma fragmentação horizontal ou viceversa um conjunto de fragmentos horizontais, onde cada um deles é particionado em dois fragmentos verticais 23 Fragmentação híbrida O número de níveis de aninhamento pode ser grande, mas certamente é finito No caso da fragmentação horizontal, deve-se parar quando cada fragmento consistir em uma única tupla O ponto de término de uma fragmentação vertical é atingido quando temos um único atributo por fragmento 24 4

Fragmentação híbrida Na prática não é possível executar muitas fragmentações verticais antes que o custo das junções se torne muito alto, uma vez que as relações globais normalizadas já possuem graus pequenos As regras de correção e as condições para a fragmentação híbrida decorrem naturalmente das regras para as fragmentações horizontal e vertical O Problema da alocação Descrição do problema Dados F = {F 1, F 2,, F n } fragmentos S = {S 1, S 2,, S m } nós da rede Q = {q 1, q 2,, q q } aplicativos Encontre a distribuição ótima de F em S 25 26 O Problema da alocação O caráter ótimo pode ser definido com relação a duas medidas: Custo mínimo Comunicação + armazenamento de cada F i em um site S j + custo de consultar F i em S j + custo de atualização de F i em todos os sites onde ele está armazenado Desempenho A estratégia de alocação é projetada para manter uma métrica de desempenho. Duas estratégias bem conhecidas são minimizar o tempo de resposta e maximizar o throughput em cada site Problema de alocação requisitos de informação Informações do banco de dados Seletividade dos fragmentos (quant. de tuplas que precisam ser processadas para responder uma dada consulta) Tamanho dos fragmentos Informações de aplicativos Tipos e números dos acessos (leitura e atualização) Localidade dos acessos O tempo de resposta máximo permitido em cada aplicativo 27 28 Problema de alocação requisitos de informação Informações sobre os sites Para cada site é preciso conhecer seu espaço de armazenamento e sua capacidade de processamento Custo unitário de armazenamento de um dado em um site Custo unitário de processamento em um site Informações da rede Largura de banda Overhead de comunicação Modelo de alocação Forma Geral Min(custoTotal) Sujeito às restrições De tempo de resposta De armazenamento De processamento 29 30 5

Modelo de alocação A função de custo total tem dois componentes: O custo de armazenamento: simples de especificar, sendo dado pelo custo total de armazenamento em todos os sites para todos os fragmentos O custo de processamento de consultas: mais díficil de especificar Deve-se procurar por um esquema de alocação que, por exemplo, responda às consultas do usuário em tempo mínimo, enquanto mantém mínimo o custo de processamento. Tais modelos são difíceis de serem desenvlovidos! 31 Modelo de alocação Problema de alocação de arquivos (PAA) x Problema de alocação de bancos de dados (PABD) Fragmentos não são arquivos individuais Relacionamentos têm que ser mantidos Acesso aos BD é mais complicado Modelo de acesso a arquivos remotos não é aplicável Relacionamento entre alocação e processamento de consultas Custos adicionais que devem ser considerados Manutenção da integridade Controle de concorrência 32 Conclusões Alocação e fragmentação são tratadas de forma independente pelos algoritmos Entretanto, ambas as etapas têm entradas semelhantes, diferindo no fato de que a fragmentação atua sobre relações globais e a alocação leva em consideração os fragmentos Conclusões As estratégias apresentadas de projeto de BD Distribuído pressupõem um ambiente estático em que o projeto é conduzido uma única vez e esse projeto pode persistir Na realidade podem ocorrer mudanças físicas e lógicas, que requerem um novo projeto do BD! As duas etapas ignoram o modo como cada uma faz uso das informações dos aplicativos do usuário Novo projeto e materialização são etapas necessárias para refletir as mudanças no ambiente! Uma solução seria formular uma metodologia que refletisse de forma mais apropriada a interdependência das decisões de fragmentação e alocação! 33 34 6