Um sistema de banco de dados distribuído (BDD) consiste em um relação de nós, cada qual podendo participar na execução de transações que acessam dados em um ou mais nós. Em um sistema de banco de dados distribuído, o banco de dados é armazenadoem diversos computadores (nós). Os computadores, em um sistema distribuído, comunicam-se uns com os outros por intermédio de vários meios de comunicação, tais como: redes de alta velocidade, redes sem fio ou linhas telefônicas, eles não compartilham a memoria principal e o relógio.

A diferença principal entre sistemas de banco de dados centralizados e distribuídos é que no primeiro os dados estão localizados em um único lugar, enquanto que no outro os dados residem em diversos locais. Esta distribuição de dados é motivo de muitas preocupações e dificuldades.

Os processadores em um sistema distribuído podem variar em tamanho e função, podendo incluir microcomputadores, estações de trabalho, minicomputadores e sistemas de computadores de uso em geral. Estes processadores são geralmente chamados de nós, dependendo do contexto no qual eles estejam mencionados. Usa-se principalmente o termo nó (lugar, posição), a fim de enfatizar a distribuição física destes sistemas. Veja o exemplo na Figura 1:

Figura demonstrando o sistema de banco de dados distribuído

Figura 1: Figura demonstrando o sistema de banco de dados distribuído.

Armazenamento Distribuído dos Dados

Uma relação r (ou tabela) possui diversos enfoques para o armazenamento em um banco de dados distribuído (BDD):

  • Replicação: o sistema mantém réplicas idênticas da relação, onde cada réplica é armazenada em sites diferentes, resultando na replicação dos dados
  • Fragmentação: a relação é particionada em vários fragmentos, onde cada fragmento é armazenado em um site diferente
  • Replicação e fragmentação: a relação é particionada em vários segmentos, e o sistema mantém diversas réplicas de cada fragmento

Replicação de dados

A replicação de dados significa que um determinado objeto de dados logico pode possuir diversos representantes armazenados, em nós. O grau de suporte para a replicação é um pre-requisito para atingir o verdadeiro potencial de um sistema distribuído.

Fragmentação de dados

Uma relação é dividida em fragmentos, onde cada fragmento contem informação suficiente para permitir a reconstrução da relação original.

Existem duas formas de fazer a fragmentação:

  • Fragmentação Horizontal: divide a relação separando as tuplas de r em dois ou mais fragmentos.
  • Fragmentação Vertical: divide a relação pela decomposição do esquema R da relação r.

Fragmentação e Replicação de Dados

As técnicas de fragmentação e replicação podem ser aplicadas sucessivamente a uma mesma relação.Um fragmento pode ser replicado, e as réplicas podem ser fragmentadas novamente e assim por diante.

Processamento de consultas distribuídas

A transparência para leitura é mais fácil de se conseguir e manter do que a transparência para atualização. O maior problema para a atualização é garantir que todas as réplicas e fragmentos sejam atualizados, após uma atualização em uma das réplicas ou fragmentos. A atualização deve ser prolongada para todas as cópias (réplicas e fragmentos) existentes no sistema.

Um dos fatores mais importantes no desempenho de uma consulta, em uma base centralizada, é a quantidade de acesso a disco necessária para atingir o resultado. Em um banco distribuído os problemas aumentam, pois existe também a preocupação com a transmissão de dados na rede. Um fator interessante para a consulta realizada em uma base distribuída é que para os diversos sites podem processar partes da consulta em paralelo.

Na realização de uma consulta simples (trivial), como consultar todas as tuplas da relação CONTA, pode caracterizar um processamento não tão trivial, pois CONTA pode estar fragmentada, replicada ou ambas.

Transações

O acesso a diversos itens de dados em um sistema distribuído é normalmente acompanhado de transações que têm de preservar as propriedades ACID:

  • A: Atomicidade
  • C: Consistência
  • I: Isolamento
  • D: Durabilidade

Caracteristicas da ACID


  • Atomicidade: Todas as operações da transação são refletidas corretamente no BD ou nenhuma será.
  • Consistência: A execução de uma transação isolada preserva a consistência do banco de dados.
  • Isolamento: Cada transação não toma conhecimento de outras transações concorrentes.
  • Durabilidade: Depois da transação completar-se com sucesso, as mudanças que ela faz no banco de dados persistem.

Tipos de transação


  • Locais: mantem acesso e atualizam somente a base de dados local.
  • Globais: mantem acesso e atualizam diversas bases de dados locais.

Funções adicionais


  • Rastreamente de dados.
  • Processamento de consultas distribuídas.
  • Gerenciamento de transações distribuídas.
  • Gerenciamento de dados replicados.
  • Recuperação de banco de dados distribuído.
  • Segurança.
  • Gerenciamento do diretório distribuido

Vantagens


  • Gerenciamento de dados distribuído com níveis diferentes de transparência.

    • Transparência de distribuição ou de rede.
    • Transparência de replicação.
    • Transparência de fragmentação.

  • Melhoria da confiabilidade e na disponibilidade.
  • Melhoria no desempenho.
  • Expansão mais fácil.

Falhas

Em um sistema de banco de dados distribuído pode sofrer os mesmos tipos de falhas que ocorrem em um sistema centralizado, porem existem falhas adicionais que podem ocorrer em um (BDD), tais como: falha de comunicação entre eles, perda de mensagens e o particionamento da rede, cada um desses problemas devem ser considerados no projeto de recuperação de um BDD. Para um sistema ser robusto, ele precisa detectar qualquer uma dessas falhas, reconfigurar-se enquanto a falha é recuperada.

Com isso finalizo este artigo, espero que o mesmo ajude mesmo que de forma básica com essas informações sobre este tipo de banco de dados.