Baixe Regras para Sistemas de Gerenciamento de Bancos de Dados Distribuídos (SGBDD) e outras Notas de estudo em PDF para Arquitetura, somente na Docsity!
1
Banco de Dados Distribuídos
Prof. Renato Fileto
INE/CTC/UFSC
Banco de Dados
Conjunto de dados organizados, compartilhados e
integrados, que seguem um conjunto de regras de
formação e conteúdo.
Normalmente este conjunto de dados se encontra
centralizado, ou seja, os dados estão armazenados
em apenas um local.
Sistema de Banco de Dados
Distribuído (SBDD)
Coleção de nós, onde cada nó mantém um banco
de dados local, mas cujo conjunto atua como um
único sistema de banco de dados lógico.
Dados locais, mas em acordo com um esquema de
banco de dados distribuídos integrado.
Os nós podem executar consultas locais, assim
como consultas que acessam dados localizados em
outros nós da rede.
Independência de localização
Independência de localização
Apesar de existir fisicamente a distribuição dos
dados, esta deve estar em um nível lógico para o
usuário, permitindo o acesso aos dados de maneira
transparente.
Esquema de um SBBD Arquitetura de um SBBD
DDBMS
Schema 1
Distributed Database
...^ Schema N
Client 1 Client 2 (^)... Client M
Schema 2
DDBMS
Distributed Database
DDBMS
Distributed Database
...
A imagem não pode ser exibida. Talv ez o computador não tenha memória 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 necessário excluir a imagem e inseri-la nov amente. Unified Schema
A imagem não pode ser exibida. Talv ez o computador não tenha memória 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 necessário excluir a imagem e inseri-la nov amente.
Tipos de Sistemas de SBDD
Homogêneo : Todos os nós rodando o mesmo SGBD.
Heterogêneo : Diferentes nós rodando diferentes SGBDs
(relacionais ou mesmo não relacionais).
DBMS 1 DBMS 2 DBMS 3
Gateway 1 Gateway 2 Gateway 3
Sistema de Gerenciamento de BD
Distribuído (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, propôs 12 regras que um SGBDD
completo deveria seguir.
As 12 Regras para SGBDD
- Autonomia local: Cada nó participante de um sistema distribuí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.
- 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ções devem ainda ser rápidas o bastante para não afetarem o funcionamento do sistema (backup incremental, por exemplo).
As 12 Regras para SGBDD (cont.)
- Transparência/independência de localização: Os usuários do sistema não devem precisar saber o local onde estão localizados os dados; devem se comportar como se os dados estivessem armazenados localmente.
- A transparência de localização pode ser alcançada pela utilização de sinônimos estendidos e pelo extenso uso do dicionário de dados.
- A transparência de localização permite que aplicações sejam portadas de um nó da rede para outro sem a necessidade de modificações.
- 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.
- 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
As 12 Regras para SGBDD (cont.)
- Processamento de consultas distribuído: O desempenho de uma consulta deve ser independente do local onde a mesma é submetida. Um SGBDD deve possuir um otimizador capaz de selecionar não apenas o melhor caminho para o acesso a um determinado nó da rede, mas também otimizar o desempenho de uma consulta distribuída, levando em conta a localização dos dados, utilização de CPU, I/O e o tráfego na rede.
- 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.
- 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 determinada
As 12 Regras para SGBDD (cont.)
10.Independência de sistema operacional: Um SGBDD deve poder executar em sistemas operacionais diferentes. Assim como na regra anterior, um SGBDD não deve depender de um sistema operacional em especial.
11.Independência de rede: Um SGBDD deve ser projetado para executar independentemente do protocolo de comunicação e da topologia de rede usada para interligar os vários nós que fazem parte da rede.
12.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 bancos de dados são diferentes (heterogêneos). Todos estes sistemas devem usar APIs
Fragmentação de dados
Uma relação é dividida em fragmentos, que
são armazenados em diferentes nós.
Fragmentação horizontal: os fragmentos são
definidos por seleção de tuplas.
Fragmentação vertical: os fragmentos são
definidos por projeção de atributos.
Replicação de dados
Réplicas dos dados em diferentes nós
Aumento do paralelismo
Aumento da disponibilidade de dados
Elevação do overhead de atualização
Melhora desempenho das operações de
leitura, enquanto acarreta maior overhead nas
atualizações
Exemplo de Fragmentação Atualização dos dados replicados
Replicação síncrona : Todas as cópias de uma relação modificada (fragmentos) deve 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 estar cientes da distribuição e replicação
- Produtos atuais seguem esta abordagem
Processamento de consultas em
SGBDD
Deve levar em conta:
Réplicas dos dados
Reconstrução de relações a partir de
fragmentos
Tempo de recuperação
Tempo de processamento
Transmissão de dados via rede
Consultas Distribuídas
Replicação:Replicação:Replicação:Replicação: cópias em vários nós
- Escolha baseada em custos locais e de transmissão
Fragmentação horizontal:Fragmentação horizontal:Fragmentação horizontal:Fragmentação horizontal: Modelos com idade < 25 no Rio
e idade >= 25 em SP
- Pode-se computar AVG(salary)AVG(salary)AVG(salary)AVG(salary) em ambos o nós
- Como calcular a média geral dos salários
- Pode-se trazer ambas os dados de ambas as relações
Fragmentção verticalFragmentção verticalFragmentção verticalFragmentção vertical: mid e age em SP, mid, name and
sal no Rio
- Pode-se reconstruir a relação de modelo através de
junção no atributo m id, e então processar a consulta
SELECT AVG(sal) FROM TopModels M WHERE M.age > 20 AND M.age < 35
Controle de Transações em SGBDD
(garantindo a Atomicidade)
Protocolo two-phase commit
1. Preparação:
a) Um dos participantes é designado coordenador do two- phase commit e envia a cada nó envolvido na transação uma solicitação para se preparar para fazer commit. b) Uma vez preparado, cada participante escreve uma marca no seu log , avisa o coordenador e não pode mais abortar.
2. Commit :
a) Se todos os participantes estão prontos, o coordenador envia um sinal de commit para cada participante, que o executa. b) Se algum dos participantes falhar na preparação para o commit , este notifica o coordenador, que envia um sinal de rollback para todos os participantes.
Controle de Transações em SGBDD
(garantindo a Consistência)
Escalonamentos seriais: entrelaçamento da
execução de operações de diferentes transações,
com resultado idêntico ao da execução serial das
transações
Exclusão mútua por bloqueio ( lock )
Troca de mensagens para solicitar bloqueios locais Deadlock é mais difícil detectar em um SGBDD
Métodos otimistas
Livre execução das operações Monitoramento de conflitos (via grafos/árvores de execução e/ou relógios lógicos) Em caso de conflito, a transação mais nova pode ser desfeita, para depois ser realizada novamente
Cópia primária / secundária para
locks distribuídos
Cópia Primária é a que coordena a atribuição de
locks ao item replicado no sistema distribuído
Cópia Secundária atualizada de maneira síncrona
com a cópia primária para assumir em caso de
falha da primeira
Método do Site Primário / coordenador único:
todas as cópias primárias em um mesmo site
Método da Cópia Primária / coordenadores
múltiplos: cópias primárias em sites distintos
Eleição para definição de novo coordenador em
caso de falha
Sincronização de Operações de
requisição de locks em SGBDD
Cópia primária / secundária
Permite tratar dados replicados como não replicados
Coordenador único
Simples, mas com um ponto de falha e gargalo
Protocolo desviado
Bloqueio partilhado – leitura (somente local) Bloqueio exclusivo – escrita (todas as réplicas)
Protocolo de eleições
Gerenciamento local e trocas de requisições
Marcador de tempo (cada transação recebe um
marcador) Centralizado (relógio local ou contador) Distribuído (relógios lógicos)
Tratamento de deadlocks
em SGBDD
Detecção de ciclos centralizada: Os grafos
locais são enviados para um nó central para
concatenação e detecção de ciclos
Detecção de ciclos hierárquica: Organização dos
nós em uma hierarquia, com envio do grafo de
espera de cada nó para o nó pai
Timeout : Abortar uma transação quando esta
estiver esperando por muito tempo, para
recomeça-la logo depois
Grafos de espera
T1 T2 T1 T
Site A Site B
T1 T
Global