Como Desenhar, Implementar e Administrar Bancos de Dados Distribuídos

Autor: Ricardo Shoiti Ikematu

Seminário do DBForum

Palestra ministrada por Eliana Sodré
Sócia-Diretora da FORMA INFORMÁTICA

Os primeiros sistemas se interessavam apenas pela automação do processo e o armazenamento dos seus dados, porém os dados sem estarem dentro de um contexto, não possuíam significado algum. As pessoas viram que podiam trabalhar os dados da organização para obterem informações sobre a organização e sua área de atuação. Surgiram os primeiros sistemas de suporte à decisão. Depois disto as empresas passaram a gerenciar ‘conceitos’, ou seja, um conjunto de informações que tratam de um assunto específico. Através destas informações, as organizações passaram a adquirir um conhecimento.

Nos dias de hoje, uma grande vantagem competitiva de uma organização é o seu conhecimento adquirido do mercado em que ela atua. Um indicativo disto, é o grande sucesso que vêm tendo soluções de DataWarehouse e Data mining. Estas soluções disponibilizam todo o histórico de informações, armazenado pela empresa para aplicativos de tomadas de decisão com uma grande flexibilidade.

As organizações necessitam que as informações estejam o mais próximo possível de quem vai usá-las. As aplicações centralizadas não levavam em conta o fornecedor e o consumidor de informações. Com a adoção da arquitetura cliente/servidor e as novas tecnologias, esta solução se tornou viável, porém agravou um outro problema, o do gerenciamento de informações distribuídas.

A palestrante divide a distribuição de dados em duas partes: distribuição lógica de dados e distribuição física de dados. Através do modelo lógico de dados é possível manter um modelo conceitual da distribuição, independentemente da sua implementação física. Isto soluciona problemas de upgrade do modelo e aproveita novos benefícios com novos produtos para a empresa na adequação tecnológica do modelo físico.

No modelo de distribuição lógica existem dois passos que são: a decisão de centralizar ou distribuir os dados e decidir as formas de distribuição dos dados.

Deve-se centralizar quando:

  • os dados são utilizados por aplicações centralizadas. Ex: Folha de Pagamento;

  • usuários de todas as áreas necessitam da posição atual destes dados, que são freqüentemente atualizados;

  • usuários se movem por vários locais utilizando sempre os mesmos dados;

  • dados como um todo sofrem muitas consultas ad-hoc;

  • há necessidade de alto nível de segurança de dados;

  • o volume de dados é muito grande, não havendo espaço suficiente para armazenamento, a não ser no banco de dados central.

 

Deve-se distribuir quando:

  • os dados são utilizados no local, e raramente ou nunca, são utilizados por outros locais;

  • segurança, integridade e privacidade dos dados são de responsabilidade do local;

  • dados locais são pesquisados ou manipulados através de linguagens end-user;

  • há necessidade de alta performance no acesso aos dados;

  • os custos são altos na transmissão de dados;

  • a disponibilidade dos dados é importante em nível local, ou seja, em caso de problemas físicos em um local, os dados distribuídos pelos outros locais não serão afetados.

Depois é necessário a identificação de locais com capacidade de armazenamento e/ou processamento computadorizado de informações.

Segundo a palestrante existem 6 formas de distribuição dos dados: master, particionado, replicação, subconjunto, extração e teleprocessamento.

Particionado são porções de dados mutuamente exclusivos, mantidas em locais distintos. Deve-se usar quando:

  • a maioria das transações se originam e são processadas onde se localizam;

  • é alto o volume de processamento local;

  • há necessidade de alto nível de performance;

  • dados de outros locais são raramente acessados e não há processamento sobre os dados como um todo.

Master é a cópia principal, que pode estar nos locais ou na matriz e onde os dados vão estar em sua forma final e íntegros no conjunto. Caso não haja motivos para o assunto de informação ser particionado, então ele terá um master.

Replicação é a manutenção de cópias idênticas de dados em locais diferentes (não sofre atualização). Deve ser usado quando:

  • há a necessidade de evitar transmissão de dados entre locais;

  • a relação custo de memória x custo de transmissão é favorável;

  • possibilita ganhos em disponibilidade, já que a indisponibilidade em um local não interfere nos outros;

  • a frequência de acesso aos dados é bem maior que a freqüência de atualizações;

  • há alta freqüência de atualização, porém as réplicas podem ser atualizadas assíncronamente (processo batch-noturno).

Subconjunto é a forma pela qual subconjuntos de dados armazenados em locais diferentes têm como referência um conjunto total armazenado em um local específico (sofre atualização). Deve ser usada quando:

  • tiver alta freqüência de utilização de um subconjunto dos dados em um local específico;

  • o subconjunto dos dados é criado em um local específico;

  • possibilita ganhos em disponibilidade, já que a indisponibilidade em um local não interfere nos outros.

Extração é a forma pela qual os dados selecionados (subconjunto horizontal e/ou vertical, níveis de consolidação, dados derivados, etc.) são extraídos do master e copiados em outro local. São geralmente informações gerenciais. É muito utilizada para sistemas de apoio à decisão, onde os dados não precisam estar atualizados sincronamente. A formatação de dados deve estar de maneira a atender melhor as consultas de cada local. Normalmente os dados extraídos não sofrem atualização.

No teleprocessamento os dados não são armazenados no local, o acesso é remoto, via teleprocessamento. Deve ser usado quando:

  • tem baixa freqüência de acesso e nenhuma ou pouca atualização;

  • há falta de capacidade de armazenamento no local, mas com necessidade de acessar os dados;

  • há recursos favoráveis para a implantação de procedimentos para casos de falhas na comunicação.

A palestrante atenta para o fato que às vezes o recurso de comunicação determina a forma de distribuição.

Os passos da metodologia para distribuição lógica de dados são:

  • definir a matriz assunto de informação x local;

  • definir se o assunto de informação deve ser centralizado ou distribuído;

  • definir se o assunto de informação deve ou não ser particionado;

  • definir a forma de distribuição do assunto de informação.

Para se obter a matriz assunto de informação x local devemos ter o modelo conceitual de dados, o diagrama de fluxo de dados nível 1, definir a matriz processo x local e a matriz processo x assunto de informação.

Para se obter a matriz processo x local deve-se cruzar em uma tabela os possíveis locais de processamento definidos anteriormente com os principais processos levantados no DFD nível 1.

Para se obter a matriz processo x assunto de informação deve-se cruzar em uma tabela todos os assuntos de informação levantados com os principais processos levantados no DFD nível 1. Os assuntos de informação são obtidos a partir do modelo conceitual de dados. Neste modelo, é feita uma análise de afinidades de acordo com as regras da engenharia da informação e quebrado em vários assuntos fortemente relacionados. Esta matriz é uma simplificação da matriz CRUD onde, C - cria (inclui, exclui) e U - utiliza (lê ou altera).

 

Processo\Local Agência Caixas Automáticas Cobrança Central de Informações Administração de Conta Corrente
Libera empréstimo X        
Paga empréstimo X X      
Emite cartão/talão de cheque         X
Autoriza limite de crédito X     X  
Movimenta conta X X   X X
Emite carnê cobrança     X    
Mantém conta         X
Presta informações e serviços X     X  
Mantém cliente         X

 

Processo\Assunto Atendimento a Cliente Conta Poupança Conta Corrente Empréstimo Cliente
Libera empréstimo       C U
Paga empréstimo     U U U
Emite cartão/talão de cheque     U   U
Autoriza limite de crédito C   U   U
Movimenta conta U U U   U
Emite carnê cobrança U   U   U
Mantém conta C C C   U
Presta informações e serviços C       U
Mantém cliente         C

 Juntando as duas matrizes anteriores, obtemos a matriz assunto de informação x local.

Local\Assunto Atendimento a Cliente Conta Poupança Conta Corrente Empréstimo Cliente
Administração de Conta Corrente C C C   C
Central de Informações C U U   U
Cobrança U   U   U
Caixas Automáticas U U U U U
Agência C U U C U

Definindo os tipos de distribuição para a matriz assunto de informação x local, temos o plano de compartilhamento lógico de dados.
 

Local\Assunto Atendimento a Cliente Conta Poupança Conta Corrente Empréstimo Cliente
Administração de Conta Corrente S M M - M
Central de Informações M R R - T
Cobrança T - T - T
Caixas Automáticas T T T T T
Agência S S S P T
onde os tipos de distribuição são: M - Master,
  P - Particionado,
  E - Extração,
  R - Replicação,
  S - Subconjunto,
  T - Teleprocessamento.


A distribuição física depende dos recursos tecnológicos, capacidade ou restrição de hardware, rede e de sistemas gerenciadores de banco de dados. Em distribuição física a palestrante se utiliza de alguns conceitos que veremos a seguir.

Um assunto de informação do modelo lógico de distribuição pode ser formado por várias tabelas.

Um assunto de distribuição é subconjunto de assunto de informação (1 ou 2 tabelas).

Local físico é um servidor com capacidade de armazenamento.

Existem duas formas de atualização: síncrona e assíncrona. A forma síncrona é atualizada ao mesmo tempo nos vários locais. Geralmente implementado por 2-phase-commit, pode ocorrer degradação de performance, pois todos os locais devem estar disponíveis. A forma assíncrona é atualizada algum tempo depois da cópia principal, podendo este tempo variar em minutos ou horas.

Local\Assunto Cliente Pessoa Jurídica Cliente Pessoa Física Cliente Potencial Cliente Desativado Cliente Ativo
Administração de Conta Corrente T T M T T
Compensação Cheques M M - - M
Abertura e Adm. de Contas T T T M T
Central de Serviços T T T T T
Cobrança T T - - T
Caixas Automáticas T T - - T
Agência T T T T T
Caixas Atend. Público T T - - T
Operações Financeiras T T - - T

Os passos para metodologia de distribuição física dos dados são:

  • definir os assuntos de distribuição;

  • identificar os locais de distribuição;

  • definir a forma de atualização;

  • definir a distribuição física dos assuntos de distribuição;

Através do modelo lógico, transformar o modelo conceitual em estruturas de banco de dados (tabelas) identificando assuntos de distribuição. Os assuntos de distribuição são identificados da mesma forma que a análise de afinidade, estão fortemente relacionados, e têm que estar no mesmo ambiente.

Deve ser gerado um modelo físico para cada local físico, que é derivado de um único modelo lógico, que por sua vez é derivado de um modelo conceitual de dados. Com isto teremos mais de um plano de compartilhamento físico.

Para se chegar no plano de compartilhamento físico de dados deve-se cruzar em uma tabela os locais de distribuição (servidores) com todos os assuntos de distribuição identificados. No exemplo, o assunto de informação cliente foi desmembrado em vários assuntos de distribuição e os locais da distribuição lógica foram adaptados para locais onde terão servidores.

Não concordo plenamente com a metodologia, principalmente com o modelo de distribuição física, mas, com algumas adaptações, acho que é um bom ponto de partida para desenvolvermos uma metodologia de distribuição de dados.