Um sistema distribuído é qualquer sistema de múltiplas localidades conectadas juntas em uma espécie de redes de comunicações, nas quais o usuário (usuário final ou programador de aplicação) de qualquer localidade (site) pode acessar os dados armazenados em outro local. C.J.Date
Consiste em múltiplas localidades conectadas por redes, onde o usuário pode acessar dados de qualquer site.
architecture-beta
group porto_velho(cloud)[Porto Velho]
group brasilia(cloud)[Brasilia]
%% Componentes em Porto Velho
service t1(internet)[Terminal 1] in porto_velho
service t2(internet)[Terminal 2] in porto_velho
service cpu1(server)[Servidor 1] in porto_velho
service bd1(database)[Banco de Dados 1] in porto_velho
%% Componentes em Brasília
service t3(internet)[Terminal 3] in brasilia
service t4(internet)[Terminal 4] in brasilia
service cpu2(server)[Servidor 2] in brasilia
service bd2(database)[Banco de Dados 2] in brasilia
%% Conexões Porto Velho
t2:B --> T:cpu1
t1:R --> L:cpu1
cpu1:B <-- T:bd1
%% Conexões Brasília
t3:B --> T:cpu2
t4:L --> R:cpu2
cpu2:B <-- T:bd2
%% Interconexão entre CPUs
cpu1:R <--> L:cpu2
Armazenamento
- Replicação - Os sistemas mantém réplicas idênticas (cópias) da relação. Cada réplica é armazenada em diferentes sites, resultando na replicação dos dados. A alternativa para replicação é armazenada somente em cópia da relação r.
- Fragmentação - A relação é particionada em vários fragmentos. Cada fragmento é armazenado em um site diferente.
- Replicação e fragmentação - A relação é particionada em vários segmentos. O sistema mantém diversas réplicas de cada fragmento.
Replicação
“Se uma relação r é replicada, uma cópia da relação r é armazenada em dois ou mais sites. No caso mais extremo, temos replicação total, na qual cada cópia é armazenada em todos os sites do sistema”.
architecture-beta
group porto_velho(cloud)[Porto Velho]
group brasilia(cloud)[Brasilia]
%% Componentes em Porto Velho
service t1(internet)[Terminal 1] in porto_velho
service t2(internet)[Terminal 2] in porto_velho
service cpu1(server)[Servidor 1] in porto_velho
service bd1(database)[Banco de Dados 1] in porto_velho
%% Componentes em Brasília
service t3(internet)[Terminal 3] in brasilia
service t4(internet)[Terminal 4] in brasilia
service cpu2(server)[Servidor 2] in brasilia
service bd2(database)[Banco de Dados 2] in brasilia
%% Conexões Porto Velho
t2:B --> T:cpu1
t1:R --> L:cpu1
cpu1:B <-- T:bd1
%% Conexões Brasília
t3:B --> T:cpu2
t4:L --> R:cpu2
cpu2:B <-- T:bd2
%% Interconexão entre CPUs
cpu1:R <--> L:cpu2
Vantagens e desvantagens
- Disponibilidade;
- Aumento do paralelismo;
- Aumento do overhead para atualização.
Fragmentação
Se uma relação r é fragmentada, r é dividida em fragmentos (r1, r2… rn). Esses fragmentos contém informações suficientes para permitir a reconstrução da relação original r.
flowchart LR
subgraph "Estrutura das Tabelas"
direction LR
subgraph T1[Tabela 1]
direction TB
A1[A]
B1[B]
C1[C]
end
subgraph T2[Tabela 2]
direction TB
A2[A]
end
subgraph T3[Tabela 3]
direction TB
B3[B]
end
subgraph T4[Tabela 4]
direction TB
C3[C]
end
end
T1 --> T2
T1 --> T3
T1 --> T4
style A1 fill:#e3f2fd
style B1 fill:#f3e5f5
style C1 fill:#e8f5e8
style A2 fill:#e3f2fd
style B3 fill:#f3e5f5
style C3 fill:#e8f5e8
- Fragmentação Horizontal - A relação r é particionada em número de subconjuntos (r1, r2…rn). Cada tupla da relação r deve pertencer a pelo menos um fragmento, de modo que a relação original possa ser reconstruída, se necessário.
- Fragmentação Vertical - Em sua forma mais simples, a fragmentação vertical é o mesmo que uma decomposição. Implica na definição de vários subconjuntos de atributos (R1, R2…Rn) do esquema R. Para garantir que a relação possa ser reconstruída é necessário incluir os atributos da chave primária de R em cada um dos R.
Fragmentação Horizontal
ALUNOS - FR00
| CD |
NOME |
UF |
| 01 |
JOÃO SILVA |
RO |
| 02 |
ANA GOMES |
RO |
FR01
| CD |
NOME |
UF |
| 01 |
JOÃO SILVA |
RO |
| 02 |
ANA GOMES |
RO |
FR02
| CD |
NOME |
UF |
| 03 |
ANDRÉ NUNES |
RJ |
| 04 |
SARAH FREITAS |
SP |
| 06 |
MARIA CLARA |
RJ |
FR03
| CD |
NOME |
UF |
| 04 |
SARAH FREITAS |
SP |
| 07 |
AUGUSTO CAMPOS |
SP |
- FR00 - É a tabela principal;
- FR01 - É um fragmento da tabela FR00;
- O atributo UF é o principal particionador;
- Considere uma chave primária composta:
Fragmentação Vertical
ALUNOS - FR00R
| CD |
NOME |
UF |
FOTO |
| 01 |
JOÃO SILVA |
RO |
🎥 |
| 02 |
ANA GOMES |
RO |
🎥 |
| 03 |
ANDRÉ NUNES |
RJ |
🎥 |
| 04 |
SARAH FREITAS |
SP |
🎥 |
| 06 |
MARIA CLARA |
RJ |
🎥 |
| 07 |
AUGUSTO CAMPOS |
SP |
🎥 |
FR01R
| CD |
FOTO |
| 01 |
🎥 |
| 02 |
🎥 |
| 03 |
🎥 |
| 06 |
🎥 |
Fragmentação e replicação
ALUNOS - FR00FR
| CD |
NOME |
UF |
FOTO |
| 01 |
JOÃO SILVA |
RO |
🔑 |
| 02 |
ANA GOMES |
RO |
🔑 |
| 03 |
ANDRÉ NUNES |
RJ |
🔑 |
| 04 |
SARAH FREITAS |
SP |
🔑 |
| 06 |
MARIA CLARA |
RJ |
🔑 |
| 07 |
AUGUSTO CAMPOS |
SP |
🔑 |
FR01FR
| CD |
FOTO |
| 01 |
🔑 |
| 02 |
🔑 |
| 03 |
🔑 |
| 06 |
🔑 |
FR02FR
| CD |
FOTO |
| 01 |
🔑 |
| 02 |
🔑 |
| 03 |
🔑 |
| 06 |
🔑 |
Fragmentação vantagens
- Autonomia local;
- Capacidade e crescimento incremental;
- Confiança e disponibilidade;
- Eficiência e flexibilidade.
Fragmentação desvantagens
- Processamento de consultas;
- Propagação de atualização;
- Concorrência;
- Recuperação;
- Gerenciamento de catálogo.
Obseração
- Oferece autonomia local e eficiência, mas dificulta o processamento de consultas, o controle de concorrência e a recuperação.