BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura
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.
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
Definições Afinal, o que é um BD Distribuído? 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
Motivação para SBDs Distribuídos
Ambiente com SGBD Distribuído
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)
MP com memória compartilhada (tightly coupled)
MP com disco compartilhado (loosely coupled)
MP sem compartilhamento de memória
SGBD centralizado numa rede
Ambiente com SGBD Distribuído
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.
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
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.
Características dos BDs Distribuídos
Transparência
BDD A visão do usuário
BDD A realidade
As 12 Regras de Date para BDs distribuídos 1. Autonomia local 2. Não dependência de um local central 3. Operação contínua 4. Independência de localização 5. Independência de fragmentação 6. Independência de replicação 7. Processamento de consultas distribuídas 8. Gerência de transações distribuídas 9. Independência de hardware 10. Independência de sistema operacional 11. Independência de rede 12. Independência de banco de dados
1. Autonomia local Todos os dados distribuídos pela rede devem ser de propriedade e gerência local, independente do sistema global distribuído 2. 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.
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.
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.
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
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.
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.
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.)
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
Arquitetura de Esquemas para BDs distribuídos nível externo esquema externo global 1 esquema externo global 2 esquema externo global n nível conceitual local nível conceitual esquema conceitual local 1 esquema conceitual global esquema conceitual local 2 esquema conceitual local 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. nível interno esquema interno 1 esquema interno 2 esquema interno n A
Arquitetura de um SGBD-D Respostas Comandos da aplicação Gerente de bloqueios Compilador Otimizador Gerente de transações Gerente de log Gerente de acesso a dados Catálogo do sistema 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 LOG BD Mensagens de/para outros SGBDs
Mundo real Restrições tecnológicas Especificação de requisitos Requisitos de funções Requisitos de dados Projeto de visões Visões Projeto da distribuição Esquema conceitual global Integração de visões Esquemas conceituais locais Projeto lógico Esquemas lógicos locais Projeto físico Processo de projeto de BDs distribuídos homogêneos -Visão geral - Esquemas físicos locais