FACULDADES INTEGRADAS SANTA CRUZ DE CURITIBA
Sistema de Banco de Dados Distribuídos
CURITIBA
OUTUBRO/2015
FACULDADES INTEGRADAS SANTA CRUZ DE CURITIBA
DEROCI NONATO JÚNIOR
MISAEL GOLLUB POLUCHESKI
RAFAEL ROMANIECKI
Sistema de Banco de Dados Distribuídos
Trabalho apresentado como requisito parcial
para a obtenção de nota na disciplina de
Sistemas Distribuídos, pela Faculdade Santa
Cruz de Curitiba, unidade Bonat.
Orientador: Prof Silvio Bortoleto.
CURITIBA
OUTUBRO/2015
Sumário
1. Introdução...................................................................................................................4
2. Independência dos dados............................................................................................5
3. Proposta do SBDD.....................................................................................................5
4. Dificuldades do SBDD...............................................................................................6
5. SBDD homogêneos e heterogêneos...........................................................................7
6. O que são links de banco de dados?...........................................................................7
7. O que são links compartilhados de banco de dados?.................................................8
8. Banco de Dados Paralelo............................................................................................9
9. Fragmentação de dados..............................................................................................9
10. Replicação................................................................................................................10
11. Transação distribuída...............................................................................................10
12. Controle de Concorrência distribuído......................................................................10
13. Conceitos de fechaduras...........................................................................................11
14. Protocolos utilizados................................................................................................11
15. Protocolos.................................................................................................................11
16. Conclusão.................................................................................................................13
17. Referencias...............................................................................................................14
1. Introdução
A evolução da tecnologia sempre se deu devido as necessidades encontradas
pelos humanos em realizar determinadas ações. A evolução da tecnologia para chegar
aos sistemas de bancos de dados distribuídos não foi diferente. Um banco de dados
distribuídos pode ser definido como uma coleção de dados logicamente inter-
relacionados distribuídos fisicamente atraves de uma rede de computadores. Cada
usuário tem acesso a partes especificas do banco de dados para que possam executar
suas tarefas sem interferir com o trabalho dos outros.
Essas distribuições de dados trazem benefícios na disponibilidade dos dados,
na confiabilidade deles, em uma melhora de performance, estrutura organizacional etc.
No lado oposto aumenta a complexidade do ambiente, possível aumento de custos,
dificulta o controle da integridade etc.
Para ser possível a utilização de bancos de dados distribuídos se faz necessário
um sistema de gerenciamento de banco de dados distribuído (SGBDD), ele gerencia o
banco de dados como se estivesse tudo armazenado no mesmo computador. O SGBDD
sincroniza todos os dados periodicamente e, nos casos em que vários usuários devem
acessar os mesmos dados, garante que as atualizações e exclusões realizadas nos dados
em um local serão refletidas automaticamente nos dados armazenados em todas as
bases.
4
2. Independência dos dados
Antigamente os programas armazenavam dados em arquivos regulares e cada
programa tinha que manter seus próprios dados e isso gerava uma enorme sobre carga e
era algo completamente sujeito a erros. O desenvolvimento e utilização de banco de
dados distribuídos ajudou alcançar plenamente a independência dos dados, podendo
garantia a manutenção dos dados centralizados e com controle de acesso, auxiliou as
aplicações ficarem imune a organização física e lógica dos arquivos devido distribuição
dos dados e ao acesso dos mesmo de qualquer lugar. A distribuição desses dados não é
nada mais que a união de dados que aparentemente estão caminhando em direções
completamente opostas.
O fator determinante que possibilita a possibilidade do uso de banco de dados
distribuídos são as redes de computadores atuais que vieram para promover um modo
de trabalho que vai completamente contra a centralização. O foco é a integração e
conversação entre os bancos, a ideia é ter o mínimo de informações centralizadas porem
todas as pontas se comunicando entre si, permitindo que aplicativos acessem os dados
de bancos locais e remotos. A principal utilização de tal distribuição é alcançar a
integração e distribuição de dados da maneira mais transparente possível as pessoas que
o utilizam.
3. Proposta do SBDD
Uma de suas premissas é o aumento da confiabilidade dos dados devido a
replicação de componentes, não há pontos centralizados que podem ocorrer falhas e
perca total de dados, quando um dos computadores falhar, a carga de trabalho é captada
por outras estações de trabalho. Os processamentos de transações distribuídas garantem
a consistência do banco de dados e sua sincronização. Todos os nós ou todos as pontas
no banco de dados devem estar interligados pela rede de computadores e conversando
entre si. Os dados ou fragmentos de dados podem e devem ser replicados a outros nós
adjacentes.
O usuário final é capaz de acessar qualquer cópia dos dados disponíveis, e
pedido de um usuário final é processado por qualquer processador no local de dados.
5
Há uma melhora na performance devido aos dados estarem sendo distribuídos
e presente próximo de seus pontos de utilização, assim há uma redução de tempo no
acesso a tais informações. As execuções podem ser realizadas em paralelo, tanto no
momento de inter-consulta como de intra-consulta. O sistema espalha a carga de
trabalho por sistemas de processamento de dados em vários nós.
A expansão do sistema se torna mais simples, pois novas tecnologias, estações
e expansão do banco podem ser adicionadas a qualquer momento, bastando apenas o
banco ser instalado e configurado com os apontamentos corretos.
Dados compartilhados logicamente relacionados podem ser recolhidos por
qualquer um dos pontos. Todos os bancos são controlados pelo Sistema de
Gerenciamento de Banco de Dados Distribuídos e cada um deles participam de pelo
menos uma aplicação global.
Aumento na segurança devido a ser possível manter o controle centralizado de
todos dados distribuídos. O gerenciamento de dados é replicado, ou seja, em todas as
pontas é possível ter uma gerencia de dados centralizada de todos os dados distribuídos.
Gestão de catálogo, hierarquia e “foto” do sistema completo de maneira fácil. Gerenciar
transações de maneira distribuídas e recuperar o de banco de dados distribuído de
maneira rápida.
4. Dificuldades do SBDD
Existe uma complexidade no gerenciamento e controle notável em bancos de
dados distribuídos, pois todos os apontamentos têm de estar corretos, a liberação de
acesso deve ser criada de maneira muito criteriosa, os usuários responsáveis pela
gerencia bem selecionados e treinados, as políticas de segurança bem claras e bem
pensadas. Os problemas com segurança aumentam quando os dados estão localizados
em múltiplos locais, pois todas as diretrizes devem ser bem pensadas e aplicadas de
maneira correta, ainda mais quando falamos de sistemas heterogêneos que se
comportam de maneira diferente um do outro.
As requisições devem reconhecer a localização de todos os dados solicitados, e
elas devem ser capazes de unir dados de vários pontos diferentes em uma única
aplicação de maneira transparente e sem duplicação.
6
Requisitos de disponibilidade do setor de infraestrutura aumentam muito com
tais serviços, pois se faz necessário uma largura de conexão muito grande para suportar
o envio e requisições de dados, também deve suportar a sincronização e o trafego
normal de dados. E de armazenamento devido a necessidade de várias cópias dos dados
ter de estar em locais diferentes, logo é necessário mais espaço de armazenamento.
5. SBDD homogêneos e heterogêneos
Em um banco de dados distribuído homogêneo todos os pontos têm softwares
idênticos uns aos outros e se reconhecem cooperando no processamento de solicitações
dos usuários. Um aplicativo pode acessar ou modificar simultaneamente os dados de
vários bancos de dados através de um único ambiente distribuído. Por exemplo, uma
única consulta de um cliente que está na rede A em seu banco de dados local pode
recuperar ao mesmo tempo dados do banco local e dados de um banco de dados remoto
que se situa na rede B. Para o aplicativo cliente, a localização e plataforma dos bancos
de dados são transparentes. Podemos criar sinônimos de objetos remotos de modo que
os usuários possam os acessar com a mesma sintaxe dos objetos locais. Seria como se
você estiver conectado ao banco de dados local, mas necessitasse de acessar dados em
um banco remoto, se cria um sinônimo no banco local para a tabela do banco remoto
que permite que seja realizada a consulta sem a necessidade de adição do caminho
completo.
É encontrado uma facilidade maior em se projetar e gerenciar sistemas
homogêneos devido as similaridades. Os sistemas operacionais utilizados e o aplicativo
de banco de dados (SGBD) é o mesmo ou são no mínimo compatíveis.
Já em um banco de dados distribuído heterogêneos, diferentes pontos podem
conter diferentes esquemas, softwares, hardwares e estruturas de dados em vários
pontos. Diferentes computadores e sistemas operacionais, aplicativos de banco de dados
ou modelos de dados podem ser encontrados nesse ambiente. Se faz necessário
traduções de protocolos, comandos ou operações para permitir a comunicação entre os
diferentes pontos.
7
6. O que são links de banco de dados?
Um link é um ponteiro que define um caminho de comunicação unidirecional
de um servidor de banco de dados para outro servidor de banco de dados. O ponteiro da
ligação é definido como uma entrada em uma tabela de um dicionário de dados. Para
acessar o link, o usuário deve estar conectado ao banco de dados local que contém a
entrada do dicionário de dados.
É chamado de unidirecional no sentido de que um cliente conectado ao banco
de dados local pode utilizar somente um link armazenado no banco de dados para
acessar informações em um banco de dados remoto, mas os usuários conectados ao
banco de dados remoto não podem usar o mesmo link para acessar os dados no banco de
dados deste primeiro usuário. Se os usuários locais no banco de dados remoto desejam
acessar dados no banco de dados daquele primeiro usuário, se deve então definir um
novo link que é armazenado no dicionário de dados do banco de dados remoto. Para esta
conexão ocorra, cada banco de dados no sistema distribuído deve ter um nome de banco
de dados global único no domínio da rede. O nome do banco de dados global identifica
exclusivamente um servidor de banco de dados em um sistema distribuído.
Links de banco de dados são divididos entre privados ou públicos. Se são
privados, apenas o usuário que criou o link tem acesso; se são públicos, todos os
usuários do banco de dados têm acesso.
7. O que são links compartilhados de banco de dados?
Um link de banco de dados compartilhado é uma ligação entre um processo do
servidor local e do banco de dados remoto. O link é compartilhado por vários processos
do cliente que podem utilizar o mesmo link simultaneamente.
Quando um banco de dados local está conectado outro banco de dados remoto
através de um link, os processos podem ser executados no servidor dedicado ou
compartilhado.
Quando um usuário precisa para estabelecer uma conexão com um servidor
remoto a partir de um processo do servidor local, o processo pode reutilizar conexões já
estabelecidas com o servidor remoto. A reutilização da conexão pode ocorrer se a
8
conexão for estabelecida no mesmo processo do servidor com o mesmo link de banco
de dados.
8. Banco de Dados Paralelo
Um sistema de banco de dados paralelo possui um ganho de desempenho
através da paralelização de várias operações, tais como o carregamento de dados,
índices de construção, consultas e inserção de dados. A paralelização é feita
exclusivamente com base no desempenho de cada máquina.
Bases de dados paralelas melhoram a velocidade de processamento e de
entrada/saída, utilizando múltiplas CPUs e discos em paralelo onde muitas operações
são realizadas simultaneamente, podemos fazer uma analogia com o processo de RAID
que pode ser feito em Desktop.
9. Fragmentação de dados
A fragmentação é um recurso do servidor de banco de dados que permite que
você controle onde os dados são armazenados a nível de tabela, também pode ser
definido como um processo de divisão ou de mapeamento das tabelas com base nas
colunas e linhas. Os dados que sofrem algum tipo de variação têm a possibilidade de se
combinar com a conclusão de coleta de dados usando fragmentação. Ela permite que
você defina grupos de linhas ou chaves de índice dentro de uma tabela.
Fragmentação Vertical: é a fragmentação de tabela a nível de colunas, onde
uma ou um conjunto de colunas de uma mesma tabela ficam em bancos separados.
Normalmente essa fragmentação realizada com base na necessidade do usuário,
deixando em bancos mais próximos do usuário suas colunas mais requisitadas, assim se
tem um ganho de desempenho, porem qualquer usuário ainda consegue requisitar
qualquer uma das colunas da tabela.
Fragmentação Horizontal: é a fragmentação da tabela a nível de linhas, onde
uma quantidade especifica ou intervalos de linhas são alocados em bancos diferentes.
Utilizado em casos que os usuários se baseiam em regiões, um exemplo seria um
sistema nacional de cadastramento onde todos os dados de clientes do Paraná são
adicionado em uma tabela que fica em um banco localizado no Paraná e os clientes de
9
Rondônia são adicionados na mesma tabela mas em um banco que fica localizado em
Rondônia, os dois podem acessar todos os dados da tabela, porem no Paraná é feito
mais consultas e inserção de dados de cliente de seu próprio estado, logo se ganha
desempenho com isso, em Rondônia o mesmo caso.
10. Replicação
Replicação é o armazenamento de várias cópias de um fragmento de dado. Um
fragmento de dado inteiro pode ser replicado em um ou mais locais. Maior
disponibilidade de dados é alcançada. Caso uma das pontas que contém uma réplica
sofre uma falha, podemos encontrar os mesmos dados em outras pontas. Ocorre da
mesma forma, se cópias locais de fragmentos de dados remotos estão disponíveis, assim
reduzimos muito possíveis falhas de conexão. Temos uma redução no tempo de
consulta, pois as consultas, podem ser executadas usando uma cópia local de um
fragmento em vez de sair para outra ponta.
11. Transação distribuída
Em um SGBD distribuídos, uma determinada operação é submetida alguma
ponta mas pode acessar dados em todas as outras pontas também. Quando uma
transação é designada a alguma ponta, o gerenciador de transações dessa ponta se divide
em uma ou mais sub-transações que são executadas em pontas diferentes, submetem a
gerenciadores de transações de outras pontas e coordena as ações.
12. Controle de Concorrência distribuído
Temos uma função que se chama Controle de Concorrência Distribuído que
assegura a persistência de todas as ações em todas as pontas em que é executada quando
uma transação é confirmada. Da mesma forma, quando uma transação for anulada,
nenhuma de suas ações devem persistir.
Gerenciamento Controle de Concorrência podem ser distribuídos nas pontas
como:
10
Centralizada: Uma única ponta é encarregada de lidar com bloqueios e
desbloqueios de todos os pedidos de objetos.
Cópia Primária: Uma cópia de cada objeto é submetida a cópia primária.
Todas as solicitações para bloquear ou desbloquear deste objeto são tratadas
pelo gerenciador de bloqueio no local onde a cópia principal é armazenada,
independentemente de onde a cópia é armazenada.
Totalmente distribuído: As solicitações para bloquear ou desbloquear uma
cópia de um objeto armazenado em uma ponta são tratadas pelo gerenciador
de bloqueio no local onde a cópia é armazenada.
13. Conceitos de fechaduras
Um bloqueio é utilizado quando vários usuários precisam acessar um banco de
dados simultaneamente, e isso evita que os dados sejam corrompidos ou invalidados.
Qualquer usuário só pode modificar os registros de banco de dados quando
lhes dá acesso exclusivo para o registro. O processo de bloqueio não só proporciona
exclusividade para escrever, mas também impede leituras imprecisa dos dados.
14. Protocolos utilizados
Podemos dividir as transações de aplicações distribuídas em locais e globais.
Transações locais são as que iniciam e se concluem em uma mesma ponta, não afetando
as demais pontas para realizar sua transação. Já as globais são aquelas que iniciam em
determinada ponta e terminam em outra ponta, ou iniciam e concluem na mesma ponta,
porém no meio da transação foi necessário acessar a outra ponta para realizar alguma
operação, assim utilizando o desempenho da outra ponta em algum momento do
processamento.
15. Protocolos
A integridade das transações distribuídas é garantida pelos protocolos de
efetivação que atinge mais de uma ponta, fazendo com que a transação só seja realizada
(Commit) ou cancelada (Rollback) quando todas as pontas entram em um acordo.
11
“Two-Phase Commit: O protocolo de efetivação Two-Phase
Commit é composto por duas fases, em que todos os servidores
envolvidos na transação entraram em acordo se efetivaram
(Commit) ou abortaram (Rollback) a transação.
Theree-Phase Commit: O protocolo Theree-Phase Commit é
uma continuação do protocolo de duas fases em que é
adicionada uma terceira fase que busca a diminuição de falhas
do coordenador. Com a implementação da terceira fase, a troca
de dados entre coordenador e gerenciadores de transação
aumenta o grau de complexidade e proporciona um maior
trafego na rede (overhead). ” (ROSÁRIO, 2013).
12
16. Conclusão
O documento abordou conceitos e fundamentos de sistemas de banco de dados
distribuídos, conceitos de modelagem e estruturação, bem como protocolos utilizados e
métodos de controle e replicação.
Concluímos que os recursos apresentados permitem que sistemas de Banco de
Dados distribuídos apresentem performance e confiabilidade nos cenários onde estão
inseridos. Neste tipo de implementação, devido a sua complexidade e criticidade todos
os componentes devem ser bem planejados e implementados, porém, uma vez o sistema
implementado, tomando em conta todas essas premissas, temos como resultado em
geral um sistema sólido, performático e tolerante a falhas.
13
17. Referencias
R OUSE, Margaret. Distributed database definition. Setembro de 2005.
Disponível em <http://searchoracle.techtarget.com/definition/distributed-database>.
Acessado em 16/10/15 às 08h30min.
GAMPER, Johann. Distributed Databases. Setembro de 2008. Disponível em
<http://www.inf.unibz.it/dis/teaching/DDB07/ln/ddb01.pdf>. Acessado em 16/10/15 às
09h10min.
Oracle9i Database Administrator’s Guide, Resease 2 (9.2). Disponível em
<https://docs.oracle.com/cd/B10501_01/server.920/a96521/ds_concepts.htm#20409>.
Acessado em 16/10/15 às 09h40min.
SULEMAG. Distributed Database System. 02 de Março de 2014. Disponível
em <http://pt.slideshare.net/Sulemang/distributed-database-system>. Acessado em
16/10/15 às 10h45min.
PATIL, Bharat. Distributed database. 20 de Março de 2013. Disponível em
<http://pt.slideshare.net/patilbharat7/distributed-database-final?next_slideshow=1>.
Acessado em 16/10/15 às 14h00min.
ROSÁRIO, Luiz Garetti. O que é Banco de Dados Distribuído? 8 de Outubro
de 2013. Disponível em <http://imasters.com.br/banco-de-dados/o-que-e-banco-de-
dados-distribuido/?trace=1519021197&source=single>. Acessado em 18/10/15 às
10h05min.
14
Top Related