Aula20-BDDistribuido

Download Report

Transcript Aula20-BDDistribuido

SCC0141 - Bancos de Dados e Suas Aplicações

Visões e Bancos de Dados Distribuídos

Prof. Jose Fernando Rodrigues Junior

Material original: Profa. Elaine Parros Machado de Sousa 1

View

Visão ( View )

Tabela Base Tabela Base 1 consulta Tabela Base 2 junção consulta View

Visão ( View )

    Representação de dados contidos em outras tabelas (tabelas base) ou mesmo em outras visões Trata resultado de uma consulta como uma tabela 

consulta armazenada

tabela virtual

Espaço de armazenamento (no dicionário de dados) apenas para a consulta (select) que

define a visão

Consulta é executada cada vez que a visão é acessada

Visão ( View )

 Utilidade:  segurança - restrição de acesso a tuplas e colunas   

armazenamento de consultas

executadas com muita frequência   simplicidade para usuário abstração complexas ou apresentação dos dados com menor complexidade ou em diferentes perspectivas isolamento de aplicações em relação a alterações de esquema

Views

CREATE OR REPLACE VIEW

nome

[(

NomeColuna

[,

NomeColuna

...])] AS <

select

>;

Disciplina = {Sigla, Nome, NCred, Professor, Livro}

Views

Exemplo – visão atualizável

create or replace view view_disciplina as select nome, sigla from disciplina; select * from view_disciplina;

Professor = {Nome, NFunc, Idade, Titulação}

Views

Exemplo

create view view_professor_doutor as select * from professor where titulacao = 'DOUTOR'

Views

Aluno = {Nome, Nusp, Idade, DataNasc} Disciplina = {Sigla, Nome, NCred, Professor, Livro} Matrícula = {Sigla, Numero, Aluno, Ano, Nota} 

Exemplo – join view

create view view_matricula ( NUsp, Nome, Sigla, Disciplina ) as select A.NUSP, A.Nome, D.Sigla, D.Nome

from Aluno A join Matricula M on A.NUSP = M.Aluno

join Disciplina D on M.sigla = D.sigla;

Views

  

CREATE VIEW ALTER VIEW DROP VIEW

Visão Materializada (

materialized view

)

 

Visões armazenadas como tabelas

 dados provenientes de master tables (tabelas base)

Utilidade

 replicação de dados  performance  snapshot local de dados remotos  armazenamento de resultados de consultas complexas e custosas   armazenamento de informações sumarizadas

distribuição de dados

Visão Materializada (

materialized view

)

Comuns em data warehousing , sistemas distribuídos, computação móvel....

Principais desvantagens:

  ocupa espaço de armazenamento exige refresh quando as master tables são modificadas

Visão Materializada no ORACLE

CREATE

MATERIALIZED VIEW

BUILD IMMEDIATE REFRESH FAST ON COMMIT view_matriculados AS SELECT D.Sigla, count(M.Sigla) as Nro_Matriculados FROM Disciplina D, Matricula M WHERE D.Sigla=M.Sigla

GROUP BY D.Sigla;

BDs distribuídos - Introdução

 Sistemas de banco de dados centralizados  dados mantidos em um único local  processamento de transações individuais essencialmente sequencial  Sistemas de banco de dados distribuídos  dados armazenados fisicamente em diversos locais (

sites

)  usualmente: cada

site

gerenciado por um SGBD  Sistemas relacionais de fato distribuídos não se tornaram padrões comerciais, ao invés disso os grandes fabricantes usam uma camada sobre diversos sistemas centralizados para se obter o mesmo resultado 13

Sistemas comerciais

 IBM DB2 – Distributed Database Facility (DDF)  Informix Dynamic Server  Microsoft SQLServer Framework (DMF) – Distributed Management  Oracle – Oracle Replication Manager e Heterogeneous Services/Transparent Gateway 14

Problema

Imagine o seguinte problema: uma empresa abrange

várias cidades e a operação da empresa é

integrada por meio de uma base de dados única.

Problemas:  Copiar a base inteira para todas as filiais? Mas apenas alguns dados são necessários em cada uma; como manter as cópias atualizadas?

   Quais dados ter em cada filial então? Ainda assim, alguns dados comuns serão necessários em todas as sedes?

Onde guardar os dados comuns? Na sede? Como disponibilizar opção?

estes dados às filiais sem prejudicar o desempenho? Ter várias cópias dos mesmos dados é uma Em algumas situações será inevitável usar a infra-estrutura de rede para trafegar dados entre pontos geográficos distantes uns dos outros? Como minimizar o tráfego? Como tirar o melhor proveito da rede? Quais alterações podem melhorar o desempenho?

Problema

Imagine o seguinte problema: uma empresa abrange

várias cidades e a operação da empresa é

integrada por meio de uma base de dados única.

Problemas:  Copiar a base inteira para todas as filiais? Mas apenas hotéis, empresa aérea internacional, rede de lojas do    Quais dados ter em cada filial então? Ainda assim, alguns dados comuns serão necessários em todas as sedes?

Onde guardar os dados comuns? Na sede? Como disponibilizar estes dados às filiais sem prejudicar desempenho? Ter várias cópias dos mesmos dados é uma de maneira que um BD distribuído possa resolver.

o Em algumas situações será inevitável usar a infra-estrutura de rede para trafegar dados entre pontos geográficos distantes uns dos outros? Como minimizar o tráfego? Como tirar o melhor proveito da rede? Quais alterações podem melhorar o desempenho?

Motivação

Por que distribuir dados?

 disponibilidade    acesso distribuído  localidade  desempenho análise distribuída de dados expansão 

Aplicações

     grandes corporações redes de hotéis redes de lojas companhias aéreas companhias viárias 17

Componentes

Tecnologia de Banco de Dados Distribuído Tecnologia de Banco de Dados Tecnologia de Redes e Comunicação de Dados

18

Definições

Banco de Dados Distribuído (BDD)

 conjunto de múltiplos bancos de dados (SGBDs) inter relacionados distribuídos por uma rede de computadores 

Sistema de Gerenciamento de Banco de Dados Distribuído (SGBDD)

  sistema que gerencia um BDD torna a distribuição transparente para o usuário 19

Características

Sistema de BDD

 

mais complexo

funções adicionais do SGBDD  localização de dados’   processamento de consultas distribuídas gerenciamento de transações distribuídas   gerenciamento de dados replicados recuperação de BDD   segurança gerenciamento de dicionário de dados distribuído 20

Arquitetura nada compartilhado – cada site seu BD Arquitetura de rede com um BD centralizado Arquitetura BDD – o banco é uma composição dos diversos sites

21

Projeto

 Questões relevantes sobre BDD 

Projeto de (Fragmentação/Replicação) Dados

 como distribuir a base de dados?

da Distribuição Base

base de dados distribuída replicada ou não replicada?

de

Processamento de Consulta

 como converter transações do usuário em instruções de manipulação de dados?

 como otimizar uma consulta?

 custo = transmissão dados + processamento local 22

Projeto

Questões relevantes sobre BDD

Controle de Concorrência

   como sincronizar acessos concorrentes?

como garantir transações?

consistência e isolamento como evitar

deadlocks

?

das 

Confiabilidade

 como tornar o sistema tolerante a falhas?

 como garantir durabilidade e atomicidade das transações?

23

Projeto

Catálogo (ou Dicionário) de Dados Distribuído

 como e onde os dados estão fragmentados  como e onde os dados estão replicados    informação de esquema informação de autorização de usuários estatísticas 24

Transparência Em SBDDs é necessário que os usuários não tenham que saber da arquitetura distribuída

transparência

Tipos de transparência de dados

 

de distribuição

 localização  nomenclatura

de replicação

de fragmentação

 horizontal (WHERE)  Vertical (SELECT) 25

Tipos de Sistemas de BDD

 

Fator: grau de homogeneidade

 SGBDD homogêneo   todos os SGBDs locais e todos os clientes idênticos SGBDD heterogêneo  SGBDs locais distintos

Fator: grau de autonomia

 Em que grau os sites do sistema distribuído são administrados independentemente AUTONOMIA nenhuma    esquema conceitual único acesso por um único

site

para usuário “parece” um único SGBD centralizado alto    SGBDs independentes e autônomos SGBDDs Federados Multibases de dados 26

Catálogo de Dados Distribuído

Possíveis estruturas

 

centralizado

Vantagem: uma única cópia, simples de implementar  Desvantagem: gargalo para o processamento de consultas – todos os sites tem que acessar o site central para qq consulta

catálogo global replicado

Vantagem: desempenho local de consultas  Desvantagem: manter a consistência das múltiplas cópias do catálogo 27

Catálogo de Dados Distribuído

Abordagem do R*

- projeto protótipo de bases de dados distribuídas da IBM  cada

site

mantém catálogo apenas local    descrição apenas dos dados locais

site

réplicas

de criação

de uma tabela é responsável por manter informação de para encontrar uma tabela é necessário

consultar o catálogo de seu

site

de criação

 estratégia: uso de

cache

nos demais

sites

28

Fragmentação

  

Fragmentação

em

fragmentos armazenados em quebra de uma tabela

sites

que podem diferentes ser Tipos:

   fragmentação vertical fragmentação mista   fragmentação horizontal projeção (SELECT)  filtragem (WHERE) projeção + seleção Conceito de “Esquema de Fragmentação”: metadados que descrevem como os dados são quebrados ao longo da arquitetura 29

Fragmentação

  

Fragmentação

em armazenados em Tipos:

   

fragmentos

fragmentação vertical fragmentação mista

quebra de uma tabela

sites

que

 fragmentação horizontal

podem diferentes

projeção  seleção projeção + seleção

ser

Conceito de “Esquema de Fragmentação”: metadados que descrevem como os dados são quebrados ao longo da arquitetura 30

Fragmentação

Deve ser possível recuperar a tabela original a partir dos fragmentos

 fragmentação horizontal (WHERE)união dos fragmentos  tabela original  fragmentação vertical (SELECT)  coleção de fragmentos

junção

  decomposição sem perda de como garantir? A chave deve fazer parte de cada fragmento 31

Replicação

Replicação

 armazenamento de várias cópias de uma tabela ou fragmento de tabela   maior disponibilidade dos dados consultas mais rápidas alocação não redundante REPLICAÇÃO replicação parcial BD completamente replicado 33

Replicação

Replicação total

: cópias de toda a base em todos os sites   Vantagem: maior desempenho de consultas Desvantagem: e

locks

atualizações sites; intenso tráfego de dados e controle de concorrência são dispendiosos, pois novos dados devem ser propagados para todos os 

Alocação não redundante

: os sites são todos disjuntos (com exceção das chaves)  vantagens e replicação total desvantagens inversas 34 à

Replicação

Replicação parcial

: algumas partes do banco são replicadas enquanto que outras não são:  

Conceito de “Esquema de Replicação”:

metadados que descrevem o que é replicado, onde, quantas vezes e com qual atualização os dados são sincronizados O esquema de replicação é um problema de otimização complexo, ele depende:    De quais consultas são realizadas com qual frequência em cada site De quais atualizações são realizadas com qual frequência em cada site De qual controle de concorrência (isolamento) é necessário em cada site 35

Replicação

Replicação parcial

: algumas partes do banco são replicadas enquanto que outras não são:  

Conceito de “Esquema de Replicação”:

metadados que descrevem o que é replicado, onde, quantas vezes e com qual atualização os dados são sincronizados O esquema de replicação é um problema de otimização complexo, ele depende:  apenas algumas tuplas.

  De quais atualizações são realizadas com qual frequência em cada site De qual controle de concorrência (isolamento) é necessário em cada site 36

Replicação

 Tipos: 

replicação síncrona

 todas as cópias são atualizadas dentro de uma mesma transação  problema? – tráfego intenso de rede 

replicação assíncrona

 atualizações periódicas das cópias de dados modificados  problema? – controle de transação mais elaborado é necessário, alguns dados não tem garantia de consistência e não devem ser lidos 37

Esquema Distribuído

 Esquemas Lógicos locais ou um esquema global + Esquema de Fragmentação + Esquema de Replicação  A arquitetura de um esquema distribuído visa reduzir seu maior custo: tráfego de rede  No entanto, em algumas situações como consultas raramente efetuadas, não há o que se fazer – os dados irão trafegar em rede intensamente 38

Esquema Distribuído

 Esquemas Lógicos locais ou um esquema global + Esquema de Fragmentação + Esquema de Replicação fragmentação/replicação.

 A arquitetura de um esquema distribuído visa reduzir seu maior custo: tráfego de rede  No entanto, em algumas situações como consultas raramente efetuadas, não há o que se fazer – os dados irão trafegar em rede intensamente 39

Processamento de Consultas Distribuídas

Custo da Consulta Distribuída Custo de Transferência de Dados Custo do Processamento da Consulta

40

EX: Transferência de Dados

Exercício

 Processamento-de-consulta-distribuido

Semi Junção

  Idéia geral: reduzir o número de tuplas e de atributos transferidos entre sites Por exemplo:

No site 1, executar: SELECT * FROM R JOIN S

 

ON R.atr1 = S.atr2

com R no site 1 e S no site 2

No site 1, F=SELEC R.atr1 FROM R, e enviar para o site 2 No site 2, executar: T = SELECT * FROM F JOIN S ON F.atr1 = S.atr2

e enviar o resultado para o site 1  No site 1, executar: SELECT * FROM R JOIN T ON R.atr1 = T. atr2 42

EX: Semi junção

Exercício

 Semi-juncao

Transações Distribuídas

Propriedades ACID devem ser garantidas

Concorrência distribuída  Atomicidade  Consistência  Isolamento  Durabilidade Recuperação de falhas distribuída 44

Concorrência Distribuída

Problema: o mesmo dado replicado em diferentes sites A e B. No site A, o dado é alterado, quase que imediatamente o site B usará este dado, cuja cópia será diferente do valor no site A.

Solução: uso de locks. Quando o site A alterar o dado, deve-se bloqueá-lo (lock) para uso e escrita até que A finalize sua operação e o dado seja sincronizado com o site B.

Como gerenciar bloqueios (

locks

) de objetos (tabelas e fragmentos) distribuídos?

  abordagem centralizada abordagem cópia primária abordagem completamente distribuída 45

Concorrência Distribuída

 Baseada no conceito de Cópia Distinguida (ou Distinta): dentre as várias cópias dos dados, uma delas dita como o controle de concorrência é feito – isto é, uma única

cópia recebe e libera locks

 A escolha da cópia que irá ditar o controle de concorrência pode ser estático ou dinâmico  O site que possui a cópia distinguida é denominado site Coordenador, o qual deverá responder ao sistema de locks 46

  

Concorrência Distribuída

Abordagem cópia primária

 bloqueios são gerenciados pelo

site

onde está a cópia

primária (original) do objeto requisitado  problema? Maior complexidade

Abordagem completamente distribuída

 bloqueios gerenciados nos

sites

operações – coordenação dinâmica onde ocorrem as  problema? Maior complexidade, necessidade de broadcast dinâmico para informar sobre a coordenação

Abordagem centralizada

 

um único

site

responsável por gerenciar todas as requisições de bloqueio problema? Vulnerável a falhas, requer um backup – sobrecarga de um único site 47

Recuperação de Falhas Distribuída

 

Novos tipos de falha que não ocorrem em SGBDs não distribuídos

 falhas de comunicação  falha em um executada

site

onde uma sub-transação é

Atomicidade:

 ou todas as sub-transações são efetivadas (

committed

) ou nenhuma deve ser efetivada

COMMIT protocol

Ex:

Two-Phase Commit

(2PC) 48

Recuperação de Falhas Distribuída

  Uso do two-phase commit protocol (2PC)  Algoritmo distribuído que visa gerenciar situações transacionais – protocolo do tipo consensual

Duas fases

1ª. Contacta todos os participantes preparando-os para o sistema de consenso, segundo o qual, após a execução distribuída, cada um terá que “votar” sim

(commit) ou não (abort)

2ª. Efetivação da decisão consensual, todos são informados de que devem consolidar a transação (todos votaram commit) ou retornar ao estado anterior (pelo menos um votou abort ou alcançou time-out) 49

Exemplo: ORACLE

     Transparência (uso de LDAP) de Transações baseadas em 2PC Replicação básica   leitura em qualquer escrita em

site site

primário localização distribuídas Replicação avançada – leitura e escrita em qualquer

site

snapshots

Suporte heterogênea a arquitetura

Exemplo: ORACLE

   Enterprise Manager Third-Party Administration Tools SNMP Support Caso homogêneo: Oracle Advanced Replication

Caso heterogêneo:

Heterogeneous services Transparent gateway Oracle Net Services 52

Exemplo: ORACLE

   Enterprise Manager Third-Party Administration Tools SNMP Support Caso homogêneo: Oracle Advanced Replication

Caso heterogêneo:

Heterogeneous services Transparent gateway Oracle Net Services 53

  

Exemplo: ORACLE

Fluxo de dados entre sites: Oracle Stream Replication, mantém todos os sites atualizados ao enviar continuamente dados de atualização Transparência de distribuição por meio de database links Um database link é um objeto de um esquema que permite o acesso a objetos de outro banco de dados

CREATE DATABASE LINK remote.us.oracle.com

CONNECT TO junio IDENTIFIED BY junio_password USING ‘orcl’ -- nome do serviço remoto SELECT * FROM [email protected]

CREATE SYNONYM tabela1_remota FOR [email protected]

SELECT * FROM tabela1_remota

54

  

Exemplo: ORACLE

Fragmentação/Replicação são obtidas por meio de Materialized Views

horizontal: cláusula WHERE

 Em

vertical: cláusula SELECT

Oracle, a “subconjuntando”) fragmentação é denominada

Subsetting

(ou Sincronização:  Periodicidade    Síncrona: qualquer atualização é propagada imediatamente a todos os sites Assíncrona: Método as atualizações ocorrem intervalos de tempo pré-definidos posteriormente, em    Fast refresh: usa logs para fazer a atualização apenas do que foi alterado desde o último refresh Complete refresh: atualiza todos os dados da view Force refresh: se possível, realiza um fast refresh, do contrário realiza um complete refresh 55

Referências

   ELMASRI, R; NAVATHE, S.B.

Sistemas de Banco de Dados

, Addison Wesley, 4a edição, 2005.

Ramakrishnan R.; Gehrke, J.

Database Management Systems

, Mc Graw Hill, 2000.

OZSU, M. T.; VALDURIEZ, P.

Principles of distributed database systems

. 2. ed. Englewood Cliffs: Prentice Hall, 1999. 56