Banco de Dados
Banco de Dados Distribuídos
Fundamentos
Sílvia Cristina de Matos Soares
[email protected]
Ambiente de Banco de Dados Centralizado
2
Abstração de Dados
Visão 1
Nível de Visão
Visão 2
..........
Nível Lógico
Nível Físico
Visão n
Nível médio que descreve
quais dados estão armazenados
e quais os inter-relacionamentos
Nível baixo que descreve
como os dados estão
armazenados
3
Banco de Dados Centralizado
Esquema
Externo
Esquema
Externo
Nível Visão
Visão p/ cada grupo usuário
Facilitar desenvolvimento
de aplicações
Restringir acesso a dados
Esquema
Conceitual
Nível Físico
Como os dados estão
armazenados
Métodos de acesso
Estruturas de arquivos
Sistema de gerência do BD
Esquema
Interno
Nível Lógico
Independe da forma
de armazenamento
Conjunto de estruturas
descrevendo a organização
dos dados e as restrições de
integridade
Modelo de dados
4
Ambiente de Banco de Dados Distribuído
(BDD)
5
O Que é um Sistema de Banco de Dados
Distribuído (SBDD)
Base de Dados Distribuída (BDD)

Coleção de diversas bases de dados, interligadas
logicamente por meio de uma rede de computadores
Sistema de Gerência de Bases de Dados Distribuídas (SGBDD)

Sistema de software que possibilita a gerência da BDD e
trata da distribuição transparente para o usuário
Sistema de Banco de Dados Distribuído (SBDD)

SBDD = BDD + SGBDD
6
O Que é um Sistema de Banco de Dados
Distribuído (SBDD)
Grupo de elementos autônomos de processamento
(não necessariamente homogêneos)
Interconectados por uma rede de computadores
Cooperam na realização de tarefas
7
O Que Está Distribuído?

Lógica do processamento

Funções

Dados

Controle
8
Principais Características de um SBDD

Dados armazenados em diversos locais (nós)

Processadores dos nós interconectados por
meio de rde de computadores

A base de dados distribuída não é uma coleção
de arquivos

O SGBDD possui toda a funcionalidade de um
SGBD

Tecnologia atual: multiprocessadores e
cliente/servidor
9
O Que NÃO é um Sistema de Banco de
Dados Distribuído (SBDD)

Sistema de Timesharing (Tempo compartilhado)

Sistema de Multiprocessamento


Memória compartilhada

Disco compartilhado
Sistema de banco de dados que reside em um nó da
rede
Sistema de banco de dados centralizado
10
Ambiente de Banco de Dados Distribuído
(BDD)
11
Banco de Dados Distribuídos
Esquema Externo
Global
Esquema Externo
Global
Esquema Conceitual
Global
Esquema Conceitual
Local
Esquema Conceitual
Local
Esquema Interno
Local
Esquema Interno
Local
12
Banco de Dados Local
Esquema Externo
Local
Esquema Externo
Global
Esquema Conceitual
Local
Esquema Interno
Local
13
Projeto de Banco de Dados Distribuídos
Esquema Externo
Global
Esquema Externo
Global
Esquema Conceitual
Global
Projeto semelhante ao
BD Centralizado
Esquema Conceitual
Local
Esquema Conceitual
Local
Projeto dos esquemas
conceituais locais
Esquema Interno
Local
Esquema Interno
Local
Projeto semelhante ao
BD Centralizado
Considerar a carga
imposta por acessos
remotos aos dados
locais
14
Projeto de Banco de Dados Distribuídos
Projeto dos esquemas conceituais locais
Reflete
Estratégia de distribuição do banco
Particionamento
Replicação
15
Estratégia de distribuição do banco
Seja D uma estrutura (lógica) de dados do
esquema conceitual global
Esquema conceitual global
FORNECEDORES (NUMERO, NOME, SEDE)
PECAS (CODIGO, NOME, COR, PESO)
FORNECIMENTO (NUMERO, CODIGO, QUANTIDADE)
Esquema externo global A
Esquema de relação: FORN_PECA (NUMERO, CODIGO, NOME)
Definição: FORN_PECA = (FORNECIMENTO * PECAS) (NUMERO, CODIGO, NOME)
Esquema externo global B
Esquema de relação: FORN_PECA (NUMERO, CODIGO)
Definição: FORN_PECA = FORNECIMENTO (NUMERO, CODIGO)
16
Estratégia de distribuição do banco
Esquemas conceituais locais
Primeiro nó: FORNECEDORES1 (NUMERO, NOME, SEDE)
PECAS1 (CODIGO, NOME)
FORNECIMENTO1 (NUMERO, CODIGO, QUANTIDADE)
Segundo nó: FORNECEDORES2 (NUMERO, NOME, SEDE)
PECAS2 (CODIGO, COR, PESO)
FORNECIMENTO2 (NUMERO, CODIGO, QUANTIDADE)
Mapeamentos definindo o critério de distribuição
Primeiro nó: FORNECEDORES1 = FORNECEDORES (SEDE = ‘PASSA TRES’)
PECAS1 = PECAS (CODIGO, NOME)
FORNECIMENTO1 = FORNECIMENTO * (FORNECEDORES1 (NUMERO))
Segundo nó: FORNECEDORES2 = FORNECEDORES (SEDE ≠ ‘PASSA TRES’)
PECAS2 = PECAS (CODIGO, COR, PESO)
FORNECIMENTO2 = FORNECIMENTO * (FORNECEDORES2 (NUMERO))
17
Estratégia de distribuição do banco
Particionamento
Seja D uma estrutura (lógica) de dados do
esquema conceitual global
Particionamento Vertical
D é mapeada em duas ou mais estruturas (lógicas) de dados
que não são idênticas a D e que pertencem a diferentes esquemas
conceituais locais
PECAS foi particionada em PECAS1 e PECAS2
18
Estratégia de distribuição do banco
Particionamento
Seja D uma estrutura (lógica) de dados do
esquema conceitual global
Particionamento Horizontal
(ou por ocorrência)
D é mapeada em estruturas idênticas a D e que pertencem a dois ou
mais esquemas conceituais locais de tal forma que o mapeamento
define um particionamento do conjunto de dados associados a D
FORNECEDORES foi particionada em FORNECEDORES1 e
FORNECEDORES2
19
Estratégia de distribuição do banco
Replicação
Replicação
D é replicada quando D é mapeada em duas ou mais estruturas
(lógicas) de dados idênticas a D e que pertencem a diferentes
esquemas conceituais locais de tal forma que o mapeamento de
D em cada uma destas estruturas é sempre a identidade.
Existirão cópias idênticas do conjunto de dados associado a D
armazenadas em dois ou mais nós.
20
Estratégia de distribuição do banco
Replicação
Replicação
Total
Cada banco de dados local contém uma cópia completa do banco
Replicação
Parcial
Cada banco de dados local contém uma cópia de parte do banco
21
Estratégia de distribuição do banco
Resumo
% de Exceções
Tamanho do
Arquivo
Método de
distribuição
----
Pequeno
Replicação
Pequena
Grande
Particionamento
Alta
Grande
Centralizado
22
12 Regras para SGBDD
1. 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.
2. 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
3. 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
23
12 Regras para SGBDD
4. 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.
5. 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.
6. 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
24
12 Regras para SGBDD
7. 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.
8. 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.
9. Independência de hardware: Um SGBDD deve poder
operar e acessar dados em uma variedade de plataformas de
hardware.
25
12 Regras para SGBDD
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
26
Download

Ambiente de Banco de Dados Distribuído (BDD) - PUC