Você está na página 1de 54

SCC0141 - Bancos de Dados

e Suas Aplicaes

Vises e Bancos de Dados


Distribudos

Prof. Jose Fernando Rodrigues Junior

Material original: Profa. Elaine Parros Machado de Sousa

1
Viso (View)

Tabela Base Tabela Base 1 Tabela Base 2

juno

consulta consulta

View View
Viso (View)

Representao de dados contidos em outras


tabelas (tabelas base) ou mesmo em outras
vises
Trata resultado de uma consulta como uma tabela
consulta armazenada
tabela virtual
Espao de armazenamento (no dicionrio de dados)
apenas para a consulta (select) que define a
viso
Consulta executada cada vez que a viso
acessada
Viso (View)
Utilidade:
segurana - restrio de acesso a tuplas e
colunas
armazenamento de consultas complexas ou
executadas com muita frequncia
simplicidade para usurio
abstrao
apresentao dos dados com menor
complexidade ou em diferentes perspectivas
isolamento de aplicaes em relao a
alteraes de esquema
Views

CREATE OR REPLACE VIEW nome


[(NomeColuna [, NomeColuna ...])]
AS <select>;
Disciplina = {Sigla, Nome, NCred, Professor, Livro}

Views

Exemplo viso atualizvel

create or replace view view_disciplina as


select nome, sigla
from disciplina;

select * from view_disciplina;


Professor = {Nome, NFunc, Idade, Titulao}

Views

Exemplo

create view view_professor_doutor as


select * from professor
where titulacao = 'DOUTOR'
Aluno = {Nome, Nusp, Idade, DataNasc}
Disciplina = {Sigla, Nome, NCred, Professor, Livro}
Matrcula = {Sigla, Numero, Aluno, Ano, Nota}
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;
Views

CREATE VIEW
ALTER VIEW
DROP VIEW
Viso Materializada
(materialized view)

Vises armazenadas como tabelas


dados provenientes de master tables (tabelas base)
Utilidade
replicao de dados
performance
snapshot local de dados remotos
armazenamento de resultados de consultas complexas e

custosas
armazenamento de informaes sumarizadas
distribuio de dados
Viso Materializada
(materialized view)
Comuns em data warehousing, sistemas
distribudos, computao mvel....

Principais desvantagens:
ocupa espao de armazenamento
exige refresh quando as master tables so
modificadas
Viso 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;
BDs distribudos - Introduo
Sistemas de banco de dados centralizados
dados mantidos em um nico local
processamento de transaes individuais essencialmente
sequencial

Sistemas de banco de dados distribudos


dados armazenados fisicamente em diversos locais (sites)
usualmente: cada site gerenciado por um SGBD

Sistemas relacionais de fato distribudos no se


tornaram padres comerciais, ao invs 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 Distributed Management


Framework (DMF)

Oracle Oracle Replication Manager e Heterogeneous


Services/Transparent Gateway

14
Problema
Imagine o seguinte problema: uma empresa abrange
vrias cidades e a operao da empresa
integrada por meio de uma base de dados nica.
Problemas:
Copiar a base inteira para todas as filiais? Mas apenas
alguns dados so necessrios em cada uma; como manter as
cpias atualizadas?
Quais dados ter em cada filial ento? Ainda assim, alguns
dados comuns sero necessrios em todas as sedes?
Onde guardar os dados comuns? Na sede? Como
disponibilizar estes dados s filiais sem prejudicar o
desempenho? Ter vrias cpias dos mesmos dados uma opo?
Em algumas situaes ser inevitvel usar a infra-estrutura de
rede para trafegar dados entre pontos geogrficos distantes uns
dos outros? Como minimizar o trfego? Como tirar o melhor
proveito da rede? Quais alteraes podem melhorar o
desempenho?
15
Problema
Imagine o seguinte problema: uma empresa abrange
vrias cidades e a operao da empresa
integrada por meio de uma base de dados nica.
Problemas:
Exemplo:
Copiar a baseempresa
inteiradepara
transporte
todasrodovirio, rede
as filiais? Masde apenas
alguns dados
hotis, so necessrios
empresa em cada rede
area internacional, uma;de como
lojasmanter
do as
cpias atualizadas?
Quais dados ter em cada varejo, ...ento? Ainda assim, alguns
filial
dados comuns sero necessrios em todas as sedes?
Onde guardar os dados comuns? Na sede? Como
Quais problemas
disponibilizar estes cada uma destas
dados categorias
s filiais sem pode ter
prejudicar o
desempenho? Ter vrias cpias dos mesmos dados uma opo?
de maneira que um BD distribudo possa resolver.
Em algumas situaes ser inevitvel usar a infra-estrutura de
rede para trafegar dados entre pontos geogrficos distantes uns
dos outros? Como minimizar o trfego? Como tirar o melhor
proveito da rede? Quais alteraes podem melhorar o
desempenho?
16
Motivao
Por que distribuir dados?
disponibilidade
acesso distribudo
localidade desempenho

anlise distribuda de dados


expanso

Aplicaes
grandes corporaes
redes de hotis
redes de lojas
companhias areas
companhias virias
17
Componentes

Tecnologia de Banco de Dados Distribudo

Tecnologia de Banco de Dados

Tecnologia de Redes e Comunicao de Dados

18
Definies
Banco de Dados Distribudo (BDD)
conjunto de mltiplos bancos de dados (SGBDs) inter-
relacionados distribudos por uma rede de computadores

Sistema de Gerenciamento de Banco de Dados


Distribudo (SGBDD)
sistema que gerencia um BDD
torna a distribuio transparente para o usurio

19
Caractersticas
Sistema de BDD mais complexo
funes adicionais do SGBDD
localizao de dados
processamento de consultas distribudas

gerenciamento de transaes distribudas

gerenciamento de dados replicados

recuperao de BDD

segurana

gerenciamento de dicionrio de dados distribudo

20
Arquitetura nada

Algumas arquiteturas diferentes de sistemas de


compartilhado cada
site seu BD
banco de dados (Elmasri e Navathe, 2005)

Arquitetura de
rede com um BD
centralizado

Arquitetura BDD
o banco uma
composio dos
diversos sites
21
Projeto
Questes relevantes sobre BDD
Projeto de Distribuio
(Fragmentao/Replicao) da Base de
Dados
como distribuir a base de dados?
base de dados distribuda replicada ou no replicada?

Processamento de Consulta
como converter transaes do usurio em instrues de
manipulao de dados?
como otimizar uma consulta?
custo = transmisso dados + processamento local

22
Projeto
Questes relevantes sobre BDD
Controle de Concorrncia
como sincronizar acessos concorrentes?
como garantir consistncia e isolamento das
transaes?
como evitar deadlocks?

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

23
Projeto
Catlogo (ou Dicionrio) de Dados Distribudo
como e onde os dados esto fragmentados
como e onde os dados esto replicados
informao de esquema
informao de autorizao de usurios
estatsticas

24
Transparncia
Em SBDDs necessrio que os usurios
no tenham que saber da arquitetura
distribuda transparncia

Tipos de transparncia de dados


de distribuio
localizao
nomenclatura
de replicao
de fragmentao
horizontal (WHERE)
Vertical (SELECT) 25
Tipos de Sistemas de BDD
Fator: grau de homogeneidade
SGBDD homogneo

todos os SGBDs locais e todos os clientes idnticos

SGBDD heterogneo

SGBDs locais distintos

Fator: grau de autonomia


Em que grau os sites do sistema distribudo so

administrados independentemente

nenhuma AUTONOMIA alto

esquema conceitual nico SGBDs independentes


acesso por um nico site
para usurio parece um e autnomos
nico SGBD centralizado SGBDDs Federados
Multibases de dados
26
Catlogo de Dados Distribudo
Possveis estruturas
centralizado
Vantagem: uma nica cpia, simples de
implementar
Desvantagem: gargalo para o processamento

de consultas todos os sites tem que acessar o


site central para qq consulta
catlogo global replicado
Vantagem: desempenho local de consultas
Desvantagem: manter a consistncia das
mltiplas cpias do catlogo
27
Catlogo de Dados Distribudo
Abordagem do R* - projeto prottipo de bases
de dados distribudas da IBM
cada site mantm catlogo apenas local

descrio apenas dos dados locais

site de criao de uma tabela


responsvel por manter informao de
rplicas
para encontrar uma tabela necessrio
consultar o catlogo de seu site de
criao
estratgia: uso de cache nos demais sites
28
Fragmentao
Fragmentao quebra de uma tabela
em fragmentos que podem ser
armazenados em sites diferentes
Tipos:
fragmentao vertical projeo (SELECT)
fragmentao horizontal filtragem (WHERE)

fragmentao mista projeo +

seleo
Conceito de Esquema de Fragmentao:
metadados que descrevem como os dados so
quebrados ao longo da arquitetura
29
Fragmentao
Fragmentao quebra de uma tabela em
fragmentos que podem ser armazenados em sites
diferentes
Esquema de Fragmentao: definio de um
Tipos:
conjunto de fragmentos que inclui todos os
fragmentao vertical projeo
atributos e tuplas no banco de dados e satisfaz
fragmentao horizontal seleo
condio de que o banco de dados pode ser
fragmentao mista projeo +
reconstrudo com base nos fragmentos ao se
seleo
aplicar alguma sequncia de operaes de
Conceito de Esquema de Fragmentao: metadados que
UNIO E JUNO. (Elmasri-Navathe, 2010)
descrevem como os dados so quebrados ao longo da
arquitetura

30
Fragmentao

Deve ser possvel recuperar a tabela original a


partir dos fragmentos
fragmentao horizontal (WHERE)
unio dos fragmentos tabela original
fragmentao vertical (SELECT)
coleo de fragmentos decomposio sem perda de
juno
como garantir? A chave deve fazer parte de cada fragmento

31
Replicao
Replicao armazenamento de
vrias cpias de uma tabela ou
fragmento de tabela
maior disponibilidade dos dados
consultas mais rpidas

REPLICAO

alocao no replicao BD
redundante parcial completamente
replicado

33
Replicao
Replicao total: cpias de toda a base em
todos os sites
Vantagem: maior desempenho de consultas
Desvantagem: atualizaes e controle de
concorrncia so dispendiosos, pois novos dados e
locks devem ser propagados para todos os sites;
intenso trfego de dados

Alocao no redundante: os sites so


todos disjuntos (com exceo das chaves)
vantagens e desvantagens inversas
replicao total 34
Replicao
Replicao parcial: algumas partes do banco
so replicadas enquanto que outras no so:
Conceito de Esquema de Replicao:
metadados que descrevem o que replicado,
onde, quantas vezes e com qual atualizao os
dados so sincronizados
O esquema de replicao um problema de
otimizao complexo, ele depende:
De quais consultas so realizadas com qual
frequncia em cada site
De quais atualizaes so realizadas com qual

frequncia em cada site


De qual controle de concorrncia (isolamento)

necessrio em cada site 35


Replicao
Replicao parcial: algumas partes do banco
so replicadas enquanto que outras no so:
Conceito de Esquema de Replicao:
metadados que descrevem o que replicado,
Um esquema de replicao envolve
onde, quantas vezes e com qual atualizao os
fragmentao horizontal e vertical.
dados so sincronizados
O esquema de replicao um problema de
comum que um site precise de apenas
otimizao complexo,
alguns atributos, ele depende:
enquanto que outro de
De quais apenas
consultas so tuplas.
algumas realizadas com qual
frequncia em cada site
De quais atualizaes so realizadas com qual

frequncia em cada site


De qual controle de concorrncia (isolamento)

necessrio em cada site 36


Replicao
Tipos:
replicao sncrona todas as cpias so
atualizadas dentro de uma mesma transao
problema? trfego intenso de rede

replicao assncrona atualizaes


peridicas das cpias de dados modificados
problema? controle de transao mais elaborado
necessrio, alguns dados no tem garantia de
consistncia e no devem ser lidos

37
Esquema Distribudo
Esquemas Lgicos locais ou um esquema global
+
Esquema de Fragmentao
+
Esquema de Replicao

A arquitetura de um esquema distribudo visa


reduzir seu maior custo: trfego de rede

No entanto, em algumas situaes como consultas


raramente efetuadas, no h o que se fazer os
dados iro trafegar em rede intensamente 38
Esquema Distribudo
Esquemas Lgicos locais ou um esquema global
+
Esquema de Fragmentao
+
Os esquemas de fragmentao e de replicao
determinam
Esquema umdenico esquema de
Replicao
fragmentao/replicao.
A arquitetura de um esquema distribudo visa
reduzir seu maior custo: trfego de rede

No entanto, em algumas situaes como consultas


raramente efetuadas, no h o que se fazer os
dados iro trafegar em rede intensamente 39
Processamento de Consultas Distribudas

Custo da Consulta Distribuda

Custo de Transferncia de Dados

Custo do Processamento da Consulta

40
EX: Transferncia de Dados
Exerccio
Processamento-de-consulta-distribuido
Semi-Juno

Idia geral: reduzir o nmero 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
42
ON R.atr1 = T. atr2
EX: Semi-juno
Exerccio
Semi-juncao
Transaes Distribudas
Propriedades ACID devem ser
garantidas
Atomicidade

Consistncia
Recuperao
Concorrncia de falhas
distribuda Isolamento distribuda

Durabilidade

44
Concorrncia Distribuda
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 cpia ser diferente do valor no
site A.

Soluo: uso de locks. Quando o site A alterar o dado, deve-


se bloque-lo (lock) para uso e escrita at que A finalize sua
operao e o dado seja sincronizado com o site B.

Como gerenciar bloqueios (locks) de objetos (tabelas e


fragmentos) distribudos?
abordagem centralizada

abordagem cpia primria

abordagem completamente distribuda


45
Concorrncia Distribuda

Baseada no conceito de Cpia Distinguida (ou Distinta):


dentre as vrias cpias dos dados, uma delas dita como o
controle de concorrncia feito isto , uma nica
cpia recebe e libera locks

A escolha da cpia que ir ditar o controle de


concorrncia pode ser esttico ou dinmico

O site que possui a cpia distinguida denominado site


Coordenador, o qual dever responder ao sistema de
locks 46
Concorrncia Distribuda
Abordagem cpia primria
bloqueios so gerenciados pelo site onde est a cpia
primria (original) do objeto requisitado
problema? Maior complexidade

Abordagem completamente distribuda


bloqueios gerenciados nos sites onde ocorrem as
operaes coordenao dinmica
problema? Maior complexidade, necessidade de broadcast
dinmico para informar sobre a coordenao
Abordagem centralizada
um nico site responsvel por gerenciar todas as
requisies de bloqueio
problema? Vulnervel a falhas, requer um backup
sobrecarga de um nico site 47
Recuperao de Falhas Distribuda
Novos tipos de falha que no ocorrem em
SGBDs no distribudos
falhas de comunicao
falha em um site onde uma sub-transao
executada
Atomicidade:
ou todas as sub-transaes so efetivadas
(committed) ou nenhuma deve ser efetivada
COMMIT protocol
Ex: Two-Phase Commit (2PC)
48
Recuperao de Falhas
Distribuda
Uso do two-phase commit protocol (2PC)
Algoritmo distribudo que visa gerenciar situaes

transacionais protocolo do tipo consensual


Duas fases
1. Contacta todos os participantes preparando-os para
o sistema de consenso, segundo o qual, aps a
execuo distribuda, cada um ter que votar sim
(commit) ou no (abort)
2. Efetivao da deciso consensual, todos so
informados de que devem consolidar a transao
(todos votaram commit) ou retornar ao estado
anterior (pelo menos um votou abort ou alcanou
time-out) 49
Exemplo:
ORACLE

Transparncia de localizao
(uso de LDAP)
Transaes distribudas
baseadas em 2PC
Replicao bsica
leitura em qualquer site
escrita em site primrio
Replicao avanada leitura e
escrita em qualquer site
snapshots
Suporte a arquitetura
heterognea (Elmasri e Navathe,50
2005)
Exemplo:
ORACLE

Enterprise Manager
Third-Party Administration Tools
SNMP Support

Caso heterogneo:
Heterogeneous services
Caso homogneo: Oracle Transparent gateway
Advanced Replication Oracle Net Services 52
Exemplo:
ORACLE

Enterprise Manager
Third-Party Administration Tools
SNMP Support

Caso heterogneo:
Heterogeneous services
Caso homogneo: Oracle Transparent gateway
Advanced Replication Oracle Net Services 53
Exemplo:
ORACLE
Fluxo de dados entre sites: Oracle Stream Replication, mantm
todos os sites atualizados ao enviar continuamente dados de
atualizao
Transparncia de distribuio 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 servio remoto

SELECT *
FROM tabela1@remote.us.oracle.com

CREATE SYNONYM tabela1_remota


FOR tabela1@remote.us.oracle.com

SELECT * FROM tabela1_remota 54


Exemplo:
ORACLE
Fragmentao/Replicao so obtidas por meio de Materialized Views
horizontal: clusula WHERE

vertical: clusula SELECT

Em Oracle, a fragmentao denominada Subsetting (ou


subconjuntando)
Sincronizao:
Periodicidade

Sncrona: qualquer atualizao propagada imediatamente a


todos os sites
Assncrona: as atualizaes ocorrem posteriormente, em
intervalos de tempo pr-definidos
Mtodo

Fast refresh: usa logs para fazer a atualizao apenas do que foi
alterado desde o ltimo refresh
Complete refresh: atualiza todos os dados da view

Force refresh: se possvel, realiza um fast refresh, do contrrio


55
realiza um complete refresh
Referncias
ELMASRI, R; NAVATHE, S.B. Sistemas de
Banco de Dados, Addison Wesley, 4a
edio, 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