Você está na página 1de 22

Banco de Dados

Distribuídos
Material Teórico
Banco de Dados Distribuídos

Responsável pelo Conteúdo:


Prof. Me. Marcel Thomé Filho

Revisão Textual:
Prof.ª Me. Sandra Regina Fonseca
Banco de Dados Distribuídos

• Caracterização de um Sistema de Banco de


Dados Distribuído;
• Vantagens e Desvantagens no Uso de um
Banco de Dados Distribuído;
• Projeto de BDD – Preocupação com Aplicação Prática.

OBJETIVO DE APRENDIZADO
• Compreender a importância dos estudos de conceitos sobre a distribuição de dados
em ambientes de multiusuários, Web, dentre outros;
• Demonstrar seu compartilhamento utilizando estrutura de banco de dados adequa-
da a estas situações de distribuição de dados.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem
aproveitado e haja maior aplicabilidade na sua
formação acadêmica e atuação profissional, siga
algumas recomendações básicas:
Conserve seu
material e local de
estudos sempre
organizados.
Aproveite as
Procure manter indicações
contato com seus de Material
colegas e tutores Complementar.
para trocar ideias!
Determine um Isso amplia a
horário fixo aprendizagem.
para estudar.

Mantenha o foco!
Evite se distrair com
as redes sociais.

Seja original!
Nunca plagie
trabalhos.

Não se esqueça
de se alimentar
Assim: e de se manter
Organize seus estudos de maneira que passem a fazer parte hidratado.
da sua rotina. Por exemplo, você poderá determinar um dia e
horário fixos como seu “momento do estudo”;

Procure se alimentar e se hidratar quando for estudar; lembre-se de que uma


alimentação saudável pode proporcionar melhor aproveitamento do estudo;

No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, vídeos e
sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, você tam-
bém encontrará sugestões de conteúdo extra no item Material Complementar, que ampliarão
sua interpretação e auxiliarão no pleno entendimento dos temas abordados;

Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de discus-
são, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de propiciar o
contato com seus colegas e tutores, o que se apresenta como rico espaço de troca de ideias e
de aprendizagem.
UNIDADE Banco de Dados Distribuídos

Introdução
Olá, agora que já conhecemos ou relembramos alguns conceitos básicos sobre
banco de dados, chegando aos conceitos sobre os sistemas gerenciadores de banco
de dados, podemos avançar e conversar sobre o que mais interessa neste item, que
é o compartilhamento de dados.
Explor

Como será que isso ocorre?

A utilização de recursos onde existe a distribuição ou a captação de dados em


lugar totalmente diferente permite que alguns cenários possam ser pensados e
desenvolvidos. Aproveitando-nos desta situação ou deste cenário, as aplicações atuais
possuem diversas caras, por exemplo: uma aplicação pode possuir uma interface que
é apresentada por uma página web, um aplicativo pode ter sua visualização através
de um App para celular, um aplicativo para tablet, ou ainda mais tradicional como a
sua usabilidade em computadores desktop.
Para um profissional que se destina a desenvolver softwares este deve ter como
preocupação o desenvolvimento para diversas plataformas, deve também ter em
mente o pensamento sobre como tratar os dados deste software, com atender a
demanda da entrega dos dados para diversos sistemas, usuários e, principalmente
hoje, com o uso das redes de computadores, a sua coleta, administração e distribui-
ção dos dados.

São Paulo Rio de Janeiro

Servidor Dados Dados Servidor

Estação de Trabalho Estação de Trabalho

Estação de Trabalho Estação de Trabalho

Estação de Trabalho Estação de Trabalho


Rede de Computadores

Campo Grande Campo Grande

Servidor Dados Dados Servidor

Estação de Trabalho Estação de Trabalho

Estação de Trabalho Estação de Trabalho

Estação de Trabalho Estação de Trabalho

Figura 1

8
Esse pensamento que você já teve, ou está tendo neste momento, torna-se auto-
maticamente distribuído. Olha só, vamos seguir uma linha de pensamento: com um
smartphone, podemos criar um conteúdo qualquer, de nossa preferência e gosto,
este é convertido em um modelo de dados, é enviado a um web service para ser
disponibilizado ao mundo.
Pronto, temos informação que foi produzida em um dispositivo móvel e gravada
em uma base de dados armazenada, ou seja, a informação está distribuída.
Um sistema desse tipo pode ser considerado de estrutura muito simples em duas
partes, consistindo de um servidor, também chamado back end, e de um conjunto
de clientes, chamado front end. Os clientes são as diversas aplicações executadas
no SGBD.
Em termos da sua estrutura, o servidor não possui diferença entre aplicações de
usuários e aplicações internas.
Voltando a parte mais prática que é a distribuição deste conteúdo, ou dos dados,
ou ainda, usando termos mais técnicos: a realização do upload da informação para
o web service, nada mais é que uma mera rotina de sincronização. Esta rotina re-
aliza o compartilhamento da criação usada no dispositivo do usuário, exportando
para um banco de dados que os armazena fora do contexto do dispositivo.
Observe o que vem a seguir...
Preste atenção no exemplo a seguir, ele pode ajudá-lo a criar um ambiente mais
fácil para se entender esses processos: imagine que estes dados foram compartilha-
dos com amigos. Cada um irá possuir uma cópia dos dados (lembre que estamos
conectados por uma rede de computadores interligados). O nó central (que repre-
senta um ponto de conexão ou de distribuição de dados), que possui a função de
coordenar a sincronização, distribui a informação para diversos pontos onde ela
pode ser finalmente consumida.
Hoje, com toda a evolução da tecnologia, os bancos de dados operam de uma
forma bem diferente de quando foram concebidos. Eles possuem persistências tem-
porárias de informações que precisam ser sincronizadas entre diversos pontos.
Mas temporárias por quê? A informação hoje em dia tem prazo de validade.
Informação antiga vira histórico e sempre é substituída por uma informação
nova, um fato novo, decorrente das ações e processamentos necessários para fazer
com que o negócio da empresa seja frutífero.

Site 5

Site 4 Site 1
Rede de
Comunicações
Site 3 Site 2

Figura 2

9
9
UNIDADE Banco de Dados Distribuídos

Sistemas como o de folha de pagamentos, necessitam de informações novas.


As folhas que já foram processadas e, efetivamente, pagas, são informações ob-
soletas, ou seja, a folha de um mês anterior só serve para fins de contabilização.
Ela não tem mais interferência em pagamentos futuros.

A nossa época atual não mais permite se perder em dados atrasados, isso in-
terfere totalmente na tomada, ou no auxílio à tomada de decisões que um sistema
realiza. Estamos em uma época em que a informação é distribuída.

Outro exemplo são os compartilhamentos realizados via Whatsapp. Nossas pu-


blicações são replicadas quase que imediatamente, e assim por diante.

O servidor do Whatsapp é apenas um coordenador. Ele coordena para quem as


mensagens devem ser enviadas. O seu telefone, inclusive, mantém uma cópia local
das mesmas mensagens, criando um banco de dados inerentemente distribuído.

Agora podemos entender os conceitos e definições básicas deste mundo que per-
tence à distribuição de dados.

Caracterização de um Sistema
de Banco de Dados Distribuído
Com as informações anteriores deste conteúdo, podemos direcionar nossos estudos
para o desenvolvimento do contexto que permite aprimorar o uso de uma base de
dados distribuída e quais são suas características fundamentais, segue então o texto:
• Em uma das definições, uma Base de Dados Distribuída BDD: é uma co-
leção de diversas bases de dados, interligadas logicamente através de uma rede
de computadores;
• Um Sistema de Bases de Dados Distribuídas: é o sistema de software que
possibilita a gerência da base de dados distribuída e torna a distribuição trans-
parente para o usuário;
• Um Sistema de Banco de Dados Distribuídas – SBDD: é a combinação das
bases com o sistema.

10
Brasil Nova Iorque

Rede Internet

Japão Londres

Figura 3

Agora que conhecemos os conceitos sobre bancos de dados distribuídos, vamos


às suas características:

O sistema que envolve a técnica de computação distribuída consiste em diver-


sos elementos de processamento, não necessariamente com as mesmas carac-
terísticas, que são chamados de homogêneos, que são interconectados por uma
rede de computador e cooperam na execução de certas tarefas.

Estes sistemas têm como objetivo distribuir um problema grande e intratável


em partes menores, resolvendo-os de maneira eficiente e coordenada.

Assim, eles são chamados: Banco de Dados Distribuídos (BDD), como uma
coleção de múltiplos bancos de dados logicamente inter-relacionados e distribuídos
por uma rede de computadores, e um sistema de Gerenciamento de Banco de Da-
dos Distribuídos (SGBD) como um sistema de software que gerencia um banco de
dados distribuído enquanto torna a distribuição transparente para o usuário.

11
11
UNIDADE Banco de Dados Distribuídos

Este funcionamento permite que seus arquivos permaneçam armazenados em


nós diferentes de uma rede. Por exemplo, na WEB o inter-relacionamento acontece
através de hiperlinks.

Dentre as tarefas a serem processadas, ou então executadas, estão as de geren-


ciamento de banco de dados, incluindo verificar e tratar o processamento de consul-
tas, e o processamento de transações.

Importante! Importante!

Mas qual a importância de se distribuir os dados?

Nos dias atuais, temos a necessidade de disponibilizar dados em diversos locais e


plataformas, além manipular e gerenciar grandes quantidades de dados de maneira
confiável, temos também que descentralizar a informação para trazer benefícios
com o uso desta técnica de distribuição. Isso fez com que fossem impulsionados os
estudos e desenvolvimentos na área de banco de dados distribuídos (BDD).
Com a necessidade deste desenvolvimento e diferente do banco de dados con-
vencional ou tradicional, também conhecido como centralizado, onde toda a massa
de dados fica em um único local, no Banco De Dados Distribuído, os dados ficam
distribuídos em diversas máquinas ou servidores, e esses podem estar fisicamente
próximos ou, em alguns casos, geograficamente distantes.
Neste contexto de distribuição, a técnica e uso de um sistema de banco de dados
distribuídos pode ter como característica a homogeneidade ou BDD homogêneo,
onde todos os sites possuem um sistema de gerenciamento de banco de dados
idêntico, conhecem um ao outro e concordam em cooperar nas solicitações dos
usuários do processamento.
Neste tipo de sistema, os servidores locais entregam uma parte de sua autono-
mia em termos do seu direito de mudar esquemas ou software de sistema de geren-
ciamento de banco de dados. Esse software também precisa cooperar com outros
servidores na troca de informações sobre transações, para tornar o processamento
da transação possível entre vários sites.
Ainda fazendo um estudo sobre BDD, existe o banco de dados distribuídos he-
terogêneo, podendo diferentes servidores usar diferentes esquemas e softwares de
sistemas de gerenciamento de banco de dados.

192.168.0.10 192.168.0.20 192.168.0.30


Figura 4

12
Estes podem não ter conhecimento um do outro e podem oferecer facilidades
limitadas para cooperação no processo da transação. As diferenças apresentadas nos
esquemas normalmente são um problema importante para o processamento da con-
sulta, enquanto a divergência no software se torna um obstáculo para o processamen-
to de transações que acessam múltiplos servidores.

O BDD possui uma arquitetura totalmente transparente para os usuários que


utilizam aplicações, ou seja, para o usuário, os dados parecem que estão centraliza-
dos em um único servidor, enquanto, na verdade, eles podem estar “espalhados”,
distribuídos em vários locais fisicamente separados.

Vantagens e Desvantagens no Uso


de um Banco de Dados Distribuído
Vantagens
A confiabilidade, assim como a disponibilidade, visam ao funcionamento do siste-
ma mesmo com falhas, mas sem violar a consistência do banco de dados.

Autonomia local, um departamento pode controlar seus dados (já que é o mais
familiarizado com eles).

O aumento de desempenho é uma vantagem em um sistema de banco de dados


distribuídos, a consulta pode ser subdividida e realizada paralelamente.

Maior disponibilidade – uma falha em um banco de dados afetará somente um


fragmento, em vez do banco de dados inteiro.

Desvantagens
A complexidade dos problemas é uma desvantagem, porque os problemas são
mais complexos do que em bancos de dados centralizados, pois além de haver os
problemas que são comuns em banco de dados centralizados, que normalmente
ocorrem nos servidores locais, haverá os problemas que surgem com a comunicação
entre esses servidores locais.

Implantação mais cara: o aumento da complexidade e uma infraestrutura mais


extensa significam custo extra de trabalho.

Falta de padrões: ainda não há metodologias e ferramentas para ajudar usuá-


rios a converterem um SGBD centralizado para um SGBD distribuído.

Com o crescente avanço tecnológico e dos sistemas de informação em comuni-


cação de dados, o BDD passou a ser uma possibilidade para trabalhar com banco
de dados em grande escala, possibilitando a distribuição geográfica (WAN). Como
foi demonstrado anteriormente, existem algumas desvantagens devido à complexi-
dade e aos custos, mas com certeza os pontos positivos as superam.

13
13
UNIDADE Banco de Dados Distribuídos

Esse ambiente retrata um espaço muito grande, demanda muito estudo e,


consequentemente, vários pontos de dúvidas interessantes: seu desenvolvimento
envolve vários departamentos, como infraestrutura, segurança da informação e
banco de dados.

Alguns Detalhes que Devem ser Levados em Consideração


Continuando nossa aprendizagem, o conhecimento é importante, sendo tam-
bém necessário resolver diversos problemas técnicos para alcançar todo o poten-
cial destes bancos distribuídos.

Destacam-se alguns problemas técnicos para distribuição de dados:


• Projeto de bancos de dados distribuídos: é o principal argumento a ser discutido
ao se distribuir os dados por diversos sites. Existem duas alternativas: particionar
e replicar.
• Processamento distribuído de consultas: a distribuição das informações ace-
lera a consulta, mas diminui a eficiência nas atualizações. O objetivo é otimizar
os fragmentos, utilizando paralelismo para melhorar o desempenho nas consul-
tas e nas atualizações.
• Gerenciamento de diretório distribuídos: diretório ou catálogo do banco de
dados, contém informações como estrutura e localização sobre os itens das
informações no banco de dados.

Como técnica de criação e desenvolvimento da distribuição de dados, um dos


diretórios pode permanecer centralizado em um único local ou distribuído por
vários sites, onde pode haver uma cópia ou várias cópias do banco de dados,
que deverão estar sempre em constante atualização.
• Controle distribuído da concorrência: seu principal objetivo envolve a sin-
cronização de acessos entre os bancos de dados distribuídos, de forma que a
integridade dos dados seja mantida.

O inconveniente deste controle em um contexto distribuído é um pouco dife-


rente do que ocorre com a estrutura centralizada. Além de se preocupar com
a integridade das informações de um único banco de dados, existe também a
preocupação em assegurar a consistência de várias cópias do banco de dados.

14
• Gerenciamento distribuído de impasses: a competição entre usuários pelo
acesso a um conjunto de informações pode resultar em impasse se o mecanis-
mo de sincronização se basear em bloqueios.

As alternativas bem conhecidas de prevenção, anulação e detecção também


se aplicam a SBDDs.
• Confiabilidade de SGBDs distribuídos: foi mencionado anteriormente que
uma das vantagens dos SBDDs era a maior confiabilidade e disponibilidade.
É importante salientar que os mecanismos para assegurar uma boa consistência
dos bancos de dados devem, além de detectar defeitos e se recompor deles, ter
recursos para reparação do acontecido.

Nos casos dos SBDDs, ocorrendo um defeito em que vários sites fiquem inope-
rantes e sem acessos, os bancos de dados existentes nos sites que permanecem
operacionais devem continuar estáveis e atualizados.

Além disso, quando o sistema do computador ou da rede se recuperar da falha, o


SBDD deve ser capaz de recuperar e manter atualizados os bancos de dados nos
sites em que ocorreram a falha.
• Suporte do sistema operacional: o suporte oferecido pelos sistemas opera-
cionais para operações de bancos de dados não corresponde propriamente
aos requisitos do software de gerenciamento dos bancos de dados.

Os principais problemas são os sistemas de arquivos, o gerenciamento de memória,


os métodos de acesso, a recuperação de falhas e o gerenciamento de processos.

Cuidados com banco de dados distribuídos devem ser tomados para assegurar
o seguinte:
• A distribuição é transparente: Usuários devem poder interagir com o siste-
ma como se ele fosse um único sistema lógico. Isso se aplica ao desempenho
do sistema, métodos de acesso, entre outras coisas.
• Transações são transparentes: Cada transação deve manter a integridade do
banco de dados dentre os múltiplos bancos de dados. Transações devem tam-
bém ser divididas em subtransações, cada subtransação afetando um sistema
de banco de dados.

15
15
UNIDADE Banco de Dados Distribuídos

Projeto de BDD – Preocupação


com Aplicação Prática
Agora podemos pensar em itens que devem compor um projeto para elaboração
de um banco de dados distribuído e seus itens.

Figura 5

Pensar na arquitetura de um banco de dados distribuído é saber que, no projeto,


haverá uma preocupação com seu esquema conceitual global, esquema de fragmen-
tação, esquema de alocação e o projeto físico do banco de dados em cada local.

No desenvolvimento do projeto importa separar bem o que deverá ser feito,


quando e por quem.

O projeto físico deve conter a visão do esquema conceitual global visando à lo-
calização das áreas de armazenamento permanentes em cada site. Na definição do
esquema de fragmentação e alocação deve-se levar em consideração requisitos que
as aplicações possuem sobre os dados, como: site onde a aplicação é usada, qual a
frequência de ativação, número, tipo e distribuição estatística dos acessos feitos para
cada item de dado requisitado (tupla ou coluna).

Ele também deve conter como metas:


• Processamento Local: acessos remotos, simplificar os controles dos progra-
mas de aplicação.
• Disponibilidade e Confiabilidade dos Dados Distribuídos: o uso de cópias
para facilitar o acesso em caso de indisponibilidade de um determinado con-
junto de dados, para aumentar a confiabilidade do sistema em caso de aciden-
tes catastróficos na instalação.
• Distribuição da Carga de Trabalho: aproveitar a capacidade (armazenamento
e processamento) e maximizar o nível de paralelismo de execução da aplicação.

16
• Custo de Armazenamento e disponibilidade: analisar em cada local as alter-
nativas de alocação e fragmentação.

O projeto deve-se possuir como um dos principais objetivos a maximização do


processamento local de cada site.

As propostas em um projeto de banco de dados distribuído:


• Top-Down: utilizada em bancos de dados distribuídos homogêneos, sua iniciali-
zação parte do esquema global, seguido pelo esquema de fragmentação e aloca-
ção, ele é complementado com o projeto físico dos dados alocados em cada site.
• Bottom-Up: juntam os bancos de dados existentes, integrando esquemas de
dados em um esquema global, ele tem os requisitos:
» Seleção de um modelo comum de banco de dados para escrever o
esquema global;
» Tradução de cada esquema local para o modelo comum de dados.

Atribuições Funcionais de um BDD


Agora podemos conhecer alguns requisitos funcionais que são demonstrados
por vários autores na área de banco de dados e sistemas gerenciadores de banco
de dados.
• Independência Física de Dados: a forma como o banco de dados está ar-
mazenado não deve ser visível aos programadores e analistas de aplicação,
muito menos aos usuários casuais, sendo responsabilidade exclusiva do admi-
nistrador do banco defini-la.
• Independência de Localização e Replicação: independência física de dados
é um requisito em que deve ser transparente aos usuários tanto a localização das
várias partes do banco de dados, quanto o fato destas partes estarem replicadas
ou não.
• Autonomia Local: cada SGBD local deve manter controle sobre seus próprios
dados, pois uma das motivações é a distribuição da responsabilidade dos dados
para os próprios usuários locais. Os programas que acessam dados locais de-
vem ser executados localmente, sem que seja necessário consultar outros nós.
• Interfaces de Muito Alto Nível: a linguagem para acesso aos dados armaze-
nados no banco deve ser de muito alto nível, ou seja, a linguagem deve ser não
procedimental, os comandos de acesso ao banco devem manipular conjuntos
de objetos e não apenas um objeto de cada vez.
• Otimização Automática: a interface de alto nível perderia o impacto se o
processamento de comandos para acesso aos dados fosse ineficiente, o SGBD
deve conter um otimizador para selecionar os caminhos de menor custo para
acessar os dados.

17
17
UNIDADE Banco de Dados Distribuídos

• Reestruturação Lógica do Banco e Suporte a Visões: os requisitos de in-


dependência física de dados e independência de localização e replicação impli-
cam em que a forma de armazenamento do banco possa ser modificada sem
que seja necessário alterar os programas de aplicação.
• Segurança dos Dados: uma aplicação baseada em um banco de dados facilita
enormemente o acesso aos dados operacionais do empreendimento, o que
traz o efeito adverso de facilitar acessos não autorizados a dados classificados.
• Suporte à Administração dos Dados: a tarefa de administrar um banco, es-
pecialmente se é distribuído, exige ferramentas especiais para ser efetivamente
executada. O SGBD deverá fornecer um dicionário ou diretório, onde seja
armazenada a descrição do banco, ferramentas para acesso a este dicionário,
além de utilitários para manutenção do banco.

18
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

Livros
1941 – Introdução a Sistemas de Banco de Dados
DATE, C.J. Tradução de Daniel Vieira. Rio de Janeiro: Elsevier, 2003
Sistemas Distribuídos Princípios e Paradigmas
TANENBAUM A S.; STEEN, M. V. 3 ed. São Paulo. Pearson, 2009

Leitura
Arquitetura de um SGBD. DEVMEDIA
https://goo.gl/GgGgbE
Banco de Dados Distribuido. Linkedin
https://goo.gl/7xkVF1

19
19
UNIDADE Banco de Dados Distribuídos

Referências
BARBIERI, C. Bi2: Business Intelligence, modelagem & qualidade. Rio de Janei-
ro: Elsevier, 2011.

DATE, C.J. 1941 – Introdução a sistemas de banco de dados. Tradução de


Daniel Vieira. Rio de Janeiro: Elsevier, 2003.

MACHADO, Felipe Nery Rodrigues. Banco de dados: projeto e implementação.


3.ed. São Paulo: Erica, 2014. (e-book)

TANENBAUM A S.; STEEN, M. V. Sistemas distribuídos princípios e paradig-


mas. 3. ed. São Paulo: Pearson, 2009. (e-book).

20

Você também pode gostar