You are on page 1of 9

- 1 -

CAPTULO 2. BANCOS DE DADOS DISTRIBUDOS


Este captulo inicia com uma proposta para estruturao da descrio de bancos de dados
distribudos, que estende aquela sugerida pela ANSI/SPARC os centralizados. Em seguida, os
problemas de projeto e administrao de um banco de dados distribudo so discutidos.
2.1 ESPECIFICAO DE BANCOS DE DADOS DISTRIBUDOS
A forma usual adotada para descrio de bancos de dados centralizados inicialmente
apresentada e, em seguida, estendida para bancos distribudos. Um pequeno exemplo da
descrio de um banco de dados distribudo completa a seo.
2.1.1 Descrio de Bancos de Dados Centralizados
A descrio de um banco de dados centralizado usualmente est dividida em trs nveis:
conceitual ou lgico, interno ou fsico e externo (vide Figura 2.1).
A descrio a nvel lgico forma o esquema conceitual do banco de dados. O esquema
conceitual deve apresentar uma viso de alto nvel do banco, independente da forma de
armazenamento refletindo apenas a semntica do empreendimento que est sendo modelado.
O esquema conceitual consiste de um conjunto de estruturas de dados descrevendo como os
dados esto organizados do ponto de vista lgico, alm de um conjunto de restries de
integridade indicando que conjuntos de dados corretamente refletem situaes do mundo real.
A classe de estruturas de dados e restries de integridade permitidas so determinadas pelo
modelo de dados escolhido.
Ao nvel interno ou fsico, obtm-se uma representao eficiente do esquema conceitual em
termos dos mtodos de acesso e estruturas de arquivos oferecidas pelo sistema de gerncia de
banco de dados. O resultado chamado de esquema interno do banco. A existncia de um
esquema interno separado do esquema conceitual bastante importante pois os detalhes de
armazenamento do banco devem ser transparentes (ou mesmo irrelevantes) ao
desenvolvimento de programas de aplicao. O esquema interno no deve ser visvel aos
usurios ou analistas de aplicao, sendo responsabilidade do administrador do banco defin-
lo. Alm disto, espera-se de um bom sistema de gerncia de banco de dados que permita
mudar o esquema interno do banco sem alterar os programas de aplicao. Ou seja, o SGBD
deve permitir alcanar o que chamamos de independncia fsica de dados.
Finalmente, pode-se criar uma viso especializada do banco para cada grupo de usurios,
ainda do ponto de vista lgico, atravs da definio de um esquema externo para cada grupo.
Esquemas externos facilitam o desenvolvimento de aplicaes j que focalizam apenas a
parte do banco que interessa aplicao, escondendo parte da complexidade do banco.
Esquemas externos tambm so teis como uma forma de restringir o acesso a dados
classificados por parte de grupos de usurios.
- 2 -
Figura 2.1 - Um Banco de Dados Centralizado
2.1.2 Descrio de Bancos de Dados Distribudos
A descrio de um banco de dados distribudo, refletindo os requisitos de que a localizao e
replicao dos dados deve ser transparente aos usurios do BDD e de que o sistemas locais
devem manter sua autonomia, apresentada a seguir (vide Figura 2.2).
O requisito postulando que a distribuio do BDD deve ser transparente ao usurio pode ser
entendido como indicando que, a nvel lgico, um BDD deve ser visto como se fosse um
banco de dados centralizado. Desta forma, deve existir
um esquema conceitual global descrevendo o BDD a nvel lgico e ignorando o fato
deste ser distribudo e
vrios esquemas externos globais descrevendo vises do BDD para grupos de usurios.
Estes dois primeiros nveis so, portanto, idnticos para bancos de dados centralizados e
distribudos.
O esquema conceitual global no mapeado diretamente em esquemas internos nos diversos
ns onde residir o banco. Esta alternativa aglutinaria em um nico passo os problemas de se
definir tanto o critrio de distribuio do banco como tambm a estratgia de armazenamento
do banco em cada n. Para evitar este inconveniente, introduz-se para cada n onde uma
parte do banco estar armazenada um esquema conceitual local descrevendo o banco de
dados local. O mapeamento do esquema conceitual global para os vrios esquemas
conceituais locais define, ento, o critrio de distribuio usado.
A estratgia de armazenamento de cada banco de dados local definida mapeando-se o
esquema conceitual local que o define em um esquema interno local. Cada n possui,
portando, uma descrio completa, a nvel lgico e fsico, do banco ali armazenado.
Esquema
Conceitual
Esquema
Interno
Esquema
Externo
Esquema
Externo
- 3 -
Figura 2.2 - Um Banco de Dados Distribudo
O conceito de um banco de dados local mais facilmente justificado frente ao requisito
indicando que sistemas locais devem manter sua autonomia. Assim, faz sentido introduzir
tambm esquemas externos locais em cada n descrevendo vises do banco de dados local
para cada grupo de usurios locais (ver Figura 2.3).
A descrio de um banco de dados distribudo afetada pelo tipo de sistema da seguinte
forma. Se o SGBD for homogneo, todos os esquemas a nvel lgico utilizaro o mesmo
modelo de dados. J no caso de sistemas heterogneos, teremos a seguinte situao:
esquema conceitual global no modelo de dados pivot;
esquemas externos globais podem ser tanto no modelo de dados pivot, para usurios globais,
ou em um modelo de dados local, no caso de se desejar oferecer a
um usurio local uma viso do BDD no modelo que ele est
acostumado;
esquemas conceituais locais no modelo de dados local;
esquemas externos locais no modelo de dados local.
Esquema
Conceitual
Global
Esquema
Externo
Global
Esquema
Externo
Global
Esquema
Conceitual
Local
Esquema
Conceitual
Local
Esquema
Interno
Local
Esquema
Interno
Local
- 4 -
Figura 2.3 - Um Banco de Dados Local
2.1.3 Um Exemplo da Descrio de Bancos de Dados Distribudos
O banco de dados usado como exemplo refere-se a fornecedores, com nmero, nome e
cidade-sede; peas, com cdigo e nome; e fornecimentos relacionando um fornecedor a cada
pea que fornece e indicando a quantidade fornecida. Assumindo que o banco descrito no
modelo relacional, o esquema conceitual seria:
Esquema Conceitual Global
FORNECEDORES [ NUMERO,NOME,SEDE ]
PECAS [ CODIGO,NOME,COR,PESO ]
FORNECIMENTO [ NUMERO,CODIGO,QUANTIDADE ]
Poderamos definir dois esquemas externos globais da seguinte forma:
Esquema Externo Global A:
Esquema de relao:
FORN_PECA [ NUMERO,CODIGO,NOME ]
Definio:
FORN_PECA = (FORNECIMENTO * PECAS) [ NUMERO,CODIGO,NOME ]
Esquema
Conceitual
Local
Esquema
Externo
Local
Esquema
Externo
Local
Esquema
Interno
Local
- 5 -
Esquema Externo Global B:
Esquema de relao:
FORN_PECA [ NUMERO,CODIGO ]
Definio:
FORN_PECA = FORNECIMENTO [ NUMERO,CODIGO ]
Nota: lgebra relacional ser usada para indicar mapeamentos neste exemplo; a operao de
juno natural ser indicada pelo smbolo '*' e as operaes de projeo e seleo sero
denotadas da forma usual, ou seja, R[X] indicar a projeo de R na lista de atributos X e R[B],
onde B uma qualificao, indicar uma seleo das tuplas de R que satisfazem B.
Assumindo que o sistema homogneo e distribudo em apenas dois ns, os esquemas
conceituais locais e a distribuio do esquema conceitual global seriam ento descritos da
forma abaixo (o primeiro n conter todos os fornecedores com sede em Passa Trs, todos os
fornecimentos em que esto envolvidos e o nome e cdigo das peas; o segundo n conter o
resto dos fornecedores e seus fornecimentos, alm do cdigo, cor e peso das peas.
Esquemas Conceituais Locais:
Primeiro N:
FORNECEDORES1 [ NUMERO,NOME,SEDE ]
PECAS1 [ CODIGO,NOME ]
FORNECIMENTO1 [ NUMERO,CODIGO,QUANTIDADE ]
Segundo N:
FORNECEDORES2 [ NUMERO,NOME,SEDE ]
PECAS2 [ CODIGO,COR,PESO ]
FORNECIMENTO2 [ NUMERO,CODIGO,QUANTIDADE ]
Mapeamentos Definindo o Critrio de Distribuio:
Primeiro N:
FORNECEDORES1 = FORNECEDORES [ SEDE='PASSA TRES' ]
PECAS1 = PECAS [ CODIGO,NOME ]
FORNECIMENTO1 = FORNECIMENTO * (FORNECEDORES1 [ NUMERO]
Segundo N:
FORNECEDORES2 = FORNECEDORES [ SEDE 'PASSA TRES' ]
FORNECIMENTO2 = FORNECIMENTO * (FORNECEDORES2 [ NUMERO]
PECAS2 = PECAS [ CODIGO,COR,PESO ]
Como os esquemas internos locais dependem do SGBD local em questo, no faz sentido
apresent-los aqui. Esquemas externos locais tambm so omitidos.
- 6 -
2.2 PROJETO DE BANCOS DE DADOS DISTRIBUDOS
A breve discusso sobre o projeto de bancos de dados distribudos apresentada nesta seo
baseia-se em certas observaes simples. Em primeiro lugar, o projeto do esquema conceitual
global e o dos esquemas externos globais inteiramente semelhante ao caso centralizado, j
que o banco de dados distribudo dever se comportar como centralizado perante os usurios
globais. Alm disto, o projeto dos esquemas internos locais tambm idntico ao de bancos
centralizados, exceto que a carga imposta por acessos remotos aos dados locais tambm deve
ser levada em considerao. Portanto, o problema bsico de projeto de bancos de dados
distribudos reside no projeto dos esquemas conceituais locais, pois estes refletem a
estratgia de distribuio do banco.
As estratgias de distribuio so classificadas em particionamento e replicao. Seja D uma
estrutura (lgica) de dados do esquema conceitual global. Dizemos que D particionada
verticalmente (ou estruturalmente) quando D mapeada em duas ou mais estruturas (lgicas)
de dados que no so idnticas a D e que pertencem a diferentes esquemas conceituais locais.
Dizemos que D particionada horizontalmente (ou particionada por ocorrncia) quando D
mapeada em estruturas idnticas a D e pertencentes a dois ou mais esquemas conceituais
locais de tal forma que o mapeamento define um particionamento (no sentido matemtico) do
conjunto de dados associado a D.
No exemplo da seo anterior, FORNECEDORES foi particionada horizontalmente em
FORNECEDORES1 e FORNECEDORES2, o mesmo acontecendo com FORNECIMENTO. J PECAS
foi particionada verticalmente em PECAS1 e PECAS2.
Dizemos que D replicada quando D mapeada em duas ou mais estruturas (lgicas) de
dados idnticas a D e pertencentes a diferentes esquemas conceituais locais de tal forma que
o apeamento de D em cada uma destas estruturas sempre a identidade. Ou seja, existiro
cpias idnticas do conjunto de dados associado a D armazenadas em dois ou mais ns. A
replicao total quando cada banco de dados local contm uma cpia completa do banco.
Caso contrrio a replicao parcial.
A escolha da estratgia de distribuio do banco exige cuidados especiais pois se vier a gerar
um trfego de dados exagerado entre os vrios ns, o custo de comunicao tornar o projeto
anti-econmico.
Inicialmente, deve-se verificar se a soluo distribuda de fato uma opo vivel. Isto
significa, essencialmente, detetar se o banco fortemente integrado, ou se pode ser dividido
em partes mais ou menos independentes; se este for o caso, deve-se ento determinar qual a
vantagem de descentralizar o banco. Um estudo do perfil da populao de transaes
existentes no sistema centralizado em uso (se este for o caso) dever ser feito, tentando
determinar se possvel dividir o sistema - banco de dados e transaes - em subsistemas
mais ou menos independentes. Se este for o caso, o custo de transmisso de dados dever ser
reduzido, descentralizando-se o banco e suas funes. Acessos que cortem fronteiras
geogrficas ainda sero suportados, desde que no sejam muito freqentes.
Uma vez identificado que a soluo distribuda vivel, deve-se escolher a tcnica de
distribuio, levando-se em conta os seguintes fatores:
um BDD particionado no fica limitado memria secundria disponvel localmente e,
comparativamente a uma soluo centralizada (com acesso distribudo), aumenta a
confiabilidade e eficincia do sistema, se h um alto grau de localidade de referncia;
- 7 -
um BDD replicado aumenta a confiabilidade, disponibilidade e pode aumentar a rapidez
do sistema, mas por outro lado cria problemas de propagao de atualizaes nos dados e
exige mais memria secundria local.
Naturalmente, o grau de replicao do BDD traduz um compromisso entre o custo de acesso
a dados remotos e o custo de atualizar cpias mltiplas.
Um resumo desta discusso encontra-se na tabela abaixo:
RESUMO DAS ESTRATGIAS DE DISTRIBUIO
% de Excees Tamanho do Arquivo Mtodo de Distribuio
--
pequena
alta
pequeno
grande
grande
replicao
particionamento
centralizado
Nota: percentagem de excees refere-se freqncia com que uma transao necessita de
dados que no esto armazenados localmente.
Por fim, consideraes envolvendo "hardware" devem ser mencionadas com relao ao
projeto de BDDs. A anlise do equipamento necessrio dever responder, pelo menos, s
seguintes perguntas: Que processadores existem na organizao (ou precisam ser
adquiridos)? Qual a configurao mnima dos processadores para suportar o SGBDD? Que
perifricos so necessrios? Que equipamentos de comunicao de dados so necessrio para
interligar os processadores?
Isto encerra a nossa breve discusso sobre projeto de BDDs.
2.3 ADMINISTRAO DE BANCOS DE DADOS DISTRIBUDOS
Nesta seo so abordados os problemas, as tarefas e a organizao da equipe de
administrao de um banco de dadosdistribudo.
2.3.1 Organizao e Tarefas da Equipe de Administrao
A organizao da equipe de administrao, no caso distribudo, deve acompanhar a prpria
estratgia de descentralizao. Controle centralizado de um banco distribudo no faz sentido.
Uma organizao plausvel seria criar uma equipe local para cada n onde o banco reside
com autoridade para propor e implementar mudanas em detalhe no banco local e nos
esquemas externos locais. Haveria ainda uma equipe central com autoridade para coordenar
e vetar, se necessrio, mudanas no sistema (a serem implementadas pelas equipes locais).
As tarefas tradicionais da equipe de administrao de um banco de dados (centralizado)
incluem o projeto lgico e fsico do banco e sua documentao, definio dos vrios
esquemas externos em consulta com os analistas de aplicao, definio dos critrios de
autorizao, criao de rotinas de recuperao do banco, monitorao da utilizao do banco
e reestruturao do banco. No caso de bancos de dados distribudos, deve-se acrescentar
ainda a tarefa mais geral de garantir a cooperao entre os usurios em prol de uma
compartilhao efetiva dos dados.
- 8 -
Trs facetas da administrao de um BDD merecem especial ateno: documentao do
banco, administrao dos recursos locais de cada sistema e monitorao do sistema. (A tarefa
bsica de projeto lgico e fsico do banco j foi brevemente abordada na seo anterior).
A documentao do BDD deve tornar claro a todos os usurios o significado dos tens de
dados armazenados pelo banco. Isto requer regras para sistematizar a nomenclatura e a
descrio informal dos tens de dados, definio dos tipos de cada tem de dados e regras para
traduzir um tipo utilizado em uma mquina para o tipo equivalente de outra (e.g.,
representao e preciso de reais em mquinas diferentes).
A administrao da carga imposta a cada sistema que compe o BDD exige, antes de mais
nada, a definio de critrios de medio. Feito isto, necessrio criar regras que assegurem a
usurios remotos acesso a recursos locais e que atinjam um balanceamento entre a carga local
e a imposta por acessos remotos. Administrao da carga inclui, tambm, definir como ser
cobrado aos usurios locais e remotos a utilizao do sistema.
Finalmente, uma vez estabelecidas regras para administrao do banco, a equipe dever
auditar periodicamente o sistema para assegurar a aderncia a tais regras. A carga, tempo de
resposta e utilizao do sistema dever ser constantemente monitorada, prevendo-se
reestruturao do banco ou mudanas nas regras de administrao para corrigir
desequilbrios.
2.3.2 Problemas que Afetam a Administrao
Os problemas a serem enfrentados pela equipe de administrao para atingir os seus objetivos
podem ser compreendidos considerando-se trs cenrios bsicos para um banco de dados
distribudo.
Se o BDD resultou da interligao de sistemas existentes ento certamente aparecero
problemas devidos a: heterogeneidade do sistema global, introduo de padres globais sem
que seja comprometida a autonomia local, critrios de alocao de custos tendo em vista
acessos locais e remotos, alm do balanceamento do tempo de resposta de acessos locais e
remotos.
Se o cenrio admite a criao de novos bancos locais de forma semi-autnoma, aparecero
problemas relativos a: definio de regras e responsabilidades locais, descrio da semntica
dos dados definidos localmente, grau de cooperao entre os ncleos locais, principalmente
no que se refere alocao de recursos para processamento de acessos remotos.
Finalmente, em um cenrio onde o BDD foi criado pela distribuio em ns homogneos de
um sistema centralizado, haver o problema fundamental de definir uma estratgia de
distribuio que otimize o tempo de resposta global, sem penalizar demasiadamente grupos
de usurios.
NOTAS BIBLIOGRFICAS
O relatrio do CODASYL Systems Commitee [1982] discute extensivamente as principais
caractersticas, formas de organizao, problemas de administrao, etc. de BDDs. Gross et
all. [1980] contm uma discusso interessante dos problemas de administrao. Champine
[1978] apresenta vrios exemplos de BDDs. Shertock [1982] descreve o esforo da Philips
do Brasil na rea de sistemas distribudos. Schreiber, Baldissera e Ceri [1980] aborda, de um
ponto de vista genrico, aplicaes de BDDs. O problema de alocao de arquivos em um
- 9 -
sistema distribudo, assunto abordado muito superficialmente neste captulo, de primordial
importncia no projeto de BDDs. Este problema bastante semelhante ao problema clssico
de transporte em Pesquisa Operacional. Downy e Foster [1982] resume os principais modelos
e solues desenvolvidos para o problema de alocao de arquivos e Wah [1984] contm uma
introduo bastante interessante sobre o problema. Apers [1983] contm uma discusso longa
sobre o problema de alocao de arquivos em bancos de dados distribudos.

You might also like