Vous êtes sur la page 1sur 5

Banco de Dados

Banco de Dados Distribudos

Conjunto de dados organizados, compartilhados e integrados, que seguem um conjunto de regras de formao e contedo. Normalmente este conjunto de dados se encontra centralizado, ou seja, os dados esto armazenados em apenas um local.

Prof. Renato Fileto INE/CTC/UFSC

Sistema de Banco de Dados Distribudo (SBDD)


Coleo de ns, onde cada n mantm um banco de dados local, mas cujo conjunto atua como um nico sistema de banco de dados lgico. Dados locais, mas em acordo com um esquema de banco de dados distribudos integrado. Os ns podem executar consultas locais, assim como consultas que acessam dados localizados em outros ns da rede.

Independncia de localizao

Independncia de localizao Apesar de existir fisicamente a distribuio dos dados, esta deve estar em um nvel lgico para o usurio, permitindo o acesso aos dados de maneira transparente.

Esquema de um SBBD

Arquitetura de um SBBD
A imagem no pode ser exibida. Talv ez o computador no tenha memria suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poder ser necessrio excluir a imagem e inseri-la nov amente.

Client 1

Client 2

...

Client M

A imagem no pode ser exibida. Talv ez o computador no tenha memria suficiente para abrir a imagem ou talv ez ela esteja corrompida. Reinicie o computador e abra o arquiv o nov amente. Se ainda assim aparecer o x v ermelho, poder ser necessrio excluir a imagem e inseri-la nov amente.

Unified Schema
Schema 1 Schema 2

...

Schema N

Distributed Database
DDBMS

Distributed Database
DDBMS

...

Distributed Database
DDBMS

Tipos de Sistemas de SBDD


Homogneo: Todos os ns rodando o mesmo SGBD. Heterogneo: Diferentes ns rodando diferentes SGBDs (relacionais ou mesmo no relacionais).

Sistema de Gerenciamento de BD Distribudo (SGBDD)

Em 1987, C. J. Date, um dos primeiros projetistas de bancos de dados relacionais, junto com o Dr. E. F. Codd, autor da teoria relacional, props 12 regras que um SGBDD completo deveria seguir.

Gateway 1 DBMS 1

Gateway 2 DBMS 2

Gateway 3 DBMS 3

As 12 Regras para SGBDD


1. Autonomia local: Cada n participante de um sistema distribudo deve ser independente dos outros ns. Cada n deve prover mecanismos de segurana, bloqueio, acesso, integridade e recuperao aps falha. No dependncia de um n central: Um sistema de banco de dados distribudo no deve depender de um n central, pois isso acarretaria um nico ponto de falha, afetando todos os outros ns. Um n central tambm poderia ficar sobrecarregado resultando em perda de desempenho do sistema. Operao contnua: Um sistema de banco de dados distribudo nunca deve precisar ser desativado. As operaes de backup e recuperao devem ser suportadas on-line. Essas operaes devem ainda ser rpidas o bastante para no afetarem o funcionamento do sistema (backup incremental, por exemplo).

As 12 Regras para SGBDD (cont.)


4. Transparncia/independncia de localizao: Os usurios do sistema no devem precisar saber o local onde esto localizados os dados; devem se comportar como se os dados estivessem armazenados localmente. A transparncia de localizao pode ser alcanada pela utilizao de sinnimos estendidos e pelo extenso uso do dicionrio de dados. A transparncia de localizao permite que aplicaes sejam portadas de um n da rede para outro sem a necessidade de modificaes. Independncia de fragmentao: As tabelas que fazem parte de um sistema de banco de dados distribudo podem estar divididas em fragmentos, localizados fisicamente em diferentes ns, de forma transparente para o usurio. Independncia de replicao: Dados podem estar replicados em vrios ns da rede, de forma transparente. As rplicas de dados devem ser mantidas sincronizadas automaticamente pelo SGBDD

2.

5.

3.

6.

As 12 Regras para SGBDD (cont.)


7. Processamento de consultas distribudo: O desempenho de uma consulta deve ser independente do local onde a mesma submetida. Um SGBDD deve possuir um otimizador capaz de selecionar no apenas o melhor caminho para o acesso a um determinado n da rede, mas tambm otimizar o desempenho de uma consulta distribuda, levando em conta a localizao dos dados, utilizao de CPU, I/O e o trfego na rede. 8. Gerenciamento de transaes distribudas: Um SGBDD deve suportar transaes atmicas. As propriedades ACID (Atomicidade, Consistncia, Independncia e Durabilidade) das transaes e a serializao devem ser suportadas no apenas para transaes locais, mas para transaes distribudas tambm. 9. Independncia de hardware: Um SGBDD deve poder operar e acessar dados em uma variedade de plataformas de hardware. Um SGBDD verdadeiro no deve depender de uma determinada

As 12 Regras para SGBDD (cont.)


10.Independncia de sistema operacional: Um SGBDD deve poder executar em sistemas operacionais diferentes. Assim como na regra anterior, um SGBDD no deve depender de um sistema operacional em especial. 11.Independncia de rede: Um SGBDD deve ser projetado para executar independentemente do protocolo de comunicao e da topologia de rede usada para interligar os vrios ns que fazem parte da rede. 12.Independncia de SGBD: Um SGBDD ideal deve possuir capacidades para se comunicar com outros sistemas de gerenciamento de banco de dados executando em ns diferentes, mesmo se estes sistemas de bancos de dados so diferentes (heterogneos). Todos estes sistemas devem usar APIs

Recent Trends
(Ramakrishnan and Gehrke, 1999)

Vantagens de SGBDD
(em relao a SGBD centralizado) Compartilhamento de dados e controle distribudo: Existe um administrador global, responsvel pelo sistema como um todo, mas parte das responsabilidades so delegadas a administradores locais que gozam de certa autonomia. Maior confiabilidade: O sistema funciona conforme o projeto. Maior disponibilidade: O sistema est disponvel por maior percentual de tempo. Melhor desempenho no processamento de consultas: Sub-consultas podem ser executadas em paralelo. Maior escalabilidade: mais fcil acrescentar um n, desde que os mesmos sejam autnomos, do que substituir um sistema centralizado existente por um maior.

Users have to be aware of where data is located, i.e., Distributed Data Independence and Distributed Transaction Atomicity are not supported. These properties are hard to support efficiently. For globally distributed sites, these properties may not even be desirable due to administrative overheads of making the location of data transparent.

Desvantagens de SGBDD
(em relao a SGBD centralizado) Custo de desenvolvimento do software: A alta complexidade torna mais difcil implementar um SGBDD, tornando-o mais caro. Grande potencial para bugs: Ocorrncia de erros muito sutis na colaborao entre os ns do SGBDD. Aumento do overhead de processamento: Devido troca de mensagens e computao adicional para obter a coordenao entre os ns. Questes de projeto especficas: Por exemplo, replicao e fragmentao de dados. Dificuldades para obter conhecimento global: Por exemplo, controle de concorrncia entre transaes distribudas e deteco de deadlock.

Melhoria de desempenho

Escalabilidade no tamanho da base

Escalabilidade na carga de trabalho

Fragmentao de dados

Replicao de dados
Rplicas dos dados em diferentes ns Aumento do paralelismo Aumento da disponibilidade de dados Elevao do overhead de atualizao Melhora desempenho das operaes de leitura, enquanto acarreta maior overhead nas atualizaes

Uma relao dividida em fragmentos, que so armazenados em diferentes ns. Fragmentao horizontal: os fragmentos so definidos por seleo de tuplas. Fragmentao vertical: os fragmentos so definidos por projeo de atributos.

Exemplo de Fragmentao

Atualizao dos dados replicados


Replicao sncrona: Todas as cpias de uma relao modificada (fragmentos) deve ser atualizadas antes da transao modificante fazer commit
A distribuio de dados fica transparente para o usurio

Replicao Assncrona: As cpias da relao modificada s so atualizadas periodicamente; rplicas podem ficar inconsistentes por algum tempo
Os usurios devem estar cientes da distribuio e replicao Produtos atuais seguem esta abordagem

Processamento de consultas em SGBDD


Deve levar em conta: Rplicas dos dados Reconstruo de relaes a partir de fragmentos Tempo de recuperao Tempo de processamento Transmisso de dados via rede

Consultas Distribudas

Replicao: cpias em vrios ns Escolha baseada em custos locais e de transmisso

SELECT AVG(sal) FROM TopModels M WHERE M.age > 20 AND M.age < 35

Fragmentao horizontal: Modelos com idade < 25 no Rio e idade >= 25 em SP Pode-se computar AVG(salary) em ambos o ns Como calcular a mdia geral dos salrios Pode-se trazer ambas os dados de ambas as relaes vertical: Fragmento vertical mid e age em SP, mid, name and sal no Rio Pode-se reconstruir a relao de modelo atravs de juno no atributo mid, e ento processar a consulta

Controle de Transaes em SGBDD


(garantindo a Atomicidade)

Controle de Transaes em SGBDD


(garantindo a Consistncia)

Protocolo two-phase commit


1. Preparao:
a) Um dos participantes designado coordenador do twophase commit e envia a cada n envolvido na transao uma solicitao para se preparar para fazer commit. b) Uma vez preparado, cada participante escreve uma marca no seu log, avisa o coordenador e no pode mais abortar.

Escalonamentos seriais: entrelaamento da


execuo de operaes de diferentes transaes, com resultado idntico ao da execuo serial das transaes Excluso mtua por bloqueio (lock)
Troca de mensagens para solicitar bloqueios locais Deadlock mais difcil detectar em um SGBDD

2. Commit:
a) Se todos os participantes esto prontos, o coordenador envia um sinal de commit para cada participante, que o executa. b) Se algum dos participantes falhar na preparao para o commit, este notifica o coordenador, que envia um sinal de rollback para todos os participantes.

Mtodos otimistas
Livre execuo das operaes Monitoramento de conflitos (via grafos/rvores de execuo e/ou relgios lgicos) Em caso de conflito, a transao mais nova pode ser desfeita, para depois ser realizada novamente

Cpia primria / secundria para locks distribudos


Cpia Primria a que coordena a atribuio de locks ao item replicado no sistema distribudo Cpia Secundria atualizada de maneira sncrona com a cpia primria para assumir em caso de falha da primeira Mtodo do Site Primrio / coordenador nico: todas as cpias primrias em um mesmo site Mtodo da Cpia Primria / coordenadores mltiplos: cpias primrias em sites distintos Eleio para definio de novo coordenador em caso de falha

Sincronizao de Operaes de requisio de locks em SGBDD


Cpia primria / secundria
Permite tratar dados replicados como no replicados

Coordenador nico
Simples, mas com um ponto de falha e gargalo

Protocolo desviado
Bloqueio partilhado leitura (somente local) Bloqueio exclusivo escrita (todas as rplicas)

Protocolo de eleies
Gerenciamento local e trocas de requisies

Marcador de tempo (cada transao recebe um


marcador) Centralizado (relgio local ou contador) Distribudo (relgios lgicos)

Tratamento de deadlocks em SGBDD


Deteco de ciclos centralizada: Os grafos locais so enviados para um n central para concatenao e deteco de ciclos Deteco de ciclos hierrquica: Organizao dos ns em uma hierarquia, com envio do grafo de espera de cada n para o n pai Timeout: Abortar uma transao quando esta estiver esperando por muito tempo, para recomea-la logo depois

Grafos de espera

T1

T2

T1

T2

Site A

Site B

T1

T2

Global

Vous aimerez peut-être aussi