Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de...

32
http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo [email protected] Última atualização: 20.03.2013

Transcript of Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de...

Page 1: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

http://www.tiagodemelo.info

Bancos de dados distribuídosProf. Tiago Eugenio de Melo

[email protected]

Última atualização: 20.03.2013

Page 2: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

2http://www.tiagodemelo.info

Conceitos

Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds logicamente inter-relacionados, distribuídos por uma rede de computadores, e um sistema de gerenciamento de banco de dados distribuído como um software que gerencia um banco de dados distribuído enquanto torna a distribuição transparente para o usuário.

Os bancos de dados distribuídos são diferentes dos arquivos WEB da Internet.

Page 3: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

3http://www.tiagodemelo.info

Conceitos

Requisitos para que um bd seja distribuído: Conexões de nós de banco de dados por uma rede

de computadores.

Page 4: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

4http://www.tiagodemelo.info

Conceitos

Requisitos para que um bd seja distribuído: Inter-relação lógica dos bancos de dados

conectados. Ausência de restrição de homogeneidade entre os

nós conectados.

Page 5: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

5http://www.tiagodemelo.info

Conceitos

Transparência O conceito de transparência estende a ideia geral

de ocultar detalhes de implementação dos usuários finais.

Page 6: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

6http://www.tiagodemelo.info

Conceitos

Transparência

Page 7: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

7http://www.tiagodemelo.info

Conceitos

Transparência Transparência da organização dos dados (também

conhecida como transparência de distribuição ou rede).

Liberdade para o usuário de detalhes operacionais da rede e posicionamento dos dados no sistema distribuído.

Transparência de local. Transparência de nomes.

Page 8: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

8http://www.tiagodemelo.info

Conceitos

Transparência Transparência de replicação

Replicação síncrona. Todas as cópias de uma relação modificada (fragmentos) devem ser atualizadas antes da transação modificante fazer commit. A distribuição de dados fica transparente para o usuário.

Replicação assíncrona. As cópias da relação modificada só são atualizadas periodicamente; réplicas podem ficar inconsistentes por algum tempo. Os usuários devem ficar cientes da distribuição e replicação. Produtos atuais seguem esta abordagem.

Page 9: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

9http://www.tiagodemelo.info

Conceitos

Transparência Transparência de fragmentação.

Existem dois tipos de fragmentação: horizontal e vertical.

Fragmentação horizontal distribui uma tabela em sub-relações que são subconjuntos de tuplas na relação horizontal.

Fragmentação vertical distribui uma relação em sub-relações em que cada uma é definida por um subconjunto das colunas da relação original.

Page 10: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

10http://www.tiagodemelo.info

Conceitos

Autonomia A autonomia determina a extensão à qual os nós

individuais ou BDs em um BDD conectado podem operar independentemente.

Um alto grau de autonomia é desejável para maior flexibilidade e manutenção personalizada de um nó individual.

Page 11: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

11http://www.tiagodemelo.info

Conceitos

Confiabilidade e disponibilidade Confiabilidade é definida como a probabilidade de

um sistema estar funcionando (não parado) em certo ponto no tempo.

Disponibilidade é a probabilidade de que o sistema esteja continuamente disponível durante um intervalo de tempo.

Podemos relacionar diretamente confiabilidade e disponibilidade do BD aos defeitos, erros e falhas associadas a ele.

Page 12: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

12http://www.tiagodemelo.info

Conceitos

Vantagens Maior facilidade e flexibilidade de desenvolvimento

da aplicação. Maior confiabilidade e disponibilidade. Maior desempenho, pois as sub-consultas podem

ser executadas em paralelo. Expansão mais fácil (escalabilidade).

Page 13: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

13http://www.tiagodemelo.info

Conceitos

Desvantagens Custo de desenvolvimento de software. A alta

complexidade torna mais difícil implementar um SGBDD, tornando-o mais caro.

Grande potencial para bugs. Ocorrência de erros muito sutis na colaboração entre os nós do SGBDD.

Aumento do overhead de processamento. Devido à troca de mensagens e à computação adicional para obter a coordenação entre os nós.

Page 14: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

14http://www.tiagodemelo.info

Conceitos

Desvantagens Questões de projeto específicas. Por exemplo,

replicação e fragmentação de dados. Dificuldades para obter conhecimento global.

Por exemplo, controle de concorrência entre transações distribuídas e detecção de deadlock.

Page 15: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

15http://www.tiagodemelo.info

Conceitos

Funções adicionais Acompanhar a distribuição de dados. Processamento de consulta distribuído. Gerenciamento de transação distribuído. Gerenciamento de dados replicados. Recuperação de dados distribuídos. Segurança. Gerenciamento de diretório (catálogo) distribuído.

Page 16: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

16http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Critérios e fatores de classificação: Grau de homogeneidade (software):

SGBDD homogêneo → todos os nós rodam o mesmo SGBD.

SGBDD heterogêneo → diferentes nós rodam diferentes SGBDs.

Grau de autonomia local: Se não houver provisão para o site local

funcionar como um SGBD independente, então o sistema não tem autonomia local.

Page 17: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

17http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Page 18: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

18http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Nos sistemas intermediários, cada servidor é um SGBD centralizado, independente e autônomo, que tem os próprios usuários locais, transações locais e DBA. Alto grau de autonomia local.

O termo sistema de banco de dados federado (SBDF) é usado quando existe alguma visão ou esquema global da federação de bancos de dados que é compartilhada pelas aplicações (Ponto C).

Page 19: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

19http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Uma federação de banco de dados é uma coleção integrada de banco de dados autônomos, a qual os componentes da administração mantêm o controle total sobre os seus sistemas individuais, mas cooperam com a federação através do suporte a operações globais.

Page 20: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

20http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Sistema multibanco de dados tem uma autonomia local completa porque não possui um esquema global, mas constrói um interativamente conforme a necessidade da aplicação.

Page 21: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

21http://www.tiagodemelo.info

Tipos de sistemas de banco de dados distribuídos

Problemas com sistemas de gerenciamento de banco de dados federados

Diferenças nos modelos de dados. Diferenças nas restrições. Diferenças nas linguagens de consulta. Heterogeneidade semântica.

Page 22: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

22http://www.tiagodemelo.info

Arquitetura de banco de dados distribuídos

Arquitetura paralela versus distribuída Tipos de arquiteturas de sistema multiprocessador:

Arquitetura de memória compartilhada (altamente acoplada). Múltiplos processadores compartilham armazenamento secundário (disco) e também memória principal.

Arquitetura de disco compartilhado (livremente acoplada). Múltiplos processadores compartilham armazenamento secundário (disco), mas cada um tem sua própria memória principal.

Essas são exemplos de arquiteturas paralelas.

Page 23: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

23http://www.tiagodemelo.info

Arquitetura de banco de dados distribuídos

Page 24: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

24http://www.tiagodemelo.info

Regras para um SGBDD

Autonomia local. Cada nó participante de um sistema distruído deve ser independente dos outros nós. Cada nó deve prover mecanismos de segurança, bloqueio, acesso, integridade e recuperação após falha.

Não dependência de um nó central. Um sistema de banco de dados distribuído não deve depender de um nó central, pois isso acarretaria um único ponto de falha, afetando todos os outros nós. Um nó central também poderia ficar sobrecarregado, resultando em perda de desempenho do sistema.

Page 25: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

25http://www.tiagodemelo.info

Regras para um SGBDD

Operação contínua. Um sistema de banco de dados distribuído nunca deve precisar ser desativado. As operações de backup e recuperação devem ser suportadas on-line. Essas operação devem ainda ser rápidas o bastante para não afetarem o funcionamento do sistema (backup incremental, por exemplo).

Page 26: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

26http://www.tiagodemelo.info

Regras para um SGBDD

Transparência/independência de localização. Os usuários do sistema não precisam saber onde estão localizados os dados; devem se comportar como se os dados estivessem armazenados localmente.

Independência de fragmentação. As tabelas que fazem parte de um sistema de banco de dados distribuído podem estar divididas em fragmentos, localizados fisicamente em diferentes nós, de forma transparente para o usuário.

Page 27: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

27http://www.tiagodemelo.info

Regras para um SGBDD

Independência de replicação. Dados podem estar replicados em vários nós da rede, de forma transparente. As réplicas de dados devem ser mantidas sincronizadas automaticamente pelo SGBDD.

Processamento de consultas distribuído. O desempenho de uma consulta deve ser independente do local onde a mesma é submetida.

Page 28: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

28http://www.tiagodemelo.info

Regras para um SGBDD

Gerenciamento de transações distribuídas. Um SGBDD deve suportar transações atômicas. As propriedades ACID (atomicidade, consistência, independência e durabilidade) das transações e a serialização devem ser suportadas não apenas para transações locais, mas para transações distribuídas também.

Page 29: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

29http://www.tiagodemelo.info

Regras para um SGBDD

Independência de hardware. Um SGBDD deve poder operar e acessar dados em uma variedade de plataformas de hardware. Um SGBDD verdadeiro não deve depender de uma plataforma específica.

Independência de sistema operacional. Um SGBDD deve poder executar em sistemas operacionais diferentes.

Page 30: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

30http://www.tiagodemelo.info

Regras para um SGBDD

Independência de rede. Um SGBDD deve ser projetado para executar independentemente do protocolo de comunicação e da topologia da rede usada para interligar os vários nós que fazem parte da rede.

Independência de SGBD. Um SGBDD ideal deve possuir capacidades para se comunicar com outros sistemas de gerenciamento de banco de dados executando em nós diferentes, mesmo se estes sistemas de banco de dados são diferentes (heterogêneos).

Page 31: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

31http://www.tiagodemelo.info

Exercícios

Qual é a diferença entre falha e erro? Explique a diferença entre a arquitetura

paralela e distribuída de banco de dados. O que você entende por banco de dados

federados? Explique as vantagens e desvantagens no uso

de sistemas de banco de dados distribuídos.

Page 32: Bancos de dados distribuídos Prof. Tiago Eugenio de Melo ... · Tipos de sistemas de banco de dados distribuídos Uma federação de banco de dados é uma coleção integrada de

32http://www.tiagodemelo.info

Referências

Capítulo 25 do livro:

Prof. Renato Fileto: http://www.inf.ufsc.br/~fileto/Disciplinas/BD-Avancado/Aulas/04-BDsDistr.pdf