Banco de dados distribuidos

20

Click here to load reader

Transcript of Banco de dados distribuidos

Page 1: Banco de dados distribuidos

FACULDADES INTEGRADAS SANTA CRUZ DE CURITIBA

Sistema de Banco de Dados Distribuídos

CURITIBA

OUTUBRO/2015

Page 2: Banco de dados distribuidos

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

Page 3: Banco de dados distribuidos

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

Page 4: Banco de dados distribuidos

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

Page 5: Banco de dados distribuidos

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

Page 6: Banco de dados distribuidos

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

Page 7: Banco de dados distribuidos

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

Page 8: Banco de dados distribuidos

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

Page 9: Banco de dados distribuidos

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

Page 10: Banco de dados distribuidos

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

Page 11: Banco de dados distribuidos

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

Page 12: Banco de dados distribuidos

“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

Page 13: Banco de dados distribuidos

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

Page 14: Banco de dados distribuidos

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