RESUMO

Este trabalho tem por objetivo a breve apresentação de um modelo de Bancos de Dados distribuído implementado em uma Instituição do Sistema Financeiro Nacional, explicando brevemente cada um dos 12 princípios que caracterizam este tipo de Sistema de Bancos de Dados. Palavras-chave: Bancos de Dados. Bancos de Dados Distribuídos. Computação Distribuída. Redes de Telecomunicação.

An example of implementation of Data bank Distributed

ABSTRACT

This work aims at a brief presentation of a model of Databases distributed implemented in an institution of the National Financial System, briefly explaining each of the 12 principles that characterize this type of database systems.

Keywords: Databases. Distributed Databases. Distributed Computing. Telecommuni-cations Networks.

INTRODUÇÃO

Nos anos 70, houve uma implementação de uma nova solução de informática jamais utilizada antes para o Programa SETI (Search for Extra-Terrestrial Intelligence). Este Programa tinha como objetivo encontrar formas de vida inteligentes extraterrestres por meio da captura e análise de todas as ondas de rádio que viessem do espaço. Se fosse encontrado um sinal portador de uma possível comunicação, seria possível encontrar de onde ele foi transmitido e aí estudar a possibilidade de transmitir uma resposta. Mas


como analisar toda a grande carga de ondas recebidas diariamente? A resposta foi a computação distribuída. Diversos computadores processariam as ondas em busca dos sinais desejados.

Na mesma época também havia um grande esforço no desenvolvimento de bancos de dados mais eficientes. Daí veio a grande proposta de distribuir o armazenamento e o processamento das informações de um SGBD, surgindo assim, os bancos de dados distribuídos.

Hoje, existem diversas instituições de grande porte que necessitam do cruzamento de largas quantidades de dados para dar vazão às suas transações. Este processamento, por enquanto, não pode ser feito somente em um servidor. Sendo necessária a instanciação de diversos sites contendo partes do SGBD. Estes são os Sistemas de Bancos de Dados Distribuídos.

Bancos de Dados Distribuídos são soluções de acesso, manipulação e armazenamento seguro de dados que se valem do princípio do processamento e armazenamento distribuído em uma rede de computadores que pode ser local, virtual ou de longa distância.

Um banco de dados distribuído oferece muitas vantagens sobre um banco de dados monolítico, porém sua implementação é mais cara e exige uma manutenção mais trabalhosa que um banco de dados comum. Para maior compreensão dos conceitos expostos, será esboçada brevemente uma solução utilizada em uma Instituição Financeira de abrangência nacional.


JUSTIFICATIVA

Para uma maior compreensão de sistemas de bancos de dados distribuídos é relevante a descrição de exemplos. Além disso, há uma crescente onda de descentralização de fontes de dados, assim como de núcleos de processamento, trazida pela Internet. Em um futuro próximo teremos diversos serviços distribuídos.


CARACTERÍSTICAS DE UM SISTEMA DE BANCO DE DADOS DISTRIBUÍDO

Um banco de dados distribuído é fundamentado em 12 regras:

  • Autonomia local – apesar de existirem diversos sites no sistema, para o cliente existe somente um servidor de dados, sendo transparente para o mesmo, a distribuição tanto dos dados como do processamento. Para o sistema da Caixa Econômica Federal existem três importantes sites, mas para o cliente existe somente um banco de dados.
  • Inexistência de um site central – em um sistema distribuído não há uma hierarquia de sites, mas todos podem trabalhar independentemente. Com a queda de um site, o sistema continua executando, mas com uma redução de recursos proporcional à representação do potencial computacional do site que caiu em relação ao sistema. Não há um servidor mestre, nem um escravo no sistema da Caixa. Não há uma hierarquia entre eles. Há uma distribuição de atividades que o sistema deve executar de maneira igual.
  • Operação contínua – uma importante característica de um sistema de dados distribuído é a sua alta tolerância a falhas tanto de hardware, software, como de rede. Em um sistema monolítico, havendo falha em qualquer dos quesitos mencionados anteriormente, ocorre a indisponibilidade do mesmo. Em um sistema distribuído, as chances de indisponibilidade são inversamente proporcionais à quantidade de sites. Havendo falha em um site, o sistema poderá continuar processando de forma reduzida ao invés de sair do ar. Há uma queda de performance, e até indisponibilidade de alguns dados, mas não a indisponibilidade do serviço. Já houve queda de um ou dois sites do sistema existente da Caixa Econômica, mas o mesmo nunca saiu do ar. É claro que o sistema ficou seriamente comprometido, mas não saiu do ar.
  • Independência de localização – em um sistema distribuído, o cliente solicitará qualquer dado existente no sistema sem a preocupação em acessar o site onde se encontra armazenada cada informação. Para o cliente, todas as informações estarão no site que ele acessa. No caso do sistema utilizado pela Caixa Econômica, já foi mencionado que existem três sites, mas para os clientes existe somente um serviço de dados.
  • Independência de fragmentação – um sistema de bancos de dados distribuído deverá acatar a possibilidade fragmentar os dados de forma a manter em um site as informações que seus clientes solicitam mais, distribuindo assim os dados e o processamento das informações. Estes dados são unificados por meio de junções para fragmentações verticais e de uniões para fragmentações horizontais. Para o cliente esta fragmentação não é visível. Exemplo: No sistema da Caixa há uma divisão geográfica da informação: dados referentes a clientes de São Paulo estão na base de São Paulo, Rio de Janeiro concentra as informações do centro-sul-brasileiro, e a base de Brasília armazena dados das regiões norte e nordeste. Mas para o usuário do sistema, estas informações estão em um único site.
  • Processamento de consultas distribuído – o sistema distribuído é capaz de envolver diversos sites na otimização e execução de consultas a dados considerando a localização dos mesmos, sendo transparente para o usuário.
  • No Sistema da Caixa, quando o cliente se encontra em São Luiz – MA e solicita dados existentes em São Paulo, a requisição vai para o site em Brasília, que divide a solicitação com o site do Rio de Janeiro para otimização da consulta e recuperação da informação.
  • Gerenciamento de transações distribuído – um sistema distribuído será capaz de conferir atomicidade a uma transação, mesmo que a mesma envolva sites diferentes.No sistema da Caixa Econômica, quando há uma transferência de valores de uma conta armazenada no site São Paulo para outra armazenada site Rio de Janeiro o valor é retirado da conta do site São Paulo e depositada no site Rio de Janeiro, havendo a confirmação desta transação somente no término da mesma. Isto confere atomicidade a uma transação distribuída.
  • Independência de hardware – um sistema de dados distribuído deve operar em cima de uma abstração de software capaz de operar em diferentes arquiteturas – daí o suporte a diversos tipos de hardwares. O serviço de dados distribuído da Caixa está instanciado na arquitetura de grande porte por razões de facilidade de manutenção a uma arquitetura homogênea, para aproveitar o maior poder de processamento dos mainframes.
  • Independência de sistema operacional – um sistema de dados distribuído assim como deve oferecer tolerância a diversas arquiteturas, deverá oferecer implementação em diversos sistemas operacionais por meio de versões do SGBD capazes de operar em diversos sistemas operacionais. No caso do sistema utilizado na CAIXA o SGBD utilizado é o DB2 da IBM que pode ser utilizado em diversos sistemas Operacionais.
  • Independência da rede – se o SGBD utilizado para implantação da rede distribuída suporta diversos sistemas operacionais, deverá ser capaz de operar sobre um sistema operacional que tenha suporte a diversos tipos de rede.
  • Independência de SGBD – o sistema de bancos de dados distribuído poderá ter sites implementados com SGBDs diferentes. No sistema da CEF, é utilizado somente o DB2, mas se for viável, poderá ser instanciado um site com outro SGBD.

CONSIDERAÇÕES SOBRE O SGBDD DA CEF

Como instituição financeira de alcance nacional, a Caixa Econômica Federal opera com serviços de bancos de dados distribuídos para poder fazer frente à grande quantidade de transações efetuadas diariamente. Este sistema é mais tolerante a falhas de rede, de hardware ou software em qualquer dos sites do sistema além de oferecer melhor desempenho, pois o processamento é distribuído.

O SGBDD em questão possui uma distribuição geográfica em três grandes sites: Brasília, São Paulo e Rio de Janeiro. Cada site está interligado aos outros por conexão via satélite, localizados no backbone da CAIXA, constituindo uma WAN.


Figura 1: Ilustração do modelo adotado pela CEF

CONCLUSÃO

Com o advento do processamento distribuído de informações surgiram os Sistemas de Bancos de Dados Distribuídos. Estes sistemas possuem dois ou mais sites que poderão estar distribuídos em LANs ou WANs.

Para que um Sistema de Bancos de Dados Distribuído seja autêntico ele precisa se enquadrar em doze requisitos que garantem a transparência da distribuição do processamento ao cliente, a segurança e a portabilidade do mesmo. Existirão muitas situações em que um Sistema de Banco de Dados Distribuído se enquadrará parcialmente em um destes requisitos.

Nosso exemplo de Implementação de Banco de Dados Distribuído atende a todos os requisitos necessários a um Sistema de Banco de Dados Distribuído, mas peca pela pequena quantidade de sites para atendimento da rede de mais de 5.000 agências que dependem deste serviço.

É importante lembrar que um Sistema de Banco de Dados Distribuído oferece maior disponibilidade, confiabilidade, segurança e maior desempenho. Porém sua implementação é mais cara e sua manutenção é mais dispendiosa. Um banco de dados distribuído é uma solução ideal para sistemas de alta disponibilidade como bancos e grandes sites de compras da Internet. Cabe ao engenheiro do sistema escolher a opção de armazenamento e acesso a dados mais viável para sua aplicação.

BIBLIOGRAFIA

MACHADO, Taylor Montedo. Sistemas de Bancos de Dados. Brasília: CETEB.

VASCONCELOS, Ednewton de. Banco de Dados Distribuídos. Brasília: CETEB.

Capítulo II.

WIKIPÉDIA, A enciclopédia livre. SETI. Idioma: inglês.

<http://en.wikipedia.org/wiki/SETI>

WIKIPÉDIA, A enciclopédia livre. SETI.

<http://pt.wikipedia.org/wiki/SETI>

WIKIPÉDIA, A enciclopédia livre. DB2.

<http://pt.wikipedia.org/wiki/Db2>