Bancos de Dados Distribuídos Alcides Calsavara Bancos de Dados Distribuídos Página 1 Bancos de Dados Distribuídos Introdução Arquitetura de SGBD Distribuídos Projeto de Banco de Dados Distribuído Controle Semântico de Dados Processamento de Consulta Distribuído Gerenciamento de Transação Distribuída Sistemas Operacionais de Banco de Dados Distribuído Sistemas Abertos e Interoperabilidade Sistemas de Banco de Dados Paralelos Gerenciamento de Objeto Distribuído Observações Finais Bancos de Dados Distribuídos Página 2 Motivação Tecnologia de Banco de Dados Rede de Computadores integração distribuição Sistemas de Banco de Dados Distribuído integração integração distribuição Bancos de Dados Distribuídos Página 3 O que é um Banco de Dados Distribuído ? Um Banco de Dados Distribuído (B.D.D.) é uma coleção de múltiplos, logicamente interrelacionados Bancos de Dados, distribuídos por uma rede de computadores. Um S.G.B.D.D. é um software que gerencia o B.D.D. e que provê um mecanismo de acesso que torna esta distribuição transparente para o usuário. Bancos de Dados Distribuídos Página 4 SGBD Centralizado em uma Rede Site 1 Site 2 Site 5 Rede de Comunicação Site 4 Bancos de Dados Distribuídos Site 3 Página 5 Ambiente de SGBD Distribuído Site 1 Site 2 Site 5 Rede de Comunicação Site 4 Bancos de Dados Distribuídos Site 3 Página 6 Suposições Implícitas Dados armazenados em vários sites cada site logicamente consiste de um único processador. Dados processados em diferentes sites são interconectados por uma rede de computadores não há multiprocessadores sistemas de Banco de Dados Paralelos Banco de Dados Distribuído é um Banco de Dados, não uma coleção de arquivos dados logicamente relacionados modelo de dados relacional SGBDD é um SGBD full-fledged (completo) Bancos de Dados Distribuídos Página 7 Aplicações Industriais - especialmente indústrias com várias filiais Controle e Comando Militar Empresas Aéreas Redes de Hoteis Qualquer organização que tenha uma estrutura descentralizada Bancos de Dados Distribuídos Página 8 Vantagens do SGBDD Bancos de Dados Distribuídos Autonomia local Melhora de desempenho Melhora de integridade/eficácia Economia Expansibilidade Compartilhamento Página 9 Desvantagens do SGBDD Bancos de Dados Distribuídos Complexidade Custo Controle da distribuição Falta de experiência Página 10 As Regras de Date de um SGBDD Autonomia local Independência de um local central Operação contínua Independência de localização Independência de fragmentação Independência de replicação Bancos de Dados Distribuídos Página 11 As Regras de Date de um SGBDD Processamento de consultas distribuídas Gerência de transações distribuídas Independência de hardware Independência de sistema operacional Independência de rede Independência de banco de dados Bancos de Dados Distribuídos Página 12 Questões sobre um SGBDD Projeto de Banco de Dados Distribuído Como distribuir o banco de dados? Distribuição com replicação ou não? Como gerenciar a distribuição? Processamento de Consultas converter transações de usuário (SQL) para instruções de manipulação de dados (acesso a tabelas) problema de otimização mínimo custo = transmissão de dado + processamento local a formulação geral é um problema NP-completo Bancos de Dados Distribuídos Página 13 Questões sobre um SGBDD Controle de Concorrência sincronização de acesso concorrente consistência e isolamento dos efeitos de transações gerenciamento de deadlock Confiabilidade Como fazer o sistema recuperar de falhas? atomicidade e persistência Bancos de Dados Distribuídos Página 14 Relacionamento entre as Questões Gerenciamento da Distribuição Processamento de Consulta Projeto da Distribuição Confiabilidade Controle de Concorrência Gerenciamento de Deadlock Bancos de Dados Distribuídos Página 15 Questões Relacionadas Suporte do sistema operacional sistema operacional com suporte próprio para operações de banco de dados distribuídos dicotomia entre as necessidades de processamento de âmbito geral e de banco de dados Sistemas Abertos e Interoperabilidade Sistemas distribuídos e homogêneos: “Multidatabases” Questões de Paralelismo Bancos de Dados Distribuídos Página 16 Promessas de um SGBDD Gerenciamento transparente de dados distribuídos, fragmentados e/ou replicados Melhora de integridade/eficácia através de transações distribuídas Melhora de desempenho Expansão de sistemas de forma mais fácil e econômica Bancos de Dados Distribuídos Página 17 Suporte de Transparência Sem considerar a replicação Geralmente sem fragmentação Fragmentação horizontal pode ocorrer Transparência da distribuição limitada especificação de caminho aliasing acesso remoto a um SGBD Maioria dos sistemas possuem vários clientes e apenas um servidor Bancos de Dados Distribuídos Página 18 Desempenho Potencialmente Melhorado Proximidade dos dados dos sites de uso Necessita algum suporte para fragmentação e replicação Paralelismo na execução Paralelismo entre consulta Paralelismo na consulta Bancos de Dados Distribuídos Página 19 Necessidades de Paralelismo Muitos dos dados que cada aplicação necessita estão nos sites onde ela executa Replicação total E quanto às atualizações ? Atualizações de dados replicados necessitam de implementação de controle de concorrência distribuída e protocolos de commit Bancos de Dados Distribuídos Página 20 Alternativas de Sistemas Comerciais “Multiplex” de tempo entre leitura e atualização Banco de dados aberto para a leitura durante um tempo regular determinado; executa atualizações ao final deste tempo Alguns sistemas bancários trabalham desta maneira “Multiplex” de banco de dados Banco de dados de consulta. Banco de dados de produção Bancos de Dados Distribuídos Página 21 Expansão do Sistema Questão de escalabilidade do banco de dados Tecnologias de microprocessadores e estações de trabalho (workstation) Processamento no modelo Cliente-Servidor Bancos de Dados Distribuídos Página 22 Objetivo Fundamental da Transparência Prover independência de dados no ambiente distribuído Transparência da rede (distribuição) Transparência da replicação Transparência da fragmentação Bancos de Dados Distribuídos Página 23 Independência de Dados Imunidade das aplicações do usuário para mudanças na definição e/ou organização dos dados e vice-versa. Independência lógica de dado Imunidade das aplicações do usuário para mudanças na estrutura lógica do banco de dados. A definição da estrutura (schema) do banco de dados pode mudar sem afetar as aplicações do usuário. Por exemplo, adição de novos atributos em uma relação, a criação de novas relações, reordenação lógica de atributos. Independência física de dados Esconde os detalhes da estrutura de armazenamento das aplicações do usuário. Descrição física dos dados pode mudar sem afetar as aplicações do usuário. Por exemplo, dados podem ser “movidos” (trocados) de um volume de disco para outro; a organização dos dados pode mudar. Bancos de Dados Distribuídos Página 24 Transparência de Rede A existência da rede não deve ser notada pelas aplicações do usuário. Requer duas coisas: Transparência de acesso O comando que é usado é independente do local onde está o dado e do local onde a operação será realizada. Exemplo: Deve haver uma única operação para abrir tanto um banco de dados local como um banco de dados remoto. Transparência de localização Provendo um nome único para cada objeto no sistema distribuído. Não embutir informações de localização nos nomes. Exemplo: Os nomes dos bancos de dados e das suas tabelas não devem conter indicações de nomes de computadores na rede. Bancos de Dados Distribuídos Página 25 Transparência de Replicação Se existem réplicas de objetos (relações/tabelas, tuplas/registros, atributos/colunas) do banco de dados, sua existência deve ser controlada pelo sistema e não pelo usuário. Tradeoff: Se o usuário está ciente da existência de réplicas e é responsável pelo seu gerenciamento, então o sistema tem que fazer um trabalho mínimo e o desempenho pode ser melhor. Bancos de Dados Distribuídos Página 26 Transparência de Fragmentação Se relações/tabelas do banco de dados são fragmentadas, então o sistema tem que lidar com a conversão de consultas do usuário definidas em relações globais para consultas definidas em fragmentos. Tradução de consultas globais para consultas de fragmento e colocação de fragmentos juntos em uma resposta. Bancos de Dados Distribuídos Página 27 Acesso Transparente SELECT FROM WHERE AND AND ENAME,SAL E,G,S DUR > 12 E.ENO = G.ENO E.TITLE = S.TITLE Tokyo Paris Boston Communication Network Paris projects Paris employees Paris assignments Boston employees Boston projects Boston employees Boston assignments Montreal G - projects: projetos E - employees: empregados S - assignments: tarefas Bancos de Dados Distribuídos New York Boston projects New York employees New York projects New York assignments Montreal projects Paris projects New York projects Montreal employees Montreal assignments Página 28 Arquitetura ANSI/SPARC Study Group on Data Management Systems - Relatório Interno/1975 Esquema Externo Esquema Conceitual Esquema Interno Bancos de Dados Distribuídos Visão externa Visão externa Visão conceitual Visão Interna Visão externa Visão do usuário individual Visão do conjunto de usuários Visão do armazenamento Página 29 Arquitetura ANSI/SPARC Nível Conceitual Reinos Naturais Mineral n Primários 1 n 1 Secundários n Acessórios Bancos de Dados Distribuídos Vegetal Animal Mamíferos Primatas Cetáceos Página 30 Arquitetura ANSI/SPARC Nível Externo Reinos Naturais Biólogo Geólogo Botânico Zoólogo Mineral Vegetal Animal Bancos de Dados Distribuídos Página 31 Arquitetura ANSI/SPARC Nível Interno Reino Animal : Mamíferos/Primatas/Homo Rodesiano Pitecantropo Neandertal Homem Solo Bancos de Dados Distribuídos Mongolóides Africanos Eurasianos Página 32 Arquitetura ANSI/SPARC Nível Interno Reino Animal : Mamíferos/Primatas/Homo Altura Mongolóides Peso Organização Neandertal Africanos Longevidade Alimentação Eurasianos Bancos de Dados Distribuídos Ferramentas ... Página 33 Dimensões do Problema Distribuição Se os componentes do sistema estão localizados na mesma máquina ou não Heterogeneidade Diferentes níveis: hardware, comunicação, sistema operacional, SGBD SGBD: modelo de dados, linguagem de consulta, algoritmos de gerenciamento de transações, ... Autonomia Autonomia de projeto: Habilidade de um componente do SGBD decidir sobre questões relacionadas com seu próprio projeto. Autonomia de comunicação: Habilidade de um componente do SGBD decidir como comunicar-se com outros SGBDs. Autonomia de execução: Habilidade de um componente do SGBD executar operações locais da maneira que ele desejar. Bancos de Dados Distribuídos Página 34 Alternativas de Implementação do DBMS Distribuição Logically integrated and homogeneous multiple DBMSs Distributed homogeneous DBMS Distributed, homogeneous, federated DBMS Distributed, homogeneous, multi-DBMS Distributed heterogeneous DBMS Homogeneous federated DBMS Distributed heterogeneous federated DBMS Autonomia Multi-DBMS Heterogeneous integrated DBMS Distributed heterogeneous multi-DBMS Heterogeneidade Bancos de Dados Distribuídos Single site heterogeneous federated DBMS Heterogeneous multi-DBMS Página 35 Acesso de Tempo Compartilhado a um Banco de Dados Centralizado • Sem memória Terminais ou PCs emulando terminais • Host (servidor) executando todos os softwares Solicitações Batch Rede Respostas Communications Application Software DBMS Services Database Bancos de Dados Distribuídos Página 36 Multiplos Clientes/Único servidor Applications Applications Applications Client Services Communications Client Services Communications Client Services Communications Rede Solicitações de alto-nível Somente dados filtrados Communications DBMS Services Database Bancos de Dados Distribuídos Página 37 Vantagens da Arquitetura Cliente-Servidor Divisão do trabalho mais eficiente Escalabilidade dos recursos Melhor preço/performance nas máquinas clientes Habilidade de usar ferramentas “familiares” nas máquinas clientes Acessos de clientes a dados remotos (via padrões, como ODBC) Toda funcionalidade do SGBD oferecida às máquinas clientes Acima de tudo, melhor preços/performance dos sistemas Bancos de Dados Distribuídos Página 38 Problemas com MúltiplosClientes/Único Servidor Congestionamento no servidor Único ponto de falha no servidor Difícil escalabilidade no servidor Bancos de Dados Distribuídos Página 39 Múltiplos Clientes/Múltiplos Servidores diretórios caching decomposição de consultas protocolos de commit Applications Client Services Communications Rede Communications Communications DBMS Services DBMS Services Database Bancos de Dados Distribuídos Database Página 40 Problemas no Design Na montagem geral: Tomar decisões sobre a disposição dos dados e programas através de sites de uma rede de computadores, bem como possivelmente desenhar a própria rede em si. Num SGBD distribuído, a disposição de vínculos das aplicações disposição do software do SGBD distribuído disposição das aplicações que executam no B.D. Bancos de Dados Distribuídos Página 41 Design da Distribuição De cima para baixo (Top-Down) principalmente ao desenhar sistemas a partir do nada principalmente em sistemas homogêneos De baixo para cima (Bottom-Up) Quando os Bancos de Dados já existem em um número de sites Bancos de Dados Distribuídos Página 42 Arquitetura de um SGBD Distribuído ES : External Schema GCS : Global Conceptual Schema LCS : Local Conceptual Schema LIS : Local Internal Schema Bancos de Dados Distribuídos Página 43 Lógica de Dados numa Arquitetura de um SGBD Distribuído ES1 ES2 ... ESn GCS Bancos de Dados Distribuídos LCS1 LCS2 LIS1 LIS2 ... ... LCSn LISn Página 44 Top-Down Design Análise das Necessidades Objetivos Input do Usuário Design Conceitual Integração da Visão Informação de Acesso GCS Design da Distribuição Design da Visão ES’s Input do Usuário LCS’s Design Físico LIS’s Bancos de Dados Distribuídos Página 45 Questões de Design de Distribuição Bancos de Dados Distribuídos Por que fragmentar afinal ? Como fragmentar ? O quanto fragmentar ? Como testar exatidão ? Como alocar ? Necessidades de informação ? Página 46 Alternativas de Fragmentação Horizontal J J1 : projetos com orçamentos JNO inferiores a $200,000 J1 J2 J2 : projetos com orçamentos maiores J3 J4 ou iguais a $200,000 J5 J1 JNO JNAME BUDGET LOC Instrumentação Desenvolv.do B.D. CAD/CAM Manutenção CAD/CAM 150000 135000 250000 310000 500000 Montreal New York New York Paris Boston J2 JNAME BUDGET LOC JNO JNAME BUDGET LOC J1 Instrumentação 150000 Montreal J3 CAD/CAM 250000 New York J2 Desenv. do B.D. 135000 New York J4 Manutenção 310000 Paris J5 CAD/CAM 500000 Boston Bancos de Dados Distribuídos Página 47 Alternativas de Fragmentação Vertical J1: informações sobre orçamentos de projetos J2: informações sobre nomes e localidades de projetos J1 J JNO J1 J2 J3 J4 J5 JNAME BUDGET LOC 150000 135000 250000 310000 500000 Montreal New York New York Paris Boston Instrumentação Desenv. do B.D. CAD/CAM Manutenção CAD/CAM J2 JNO BUDGET JNO J1 J2 J3 J4 J5 150000 135000 250000 310000 500000 J1 J2 J3 J4 J5 Bancos de Dados Distribuídos JNAME Instrumentação Desenv. do B.D. CAD/CAM Manutenção CAD/CAM LOC Montreal New York New York Paris Boston Página 48 Exatidão da Fragmentação Completitude (Completeness) Decomposição da relação R em fragmentos R1, R2, ..., Rn está completa se e somemte se cada item de dado em R puder ser encontrado em algum Ri Reconstrução Se a relação R for decomposta em fragmentos R1, R2, ..., Rn, então deverá existir algum operador relacional tal que R = 1inRi Disjunção Se a relação R for decomposta em fragmentos R1, R2, ..., Rn, e o item de dado di estiver em Rj, então di não deveria estar em qualquer outro fragmento Rk (k j ). Bancos de Dados Distribuídos Página 49 Grau de Fragmentação Número finito de alternativas tuplas ou atributos relações Encontrando o nível adequado de particionamento dentro desta extensão Bancos de Dados Distribuídos Página 50 Fragmentação Não podemos apenas distribuir relações ? O que é uma unidade de distribuição razoável ? relação visões são subconjuntos de relações localidade comunicação extra fragmentos de relações (sub-relações) execução concorrente de um número de transações que acessam diferentes partes da relação visões que não podem ser definidas num simples fragmento irão requerer processamento extra controle de dados semânticos (especialmente esforço de integridade) mais difícil Bancos de Dados Distribuídos Página 51 Alternativas de Alocação Não-replicada particionada: cada fragmento reside somente em um site Replicada totalmente replicada: cada fragmento em cada site parcialmente replicada: cada fragmento em alguns dos sites Regra prática: Se read - only queries update queries 1 replicação é vantajosa, em caso contrário a replicação pode causar problemas Bancos de Dados Distribuídos Página 52 Processamento de Consulta Consultas em linguagem de alto nível (SQL) processador de consulta comandos de manipulação de dados em linguagem de baixo nível Bancos de Dados Distribuídos Página 53 Componentes de Processamento de Consulta A linguagem de consulta que é normalmente utilizada SQL: “linguagem de dados intergalática” Metodologia de execução de consulta As etapas que se atravessa na execução de consultas de altonível (declarativas) do usuário. Otimização de consulta Como se determina o “melhor” plano de execução? Bancos de Dados Distribuídos Página 54 Objetivos da Otimização de Consultas Minimizar uma função de custo Custo de E/S + custo de UCP + custo de comunicação Podem ter pesos diferentes em diferentes ambientes distribuídos WAN - Redes Remotas o custo de comunicação é dominante baixa largura de faixa baixa velocidade protocolo com alto overhead a maioria dos algoritmos ignora todos os outros componentes de custo LAN - Redes Locais custo de comunicação não tão dominantes custo total da função deveria ser considerado Pode-se também querer maximizar throughput Bancos de Dados Distribuídos Página 55 Complexidade de Operações Relacionais Operação Assuma relações de cardinalidade n acesso sequencial Complexidade Seleção Projeção (sem eliminação de duplicatas) O(n) Projeção (com eliminação de duplicatas) Group O(nlog n) Junção Semi-junção O(nlog n) Divisão Operadores de conjunto Produto cartesiano Bancos de Dados Distribuídos O(n2) Página 56 Questões de Otimização de Consulta – Tipos de Otimizadores Pesquisa exaustiva baseada em custo resultado ótimo complexidade combinatória no número de relações Heurística resultado não ótimo reagrupamento de sub-expressões comuns avalia primeiramente a projeção e seleção substitui uma junção por uma série de semi-junções reordena operações para reduzir o tamanho da relação intermediária otimiza operações individuais Bancos de Dados Distribuídos Página 57 Questões de Otimização de consulta – Topologia da Rede Redes remotas (WAN) - ponto a ponto características baixa largura de faixa baixa velocidade protocolo com alto overhead custo de comunicação dominante; ignore todos os outros fatores de custo horário global para minimizar custo de comunicação estratégias locais de acordo com a otimização de consulta centralizada Redes locais (LAN) custo de comunicação não tão dominante função de custo total deveria ser considerada pode explorar bradcasting (junção) algoritmos particulares existem para redes tipo “estrela” Bancos de Dados Distribuídos Página 58 Metodologia de Processamento de Consulta Distribuída Consulta em Cálculo sobre Relações Distribuídas Decomposição de consulta ESQUEMA GLOBAL Consulta em Algébrica em Relações Distribuídas SITE DE CONTROLE Localização de Dados ESQUEMA FRAGMENTADO Consulta Fragmentada Otimização Global ESTATÍSTICAS NOS FRAGMENTOS Consulta Fragmentada Otimizada induzindo Operações de Comunicação SITES LOCAIS Otimização Local ESQUEMAS LOCAIS Consultas Locais Otimizadas Bancos de Dados Distribuídos Página 59 O Problema do B.D. grande volume de dados utilize disco e memória principal grande gargalo I/O (ou gargalo de acesso à memória) velocidade(disco) << velocidade(RAM) << velocidade(microprocessador) Prognósticos crescimento de velocidade do (micro-) processador : 50 % por ano crescimento da capacidade DRAM : 4 a cada três anos atravessamento do disco : 2 nos últimos dez anos Conclusão : o gargalo do I/O irá piorar Bancos de Dados Distribuídos Página 60 A Solução Aumente a largura da banda do I/O repartição de dados acesso a dados paralelos Origens (anos 80): equipamentos de B.D. orientados para hardware custo-desempenho ruim falhas exceção notável : ICL's CAFS ISP Anos 90 : a mesma solução, porém utilizando componentes de hardware padronizados integrados em um multiprocessador orientados para software padrão essencial para explorar os contínuos aperfeiçoamentos tecnológicos Bancos de Dados Distribuídos Página 61 Objetivos do Multiprocessador Alto-desempenho com melhor custo-desempenho do que mainframe ou supercomputadores array Utiliza muitos nós, cada um com bom custodesempenho, comunicando através de rede bom custo através de componentes de grande volume bom desempenho Tendências multiprocessador rede O verdadeiro desafio é paralelizar aplicações de forma que executem com bom equilíbrio de carga Bancos de Dados Distribuídos Página 62 Processamento de Dados Paralelos Três maneiras de explorar sistemas de multiprocessador de alto-desempenho: automaticamente detecte paralelismo em programas sequenciais aumente uma linguagem existente com construções paralelas ofereça uma nova linguagem na qual o paralelismo possa ser expresso ou automaticamente inferido Crítica difícil de desenvolver paralelizando computadores, aceleração resultante limitada possibilita ao programador expressar computações paralelas, porém de muito baixo nível pode combinar as vantagens de (1) e (2) Bancos de Dados Distribuídos Página 63 Sistemas de B.D. Paralelos Objetivos Custo/desempenho muito melhor do que a solução mainframe Alto desempenho através de paralelismo alto atravessamento através do paralelismo inter-query baixo tempo de resposta com paralelismo intra-operação Alta disponibilidade e confiabilidade explorando a replicação de dados Extensividade com os objetivos ideais aceleração linear escalamento linear Bancos de Dados Distribuídos Página 64 Bancos de Dados Distribuídos Página 65 Bancos de Dados Distribuídos Página 66 Barreiras ao Paralelismo Iniciar o tempo necessário para iniciar uma operação pode dominar o tempo real de computação Interferência quando acessar recursos compartilhados, cada novo processo desacelera os outros Assimetria o tempo de resposta de um conjunto de processos paralelos é o tempo do mais lento Técnicas de gerenciamento de dados paralelos pretendem ultrapassar estas barreiras Bancos de Dados Distribuídos Página 67 Funções do B.D. Paralelo gerenciador da sessão interface do hospedeiro monitoramento da transação para OLTP gerenciador da solicitação compilação e otimização gerenciamento do diretório de dados controle de dados semânticos controle da execução gerenciador de dado execução de operações do B.D. suporte de gerenciamento da transação gerenciamento do dado Bancos de Dados Distribuídos Página 68 Arquiteturas do Sistema Paralelo Extremos da arquitetura de multiprocessador memória compartilhada (tudo compartilhado) nada compartilhado (passagem de mensagem) Arquitetura intermediária: disco compartilhado Bancos de Dados Distribuídos Página 69 Arquitetura de Memória Compartilhada P1 Pn interconectar Memória Global D Exemplos: multiprocessadores simétricos (Sequent, Encore, Bull's Escala), XPRS (U. of Berkeley), DBS3 (Bull) simplicidade, equilíbrio de carga, comunicação rápida custo da rede, baixa extensividade, baixa disponibilidade Bancos de Dados Distribuídos Página 70 Arquitetura de Disco Compartilhado P1 Pn M1 Mn interconectar D Exemplos : DEC's VAXcluster, IBM's IMS/VS Data Sharing custo da rede, extensividade, migração de uni-processador complexidade, problema de desempenho potencial para coerência de cópia Bancos de Dados Distribuídos Página 71 Arquitetura “Nada Compartilhado” interconectar P1 Pn D1 M1 Dn Mn Exemplos : Teradata (ATT GIS), NonStopSQL (Tandem), Gamma (U. of Wisconsin), Bubba (MCC) custo, extensividade, disponibilidade complexidade, difícil equilíbrio de carga Bancos de Dados Distribuídos Página 72 Comparações de Desempenho SN desempenho SD SM 10 100 1000 número de nós Bancos de Dados Distribuídos Página 73 Aglomeração de Nós SM P1 Pn P1 Pn interconectar Memória Global D interconectar Memória Global D combina o bom balanceamento de carga SM(Shared Memory - memória compartilhada) com a extensividade de SN(Shared Nothing - nada compartilhado) alternativas número limitado de grandes nós, ex: nós de processador 4 x 16 grande número de pequenos nós,ex: nós de processador 16 x 4, tem um custo-desempenho muito melhor (pode ser um aglomerado de workstations) Bancos de Dados Distribuídos Página 74 Comentários finais BD distribuídos: teoria “antiga”, prática “recente” Estudo de arquiteturas paralelismo incluído Arquitetura C/S e camadas lógicas Protocolos de confiabilidade sistemas comerciais? Processamento de consultas Muitos problemas em aberto! Tendências Feedback da prática: novas demandas (e.g. BD Multimídia) Bancos de Dados Distribuídos Página 75