BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING Asterio K. Tanaka http://www.uniriotec.br/~tanaka/tin0036 [email protected] Bancos de Dados Distribuídos Conceitos e Arquitetura Asterio K. Tanaka Vantagens das Arquiteturas C/S (em relação a SBDs centralizados) • Divisão de trabalho mais eficiente • Escala de recursos horizontal (nos clientes) e vertical (nos servidores) • Melhor custo/benefício nas estações clientes • Habilidade de usar ferramentas familiares nas estações clientes • Acesso de clientes a dados remotos (via padrões) • Funcionalidade de SGBD provida em estações clientes • Melhor custo/benefício do sistema como um todo. Asterio K. Tanaka Problemas da Arquiteturas Cliente/Servidor Problemas: • Gargalos no(s) servidor(es) • Servidor é um ponto de falha singular • Escalabilidade do BD dificultada Soluções: • Se o gargalo estiver no espaço em disco -> ... • Se o gargalo estiver no tempo de acesso a disco -> ... • Se o gargalo for no processamento -> ... • Outras soluções – Multiprocessamento no servidor – Multiplos servidores – SBD distribuído Asterio K. Tanaka Afinal, o que é um BD Distribuído? Definições “Um sistema de BD distribuído é uma coleção de dados distribuída por diferentes computadores, possivelmente em diferentes locais. Os computadores estão conectados por uma rede de comunicação. O sistema deve suportar aplicações locais em cada computador, bem como aplicações globais nas quais mais de um computador esteja envolvido.” (Ceri & Pelagatti, 1985) “Um BD distribuído (BDD) é uma coleção de bancos de dados múltiplos, logicamente inter-relacionados e distribuídos por uma rede de computadores.” “Um SGBD distribuído (SGBD-D) é o software que gerencia o BDD e provê um mecanismo de acesso que faz essa distribuição transparente para os usuários.” (Ozsu & Valduriez, 1998) SBD distribuído = BDD + SGBD-D Asterio K. Tanaka Motivação para SBDs Distribuídos Asterio K. Tanaka Ambiente com SGBD Distribuído Asterio K. Tanaka O que NÃO É um SBD Distribuído SBD distribuído não é: • Um sistema de computação “time sharing” • Um sistema com multiprocessadores (fracamente ou fortemente acoplados) • Um SBD que reside em um dos nós de uma rede de computadores (isto é, um SGBD centralizado um nó de rede) Asterio K. Tanaka MP com memória compartilhada (tightly coupled) Asterio K. Tanaka MP com disco compartilhado (loosely coupled) Asterio K. Tanaka MP sem compartilhamento de memória Asterio K. Tanaka SGBD centralizado numa rede Asterio K. Tanaka Ambiente com SGBD Distribuído Asterio K. Tanaka Regras implícitas num ambiente de BDD • Dados armazenados em mais de um local – cada local consiste logicamente de um simples processador • Processadores em diferentes locais são interconectados por uma rede de computadores – não são multiprocessadores – sistemas de BD em paralelo • BD distribuído é um BD, não uma coleção de arquivos – os dados são logicamente relacionados – modelo de dados relacional • SGBD-D é um SGBD completo (full-fledged DBMS) – não um sistema de arquivos remoto, não um sistema de processamento de transações. Asterio K. Tanaka Bancos de Dados Distribuídos • Decorrência natural de: – avanços tecnológicos de microprocessadores; – evolução das redes de comunicação de dados; – evolução dos bancos de dados. • Duas abordagens: – “bottom up” • integração de BDs existentes, independentes – “top down” • projeto de um novo BD levando em conta a distribuição geográfica dos dados e aplicações Asterio K. Tanaka Características dos BDs Distribuídos • Independência de dados – aplicações e visões de usuários imunes a mudanças na forma de armazenamento dos dados e vice-versa. • Transparência de distribuição – aplicações e usuários não precisam conhecer a localização e as formas de representação de dados dos bancos de dados nas redes de computadores ou lidar com os protocolos utilizados na comunicação entre os diferentes sistemas. • Transparência de replicação – os dados podem ser replicados, para atendimento de requisitos de desempenho e de disponibilidade, porém os usuários e as aplicações possuem a ilusão de existir uma única cópia dos dados. • Transparência de fragmentação – significa que as aplicações e os usuários têm sempre uma visão única dos dados, independentemente da forma como as relações estiverem fragmentadas entre os diferentes servidores. Asterio K. Tanaka Características dos BDs Distribuídos Asterio K. Tanaka Transparência Asterio K. Tanaka BDD – A visão do usuário Asterio K. Tanaka BDD – A realidade Asterio K. Tanaka As 12 Regras de Date para BDs distribuídos 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Autonomia local Não dependência de um local central Operação contínua Independência de localização Independência de fragmentação Independência de replicação 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 Asterio K. Tanaka 1. Autonomia local • 2. Todos os dados distribuídos pela rede devem ser de propriedade e gerência local, independente do sistema global distribuído Não dependência de um local central • Não existe um local que tenha autoridade sobre os demais locais. 3. Operação contínua • Cada local é operacionalmente independente dos demais, embora formem um sistema e cooperem entre si. 4. Independência de localização • Um usuário ou palicação não necessita conhecer a localização física dos dados dispersos pelos diferentes locais. Asterio K. Tanaka 5. Independência de fragmentação • Os usuários devem poder armazenar dados logicamente relacionados, sem preocupação quanto à sua segmentação física. 6. Independência de replicação • Embora, por razões de desempenho, possam ser criadas cópias totais ou parciais de um banco de dados em diferentes locais, os usuários devem possuir uma visão única do banco de dados, sem necessitar lidar com as redundâncias introduzidas pelas cópias. 7. Processamento de consultas distribuídas • O usuário deve poder efetuar consultas sobre o conjunto de dados, independente da localização física. 8. Gerência de transações distribuídas • O SGBD-D deve possibilitar alterações nos estados dos bancos de dados locais por uma única transação de forma consistente. Asterio K. Tanaka 9. Independência de hardware • Dados dispersos por máquinas heterogêneas devem ser processados sem restrições decorrentes das diferenças entre plataformas 10. Independência de sistema operacional • Idem para plataformas de sistemas operacionais distintos. 11. Independência de rede • Os detalhes de utilização de protocolos de rede diversos não devem ser visíveis aos usuários, isto é, devem ser resolvidos pelo SGBD-D 12. Independência de banco de dados • Deve ser possível armazenar e recuperar dados de diferentes bancos de dados locais, independente de arquitetura e de SGBD local. Asterio K. Tanaka Bancos de Dados Distribuídos Vantagens e Desvantagens • Vantagens – – – – – Autonomia para as aplicações locais Aumento da confiabilidade e disponibilidade Melhoria do desempenho Economia Flexibilidade para expansão • Desvantagens – Distribuição de controle – Segurança – Complexidade Asterio K. Tanaka Vantagens dos SBD distribuídos • Autonomia para as aplicações locais – Um grupo de usuários pode ter os dados que compartilha localizados no seu próprio ambiente de trabalho, executando localmente várias das funções de ABD. • Aumento da confiabilidade e disponibilidade – Com a distribuição dos dados por diversos sistemas de processamento, a eventual falha de um dos sistemas não impossibilita totalmente o acesso aos dados do BDD, mas apenas à parte que estiver localizada no componente que falhou. • Melhoria do desempenho – Com a localização dos dados próxima à localização dos seus usuários, ganha-se tempo que seria gasto com o acesso remoto, sem contar a diminuição da contenção por recursos de CPU e de I/O observada nos sistemas centralizados. Asterio K. Tanaka Vantagens dos SBD distribuídos • Economia – Com a localização dos dados próximas dos seus usuários, podem ser reduzidos os custos de comunicação. Além disso, é menor o custo de um conjunto de máquinas de pequeno porte que possua capacidade de processamento igual ao de um equipamento de grande porte do que o custo de um único equipamento com capacidade equivalente (Contrariando a lei de Grosh: “4 vezes mais capacidade por 2 vezes mais custo”). • Flexibilidade para expansão – Os sistemas distribuídos são naturalmente modulares, podendo-se acrescentar ou alterar um subsistema sem impactos significativos para os demais componentes. Asterio K. Tanaka Desvantagens dos SBD distribuídos • Distribuição de controle – A autonomia traz a desvantagem dos problemas de sincronismo de ações e de coordenação das partes. Exemplos: atualização de dados de uma relação fragmentada, restauração em caso de falha. • Segurança – Sistemas de BD centralizados são mais facilmente controlados quanto à segurança, porque possuem menos pontos (locais) para controle. • Complexidade – Vários problemas que há muito possuem soluções eficientes em SBDs centralizados assumem novas dimensões quando trazidos para ambientes distribuídos (exemplos: otimização de consultas, controle de concorrência de transações, etc.) Asterio K. Tanaka A Arquitetura de Três Esquemas Usuários finais NÍVEL EXTERNO Visão Externa 1 ... Visão Externa n mapeamento externo/conceitual NÍVEL CONCEITUAL Esquema Conceitual mapeamento conceitual/interno NÍVEL INTERNO Esquema Interno Asterio K. Tanaka Arquitetura de Esquemas para BDs distribuídos nível externo esquema externo global 1 nível conceitual nível conceitual local esquema conceitual local 1 nível interno esquema interno 1 esquema externo global 2 esquema externo global n esquema conceitual global esquema conceitual local 2 esquema conceitual local n esquema interno 2 esquema interno n O nível conceitual local foi acrescido à arquitetura de 3 esquemas ANSI-SPARC, com a finalidade de garantir a independência de dados às aplicações globais. A Asterio K. Tanaka Arquitetura de um SGBD-D Comandos da aplicação Respostas Compilador Catálogo do sistema Otimizador Gerente de transações Gerente de bloqueios Gerente de log LOG Gerente de acesso a dados BD Gerente de comunicações O módulo gerente de transações utiliza o módulo gerente de comunicações para interagir com os demais SGBDs que implementam o sistema distribuído Mensagens de/para outros SGBDs Asterio K. Tanaka Mundo real Especificação de requisitos Requisitos de dados Restrições tecnológicas Projeto de visões Requisitos de funções Visões Projeto da distribuição Esquemas conceituais locais Projeto lógico Esquemas lógicos locais Projeto físico Esquema conceitual global Integração de visões Processo de projeto de BDs distribuídos homogêneos - Visão geral - Esquemas físicos locais Asterio K. Tanaka