Você está na página 1de 9

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 definlo. 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.

-1-

Esquema
Externo

Esquema
Externo

Esquema
Conceitual

Esquema Interno

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.

-2-

Esquema Externo Global

Esquema Externo Global

Esquema Conceitual Global

Esquema Conceitual Local

Esquema Conceitual Local

Esquema Interno Local

Esquema Interno Local

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 esquemas externos globais no modelo de dados pivot; 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; no modelo de dados local; no modelo de dados local.

esquemas conceituais locais esquemas externos locais

-3-

Esquema Externo Local

Esquema Externo Local

Esquema Conceitual Local

Esquema Interno Local

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 ]

-4-

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.

-5-

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;

-6-

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 -pequeno replicao pequena grande particionamento alta grande 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.

-7-

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

-8-

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.

-9-

Você também pode gostar