Fragmentação Vertical

Propaganda
Projeto de Banco de Dados Distribuído
Projeto de Banco de Dados Distribuídos
Alcides Pamplona
[email protected]
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Conteúdo
Revisão de Conceitos
Arquitetura Distribuída
Fragmentação Horizontal
Fragmentação Vertical
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
1
Projeto de Banco de Dados Distribuído
Definição de Banco de Dados Distribuído
Um Banco de Dados Distribuído (BDD) é uma coleção de
dados que pertencem logicamente ao mesmo sistema mas
que estão espalhados em nós em uma rede de
computadores.
A definição enfatiza dois aspectos importantes:
Distribuição: Os dados não residem no mesmo nó.
Que é a diferença básica para um banco de dados
centralizado
Ligação Lógica: Os dados tem algumas propriedades
que os ligam.
Isso distingue um BDD de um de um conjunto de bancos de
dados ou arquivos residentes em diferentes nós.
3
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
O que é um Sistema de Banco de Dados Distribuídos
Base de Dados Distribuída (BDD)
É uma coleção de diversas bases de dados, interligadas
logicamente através de uma rede de computadores
Sistema de Gerência de Bases de dados Distribuídas
(SGBDD)
É o sistema de software que possibilita a gerência da
BDD e lida com aspectos de transparência para o
usuário
Sistema de Banco de Dados Distribuído (SBDD)
SBDD = BDD + SGBDD
4
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
2
Projeto de Banco de Dados Distribuído
Tipos de SGBDD
Homogêneo
O SGBD Local e em todos os nós é o mesmo
Computadores e sistemas operacionais usados em cada nó
podem ser diferentes entre si
Heterogêneo
O SGBD local e nos nós pode ser diferente
SGBDD possui ferramentas para converter entre os
modelos de dados
5
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Características de SGBDD
Transparência de Dados
Confiabilidade de Transações Distribuídas
Otimização de Desempenho
Facilidade de Expansão
6
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
3
Projeto de Banco de Dados Distribuído
Transparência de Dados
Transparência é a separação entre a
semântica de alto nível e seus detalhes de
implementação. A principal questão é prover
Independência de Dados no ambiente
distribuído.
Os usuários do banco de dados devem
enxergar uma única imagem da base de
dados logicamente integrada embora esta
esteja fisicamente distribuída.
7
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Níveis de Transparência
Transparência de Rede (física)
Transparência de Replicação
Transparência de Fragmentação
Fragmentação Horizontal (Seleções)
Fragmentação Vertical (Projeções)
Fragmentação Mista ou combinada
8
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
4
Projeto de Banco de Dados Distribuído
Arquitetura
Arquitetura
Define a estrutura do sistema
Identificação dos componentes
Definição das funções de cada componente
Definição de relacionamentos e interações entre
os componentes
Modelo de Referência
Uma referência conceitual cujo propósito é dividir
o trabalho de padronização em partes
gerenciáveis e mostrar num nível mais alto como
essas partes se relacionam entre si.
9
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Tipos de Modelos de Referência
Baseada em componentes
Os componentes do sistema são definidos junto com as
relações entre os componentes.
Bom para projeto e implementação de sistemas.
Baseada em funções
Classes de usuários são identificados junto com a
funcionalidade que o sistema fornecerá a cada classe.
Os objetivos são identificados. Mas como alcançar ?
Baseada em dados
Identifica as diferentes formas de descrever dados e
especifica as unidades funcionais que irão definir e usar
os dados de acordo com as formas.
10
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
5
Projeto de Banco de Dados Distribuído
Arquitetura ANSI/SPARC (dados)
Esquema
Externo
Visão
Externa
Visão
Externa
Esquema
Conceitual
Visão
Conceitual
Esquema
Interno
Visão
Interna
Visão
Externa
11
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Criação dos Esquemas
Esquema Conceitual
CREATE TABLE T1
(COL1 CHAR[10] NOT NULL,
COL2 DECIMAL NOT NULL,
COL3 DATE NOT NULL);
Esquema Externo
CREATE VIEW V1
AS SELECT COL1,COL2
FROM T1
Esquema Interno
struct TABLE T1 {
CHAR col1[10]; // 10 bytes
FLOAT col2; // usado para armazenar valores decimais
CHAR col3[8];
};
Alcides Pamplona 2010 ©
12
Banco de Dados Distribuídos
6
Projeto de Banco de Dados Distribuído
Arquitetura ANSI/SPARC (dados)
Esquema
Externo 1
Esquema
Externo 2
Esquema
Externo n
Esquema
Conceitual
Global
Esquema
Conceitual
Local 1
Esquema
Conceitual
Local 2
Esquema
Conceitual
Local n
Esquema
Interno
Local 1
Esquema
Interno
Local 2
Esquema
Interno
Local n
Alcides Pamplona 2010 ©
13
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Estratégias de Distribuição
Abordagem Descendente
na maior parte das vezes no projeto de sistemas
a partir do zero
na maior parte das vezes em sistemas
homogêneos
Abordagem Ascendente
quando a base de dados já existe em alguns nós
14
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
7
Projeto de Banco de Dados Distribuído
Processo Descendente
15
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Alternativas de Alocação
Não replicado
Particionado: cada fragmento reside em apenas
um nó da rede
Replicado
Totalmente replicado: cópias de cada fragmento
em cada nó
Parcialmente replicado : cópias de cada
fragmento em alguns nós
Número de Consultas
>>1
Replicação
Número de Atualizações
16
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
8
Projeto de Banco de Dados Distribuído
Comparação entre Alternativas de Alocação
17
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Tipos de Fragmentação
Fragmentação Horizontal
Relacional: distribui as tuplas da relação entre
os fragmentos
Fragmentação Vertical (FV)
Relacional: distribui os atributos da relação entre
os fragmentos
Atributos chave devem estar presentes em todos
os fragmentos
Fragmentação Híbrida
18
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
9
Projeto de Banco de Dados Distribuído
Fragmentação Horizontal
EMP_TABLE
EMP_ID
NOME
DEPTO
SALÁRIO
0001
SMITH
VENDAS
500
0002
BILLY
VENDAS
400
0003
WILLIAM
COMPRAS
800
0004
JOHN
MARKETING
EMP_TABLE_FRAGMENT_1
900
EMP_ID
NOME
DEPTO
SALÁRIO
0001
SMITH
VENDAS
500
0002
BILLY
VENDAS
EMP_TABLE_FRAGMENT_2
400
EMP_ID
NOME
DEPTO
SALÁRIO
0003
WILLIAM
COMPRAS
800
EMP_TABLE_FRAGMENT_3
EMP_ID
NOME
DEPTO
SALÁRIO
0004
JOHN
MARKETING
900
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Fragmentação Horizontal
EMP_TABLE_FRAGMENT_1 =
SELECT(EMP_TABLE)
WHERE DEPTO = “VENDAS”
2. EMP_TABLE_FRAGMENT_2 =
SELECT(EMP_TABLE)
WHERE DEPTO = “COMPRAS”
3. EMP_TABLE_FRAGMENT_3 =
SELECT(EMP_TABLE)
WHERE DEPTO = “MARKETING”
1.
EMP_TABLE_FRAGMENT1=DEPTO=“VENDAS” (EMP_TABLE)
20
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
10
Projeto de Banco de Dados Distribuído
Fragmentação Vertical
EMP_TABLE
EMP_ID
NOME
DEPTO
SALÁRIO
CARGO
0001
SMITH
VENDAS
500
PROGRAMADOR
0002
BILLY
VENDAS
400
ANALISTA
0003
WILLIAM
COMPRAS
800
PROJETISTA
0004
JOHN
MARKETING
900
GERENTE
EMP_TABLE_FRAGMENT_1
EMP_TABLE_FRAGMENT_2
EMP_ID
NOME
DEPTO
CARGO
EMP_ID
SALÁRIO
0001
SMITH
VENDAS
PROGRAMADOR
0001
500
0002
BILLY
VENDAS
ANALISTA
0002
400
0003
WILLIAM
COMPRAS
PROJETISTA
0003
800
0004
JOHN
MARKETING
GERENTE
0004
900
21
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Fragmentação Vertical
EMP_TABLE_FRAGMENT_1 =
SELECT (EMP_TABLE.EMP_ID,
EMP_TABLE.NOME,
EMP_TABLE.DEPARTAMENTO,
EMP_TABLE.CARGO
FROM EMP_TABLE
22
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
11
Projeto de Banco de Dados Distribuído
Correção da Fragmentação
Completude
Decomposição de uma relação R em fragmentos R1,
R2, ..., Rn é completa se cada item de dados em R
pode ser encontrado em pelo menos um fragmento Ri
Reconstrução
Se uma relação R é decomposta em fragmentos R1,
R2, ..., Rn , deve ser possível definir um operador
relacional (ou de objetos) ∇ tal que:
R = ∇ 1 ≤i ≤n Ri
Disjunção
Se uma relação R é decomposta em fragmentos R1,
R2, ..., Rn , e o item de dados di está em Rj , então di
não está em qualquer outro fragmento Rk (k ≠j ). 23
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
Projeto de Banco de Dados Distribuído
Exercício 01
1
– Demostre que os três fragmentos
horizontais da
tabela EMP_TABLE
descrevem corretamente a tabela
2 – Dada a definição de projeto
Fragmento1=Salario>500(EMP_TABLE) faça a
distribuição fragmentação de modo a ficar
correta.
24
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
12
Projeto de Banco de Dados Distribuído
Exercício 01 (cont.)
3 - Dada a estrutura de tabelas abaixo:
Faça a fragmentação horizontal tendo como
regra que em uma sede serão controlados os
dados de passageiros e em outra os dados de
vôos.
25
Alcides Pamplona 2010 ©
Banco de Dados Distribuídos
13
Download