You are on page 1of 25

UNIVERSIDADE DO EXTREMO SUL DE SANTA CATARINA UNESC

PARACELSO DE OLIVEIRA CALDAS
















BANCO DE DADOS II













CRICIMA (SC), MARO DE 2014




________________________________________________________________________________
Paracelso de Oliveira Caldas
2
SUMRIO
1 Introduo .............................................................................................................................3
1.1 Histrico 3
1.2 Site 3
1.3 Banco de Dados ............................................................................................................................4
1.3.1 Dados 4
1.3.2 Banco de Dados .........................................................................................................................5
1.3.3 SGBD 6
1.3.4 Bancos de Dados Centralizados .............................................................................................7
1.3.5 Bancos de Dados Cliente-Servidor ..........................................................................................7
1.3.6 Bancos de Dados Paralelos ....................................................................................................8
1.3.7 Bancos de Dados Mltiplos ......................................................................................................8
1.3.8 Bancos de Dados Distribudos ................................................................................................9
1.3.9 Armazenamento ...................................................................................................................... 10
1.3.10 Transparncia de Rede ....................................................................................................... 11
1.2.11 Processamento de Consultas Distribudas ....................................................................... 11
1.2.12 Modelo de Transaes Distribudas ................................................................................... 12
1.3.13 Protocolos de Efetivao ..................................................................................................... 13
1.3.14 Seleo de Coordenador ..................................................................................................... 13
1.3.15 Controle de Concorrncia.................................................................................................... 14
1.3.16 Tratamento de Impasses...................................................................................................... 14
1.4 Por que usar Bancos de Dados Distribudos ....................................................................... 15
1.5 Arquitetura de sistemas de banco de dados ......................................................................... 16
1.5.1 Arquitetura Genrica dos SGBD Distribudos ..................................................................... 17
1.5.1.1 Sistemas cliente/servidor ................................................................................................... 19
1.5.1.2 Sistemas distribudos no-hierrquicos ........................................................................... 21
1.5.1.3 Sistemas de Vrios Bancos de Dados Distribudos (SVBDs) ......................................... 23
1.6 Tipos de SGBD Distribudos................................................................................................... 24

































________________________________________________________________________________
Paracelso de Oliveira Caldas
3








1 Introduo

1.1 Histrico
Os bancos de dados, nos dias de hoje, so essenciais para todos os ramos de
negcios ver figura 01. Eles so usados para manter registros internos,
apresentar dados a consumidores e clientes na World Wide Web e fornecer
suporte a muitos outros processos comerciais. Da mesma forma, os bancos de
dados so encontrados no ncleo de muitas investigaes cientficas. Eles
representam os dados reunidos por astrnomos, por investigadores do genoma
humano e por bioqumicos que exploram as propriedades medicinais de
protenas, alm de muitos outros cientistas.










Figura 01 Abrangncia dos bancos de dados
O poder dos bancos de dados vem de um corpo de conhecimento e tecnologia
que se desenvolveu ao longo de varias dcadas e encarnado em um tipo de
software especializado chamado sistema de gerenciamento de bancos de dados
ou SGBD ou, em termos mais coloquiais, um sistema de banco de dados.
1.2 Site
Os computadores de um sistema de banco de dados distribudo recebem
diversos nomes, como sites ou ns, figura 07 abaixo, dependendo do contexto


________________________________________________________________________________
Paracelso de Oliveira Caldas
4
no qual so inseridos. Nesta disciplina usar-se- preferencialmente o termo site
(local, stio) para enfatizar a distribuio fsica desses sistemas.





























Figura 07 Sites em sistemas distribudos

1.3 Banco de Dados

1.3.1 Dados
As matrias primas com que os computadores trabalham so os dados. O
computador recebe nossas informaes processa-as com extrema velocidade e
preciso, nos gera uma nova informao atravs da qual podemos tomar
decises, solucionar problemas e desempenhar nossas atividades do dia a dia.
Os dados referem-se informaes organizadas, que podem ser obtidas do
resultado da experincia ou observao de outras informaes as quais para
serem usadas precisam serem armazenadas. Estes dados podem referir-se a
nmeros, palavras, imagens, medies ou observaes em diferentes reas.


________________________________________________________________________________
Paracelso de Oliveira Caldas
5
O armazenamento destes dados, primitivamente, usava local e objetos como os
apresentados nas figuras 02 e 03 abaixo. Convm lembrar o imenso espao
necessrio para tal armazenamento.










Figura 02 Dados em Armrio Figura 03 Dados a Granel

1.3.2 Banco de Dados
Um sistema de bancos de dados apenas um sistema computadorizado de
armazenamento de registros. O banco de dados pode, ele prprio, ser visto
como o equivalente eletrnico, figura 04, de um armrio de arquivamento, figura
05. Em outras palavras, um repositrio ou recipiente para uma coleo de
arquivos de dados computadorizados.










Figura 05 Armrio de Arquivamento Figura 04 Banco de Dados


________________________________________________________________________________
Paracelso de Oliveira Caldas
6
Os usurios do sistema podero executar diversas operaes sobre tais
arquivos por exemplo:
Acrescentar novos arquivos, vazios, ao banco de dados;
Inserir novos dados em arquivos existentes;
Buscar dados de arquivos existentes;
Alterar dados em arquivos existentes;
Eliminar dados de arquivos existentes;
Remover arquivos existentes do banco de dados.
Resumindo, um sistema de banco de dados basicamente um sistema
computadorizado de armazenamento de registros; isto , um sistema
computadorizado cujo propsito geral armazenar informaes e permitir ao
usurio buscar e atualizar essas informaes quando solicitado. As informaes
em questo podem ser quaisquer coisas que tenha significado para o individuo
ou a organizao a que o sistema deve servir em outras palavras, tudo o que
seja necessrio para auxiliar no processo geral de tomada de decises de
negcios desse individuo ou dessa organizao.
1.3.3 SGBD
Um Sistema Gerenciador de Banco de Dados (SGBD) constitudo por um
conjunto de dados associados a um conjunto de programas para acesso a
esses dados, figura 06 abaixo. O conjunto de dados, comumente chamado
banco de dados, contm informaes sobre uma empresa em particular. O
principal objetivo de um SGBD proporcionar um ambiente tanto conveniente
quanto eficiente para a recuperao e armazenamento das informaes do
banco de dados.










Figura 06 Sistema Gerenciador de Bancos de Dados - SGBD


________________________________________________________________________________
Paracelso de Oliveira Caldas
7
Sistemas de bancos de dados so projetados para gerir grandes volumes de
informaes. O gerenciamento de informaes a definio dos mecanismos
para a manipulao dessas informaes. Ainda, um sistema de banco de dados
deve garantir a segurana das informaes armazenadas contra eventuais
problemas com o sistema, alm de impedir tentativas de acesso no
autorizadas. Se os dados so compartilhados por diversos usurios, o sistema
deve evitar a ocorrncia de resultados anmalos.
A importncia da informao na maioria das organizaes que estabelece o
valor do banco de dados tem determinado o desenvolvimento de um grande
conjunto de conceitos e tcnicas para a administrao eficaz desses dados.

1.3.4 Bancos de Dados Centralizados

Sistemas de banco de dados centralizados so aqueles executados sobre um
nico sistema computacional que no interagem com outros sistemas. Tais
sistemas podem ter a envergadura de um sistema de banco de dados de um s
usurio executado em um computador pessoal at sistemas de alto
desempenho em sistemas de grande porte.
Um sistema computacional genrico moderno consiste em uma ou poucas
CPUs e dispositivos de controle que so conectados por meio de um bus
comum que proporciona acesso a memria compartilhada.
Dividiu-se em dois modos a forma pela qual os computadores so usados: por
um sistema de um nico usurio e sistemas multiusurios. Computadores
pessoais e estaes de trabalho caem na primeira categoria. Um sistema
monousurio tpico uma unidade de trabalho de uma nica pessoa, com uma
nica CPU e um ou dois discos rgidos, com um sistema operacional que pode
dar suporte a apenas um nico usurio. Um sistema multiusurio tpico, por
outro lado, possui um nmero maior de discos e rea de memria, podendo ter
diversas CPUs e um sistema operacional multiusurio. Atende a um grande
nmero de usurios que esto conectados ao sistema por meio de terminais.
Tais sistemas so freqentemente chamados de sistema servidor.

1.3.5 Bancos de Dados Cliente-Servidor

Como os computadores pessoais tm se tornado mais rpidos, mais poderosos
e baratos, h uma tendncia de seu uso nos sistemas centralizados. Terminais
conectados a sistemas centralizados esto sendo substitudos por
computadores pessoais. Simultaneamente, interfaces, com o usurio, usadas


________________________________________________________________________________
Paracelso de Oliveira Caldas
8
funcionalmente para manuseio direto com sistemas centralizados esto sendo
adequadas ao trato com computadores pessoais.
Como resultado, sistemas centralizados atualmente agem como sistemas
servidores que atende a solicitaes de sistemas clientes, da o sistema cliente-
servidor.

1.3.6 Bancos de Dados Paralelos
Sistemas paralelos imprimem velocidade ao processamento e I/O por meio do
uso em paralelo de diversas CPUs e discos. Equipamentos paralelos esto se
tornando bastante comuns, fazendo com que os seus estudos sejam tambm
cada vez mais importantes. O direcionamento das atenes para os sistemas de
bancos de dados paralelos prov da demanda de aplicaes que geram
consultas em bancos de dados muito grandes (da ordem de terabytes isto
10
12
bytes) ou que tenham de processar um volume enorme de transaes por
segundo (da ordem de milhares de transaes por segundo). Sistema de banco
de dados centralizados e cliente-servidor no so poderosos o suficiente para
tratar desse tipo de aplicao.
No processamento paralelo, muitas operaes so realizadas simultaneamente,
ao contrrio do processamento serial, nos quais os passos do processamento
so sucessivos. Um equipamento paralelo de granulao-grossa consiste em
poucos e poderosos processadores; um paralelismo intensivo ou de granulao-
fina usa milhares de pequenos processadores.

1.3.7 Bancos de Dados Mltiplos

Nos ltimos anos, desenvolveram-se novas aplicaes trabalhando com dados
de diversos bancos de dados preexistentes localizados em ambientes
ou sites heterogneos de hardware e software. preciso uma camada
de software adicional, em um nvel superior ao banco de dados existente, para
tratar as informaes localizadas em bancos de dados heterogneos. Essa
camada de software chamada de sistema de banco de dados mltiplos
(multidatabase) ou Sistemas de bancos de dados distribudos heterogneos. Os
bancos de dados heterogneos caracterizam-se por serem sistemas de bancos
de dados locais que podem empregar modelos lgicos diferentes e diferentes
linguagens de definio e manipulao de dados; podem tambm diferir em
seus mecanismos de controle de concorrncia e gerenciamento de transaes.
Um sistema de banco de dados mltiplo cria a iluso de integrao lgica do
banco de dados sem exigir uma integrao fsica correspondente.



________________________________________________________________________________
Paracelso de Oliveira Caldas
9
1.3.8 Bancos de Dados Distribudos

O suporte completo para bancos de dados distribudos implica que uma nica
aplicao deve ser capaz de operar de modo transparente sobre dados
dispersos em uma variedade de bancos de dados diferentes, gerenciados por
vrios SGBDs diferentes, em execuo em uma variedade de mquinas
diferentes, admitidos por uma variedade de sistemas operacionais diferentes e
conectados entre si por uma variedade de redes de comunicaes diferentes
onde de modo transparente significa que a aplicao opera de um ponto de
vista lgico como se os dados fossem todos gerenciados por um nico SGBD,
funcionando em uma nica mquina. Explicar-se- o que um banco de dados
distribudo, porque esses bancos de dados esto se tornando cada vez mais
importantes e quais so alguns dos problemas tcnicos que surgem na rea de
bancos de dados distribudos.
Um sistema de banco de dados distribudo consiste em uma coleo de sites,
interligados atravs de algum tipo de rede de comunicaes, em que:
Cada site ele prprio um site completo do sistema de banco de dados;
Porm, os sites concordam em atuarem juntos, de modo que um usurio
em qualquer site pode ter acesso a dados em qualquer lugar da rede,
exatamente como se os dados estivessem armazenados no site do
prprio usurio.
Decorre que o assim chamado banco de dados distribudo na verdade uma
espcie de banco de dados virtual, cujas partes componentes esto fisicamente
armazenadas em vrios bancos de dados reais distintos em vrios sites
distintos (na verdade, a unio lgica desses bancos de dados reais).
Cada site um site do sistema de banco de dados por si mesmo. Em outras
palavras, cada site tem seus prprios bancos de dados locais reais, seus
prprios usurios locais, seu prprio SGBD local e software de gerenciamento
de transaes (inclusive seu prprio software para bloqueio, registro,
recuperao, etc.), e seu prprio gerente de comunicaes de dados local
(gerente DC) Em particular, um dado usurio pode executar operaes sobre
dados no seu site local exatamente como se esse site no participasse de modo
algum do sistema distribudo.O sistema de banco de dados distribudo pode,
portanto, ser considerado como um tipo de parceria entre SGBDs individuais
locais nos sites locais individuais; um novo componente de software em cada
site logicamente uma extenso do SGBD local- fornece as necessrias
funes da parceria e a combinao desse novo componente com o SGBD


________________________________________________________________________________
Paracelso de Oliveira Caldas
10
existente que constitu aquilo que se costuma chamar sistema de
gerenciamento de banco de dados distribudo.
A enorme proliferao de redes remotas (WANs Wide rea Networks)
proporciona a possibilidade de distribuio geogrfica.

1.3.9 Armazenamento
Considerando uma relao qualquer armazenada em um banco de dados. H
diversos enfoques para o armazenamento dessa relao em um banco de
dados distribudo:
Replicao. O sistema mantm rplicas idnticas (cpias) da relao.
Cada rplica armazenada em diferentes sites, resultando na
replicao dos dados, ilustrado na figura 09 a seguir. A alternativa para
a replicao armazenar somente uma cpia da relao.








Figura 09 Replicao
Fragmentao. A relao dividida em vrios fragmentos. Cada
fragmento armazenado em um site diferente. A fragmentao divide-
se em: fragmentao horizontal (fragmentos de relaes) e
fragmentao vertical (fragmentos de colunas), figura 10.






Figura 10 Fragmentao vertical.


________________________________________________________________________________
Paracelso de Oliveira Caldas
11
Replicao e fragmentao. A relao dividida em vrios segmentos,
e o sistema mantm diversas rplicas de cada fragmento, figura 11.






Figura 11 Fragmentao vertical com replicao

1.3.10 Transparncia de Rede
Viu-se que uma relao pode ser armazenada de diversas formas em um banco
de dados distribudo. essencial que o sistema minimize a necessidade de que
o usurio saiba onde est armazenada a relao. Dessa forma, o sistema pode
esconder detalhes relativos distribuio dos dados na rede. Chama-se isso
de transparncia de rede definida como o grau de desconhecimento que os
usurios do sistema podem manter em relao ao armazenamento dos dados
dentro de um sistema distribudo.
Consideram-se os principais objetivos da transparncia sob a tica de:
Denominao dos dados;
Replicao dos itens de dados;
Fragmentao dos itens de dados;
Localizao das rplicas e fragmentos.
O sistema de banco de dados deve criar um conjunto de nomes alternativos ou
aliases para os itens de dados. Um usurio pode referir-se a um item de dado
por meio de um nome simples, que ser transformado pelo sistema no nome
completo correspondente. O mapeamento dos aliases para translao aos
nomes reais pode ser armazenado em cada site. Com os alises o usurio
mantm-se independente da localizao fsica. Analogamente as rplicas e
fragmentos requerem aliases.

1.2.11 Processamento de Consultas Distribudas
H diversos mtodos para o processamento de uma consulta. Examinar-se-
algumas tcnicas para escolha de uma estratgia para o processamento de
uma consulta que minimize o tempo total para apresentao do resultado. Para


________________________________________________________________________________
Paracelso de Oliveira Caldas
12
os sistemas centralizados, o primeiro critrio para mensurao do custo de uma
estratgia em particular o nmero de acessos a disco. Nos sistemas
distribudos, se devem considerar diversos outros problemas, sendo que os
principais critrios so:
O custo de transmisso de dados na rede.
O ganho potencial de desempenho diante do fato de que diversos sites
podem processar partes da consulta em paralelo.
O custo relativo de transferncia de dados na rede e de transferncia de dados
entre discos varia significativamente, dependendo do tipo de rede e da
velocidade dos discos. Assim, no se podem focalizar somente os custos
relativos aos dos discos ou da rede. Deve-se achar o melhor tradeoff (equilbrio)
entre ambos.

1.2.12 Modelo de Transaes Distribudas
Uma transao uma unidade de execuo de programa que acessa e,
possivelmente, atualiza vrios itens de dados. Uma transao, geralmente, o
resultado da execuo de um programa de usurio escrito em uma linguagem
de manipulao de dados de alto nvel ou em uma linguagem de programao
(por exemplo, SQL, COBOL, C ou Pascal), e delimitada por declaraes (ou
chamadas de funo) da forma begin transaction e end transaction. A transao
consiste em todas as operaes ali executadas, entre o comeo e o fim da
transao.
O acesso a diversos itens de dados em um sistema distribudo normalmente
acompanhado de transaes que tm de preservar as propriedades:
Atomicidade, Consistncia, Isolamento e Durabilidade (ACID).
Atomicidade. Ou todas as operaes da transao so refletidas
corretamente no banco de dados ou nenhuma o ser.
Consistncia. Garante que a execuo de uma transao concorrente
mantenha preservada a consistncia do banco de dados.
Isolamento. Embora diversas transaes possam ser executadas de
forma concorrente, o sistema garante que, para todo par de transaes
Ti e Tj, Ti tem a sensao de que Tj terminou sua execuo antes de
Ti comear, ou que Tj comeou sua execuo aps Ti terminar. O
isolamento garante tambm que o resultado de cada transao somente
disponibilizado aps o trmino da transao.


________________________________________________________________________________
Paracelso de Oliveira Caldas
13
Durabilidade. Aps a transao terminar com sucesso, as mudanas
que ela faz no banco de dados persistem, at mesmo se houver falhas
no sistema.
H dois tipos de transaes que se deve considerar. As transaes locais, que
so aquelas que mantm acesso e atualizam somente a base de dados local; e
as transaes globais, que so aquelas que mantm acesso e atualizam
diversas bases locais. As transaes locais devem garantir as propriedades
ACID. Entretanto, no caso das transaes globais, essa tarefa bem mais
complicada, j que diversos sites podem participar de sua execuo. Uma falha
em um desses sites ou uma falha de comunicao entre sites pode resultar em
erros de processamento.

1.3.13 Protocolos de Efetivao
Protocolo - Conjunto de regras, padres e especificaes tcnicas que regulam
a transmisso de dados entre computadores por meio de programas
especficos, permitindo a deteco e correo de erros. Para garantir a
atomicidade, todos os sites envolvidos na execuo de uma transao T devem
concordar com o trmino da transao. preciso que T seja efetivada em todos
os sites ou ento ser abortada em todos eles. Para assegurar que isso ocorra,
o coordenador da transao T precisa executar um protocolo de efetivao
(commit protocol).
Entre os mais simples e mais utilizados protocolos de efetivao est o
protocolo de efetivao em duas fases (two-phase commit protocol 2PC). O
protocolo de 2PC funciona como segue: a primeira fase de preparao na
qual so enviadas mensagens aos sites para saber se eles votam commit, e a
segunda fase faz a confirmao da transao. Outra alternativa o protocolo de
efetivao em trs fases (three-phase commit protocol 3PC), que elimina
algumas desvantagens do 2pc, embora seja mais complexo e aumente o
overhead. O funcionamento do 3PC idntico ao 2PC exceto que possui uma
fase intermediria chamada pr-commit que confirma os sites vote-commit
independentemente de ter recebido todas as respostas.

1.3.14 Seleo de Coordenador
Alguns dos algoritmos de efetivao exigem o uso de um coordenador. Se o
coordenador falha devido a uma falha do site no qual est sendo executado, o
sistema poder continuar a execuo somente reiniciando um novo
coordenador em outro site. Isso poder ser feito por meio da manuteno de um
backup do coordenador, que estar pronto a assumir a responsabilidade do
coordenador se este falhar. Ou o sistema poder escolher um novo


________________________________________________________________________________
Paracelso de Oliveira Caldas
14
coordenador depois que o original falhou. O algoritmo que determina onde a
cpia do coordenador ser reiniciada chamado de algoritmo de eleio.
Os diversos algoritmos de eleio diferem, normalmente, em virtude da
configurao da rede e servem para definir um novo coordenador.

1.3.15 Controle de Concorrncia
Controle de concorrncia o controle das interaes entre transaes
simultneas para garantir a no-interferncia ou isolamento dessas transaes
que esto sendo executadas concomitantemente.
O objetivo fundamental do controle de concorrncia em bancos de dados
assegurar que a execuo concorrente de transaes no resulte em uma
perda da consistncia do banco de dados.
Uma propriedade fundamental da transao o isolamento. Quando diversas
transaes so executadas de modo concorrente em um banco de dados, a
propriedade do isolamento pode no ser preservada. necessrio que o
sistema controle a interao entre transaes concorrentes; esse controle
alcanado por meio de uma larga gama de mecanismos chamado esquemas de
controle de concorrncia.
Controle de concorrncia fundamentalmente baseado no fato de que
enquanto uma transao acessa a um item de dado, nenhuma outra transao
pode modific-lo. Bloqueio a forma de garantir que enquanto um processo
acessa um item de dado outro no o modifique.
Em um ambiente distribudo o controle de concorrncia deve garantir que cada
site participante da execuo do protocolo de efetivao satisfaa a atomicidade
global da transao.

1.3.16 Tratamento de Impasses
O tratamento de impasses a administrao de solicitaes de bloqueios e
desbloqueios para itens de dados que esto armazenados em sites diferentes,
considerando os diversos tipos de bloqueios. Transaes executadas de forma
concorrente podem competir por recursos e assim alcanar um estado no qual
existe um impasse: cada uma entre vrias transaes fica esperando por um
recurso retido por uma das outras, e nenhuma delas pode progredir. Por
exemplo, possvel que um impasse acontea, mesmo se somente um item de
dado estiver sendo bloqueado. Considere um sistema com quatro sites e com
replicao total. Suponha que as transaes T1 e T2 desejem bloquear o item
de dado Q de modos exclusivo. A transao T1 pode ter sucesso no bloqueio
do item de dado Q nos sites S1 e S3, enquanto a transao T2 pode conseguir


________________________________________________________________________________
Paracelso de Oliveira Caldas
15
o bloqueio de Q nos sites S2 e S4. Cada um deles precisar esperar para
conseguir o terceiro bloqueio; ento, um impasse ocorreu. Felizmente, se pode
evitar esses impasses de modo relativamente fcil, pedindo a todos os sites que
solicitem bloqueios nas rplicas de um item de dados em uma mesma ordem
predeterminada.
1.4 Por que usar Bancos de Dados Distribudos

A utilizao de bancos de dados distribudos justificada por vrias razes. Um
sistema de bancos de dados distribudos envolve mltiplas localidades,
conectadas juntas em uma espcie de redes de comunicaes, nas quais o
usurio (usurio final ou programador de aplicao) de qualquer localidade pode
acessar os dados armazenados em outro local.
Cada localidade, por sua vez, pode ser considerada como um sistema de banco
de dados individual ou particular: tem o seu prprio banco de dados e sua
prpria funo DBA, seus prprios terminais e usurios, o seu prprio
armazenamento local e a sua prpria CPU, rodando o prprio DBMS local (em
geral). O mesmo tambm tem seu prprio gerenciador DC local, com a
responsabilidade (entre outras coisas) de controlar a troca de mensagens com
outras localidades integrantes do sistema distribudo. Da mesma forma, um
banco de dados distribudo pode ser considerado a unio de um conjunto de
banco de dados centralizados individualmente.
A seguir, algumas razes do uso de bancos de dados distribudos:
Autonomia Local. A empresa servida pelo sistema certamente
distribuda de modo lgico (em divises, departamentos, projetos etc.) e
provavelmente distribuda de modo fsico (em fbricas, usinas,
laboratrios etc.). A distribuio do sistema permite aos grupos individuais
dentro da organizao exercer um controle local sobre os seus prprios
dados, com contabilidade local e, de maneira mais geral, que se tornem
menos dependentes de um centro de processamento de dados remoto
que, por definio, no ser to profundamente envolvido em assuntos
puramente locais. Ao mesmo tempo, certamente, permite aqueles grupos
locais o acesso aos dados de outras localidades, quando necessrio.
Capacidade. Uma razo comum para a instalao de sistema distribudo ,
em primeiro lugar, simplesmente que no existe nenhuma mquina com
capacidade adequada para uma determinada aplicao.
Crescimento Incremental. Uma vez instalado, o sistema distribudo
pode crescer melhor do que um sistema no distribudo: Quando a


________________________________________________________________________________
Paracelso de Oliveira Caldas
16
necessidade de expandi-lo, porque o volume de dados aumentou, ou o
volume de processamento cresceu, deve ser mais fcil adicionar uma nova
localidade ao sistema distribudo existente desde que as localidades
sejam autnomas do que substituir um sistema centralizado j existente
por outro maior.
Confiana. Um sistema distribudo oferece maior confiana do que um
sistema centralizado, visto que o mesmo no uma proposio de tudo ou
nada O sistema continua a funcionar (a um nvel reduzido) em caso de
avaria em localidade individual ou de ligao de comunicao individual
entre as localidades.
Disponibilidade. No caso da rplica de dados, a disponibilidade tambm
aperfeioada, por que certo objeto de dado permanece disponvel medida
que pelo menos uma cpia daquele objeto esteja disponvel.
Eficincia. Os dados podem ser armazenados no sistema distribudo
prximo ao seu local normal de uso, reduzindo, desta maneira, o tempo de
resposta e os custos de comunicao (a maioria dos acessos local).
Flexibilidade. Os dados, quando h modificaes nos padres de uso,
podem ser dinamicamente movidos ou reproduzidos, ou as rplicas
existentes podem ser eliminadas. Ademais, o paralelismo inerente nas
redes de localidades mltiplas pode fornecer uma passagem de dados
aperfeioada e, possivelmente, melhorar os tempos de resposta em certas
situaes.
1.5 Arquitetura de sistemas de banco de dados
A arquitetura em seu sentido coloquial contempla os detalhes para a construo
de um objeto qualquer, conforme ilustra a figura 08 a seguir.








Figura 08 Arquitetura na construo civil



________________________________________________________________________________
Paracelso de Oliveira Caldas
17
A arquitetura de um sistema define a estrutura e organizao lgica de
funcionamento de um sistema computacional. A arquitetura de um sistema de
banco de dados fortemente influenciada pelo sistema bsico computacional
sobre o qual o sistema de banco de dados executado. Aspectos da arquitetura
de computadores como rede, paralelismo e distribuio tm influncia na
arquitetura do banco de dados:
Rede de computadores permite que algumas tarefas sejam executadas no
servidor do sistema e outras sejam executadas no cliente. Essa diviso de
trabalho tem levado ao desenvolvimento de sistemas de banco de dados
cliente-servidor.
Processamento paralelo em um sistema de computadores permite que
atividades do sistema de banco de dados sejam realizadas com mais
rapidez, reduzindo o tempo de resposta das transaes e, assim,
aumentando o nmero de transaes processadas por segundo.
A distribuio de dados pelos sites da rede ou pelos diversos
departamentos de uma organizao permite que esses dados residam
onde so gerados ou mais utilizados, mas, ainda assim, estejam acessveis
para outros sites de outros departamentos. Dispor de diversas cpias de
um banco de dados em diferentes sites tambm permite organizaes de
grande porte manter operaes em seus bancos de dados mesmo quando
um site afetado por um desastre natural, como inundaes, incndios ou
terremotos. Sistemas de banco de dados distribudos tm se desenvolvido
para tratar dados distribudos geogrfica ou administrativamente por
diversos sistemas de banco de dados.

1.5.1 Arquitetura Genrica dos SGBD Distribudos
A arquitetura em seu sentido coloquial contempla os detalhes para a construo
de um objeto qualquer. A arquitetura de um sistema computacional define a
estrutura e organizao lgica de funcionamento deste sistema. Isso significa
que os componentes do sistema so identificados, a funo de cada
componente especificada e os inter-relacionamentos e interaes entre esses
componentes so definidos. Essa estrutura bsica tambm vlida para
sistemas de computadores em geral e para sistemas de software em particular.
A especificao da arquitetura de um sistema de software exige identificao
dos vrios mdulos, com suas interfaces e seus inter-relacionamentos, em
termos do fluxo de dados e de controle que atravessam o sistema. Sob uma
perspectiva de engenharia de software, a tarefa de desenvolver mdulos
individuais chamada programao no varejo ou programao em pequena
escala, enquanto a tarefa de integr-los em um sistema completo chamada


________________________________________________________________________________
Paracelso de Oliveira Caldas
18
programao no atacado ou programao em grande escala. Tendo em vista se
tratarem de SGBDs distribudos como sistemas de software em grande escala,
pode-se definir sua arquitetura aplicando-se trs arquiteturas de referncia:
sistemas cliente/servidor, SGBDs distribudos no hierrquicos e sistemas de
vrios bancos de dados. Essas vises idealizadas de um SGBD,podem
divergir em muitos dos sistemas comercialmente disponveis; porm, as
arquiteturas serviro como uma estrutura bsica razovel, dentro da qual
podero ser discutidas as questes relacionadas a SGBDs distribudos. Uma
arquitetura de referncia criada com freqncia pelos desenvolvedores de
padres, pois ela define com clareza as interfaces que precisam ser
padronizadas.
Para todas as finalidades prticas, o modelo de referncia pode ser imaginado
como um modelo arquitetnico idealizado do sistema. Ele definido como uma
estrutura conceitual cujo propsito dividir o trabalho de padronizao em
fragmentos gerenciveis, e mostrar em um nvel geral como esses fragmentos
esto relacionados uns com os outros. Um modelo de referncia ( e portanto
uma arquitetura de sistema) pode ser descrito de acordo com trs abordagens
diferentes:
Baseado em componentes. Os componentes do sistema so definidos
juntamente com os inter-relacionamentos entre eles. Desse modo, um
SGBD consiste em vrios componentes, cada um dos quais fornece
alguma funcionalidade. Sua interao ordenada e bem definida
proporciona total funcionalidade de sistema.
Baseado em funes. As diferentes classes de usurios so
identificadas, e as funes que o sistema executar para cada classe so
definidas. As especificaes de sistema dentro dessa categoria em geral
determinam uma estrutura hierrquica para classes de usurios. Isso
resulta em uma arquitetura de sistema hierrquico com interfaces bem
definidas entre as funcionalidades de diferentes camadas. A vantagem
a clareza com que os objetivos do sistema so especificados.
Baseado em dados. Os diferentes tipos de dados so identificados, e
especificada uma estrutura arquitetnica que define as unidades
funcionais que percebero ou usaro dados de acordo com essas
diferentes vises. Tendo em vista que os dados constituem o recurso
central que um SGBD administra, essa abordagem (tambm referida
como abordagem de lgica de dados) tida como a opo prefervel para
atividades de padronizao. A vantagem da abordagem de dados a
importncia central que ela associa ao recurso de dados. Isso


________________________________________________________________________________
Paracelso de Oliveira Caldas
19
significativo sob o ponto de vista do SGBD, porque o recurso fundamental
que um SGBD administra so os dados.
No final de 1972, o Computer and Information Processing Committee (X3) do
ANSI (American National Standards Institute) estabeleceu um grupo de estudos
sobre sistemas de gerenciamento de bancos de dados, sob os auspcios de seu
SPARC (Standards Planning and Requirements Committee). O grupo props
uma estrutura arquitetnica conhecida como arquitetura ANSI/SPARC, que se
baseia na organizao dos dados. Ela reconhece trs vises de dados: a viso
externa que a viso do usurio, poderia ser de um programador; a viso
interna que a viso do sistema ou da mquina; e a viso conceitual que a
viso do empreendimento.
1.5.1.1 Sistemas cliente/servidor
Os SGBDs cliente/servidor entraram no cenrio da computao no incio da
dcada de 1990 e tiveram um impacto significativo tanto na tecnologia de
SGBDs quanto na forma como se realiza a computao. A idia geral simples
e elegante: distinguir a funcionalidade que precisa ser fornecida e dividir essas
funes em duas classes, funes de servidores e funes de clientes. Isso
fornece uma arquitetura em dois nveis, que torna mais fcil gerenciar a
complexidade dos SGBDs modernos e a complexidade da distribuio.
O primeiro fator a observar que o servidor faz a maior parte do trabalho de
gerenciamento de dados. Isso significa que todo o processamento e otimizao
de consultas, gerenciamento de transaes e de armazenamento, so feitos no
servidor.
A arquitetura, descrita na figura 01 abaixo, bastante comum em sistemas
relacionais, nos quais a comunicao entre os clientes e o(s) servidor(es) feita
no nvel de instrues de SQL. Em outras palavras, o cliente repassa consultas
SQL ao servidor, sem tentar compreend-las ou otimiz-las. O servidor faz a
maior parte do trabalho e devolve ao cliente a relao resultante.








________________________________________________________________________________
Paracelso de Oliveira Caldas
20












Figura 01 Arquitetura cliente/servidor de referncia
Existem diferentes tipos de arquiteturas cliente/servidor. O mais simples o
caso em que apenas um servidor acessado por diversos clientes. Essa
arquitetura se denomina vrios clientes-servidor nico. Sob uma perspectiva de
gerenciamento de dados, isso no muito diferente dos bancos de dados
centralizados, pois o banco de dados est armazenado em apenas uma
mquina (o servidor), que tambm hospeda o software para gerenci-lo. Uma
arquitetura cliente/servidor mais sofisticada aquela em que existem vrios
servidores no sistema (a abordagem denominada vrios clientes-vrios
servidores). Nesse caso, so possveis duas estratgias alternativas de
gerenciamento: cada cliente gerencia sua prpria conexo com o servidor
adequado, ou cada cliente conhece apenas seu servidor local, que ento se
comunica com outros servidores conforme necessrio.
Sob uma perspectiva de lgica de dados, os SGBDs cliente/servidor fornecem a
mesma viso dos dados que os sistemas no-hierrquicos (ponto a ponto). Ou
seja, eles do ao usurio a aparncia de um banco de dados logicamente nico,
enquanto no nvel fsico os dados podem ser distribudos. Por conseguinte, a
principal distino entre sistemas cliente/servidor e no-hierrquicos no se d
no nvel de transparncia oferecido aos usurios e aos aplicativos, mas sim no


________________________________________________________________________________
Paracelso de Oliveira Caldas
21
paradigma de arquitetura utilizado para se chegar at esse nvel de
transparncia.

1.5.1.2 Sistemas distribudos no-hierrquicos

Uma arquitetura no hierrquica ou de rede ou ponto a ponto aquela onde no
existe um servidor central. Todos os computadores esto no mesmo nvel
hierrquico e podem tanto compartilhar recursos (impressoras, arquivos, etc.)
quanto acessar recursos compartilhados por outros computadores da rede. Um
exemplo de rede no-hierrquica uma pequena rede ligada atravs de cabos
de par tranado e hub que operam sob um sistema operacional qualquer.
A organizao dos dados fsicos em cada mquina pode ser, e provavelmente
, diferente. Isso significa que h necessidade de definir um esquema interno
individual em cada site, o que se chama esquema interno local (EIL). A viso
empresarial dos dados descrita pelo esquema conceitual global (ECG), que
global porque descreve a estrutura lgica dos dados em todos os sites.
Os dados em um banco de dados distribudo em geral esto fragmentados e
replicados. Para lidar com esse fenmeno de fragmentao e replicao, a
organizao lgica dos dados em cada site tem de ser descrita. Por
conseguinte, h necessidade de uma terceira camada na arquitetura, o
esquema conceitual local (ECL). Ento, o esquema conceitual global a unio
dos esquemas conceitual locais. Por fim, o acesso de aplicativos do usurio e o
acesso de usurios ao banco de dados so admitidos pelos esquemas externos
(EEs), definidos como se estivessem localizados acima do esquema conceitual
global.
O modelo de arquitetura descrito na figura 02 abaixo fornece os nveis de
transparncia analisados acima. A independncia dos dados admitida, pois o
modelo uma extenso do ANSI/SPARC, que proporciona naturalmente tal
independncia. As transparncias de localizao e replicao so admitidas
pela definio dos esquemas conceituais local e global, e pelo mapeamento
intermedirio. Por outro lado, a transparncia da rede aceita pela definio do
esquema global. O usurio examina os dados, independentemente de sua
localizao ou de qual componente local do sistema de banco de dados
distribudo o servir. O SGBD distribudo converte consultas globais em grupos
de consultas locais, as quais so executadas por componentes globais em
grupos de consultas locais, as quais so executadas por componentes do
SGBD distribudo em diferentes sites que se comunicam uns com os outros.




________________________________________________________________________________
Paracelso de Oliveira Caldas
22
















Figura 02 Arquitetura de banco de dados distribudo de referncia
Os componentes detalhados de um SGBD distribudo esto descritos a seguir.
Um componente trata da interao com os usurios e outro lida com o
armazenamento. O primeiro componente importante, que se chama
processador do usurio, consiste em quatro elementos:
O tratador da interface do usurio responsvel pela interpretao dos
comandos do usurio medida que eles chegam, e pela formatao dos
dados do resultado conforme eles so enviados ao usurio.
O controlador de dados semnticos utiliza as restries de integridade e
as autorizaes definidas como parte do esquema conceitual global, a fim
de verificar se a consulta do usurio pode ser processada.
O otimizador e decompositor de consultas globais determinam uma
estratgia de execuo para minimizar uma funcao de custo e converte
as consultas globais em consultas locais, usando os esquemas
conceituais locais e globais.
O monitor de execuo distribuda coordena a execuo distribuda da
solicitao do usurio. O monitor de execuo tambm chamado
gerenciador de transao distribuda.
O segundo componente importante de um SGBD distribudo o processador de
dados, que consiste em trs elementos:
O otimizador de consulta local que, na realidade, atua como o seletor de
caminho de acesso, responsvel pela escolha do melhor caminho de
acesso para acessar qualquer item de dados;
O gerenciador de recuperao local responsvel pela garantia de que o


________________________________________________________________________________
Paracelso de Oliveira Caldas
23
banco de dados local permanecer consistente, mesmo quando
ocorrerem falhas;
O processador de suporte runtime acessa fisicamente o banco de dados,
de acordo com os comandos fsicos no escalonamento gerado pelo
otimizador de consultas. O processador de suporte runtime a interface
para o sistema operacional e contm o gerenciador de buffers (ou cache)
do banco de dados, que responsvel por manter os buffers da memria
principal e gerenciar os acessos aos dados.
1.5.1.3 Sistemas de Vrios Bancos de Dados Distribudos (SVBDs)
As diferenas no nvel de autonomia entre os SVBDs distribudos e os SGBDs
distribudos tambm se refletem em seus modelos de arquitetura. A diferena
fundamental se relaciona definio do esquema conceitual global. No caso de
SGBDs distribudos logicamente integrados, o esquema conceitual global define
a viso conceitual do banco de dados inteiro; por outro lado, no caso de SVBDs
distribudos, ele representa apenas a coleo de alguns dos bancos de dados
locais que cada SVBD local quer compartilhar. Desse modo, a definio de um
banco de dados global diferente em SVBDs e em SGBDs distribudos. No
ltimo caso, o banco de dados global igual unio dos bancos de dados
locais, enquanto no primeiro caso ele apenas um subconjunto da mesma
unio. H at mesmo argumentos que se referem necessidade de existir ou
no um esquema conceitual global em sistemas de vrios bancos de dados.
Em um SVBD, o ECG definido integrando-se os esquemas externos de
bancos de dados locais autnomos ou partes de seus esquemas conceituais
locais. A figura 03 abaixo apresenta a arquitetura de SVBD com um ECG.







Figura 03 Arquitetura de SVBD com um ECG


________________________________________________________________________________
Paracelso de Oliveira Caldas
24
A concepo do esquema conceitual global em sistemas de vrios bancos de
dados envolve a integrao dos esquemas conceituais locais ou dos esquemas
externos locais. Uma diferena importante entre o projeto do EGC em SVBDs e
em SGBDs distribudos integrados que nos primeiros o mapeamento de
esquemas conceituais locais para um esquema global. Porm, nos ltimos, o
mapeamento feito no sentido oposto. Isso ocorre porque o projeto no primeiro
caso em geral um processo bottom-up, enquanto no ltimo caso ele
normalmente um procedimento top-down. Alm disso, se existir
heterogeneidade no sistema de vrios bancos de dados, ter de ser encontrado
um modelo de dados cannico para definir o ECG.
Um aplicativo pode ter um esquema externo local (EEL) definido sobre o
esquema conceitual local, bem como um esquema externo global (EEG),
definido sobre o esquema conceitual global.
A filosofia bsica permitir que cada usurio acesse o banco de dados global
(isto , dados de outros bancos de dados) por meio de um esquema externo
definido com o uso da linguagem do SGBD local do usurio. Consultas sobre o
banco de dados global so feitas com a utilizao da linguagem do SGBD local,
mas em geral elas exigem algum processamento para serem mapeadas no
esquema conceitual global.
As arquiteturas de banco de dados federados, tambm no utilizam um
esquema conceitual global.

1.6 Tipos de SGBD Distribudos
A expresso sistema de gerncia de bancos de dados distribudos pode
descrever vrios sistemas que se distinguem uns dos outros em muitos
aspectos. A principal identidade que todos esses sistemas tm em comum o
fato de que os dados e os softwares so distribudos em diversos sites
conectados por alguma forma de sistema de rede de comunicao.
Apresenta-se aqui apenas os tipos de SGBDs distribudos sem entrar nos
critrios e fatores que tornam alguns desses sistemas diferentes.
Homogneo o SGBDD que possui todos os servidores (ou SGBDs
locais individuais) utilizando softwares idnticos e todos os usurios
(clientes) utilizando software idnticos;
Heterogneo o caso contrrio, ou seja, tanto SGBDs quanto clientes
podem utilizar softwares diferentes. Em um SBDD heterogneo, um
servidor pode ser um SGBD relacional, um outro pode ser um SGBD de
rede e um terceiro pode ser um SGBD hierrquico; nesse caso,
necessrio ter uma linguagem de sistema cannica e incluir tradutores de


________________________________________________________________________________
Paracelso de Oliveira Caldas
25
linguagem para verter sub-consultas da linguagem cannica na
linguagem de cada servidor;
SGBDD Federado (ou um sistema de mltiplos bancos de dados) o
sistema em que cada servidor um SGBD centralizado independente e
autnomo que tem seus prprios usurios locais, transaes locais e
DBA e, portanto tem um grau muito elevado de autonomia local. A
expresso sistema de banco de dados federado (SBDF) utilizada
quando existe alguma viso ou esquema global da federao de bancos
de dados que sejam compartilhados pelas aplicaes.

You might also like