SCC0141 - Bancos de Dados e Suas Aplicações Visões e Bancos de Dados Distribuídos Prof. Jose...

54
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

Transcript of SCC0141 - Bancos de Dados e Suas Aplicações Visões e Bancos de Dados Distribuídos Prof. Jose...

Page 1: 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.

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

Page 2: 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.

Visão (View)

Tabela Base

View

Tabela Base 1 Tabela Base 2

junção

View

consulta consulta

Page 3: 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.

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

Page 4: 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.

Visão (View) Utilidade:

segurança - restrição de acesso a tuplas e colunas

armazenamento de consultas complexas ou executadas com muita frequência

simplicidade para usuário abstração

apresentação dos dados com menor complexidade ou em diferentes perspectivas

isolamento de aplicações em relação a alterações de esquema

Page 5: 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.

Views

CREATE OR REPLACE VIEW nome

[(NomeColuna [, NomeColuna ...])]

AS <select>;

Page 6: 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.

Views

Exemplo – visão atualizável

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

select * from view_disciplina;

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

Page 7: 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.

Views

Exemplo

create view view_professor_doutor as

select * from professor

where titulacao = 'DOUTOR'

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

Page 8: 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.

Views

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;

Aluno = {Nome, Nusp, Idade, DataNasc}

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

Matrícula = {Sigla, Numero, Aluno, Ano, Nota}

Page 9: 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.

Views

CREATE VIEW ALTER VIEW DROP VIEW

Page 10: 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.

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

Page 11: 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.

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

Page 12: 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.

Visão Materializada no ORACLE

CREATE MATERIALIZED VIEW view_matriculados

BUILD IMMEDIATE

REFRESH FAST ON COMMIT

AS SELECT D.Sigla,

count(M.Sigla) as Nro_Matriculados

FROM Disciplina D, Matricula M

WHERE D.Sigla=M.Sigla

GROUP BY D.Sigla;

Page 13: 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.

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

Page 14: 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.

Sistemas comerciais IBM DB2 – Distributed Database Facility (DDF)

Informix Dynamic Server

Microsoft SQLServer – Distributed Management Framework (DMF)

Oracle – Oracle Replication Manager e Heterogeneous Services/Transparent Gateway

14

Page 15: 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.

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 estes dados às filiais sem prejudicar o desempenho? Ter várias cópias dos mesmos dados é uma opçã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?

15

Page 16: 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.

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 estes dados às filiais sem prejudicar o desempenho? Ter várias cópias dos mesmos dados é uma opçã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?

16

Exemplo: empresa de transporte rodoviário, rede de

hotéis, empresa aérea internacional, rede de lojas do

varejo, ...

Quais problemas cada uma destas categorias pode ter

de maneira que um BD distribuído possa resolver.

Page 17: 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.

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

Page 18: 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.

Componentes

18

Tecnologia de Banco de Dados

Tecnologia de Redes e Comunicação de Dados

Tecnologia de Banco de Dados Distribuído

Page 19: 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.

Definições

Banco de Dados Distribuído (BDD) conjunto de múltiplos bancos de dados (SGBDs) inter-dados (SGBDs) inter-

relacionados distribuídos por uma rede 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

Page 20: 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.

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

Page 21: 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.

21

Alg

um

as

arq

uit

etu

ras

dif

ere

nte

s d

e s

iste

ma

s d

e

ba

nc

o d

e d

ado

s (

Elm

asri

e N

av

ath

e, 2

005

)

Arquitetura nada compartilhado – cada site seu BD

Arquitetura de rede com um BD centralizado

Arquitetura BDD – o banco é uma composição dos diversos sites

Page 22: 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.

Projeto Questões relevantes sobre BDD

Projeto de Distribuição (Fragmentação/Replicação) da Base de Dados

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

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

Page 23: 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.

Projeto Questões relevantes sobre BDD

Controle de Concorrência como sincronizar acessos concorrentes? como garantir consistência e isolamento das

transações? como evitar deadlocks?

Confiabilidade como tornar o sistema tolerante a falhas? como garantir durabilidade e atomicidade das

transações?

23

Page 24: 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.

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

Page 25: 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.

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

Page 26: 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.

Tipos de Sistemas de BDD Fator: grau de homogeneidadegrau de homogeneidade

SGBDD homogêneo todos os SGBDs locais e todos os clientes idênticos

SGBDD heterogêneo SGBDs locais distintos

Fator: grau de autonomiagrau de autonomia Em que grau os sites do sistema distribuído são

administrados independentemente

26

AUTONOMIAnenhuma alto

esquema conceitual único acesso por um único site para usuário “parece” um único SGBD centralizado

SGBDs independentes e autônomos SGBDDs Federados Multibases de dados

Page 27: 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.

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álogo27

Page 28: 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.

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 de criação de uma tabela é

responsável por manter informação de réplicas

para encontrar uma tabela é necessário consultar o catálogo de seu site de criação

estratégia: uso de cache nos demais sites28

Page 29: 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.

Fragmentação FragmentaçãoFragmentação quebra de uma tabela

em fragmentos que podem ser armazenados em sites diferentes

Tipos: fragmentação vertical projeção (SELECT) fragmentação horizontal filtragem (WHERE) fragmentação mista projeção + seleção

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

29

Page 30: 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.

Fragmentação FragmentaçãoFragmentação quebra de uma tabela em

fragmentos que podem ser armazenados em sites diferentes

Tipos: fragmentação vertical projeção fragmentação horizontal seleção fragmentação mista projeção + seleção

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

30

Esquema de Fragmentação: definição de um conjunto de fragmentos que inclui todos os

atributos e tuplas no banco de dados e satisfaz à condição de que o banco de dados pode ser reconstruído com base nos fragmentos ao se aplicar alguma sequência de operações de UNIÃO E JUNÇÃO. (Elmasri-Navathe, 2010)

Page 31: 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.

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 decomposição sem perda de junção

como garantir? A chave deve fazer parte de cada fragmento

31

Page 32: 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.

Replicação

ReplicaçãoReplicação armazenamento de várias cópias de uma tabela ou fragmento de tabela maior disponibilidade dos dados consultas mais rápidas

33

REPLICAÇÃO

alocação não

redundante

BD completamente

replicado

replicação parcial

Page 33: 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.

Replicação Replicação total: cópias de toda a base em

todos os sites Vantagem: maior desempenho de consultas Desvantagem: atualizações e controle de

concorrência são dispendiosos, pois novos dados e locks devem ser propagados para todos os sites; intenso tráfego de dados

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

Page 34: 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.

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

Page 35: 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.

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 36

Um esquema de replicação envolve fragmentação horizontal e vertical.

É comum que um site precise de apenas alguns atributos, enquanto que outro de

apenas algumas tuplas.

Page 36: 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.

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

Page 37: 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.

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

Page 38: 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.

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 39

Os esquemas de fragmentação e de replicação determinam um único esquema de

fragmentação/replicação.

Page 39: 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.

Processamento de Consultas Distribuídas

40

Custo de Transferência de Dados

Custo do Processamento da Consulta

Custo da Consulta Distribuída

Page 40: 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.

EX: Transferência de Dados ExercícioExercício

Processamento-de-consulta-distribuido

Page 41: 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.

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.atr2com 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.atr2e enviar o resultado para o site 1 No site 1, executar: SELECT * FROM R JOIN T ON R.atr1 = T. atr2 42

Page 42: 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.

EX: Semi-junção ExercícioExercício

Semi-juncao

Page 43: 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.

Transações Distribuídas

Propriedades ACID devem ser garantidas

44

Atomicidade

Consistência

Isolamento

Durabilidade

Recuperação de falhas

distribuídaConcorrência

distribuída

Page 44: 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.

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

Page 45: 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.

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

Page 46: 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.

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 onde ocorrem as operações – coordenação dinâmica

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

Page 47: 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.

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 site onde uma sub-transação é

executada Atomicidade:

ou todas as sub-transações são efetivadas (committed) ou nenhuma deve ser efetivada

48

COMMIT protocol

Ex: Two-Phase Commit (2PC)

Page 48: 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.

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

Page 49: 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.

Exemplo: ORACLE

50(Elmasri e Navathe, 2005)

Transparência de localização (uso de LDAP)

Transações distribuídas baseadas em 2PC

Replicação básica leitura em qualquer site escrita em site primário

Replicação avançada – leitura e escrita em qualquer site

snapshots

Suporte a arquitetura heterogênea

Page 50: 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.

Exemplo: ORACLE

52

Enterprise Manager Third-Party Administration Tools SNMP Support

Caso heterogêneo: Heterogeneous servicesTransparent gatewayOracle Net Services

Caso homogêneo: Oracle Advanced Replication

Page 51: 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.

Exemplo: ORACLE

53

Enterprise Manager Third-Party Administration Tools SNMP Support

Caso heterogêneo: Heterogeneous servicesTransparent gatewayOracle Net Services

Caso homogêneo: Oracle Advanced Replication

Page 52: 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.

Exemplo: ORACLE

54

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

Page 53: 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.

Exemplo: ORACLE

55

Fragmentação/Replicação são obtidas por meio de Materialized Views horizontal: cláusula WHERE vertical: cláusula SELECT

Em Oracle, a fragmentação é denominada Subsetting (ou “subconjuntando”)

Sincronização: Periodicidade

Síncrona: qualquer atualização é propagada imediatamente a todos os sites

Assíncrona: as atualizações ocorrem posteriormente, em intervalos de tempo pré-definidos

Método 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

Page 54: 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.

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