Vous êtes sur la page 1sur 19

Bancos de Dados III

Bancos de Dados Distribudos Introduo


Rogrio Costa rogcosta@inf.puc-rio.br

Banco de Dados Distribudo


Vrios bancos de dados fisicamente separados, mas logicamente relacionados Os bancos de dados podem estar distribudos por uma rede de computadores e/ou armazenados em SGBDs distintos Cada banco de dados pode conter uma certa autonomia o grau de autonomia pode variar com o ambiente / implementao
2

Banco de Dados Distribudo

O que um SGBDD?
Sistemas de Gerncia de Bancos de Dados Distribudos:
Estendem as facilidades usuais de gerncia de dados de forma que o armazenamento do banco de dados possa ser dividido ao longo dos ns de uma rede A diviso fsica dos dados no deve inviabilizar que os usurios tenham uma viso integrada do banco => deve existir um catlogo global
4

O que um SGBDD?

Vantagem
SGBDDs contribuem para o aumento da produtividade, pois simplificam o desenvolvimento de aplicaes com usurios ou fontes de dados geograficamente dispersas...
Geograficamente pode significar na mesma mquina mas em outro SGBD?

Alocao dos Dados


Aspectos adicionais ao do banco de dados centralizado... Agora existem vrios ns na rede... Existem tcnicas especiais para melhorar o desempenho... Dentre elas:
Fragmentao Vertical Fragmentao Horizontal Replicao (snapshot / viso materializada, on-line, ...)

Aspectos Atrativos de SGBDDs


Aspecto administrativo:
Cada setor de uma organizao geograficamente dispersa pode manter controle de seus prprios dados e oferecer compartilhamento a nvel global no seu uso. Podem refletir a estrutura organizacional ou geogrfica da organizao dando maior autonomia e responsabilidade local ao usurio, mas preservando uma viso unificada dos dados
8

Aspectos Atrativos de SGBDDs


Aspecto econmico:
o preo/desempenho de equipamentos de menor porte tem melhorado substancialmente => grande porte X pequeno porte! Cluster... Grid?! diminuir os custos de comunicaes (altos) se a maior parte dos acessos gerados em um n puderem ser resolvidos localmente, sem acesso a dados armazenados em ns remotos.

Aspectos Atrativos de SGBDDs


Aspecto tcnico:
facilitam o crescimento modular do sistema (em contraste com um sistema centralizado de grande porte) simplesmente acrescentando-se novos processadores e novos mdulos do banco ao sistema, aumentam a confiabilidade atravs da replicao das partes crticas do banco em mais de um n, e podem aumentar a eficincia atravs de um critrio de particionamento e replicao que coloque os dados prximos do local onde so mais freqentemente usados (em contraste com acesso remoto a um banco de dados centralizado).
10

Aspectos Complicados
SGBDDs podem ter:
problemas de implementao srios, custo de desenvolvimento elevado, consomem recursos e podem ter um desempenho global duvidoso (devido a trocas de mensagens, mecanismos de controle adicionais, etc ex. Transaes distribudas).
11

Aspectos Complicados
SGBDDs diferem significantemente de SGBDs centralizados do ponto de vista tcnico.
Em um SGBDD, o conhecimento do estado global do sistema necessrio para se processar consultas e para controle de concorrncia, No s os dados mas tambm o controle e informao sobre o estado do sistema esto distribudos.

Um SGBDD no uma simples replicao de SGBDs centralizados em vrios ns


12

Importantes funes de um Gerenciador de BD


Armazenamento do Banco de Dados Armazenamento de Meta-Dados Processamento de Comandos da Linguagem de Manipulao de Dados Funes de SGBD Gerncia de Transaes Centralizado ou Controle de Integridade Distrubudo! Controle de Concorrncia Controle de Acesso ao Banco 13

Arquitetura Genrica do SGBDD


Existem diversas propostas de arquiteturas para BDD (multi-database, federao, ...) Um SGBD distribudo pode ser visto como uma federao de SGBDs centralizados, autnomos, chamados de SGBDs locais, que so interligados por uma camada de software chamada de SGBD da rede ou SGBD global
14

Arquitetura Genrica do SGBDD


Um SGBD local:
como um SGBD centralizado gerenciando de forma autnoma o banco de dados local, exceto que poder receber comandos tanto de usurios locais quanto da cpia local do SGBD global.

15

Arquitetura Genrica do SGBDD


A coletividade dos bancos locais constitui, ento, uma implementao do banco distribudo. O SGBD global roda como uma aplicao sob o sistema operacional da rede de comunicao de dados.
Isto significa que todos os problemas de comunicao de dados e distribuio de recursos transparente ao SGBD global.

16

Arquitetura Genrica do SGBDD


Exemplo com ambiente de Federao de Bancos de Dados

17

Tipos de SGBDDs Homogneo vs Heterogneo


SGBDD Homogneo (em "software") : se os SGBDs locais so semelhantes
oferecem interfaces idnticas ou, pelo menos, da mesma famlia; fornecem os mesmos servios aos usurios em diferentes ns.

SGBDD Heterogneo
Caso contrrio ao anterior

Classificao semelhante pode ser feita com base no hardware.


18

Tipos de SGBDDs Homogneo vs Heterogneo


SGBDDs homogneos aparecem com mais freqncia quando a aplicao a que se destinam no existia antes. SGBDDs heterogneos surgem usualmente quando h necessidade de integrar sistemas j existentes.

19

Classificao dos Usurios de SGBDD


dbas, analistas, programadores, usurios casuais, paramtricos.... Usurios globais:
observam o banco de dados distribudo como um todo e acessam os dados atravs das interfaces do SGBD global;

Usurios locais:
tm contato apenas com o banco de dados local ao n onde residem e interagem apenas com o SGBD local.
20

10

Requisitos Funcionais de um SGBDD


A forma como o banco de dados est armazenado deve ser definida pelo administrador, mas no deve ser visvel aos outros tipos de usurios
Detalhes de armazenamento devem ser transparentes ao desenvolvimento de programas de aplicao e ao uso casual do banco, j que a este nvel apenas a forma com que os dados esto logicamente estruturados importa. Espera-se que seja possvel mudar a forma de armazenar o banco sem alterar os programas de aplicao

Independncia fsica de dados.


21

Requisitos Funcionais de um SGBDD


Independncia de Localizao e Replicao
A localizao do BD no deve causar problemas de implementao (exceto, claro, na variao do tempo de acesso). Eventuais replicaes tambm devem ser transparentes O sistema deve ser responsvel por localizar os dados e atualizar todas as cpias. Alm disto, se os arquivos forem movidos de um n para outro, ou divididos, os usurios no devem tomar conhecimento do fato.

Em resumo, os usurios globais devero ver o banco de dados distribudo como se fosse centralizado => Independncia de localizao e replicao.
22

11

Requisitos Funcionais de um SGBDD


Autonomia Local
Este requisito est intrinsecamente ligado estruturao de um SGBD distribudo em uma federao de SGBDs locais autnomos interligados pelo SGBD global. Nesta arquitetura exige-se que cada SGBD local mantenha sua autonomia:
cada SGBD deve manter controle sobre seus prprios dados => distribuio da responsabilidade dos dados para os prprios usurios locais; programas que acessem dados locais devem ser executados localmente, sem que seja necessrio consultar outros ns.

Como conseqncia deste requisito, um usurio local dever acessar os dados locais como se constitussem um banco de dados centralizado independente.

23

Requisitos Funcionais de um SGBDD


Interfaces de Muito Alto Nvel
A linguagem para acesso aos dados armazenados no banco deve ser de muito alto nvel, ou seja, com as seguintes caractersticas:
a linguagem deve ser no-procedimental no sentido do usurio especificar que dados devem ser acessados e no como eles devem ser acessados (isto problema do sistema); os comandos de acesso ao banco, oferecidos pela linguagem, devem manipular conjuntos de objetos e no apenas um objeto de cada vez; os comandos devem ser completamente independentes dos detalhes de armazenamento do banco e da existncia de caminhos de acesso pr-definidos.
24

12

Requisitos Funcionais de um SGBDD


Otimizao Automtica
O uso de interfaces de alto nvel perderia o impacto se o processamento de comandos para acesso aos dados fosse ineficiente. O SGBDD deve, portanto, conter um otimizador para selecionar os caminhos de menor custo para acessar os dados.

25

Requisitos Funcionais de um SGBDD


Reestruturao Lgica do Banco e Suporte a Vises
Modificaes nas estruturas lgicas do banco (ou seja, na forma como os usurios vem a estruturao dos dados) so necessrias quando a aplicao muda conceitualmente. O SGBDD deve, ento, fornecer meios para modificar a estrutura lgica de um banco j existente e criar a nova verso dos dados a partir da antiga. Reestruturaes deste tipo podem causar impacto nos programas de aplicao => utilizar vises para minorar o impacto

26

13

Requisitos Funcionais de um SGBDD


Segurana dos Dados
Uma aplicao baseada em um banco de dados facilita enormemente o acesso aos dados operacionais, o que traz o efeito adverso de facilitar acessos no autorizados a dados classificados. O SGBDD dever, necessariamente, prover meios para definir critrios de autorizao para acesso aos dados e meios para assegurar que as regras de acesso sero cumpridas.
27

Requisitos Funcionais de um SGBDD


Suporte Administrao dos Dados
Um banco de dados , em geral, uma estrutura complexa com centenas de tipos de objetos diferentes, armazenados de diversas formas. A tarefa de administrar um banco, especialmente se distribudo, exige ferramentas especiais para ser efetivamente executada. O SGBDD deve, ento, fornecer um dicionrio ou diretrio, onde armazenada a descrio do banco, ferramentas para acesso a este dicionrio, alm de utilitrios para manuteno do banco.
28

14

Especificao das Interfaces de um SGBDD


Um SGBDD constitudo de uma coleo de SGBD locais interligados por um SGBD global. Em cada n, os usurios locais e globais devem ser atendidos H, portanto, duas classes de interfaces em um SGBD distribudo:
as interfaces globais, oferecidas pelo SGBD global aos usurios globais; as interfaces locais, oferecidas pelos SGBDs locais aos usurios locais.

29

Especificao das Interfaces de um SGBDD


SGBD global dever se comportar como um SGBD centralizado perante seus usurios, e o SGBD local , para efeito dos usurios locais, um SGBD centralizado autnomo. Para especificar as caractersticas das interfaces oferecidas tanto a usurios locais quanto a usurios globais, basta estudar os tipos de interfaces comumente oferecidas por SGBDs centralizados, ou seja:
uma linguagem de definio de dados (LDD) usada para definir novos bancos de dados; uma ou mais linguagens de manipulao de dados (LMDs) usadas para recuperar e modificar os dados armazenados no banco; utilitrios para manuteno do banco.

30

15

Influncia do Tipo de SGBDD Homogneo sobre as Interfaces


Em um SGBDD homogneo todos os SGBDs locais oferecem interfaces idnticas => o mesmo modelo de dados, a mesma LDD e as mesmas LMDs. SGBD global oferea as mesmas interfaces. Qualquer usurio, local ou global, poder acessar tanto dados locais quanto dados remotos atravs da mesma LMD.
31

Influncia do Tipo de SGBDD Heterogneo sobre as Interfaces


Em sistemas heterogneos, os SGBDs locais potencialmente usam modelos de dados e LMDs diferentes. Uma opo seria o SGBD global oferecer ao usurio global, residente em um dado n, uma viso do banco de dados distribudo no mesmo modelo de dados que o banco local, e permitir que este usurio acesse dados definidos nesta viso atravs da prpria LMD local.
No necessrio ensinar uma nova LMD aos usurios residentes em um determinado n para que possam acessar dados remotos. SGBD global possui, na verdade, uma interface diferente para cada n. SGBD global pode ainda suportar uma LMD independente, chamada LMD pivot.
32

16

00000000000000000000000 0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000 00000000000000000000000


SGBDLi BDL

00000000000000000000000 0000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000 00000000000000000000000


SGBDLj BDL

000000000000000000000000 000000000000000000000000000000000000 000000000000 000000000000000000000000000000000000000000000000000000000000000000000000


Rede

000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000


SG BD Li BDL

2. O gerente de transaes do n i: Exemplo intercepta o comando, de acessa o diretrio global (que pode estar em outro n) e cria um plano de acesso ao BDD para obter os dados necessrios, ou seja, cria uma seqncia de comandos a serem enviados aos outros ns e para o prprio banco local

00000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000


SG BD Lj BDL

000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000


R e de

1. Uma transao T operando no n i (ou usurio acessando o banco atravs do n i) executa um comando para acessar o banco

Exemplo de Ciclo de Processamento em um SGBDD

GDj

GDj

Ciclo de Processamento em um SGBDD

GTi

DD

GTi

DD

GDi

GDi

34

33

17

0000000000000000000000000000000000000000000000 00000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000


SGBDLi BDL

000000000000000000000000000000000000000000000000 000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000


SGBDLj BDL

00000000000000000000000000000000000 000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000


Rede

00000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000


SGBDLi BDL

00000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 000000000000000000000000000000000000


SGBDLj BDL

000000000000 0000000000000000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000


Rede

traduo

4. O gerente de dados de um n j envolvido no processamento recebe comandos para o banco local e se encarrega de chamar o SGBD local para execut-los. Se for necessrio, o gerente de dados traduz os comandos para a linguagem de manipulao de dados local;

3. O gerente de transaes do n i: envia comandos aos ns envolvidos e coordena a sua execuo

GDj

GDj

Exemplo de Ciclo de Processamento em um

Exemplo de Ciclo de Processamento em um

SGBDD

SGBDD

GTi

DD

GTi

DD

GDi

GDi

36

35

18

Exemplo de 4. O gerente de dados do n j devolve os dados pedidos ao gerente de transaes do n i; 5. O gerente de transaes do n i completa o processamento do comando submetido, passando os dados para a transao (ou para o usurio).
T

Ciclo de Processamento em um SGBDD

GDj

Rede

GTi

GDi

SGBDLj

BDL

Paralelizando operaes

LS = Linear sum = sum(x) SS = Square sum = sum(x2) N = nmero de elementos


38

00000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000


BDL
37

000000000000 0000000000000000000000000000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000


DD

SGBDLi

00000000000000000000000 00000000000000000000000000000000000 00000000000000000000000000000000000 000000000000000000000000000000000000

19

Vous aimerez peut-être aussi