Bancos de Dados Distribuídos Especialização em Engenharia de Software Marta Mattoso Bancos de Dados Distribuídos Bancos de Dados Distribuídos Bibliografia Utilizada Î Özsu, M.T. Valduriez, P. "Principles of Distributed Database Systems", Prentice Hall, 1991. c Elmasri, R. Navathe, S. "Fundamentals of Database Systems", Benjamin/Cummings, 2a. edição, 1994. c Mattoso, M.L.Q. "Sistemas de Bancos de Dados Distribídos e Paralelos", Apostila da Jornada de Atualização em Informática (JAI94), 43 págs., SBC, 1994. c Özsu, M.T. Valduriez, P. "Distributed Database Systems: Where Are We Now ?", IEEE Computer, agosto, 1991. c Ceri, S. Pelagatti, G. "Distributed Database Systems - Principles and Systems, MacGraw Hill, 1984. Especialização em ES Pag 1 Bancos de Dados Distribuídos Bancos de Dados Distribuídos Roteiro 1- Introdução 2- Caracterização de BDD 3- Vantagens de SBDD 4- Projeto de Bases de Dados Distribuídas 5- Processamento de Consultas em SBDDs 6- Controle de Concorrência em SBDDs 7- Problemas em Aberto 8- As Novas Tecnologias e os SBDDs Especialização em ES Pag 2 Bancos de Dados Distribuídos Introdução c Importância da tecnologia de Bancos de Dados Distribuídos c Produtos já no mercado c Diversas vantagens sobre os centralizados c Previsões de substituição completa dos SGBDs centralizados c Questões em aberto Especialização em ES Pag 3 Bancos de Dados Distribuídos Motivação Tecnologia de BD Redes de Computadores centralização distribuição Sistemas de BD Distribuídos integração integração ≠ centralização Especialização em ES Pag 4 Bancos de Dados Distribuídos Caracterização de um Sistema de Banco de Dados Distribuído Base de Dados Distribuída c É uma coleção de diversas bases de dados, interligadas logicamente através de uma rede de computadores Sistema de Bases de Dados Distribuídas c É o sistema de software que possibilita a gerência da base de dados distribuída e torna a distribuição transparente para o usuário Sistema de Banco de Dados Distribuídas - SBDD c É a combinação das bases com o sistema Especialização em ES Pag 5 Bancos de Dados Distribuídos Um SGBD centralizado sobre uma rede Nó 1 Nó 2 Nó 5 Rede de Comunicação Nó 4 Especialização em ES Nó 3 Pag 6 Bancos de Dados Distribuídos Principais Características de um SBDD c Dados armazenados em locais (ou nós) c Processadores dos nós interconectados através de rede de computadores c A base de dados distribuída é realmente uma base de dados e não uma coleção de arquivos c O sistema possui toda a funcionalidade de um SGBD c A tecnologia atual → multiprocessadores e cliente/servidor Especialização em ES Pag 7 Bancos de Dados Distribuídos Um Ambiente de Bases de Dados Distribuídas Nó 1 Nó 2 Nó 5 Rede de Comunicação Nó 4 Especialização em ES Nó 3 Pag 8 Bancos de Dados Distribuídos Arquiteturas de Sistemas Bancos de Dados Distribuídos c Autonomia Grau de autonomia com que cada SGBD individual trabalha. Envolvendo fatores como a existência de troca de informações entre os componentes. c alta integração, a semi-autonomia e a automia total. c Distribuição Diz respeito à distribuição física dos dados pelos nós, que pode ser total, parcial ou nenhuma c Heterogeneidade Do hardware, comunicação ou gerenciadores diferentes Especialização em ES Pag 9 Bancos de Dados Distribuídos Vantagens de SBDDs 1. Transparência na Gerência dos Dados Distribuídos e Replicados c transparência da rede c transparência da replicação c transparência da fragmentação Desta forma, os usuários do banco de dados enxergariam uma única imagem da base de dados logicamente integrada, embora ela estivesse fisicamente distribuída. Especialização em ES Pag 10 Bancos de Dados Distribuídos Vantagens de SBDDs 2. Confiabilidade através de Transações Distribuídas Espera-se que os SBDDs ofereçam confiabilidade por trabalharem com componentes replicados eliminando assim pontos únicos de falha 3. Aumento de Desempenho c Localização dos Dados O compartilhamento de recursos não é tão crítico e a localização reduz a demora pelo acesso remoto aos dados c Paralelismo no Processamento de Consultas Especialização em ES Pag 11 Bancos de Dados Distribuídos Vantagens de SBDDs 4. Facilidade de Expansão A adaptação ao crescimento da base de dados é mais simples. Considerações quanto às Implementações Para aumentar o desempenho: c tempos separados para leitura e modificação c duas cópias da base de dados são mantidas, uma base de consultas e uma base de produção. Em intervalos regulares a base de produção é copiada para a base de consultas. As análises de desempenho não são efetivas. Especialização em ES Pag 12 Bancos de Dados Distribuídos Projeto de Bases de Dados Distribuídas 1. Projeto Ascendente Envolve a integração de bases existentes ('multidatabase') 2. Projeto Descendente Distribuição das entidades globais sobre os nós do sistema distribuído Caracterização de duas atividades: c Fragmentação c Alocação Especialização em ES Pag 13 Bancos de Dados Distribuídos Projeto de Bases de Dados Distribuídas Fragmentação Fragmentação Horizontal (Seleção) c Circular, Faixa de Valores e Hashing Fragmentação Vertical (Projeção) c A chave da relação deve estar presente em todos os fragmentos Fragmentação Híbrida Alocação O fragmento pode ser replicado ou único Especialização em ES Pag 14 Bancos de Dados Distribuídos Distribuição - base unificada Nome Telefone Jose Campos 322-9999 Maria Silva 222-3333 Gabriel Silva 222-3333 Cláudio Silva 222-3333 Vôo Tarifa Nome Vôo Air France 147 Air France 147 Air France 147 Varig 224 Varig 224 Ass Passageiro José Campos Maria Silva Gabriel Silva Gabriel Silva Cláudio Silva Cia Air France 147 1000,00 250 Air France Air France 455 750,00 500 Air France Varig 224 500,00 150 Varig Nome Faturam. Presid. Sede Varig 20000K Pampa Porto Alegre Air France 10000K Etoile Paris Especialização em ES Pag 15 Bancos de Dados Distribuídos Distribuição - frag. horizontal, base AF Nome Telefone Jose Campos 322-9999 Maria Silva 222-3333 Gabriel Silva 222-3333 Cláudio Silva 222-3333 Vôo Tarifa Nome Vôo Ass Passageiro Air France 147 José Campos Air France 147 Maria Silva Air France 147 Gabriel Silva Cia Air France 147 1000,00 250 Air France Air France 455 Nome Air France 750,00 500 Air France Faturam. 10000K Especialização em ES Presid. Etoile Sede Paris Pag 16 Bancos de Dados Distribuídos Distribuição - frag. horizontal, base RG Nome Telefone Jose Campos 322-9999 Maria Silva 222-3333 Gabriel Silva 222-3333 Cláudio Silva 222-3333 Vôo Varig 224 Nome Varig Tarifa Nome Vôo Varig 224 Varig 224 Ass Passageiro Gabriel Silva Cláudio Silva Cia 500,00 150 Varig Faturam. 20000K Especialização em ES Presid. Pampa Sede Porto Alegre Pag 17 Bancos de Dados Distribuídos Distribuição - fragmentação vertical Nome Telefone Jose Campos 322-9999 Maria Silva 222-3333 Gabriel Silva 222-3333 Cláudio Silva 222-3333 Vôo Nome Vôo Air France 147 Air France 147 Air France 147 Varig 224 Varig 224 Tarifa Vôo Ass Passageiro José Campos Maria Silva Gabriel Silva Gabriel Silva Cláudio Silva Cia Air France 147 1000,00 Air France 147 250 Air France Air France 455 750,00 Air France 455 500 Air France Varig 224 500,00 Varig 224 Nome Faturam. Nome 150 Varig Presid. Sede Varig 20000K Varig Pampa Porto Alegre Air France 10000K Air France Etoile Paris Especialização em ES Pag 18 Bancos de Dados Distribuídos Processamento Distribuído de Consultas c Traduz automaticamente uma consulta expressa em linguagem de alto nível sobre uma base distribuída que é vista como única pelo usuário A tradução deve ser correta. O plano gerado deve ser ótimo. c O processamento trabalha em quatro fases: c a decomposição da consulta c a localização dos dados c a otimização global c a otimização local Especialização em ES Pag 19 Bancos de Dados Distribuídos Processamento Distribuído de Consultas Localização dos Dados c Transforma uma consulta algébrica em uma consulta equivalente sobre uma base fragmentada. c É analisado o predicado da consulta e a função de fragmentação c É avaliado a geração de fragmentos vazios c A consulta pode ser reduzida Especialização em ES Pag 20 Bancos de Dados Distribuídos Tabela de Vôos distribuída Vôo-A Vôo Tarifa Ass Cia Air France 147 1000,00 250 Air France Air France 455 750,00 500 Air France Nó 1 Nó 2 Nó 5 Rede de Comunicação Vôo Varig 224 Nó 4 Especialização em ES Nó 3 Tarifa 500,00 Ass 150 Cia Varig Vôo-V Pag 21 Bancos de Dados Distribuídos Processamento Distribuído de Consultas Localização dos Dados SELECT VÔO, TARIFA FROM VÔOS WHERE CIA = “AIR FRANCE” c Transforma a consulta em consulta equivalente sobre a base fragmentada. SELECT WHERE UNION SELECT WHERE VÔO, TARIFA FROM VÔO-A CIA = “AIR FRANCE” VÔO, TARIFA FROM VÔO-V CIA = “AIR FRANCE” c É analisado o predicado da consulta e a função de fragmentação c É avaliado a geração de fragmentos vazios c A consulta pode ser reduzida SELECT VÔO, TARIFA FROM VÔO-A WHERE CIA = “AIR FRANCE” Especialização em ES Pag 22 Bancos de Dados Distribuídos Processamento Distribuído de Consultas Localização dos Dados SELECT VÔO, TARIFA FROM VÔOS WHERE TARIFA <= 1000.00 c Transforma a consulta em consulta equivalente sobre a base fragmentada. SELECT VÔO, TARIFA FROM VÔO-A WHERE TARIFA <= 1000.00 UNION SELECT VÔO, TARIFA FROM VÔO-V WHERE TARIFA <= 1000.00 c É analisado o predicado da consulta e a função de fragmentação c É avaliado a geração de fragmentos vazios c A consulta pode ser reduzida Neste caso não há redução, mas há paralelismo. Especialização em ES Pag 23 Bancos de Dados Distribuídos Processamento Distribuído de Consultas Otimização Global c Gera o plano de execução ótimo a partir da consulta fragmentada levando em conta técnicas de otimização heurísticas e sistemáticas. c O cálculo do custo deve levar em conta a movimentação dos dados entre os nós. Especialização em ES Pag 24 Bancos de Dados Distribuídos Distribuição Vertical Vôo Air France 147 Air France 455 Varig 224 Ass 250 500 150 Cia Air France Air France Varig Vôo-1 Nó 1 Nó 2 Nó 5 Rede de Comunicação Nó 4 Especialização em ES Vôo Air France 147 Air France 455 Varig 224 Nó 3 Tarifa 1000,00 750,00 500,00 Vôo-2 Pag 25 Bancos de Dados Distribuídos Processamento Distribuído de Consultas Localização dos Dados SELECT VÔO, TARIFA FROM VÔOS WHERE TARIFA <= 1000.00 c Transforma a consulta em consulta equivalente sobre a base fragmentada. SELECT VÔO, TARIFA FROM VÔO-1 WHERE TARIFA <= 1000.00 JOIN SELECT VÔO, TARIFA FROM VÔO-2 WHERE TARIFA <= 1000.00 c É analisado o predicado da consulta e a função de fragmentação c É avaliado a geração de fragmentos vazios c A consulta pode ser reduzida SELECT VÔO, TARIFA FROM VÔO-2 WHERE TARIFA <= 1000.00 Especialização em ES Pag 26 Bancos de Dados Distribuídos Projeto Descendente de Bases de Dados Distribuídas Análise de Requisitos Objetivos Projeto Externo Projeto Conceitual Info. Acesso ECG Projeto de Distribuição EEs Info. Usuário ECLs Projeto Físico EILs Especialização em ES Pag 27 Bancos de Dados Distribuídos Questões em Projeto Distribuído • Por que fragmentar ? • Como fragmentar ? • Quanto fragmentar ? • Como testar a correção ? • Como alocar ? • Informação sobre requisitos ? Especialização em ES Pag 28 Bancos de Dados Distribuídos Informação dos requisitos Info da base de Dados Relacionamentos, Cardinalidade Cia_Aérea Nome Faturam. Presid. Sede L1 Vôos Passageiros Vôo Tarifa Ass Cia L2 Nome Telefone L3 Passagens Vôo Especialização em ES Passageiro Pag 29 Bancos de Dados Distribuídos Fragmentação Horizontal ¹Primária »Principais Técnicas :Faixa de Valores : Função de Hashing : Circular ¹Derivada ¹Fragmentação de uma relação ou classe não é baseada nas propriedades dos seus próprios atributos mas em função da fragmentação de outra classe ou relação. ¹Usada para facilitar as operações de junção e navegação entre fragmentos ¹ A tabela de Vôos pode ser fragmentada de modo derivado em relação à tabela de Cia_Aérea Especialização em ES Pag 30 Bancos de Dados Distribuídos Distribuição - frag. horizontal Primária Nome Air France Faturam. 10000K Presid. Etoile Sede Paris Derivada Vôo Tarifa Ass Cia Air France 147 1000,00 250 Air France Air France 455 750,00 500 Air France Especialização em ES Pag 31 Bancos de Dados Distribuídos Controle de Concorrência Distribuído c Procura buscar um equilíbrio adequado entre a manutenção da consistência e o alto nível de concorrência. c Problemas : c Gerência de cópias múltiplas. c Falhas locais em nós. c Falha nas ligações de comunicação. c Finalização ('commit') distribuída. c Bloqueio perpétuo distribuído. Especialização em ES Pag 32 Bancos de Dados Distribuídos Problemas em Aberto 1. Processamento de Consultas Distribuído c Espaço de soluções pode ser muito grande c Avaliação custo otimização X custo execução c Intervalo entre a otimização e re-otimização c Mudanças na distribuição dos dados (desbalanceamento) Especialização em ES Pag 33 Bancos de Dados Distribuídos Problemas em Aberto 2. Problemas no Crescimento da Rede c Faltam estudos de desempenho de SBDDs que levem em conta um modelo de custo mais detalhado da rede de comunicação. c Algumas questões vem sendo trazidas quando se trata do comportamento de protocolos de comunicação e de algoritmos à medida que os sistemas crescem e se tornam geograficamente distribuídos. c A maioria dos trabalhos de desempenho de SBDDs utilizam modelos simplificados, cargas de trabalho artificiais ou premissas conflitantes ou ainda consideram poucos algoritmos e específicos. Especialização em ES Pag 34 Bancos de Dados Distribuídos Problemas em Aberto 3. Processamento de Transações Distribuído c Manter um estado consistente da base de dados com tanta replicação implica em protocolos sofisticados de controle de réplicas. O método mais imediato é o ROWA (read one write many), mas é também muito caro. c Para que sejam plenamente alcançados os objetivos da replicação, ou seja, disponibilidade e desempenho, é necessário que seja avaliado a integração dos três tipos de replicação que ocorrem nos SBDDs que são a replicação dos dados, a replicação do processamento e da comunicação. Apenas a replicação dos dados vem sendo estudada intensamente. Especialização em ES Pag 35 Bancos de Dados Distribuídos Problemas em Aberto 4. Integração com Sist. Operacionais Distribuídos c Há muito tempo os projetistas sistemas de banco de dados centralizados ou distribuídos reclamam de serem uma aplicação comum como qualquer outra de um sistema operacional. c Existe um desencontro entre as necessidades de um SGBD e as funções dos S.O.s atuais. Essa situação é ainda mais crítica no caso dos SBDDs, pois necessitam de funções que os SO distribuídos existentes não atendem como por exemplo, suporte a transações distribuídas com controle de concorrência e reconstrução. Especialização em ES Pag 36 Bancos de Dados Distribuídos As Novas Tecnologias e os SBDDs ª ª ª A questão do desempenho Um dos exemplos das novas aplicações de Bd que irão se beneficiar da tecnologia de SBDDs são os ambientes de trabalho cooperativo. Nesses sistemas os participantes cooperam no acesso aos recursos compartilhados ao invés de competir por eles como ocorre em aplicações usuais de BD. Começam a surgir SBDDOOs, mas ainda longe dos benefícios Especialização em ES Pag 37 Bancos de Dados Distribuídos As Novas Tecnologias e os SBDDs ª ª A evolução da tecnologia de SGBDs distribuídos irá viabilizar os servidores paralelos de bases de dados. O paralelismo trará então impactos para os SBDDs na implementação de SBDDs sobre os servidores paralelos. Especialização em ES Pag 38