Buscar

01 - Arquitetura V-0'75

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 66 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

BANCO DE DADOS II 
 
Arquitetura de SGBDs 
 
Versão dos slides: 0.75 
 
 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
 
 
 
DCC-UFLA, Lavras 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
2 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Sistemas Gerenciadores 
de Banco de Dados (SGBDs) 
 Sistemas de software extremamente complexos e 
de missão crítica 
 Incorporam décadas de pesquisa acadêmica e 
industrial + intenso desenvolvimento de software 
corporativo 
 Um primeiros sistemas servidores amplamente 
implantados e testados 
• Sistema de software influenciador de diversas áreas 
como redes, sistemas operacionais e sistemas 
distribuídos 
3 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Exigências Básicas de um SGBD 
 Confiabilidade: Consistência, durabilidade, 
tolerância a falhas 
 Funcionalidade: Suporte a novos requisitos de 
aplicações, flexibilidade, hardware, dados, etc 
 Performance: “Performance is not everything, 
but without performance everything is worth 
nothing“ 
4 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Como Atender estas Exigências? 
 Independência lógica: capacidade de alterar a 
descrição lógica dos dados (esquema) sem 
inteferir com usuários e programas de aplicação 
(problema em sua maior parte em aberto) 
Independência de dados 
 Independência física: capacidade de alterar a 
representação física dos dados em meios de 
armazenamento e as técnicas usadas para 
acessar estes dados sem inteferir com 
usuários e programas de aplicação 
5 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
6 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Projeto de uma Arquitetura de SGBD 
 Princípios básicos: 
• Abstração de informações e operações 
 
 
• Encapsulamento e estruturação 
hierárquica 
 
 
A key task in computer science is sistematic 
abstraction (H. Wedekind) 
Many sucessful designs can be seen as sucessful 
applications of abstraction and information hiding 
(David L. Parnas) 
7 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Encapsulamento e Estruturação 
Hierárquica: Benefícios 
 A implementação de componentes em 
uma camada é simplificado através do 
uso de componentes da camada abaixo 
 Componentes em uma camada são 
independentes da funcionalidade e de 
modificações em componentes das 
camadas acima 
 Testes e refinamentos em componentes 
de uma camada são possíveis sem 
afetar componentes das camadas acima 
SGBD 
BD 
8 
9 
Arquitetura ANSI/SPARC 
Esquema conceitual descreve a 
estrutura lógica do banco de dados 
Nível Interno 
Mapeamento 
Conceitual/Interno 
Nível Conceitual 
Nível 
Externo 
Esquema interno descrevendo 
detalhes de armazenamento e 
métodos de acesso 
Esquema externo descreve uma 
parte especifíca do banco de dados 
para um grupo de usúarios 
Mapeamento 
Externo/Conceitual 
Nível 
Externo 
Mapeamento 
Externo/Conceitual 
10 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas C5 
C4 
C3 
C2 
C1 
11 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
interface do(s) dispositivos 
canais de acesso 
estruturas de 
dados lógicas C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
12 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
interface de arquivos 
leitura e escrita de blocos 
unidades de endereçamento: 
blocos, arquivos 
estruturas auxiliares: 
catálogos de arquivos, blocos livres info. 
unidades de endereçamento: 
trilhas, cilindros, canais 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
13 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
interface do buffer do BD 
fix/unfix de páginas 
unidades de endereçamento: 
páginas, segmentos 
estruturas auxiliares: 
tabelas de páginas, tabelas de blocos 
unidades de endereçamento: 
blocos, arquivos 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
14 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
interface de registros internos 
armazenamento de registros (na B*-tree) 
unidades de endereçamento: 
registros intern., B*-trees, tabelas hash 
estruturas auxiliares: 
índices de páginas, tabelas de endereços 
unidades de endereçamento: 
páginas, segmentos 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
15 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
interface orientada a registros 
FIND NEXT/STORE, SCAN, SORT 
unidades de endereçamento: 
registros externos, conjuntos, chaves… 
estruturas auxiliares: 
dados de caminhos de acesso 
unidades de endereçamento: 
registros intern., B*-trees, tabelas hash 
C5 
C4 
C3 
C2 
C1 
16 
Arquitetura de 5 Níveis 
(Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
interface orientada a conjuntos 
SQL, QBE 
unidades de endereçamento: 
tabelas, visões, tuplas 
estruturas auxiliares: 
descrição do esquema externo 
unidades de endereçamento: 
registros externos, conjuntos, chaves… 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
3 abc $ de tabelas 
visões 
7 xyz # zz 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
3 abc $ de tabelas 
visões 
7 xyz # zz 
registros 
externos 3 abc 7 xyz 
reg. 1 reg. 2 
$ de 3 # zz 7 
reg. 3 reg. 4 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
3 abc $ de tabelas 
visões 
7 xyz # zz 
registros 
externos 3 abc 7 xyz 
reg. 1 reg. 2 
$ de 3 # zz 7 
reg. 3 reg. 4 
registros 
internos 
registro 1 registro 2 
214 abc 3 318 xyz 7 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas3 abc $ de tabelas 
visões 
7 xyz # zz 
registros 
externos 3 abc 7 xyz 
reg. 1 reg. 2 
$ de 3 # zz 7 
reg. 3 reg. 4 
registros 
internos 
registro 1 registro 2 
214 abc 3 318 xyz 7 
reg. 1 
reg. 3 
reg. 2 … 
… 
buffer do BD 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
3 abc $ de tabelas 
visões 
7 xyz # zz 
registros 
externos 3 abc 7 xyz 
reg. 1 reg. 2 
$ de 3 # zz 7 
reg. 3 reg. 4 
registros 
internos 
registro 1 registro 2 
214 abc 3 318 xyz 7 
reg. 1 
reg. 3 
reg. 2 … 
… 
buffer do BD 
A 
A A‘ 
B 
B 
C 
C C‘ 
segmento 
arquivo 
C5 
C4 
C3 
C2 
C1 
Arquitetura de 5 Níveis (Härder e Reuter) 
armazenamento externo 
serviços de arquivos 
controle de propagação 
estruturas de 
armazenamento 
caminhos de acesso 
lógicos 
estruturas de 
dados lógicas 
3 abc $ de tabelas 
visões 
7 xyz # zz 
registros 
externos 3 abc 7 xyz 
reg. 1 reg. 2 
$ de 3 # zz 7 
reg. 3 reg. 4 
registros 
internos 
registro 1 registro 2 
214 abc 3 318 xyz 7 
reg. 1 
reg. 3 
reg. 2 … 
… 
buffer do BD 
A 
A A‘ 
B 
B 
C 
C C‘ 
segmento 
arquivo 
cilindros 
trilhas, etc 
1 
3 
5 
4 
2 
C5 
C4 
C3 
C2 
C1 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C1: Serviço de Arquivos 
 Esta camada opera sobre padrões de bits armazenados 
em dispositivos de armazenamento não volátil 
 Principal serviço de C1: abstração de características de 
cada dispositivo de armazenamento em blocos de 
tamanho fixo que podem ser acessados através de um 
identificador de bloco 
• Banco de dados dividido logicamente em blocos 
 Notem que o BD ainda pode ser dividido em diferentes 
espaços de armazenamento 
• Termo usado em manuais: table space 
• Podemos ter diferentes table spaces para servir diferentes 
tipos de dados: table spaces diferentes para tabelas 
regulares, tabelas temporárias, índices, etc 
 
23 
C1: Serviço de Arquivos 
 A abstração de C1 pode ser feita diretamente pelo SGBD ou pelo 
sistema de arquivos do sistema operacional 
 C1 implementada pelo SO: 
• Maior facilidade de administração: o SGBD simplesmente usa os 
serviços do sistema de arquivos 
• Sujeito a double buffering, isto é, dados podem estar duplicados em 
memória no cache do SO e no buffer do SGBD em C2 : em muitos 
casos, uma desvantagem 
• Certos SGBDs suportam apenas esta opção (e.g., PostgreSQL) 
 C1 implementada pelo SGBD: 
• O SGBD provê um sistema de arquivos customizado realizando acesso 
direto aos dispositivos de armazenamento (raw IO) 
• Maior peformance, mas administração é mais complexa 
• Certos SGBDs suportam as duas opções e ainda permitem uma 
configuração hibrída, onde certas table spaces são gerenciadas pelo 
SO e outras diretamente pelo SGBD (e.g., IBM DB2) 
24 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C1: Serviço de Arquivos 
25 
C1 implementada 
pelo SO 
C1 implementada 
pelo SGBD 
Sistema de arquivos do SO 
C2: Controle de Propagação Dados 
Dados 
Double 
buffering 
Sistema de arquivos do SBBD 
Raw IO 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C2: Controle de Propagação 
 Esta camada divide o BD em páginas: partições de tamanho 
fixo de um espaço de endereçamento linear 
 Páginas são mapeadas para blocos de C1 
• Relação 1-1 entre páginas e blocos é comum, mas não é uma 
restrição conceitual 
 Para efetivamente reduzir IO, esta camada provê um ou 
mais buffers para BD 
• Termo para buffers nos manuais: buffer pool 
• Assim como table spaces, podemos ter buffers associados com 
diferentes porções do BD: buffer para tabelas regulas, tabelas 
temporárias, índices, etc 
 C2 provê uma interface orientada à páginas para o(s) 
buffer(s) do SGBD 
26 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C3: Estruturas de Armazenamento 
 Esta camada gerencia representações físicas de objetos do 
BD (registros, campos, informações do catálogo, etc) em 
páginas 
 Provê uma variedade de caminhos de acesso para a 
camada superior (ponteiros, árvores de busca, tabelas 
hash, etc) 
 Em conjunção com caminhos de acesso, mecanismos de 
agrupamento de dados (clustering) são implementados 
nesta camada 
 Realiza mapeamentos muito mais complicados que aqueles 
realizados pelas camadas C1 e C2 
 Por razões de performance, o particionamento dos dados 
em páginas ainda visível é em C3 
27 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C4: Caminhos de Acesso Lógicos 
 Esta camada provê operações e objetos típicos 
de uma linguagem para manipulação de dados 
procedural (e.g., álgebra relacional) 
 Operadores nesta camada usam uma interface 
de acesso a dados do tipo one-record-at-a-time 
• Dados são acessados através de uma hierarquia ou 
rede de registros lógicos ou através de caminhos de 
acesso lógicos 
28 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
C5: Estruturas de Dados Lógicas 
 Esta camada provê estruturas de dados lógicas 
(como tabelas e visões) e suporte à operações 
declarativas 
• Interface não procedural do SGBD 
• Suporta um modelo de dados independente de 
caminhos de acesso e detalhes de armazenamento 
com acesso declarativo (e.g., SQL) 
 Nesta camada é realizada a compilação de 
consultas SQL em planos de consulta que serão 
executados em C4 
29 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Arquitetura de 5 níveis: Flexibilizações 
 Número de níves reconsiderado 
• Maior número de níveis: 
− Complexidade reduzida em camadas individuais -> evolução 
facilitada 
− Maior número de mapeamentos necessários durante execução 
-> performance prejudicada 
• Grande espaço de buffer -> acesso a N1 é evitado 
• Compilação e early binding -> execução a partir de N4 
− Modificações (dados, esquema, índices, etc) podem invalidadar 
modulos de acesso 
 Encapsulamento reconsiderado 
• Dependências e transmissão de informações inter-níveis 
− Informações sobre uso de buffers (N2) para otimizar otimização 
de consultas em N4 (Hot set model) 
 
 
30 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Componentes de um SGBD (XML) 
31 
OS File System 
Transaction Log Container Files Temporary Files 
X
T
C
se
rv
e
r 
Transaction Services 
File Services 
Propagation Control 
Access Services 
Node Processing 
Services 
XML Processing Services 
Interface Services 
Http Agent Ftp Agent DOM RMI SAX RMI API RMI 
XML Manager XSLT Processor XQuery Processor 
Node Manager 
Record Mgr Index Mgr Catalog Mgr 
Buffer Manager 
I/O Manager Temp File Mgr 
Transaction Manager 
Lock Manager 
Deadlock Detector 
Path Processing 
C1 
C2 
C3 
C4 
C5 
TSJ Processing 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
32 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBDs Paralelos 
 Três designs populares 
• Memória compartilhada: todos processadores 
compartilham uma memória global e tem acesso a 
todos discos 
• Disco compartilhado: cada processador possui 
uma mémoria privada mas tem acesso a todos 
discos 
• Shared-nothing: cada processador possui 
mémoria(s) e disco(s) privados 
33 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Memória Compartilhada 
34 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
CacheCPU 
Cache Memoria 
Local 
Arquitetura NUMA 
Disco 
RAM 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Memória Compartilhada 
 Todos processadores podem acessar a mesma 
RAM e disco com a mesma performance 
 Caso os nós de processamento possuam 
mémoria local (o cache do processador não é 
considerado) com tempo de acesso superior 
com a memória remota compartilhada, 
teremos uma configuração de memória 
compartilhada baseada em arquitetura NUMA 
(Non Uniform Memory Acess) 
35 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Memória Compartilhada 
 Configuração mais comum: 2-8 processadores 
 Configuração high-end: dúzias de processadores 
• Um dos últimos cash cows da indústria de hardware 
• Servições OLTP de missão crítica 
 Custo reduzido de administração 
 Modelo de programação bastante similar ao 
modelo usado em arquiteturas multi-core 
 Otimizador deve ser adaptado para paralelizar a 
execução de uma consulta entre múltiplas CPUs 
 Suportada pelos principais produtos comerciais: 
IBM DB2, Oracle, Microsoft SQL Server 
36 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Shared-Nothing 
37 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
RAM 
RAM 
RAM 
RAM 
RAM 
RAM 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Shared-Nothing 
 Composto por um cluster de máquinas independentes que 
se comunicam via rede de comunicação de alta-velocidade 
 Um nó não possui acesso direto ao disco e memória dos 
outros nós 
 Frequentemente, implementado usando componentes 
básicos de hardware 
 Coordenação realizada em sua totalidade pelo SGBD: 
inexistência de abstrações de hardware 
 Na configuração mais comum, cada instância do SGBD 
executa em seu modelo de processo e é completo, isto é, 
pode processar consultas de maneira autonôma 
 Paralelismo ditado por particionamento dos dados 
38 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Shared-Nothing 
39 
 Particionamento horizontal dos dados 
• Round-robin 
• Baseado em hash 
• Baseado em intervalos 
SCAN 
SORT 
SCAN 
SORT 
SCAN 
SORT 
MERGE 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Shared-Nothing 
 Requer mecanismos de coordenação entre os nós 
(possível gargalo) 
• Transações: bloqueios, deadlock, etc 
• Balanceamento de carga 
 Falha de um nó pode fazer com parte dos dados 
se torne inacessível 
• Necessidade de redundância 
 Excelente escalabidade e performance 
 Exemplos: IBM DB2, 
 Informix, Tandem, NCR Teradata, NoSQL, etc 
40 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Disco Compartilhado 
41 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
CPU 
Cache 
Disco 
RAM RAM 
RAM 
RAM 
RAM 
RAM 
SAN 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Disco Compartilhado 
 Todos processadores podem acessar o disco com 
a mesma performance, mas um processador não 
possui acesso direto a memória dos demais 
processadores 
 Design tem se tornado mais atraente com a 
popularização de SAN (Storage Area Networks) 
• Um ou mais discos lógicos podem ser montados 
• Rede de alta performance 
 Exemplos: Oracle RAC e DB2 for zSeries SYSPLEX 
 
42 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Disco Compartilhado 
 Fácil manutenção em comparação com shared-
nothing 
• Para DBs de tamanho mediano, não é necessário 
considerar particionamento de dados para obter 
paralelismo 
 Falha em um dos nós de processamento não 
afeta os demais 
• Memória compartilhada: compromete todo o sistema 
• Shared-nothing: parte dos dados pode ser tornar 
inacessível (caso não exista redundância) 
 Falha no disco compromete todo o sistema 
43 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Disco Compartilhado 
 Como cada máquina possui sua memória local e 
pool de buffer, diferentes cópias dos dados do 
disco compartilhado podem estar replicado nas 
memórias locais 
 Risco de inconsistência-> coordenação explicíta 
dos dados é requerida 
 Mecanismos de coordenação podem representar 
sério gargalo 
• IBM zSeries SYSPLEX implementa o gerenciador de 
bloqueios em um subsistema de hardware 
44 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
45 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Distribuídos 
46 
Rede de Comunicação 
SGBD 
SGBD 
SGBD 
SGBD 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Distribuídos 
 Amplo espaço de alternativas arquiteturais ao longo 
das dimensões de distribuição, heterogeneidade e 
autonomia 
47 
 Autonomia: refere-se a distribuição 
de controle; indica o grau de 
independência de cada SGBD 
 Distribuição: refere-se a distribuição 
dos dados 
 Heterogeneidade: pode ser de 
hardware, SO, etc. Particularmente 
importante é a heterogeneidade de 
dados 
Autonomia 
D
is
tr
ib
u
iç
ão
 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Distribuídos: Exemplo 
48 
Esquema 
Federado 
Federação: formada por SGBDs 
heterôgeneos e autonômos 
Esquema 
Local 
Esquema 
Local 
Esquema 
Local 
Mapeamento 
local/global 
Usuario1 Usuario3 Usuario2 
 Situado no extremo das três 
dimensões 
 Integração de dados virtual 
 Maiores problemas: 
Heterogenidade semântica em 
nível de esquema e instância 
 Trade-off entre poder 
expressão e tratabilidade para 
linguagens usadas para 
descrever e consultar as fontes 
de dados 
 Nova tendência: paradigma 
pay-as-you go 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
49 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Distribuição Vertical de 
Processamento 
 Componentes básicos em um sistema de 
informação: 
• Camada de apresentação: Interação com usuário, 
GUIs 
• Camada de aplicação: Lógica de aplicação 
• Camada de dados: Gerenciamento dos dados 
(SGBD) 
 
50 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Distribuição Vertical de 
Processamento 
51 
Camada de Apresentação 
Camada de Aplicação 
Dados 
Servid
o
r 
Cliente 
Sistem
a d
e 
In
fo
rm
ação
 
Arquitetura Centralizada 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Distribuição Vertical de 
Processamento 
52 
Arquitetura Cliente/Servidor 
Cliente 
Camada de Apresentação 
Camada Aplicação 
Camada Dados 
Sistem
a d
e 
In
fo
rm
ação
 
Servid
o
r 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Distribuição Vertical de 
Processamento 
53 
Arquitetura Três Camadas 
Middleware 
Cliente 
Camada de Apresentação 
Camada de Aplicação 
Camada de Dados 
Sistem
a d
e 
In
fo
rm
ação
 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Agenda 
 Motivação 
 Arquitetura de SGBDs 
 SGBDs Paralelos 
 SGBDs Distribuídos 
 Distribuição Vertical de Processamento 
 Evolução Arquitetural de SGBDs 
54 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Universal? 
 OLTP - Online Transaction Processing: transações 
simples, curtas, altamente concorrentes (>1k 
tpm), pré-definidas, garantias ACID, operações 
rw, BD tamanho moderado (0.1TB-1TB) 
 OLAP – Online Analytic Processing: transações 
complexas (com agregações), não concorrentes e 
não-transacionais, ad-hoc, operações ro, BDs 
grandes [-,10 PB) 
55 
Prof. Dr.-Ing. Leonardo AndradeRibeiro 
SGBD Universal? 
 Processamento de streams (ex.: redes de sensores, 
feeds): consultas estáticas/dados dinâmicos, fluxo 
contínuo (sem end-of-table), consultas aproximadas e 
baseadas em janelas de tempo, etc 
 Banco de dados científicos: operações especializadas 
(ex.: regressão), linhagem, arquivamento, imprecisão, ... 
 Texto e dados semi-estruturados: ausência de estrutura 
(e noção de consistência), resultados ranqueados, 
critério de relevância... 
 É viável (ou possível) desenvolver um SGBD para atender 
a todas estas demandas (“One size fits all”)? 
56 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Universal: Problemas 
 Modelo Relacional: 
• Processamento de dados de negócio (sistemas bancários, 
controle de estoque, etc) = OLTP 
• Simplicidade espartana 
• Novos ornamentos requerem novas operações 
 SGBD complexos: 
• Curva de aprendizagem acentuada (sistema + linguagem), 
difíceis de gerenciar, ajustar, performance imprevisível 
(algumas consultas podem ser desastrosas), consumo de 
mémoria excessivo (inapropriado para dispositivos com 
restrição de hardware) 
• Sistemas especializados para OLAP, streaming, dados 
científicos, e texto superaram sistemas convencionais por 
um fator de 10, podendo chegar até 2 ordens de magnitude 
[Stonebraker et al. 2007]! 
 
 
57 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD Universal: Virtudes 
 Alguma aplicações são inerentemente híbridas: 
• OLTP + OLAP (ex.: análise de dados em tempo real) 
• Dados estruturados + texto (ex.: Web 2.0) 
 Solução 1: múltiplos sistemas especializados 
conectados através de um mesmo parser, pre-
processador, ou middleware 
• Múltiplas APIs, diferentes semânticas, heterogeneidade 
de dados, integração ad-hoc em nível de aplicação. 
• Otimização de consultas difícil (se não impossível) 
 Solução 2: SGBD Hibrído 
• Integração uniforme em todos os níveis (API, 
linguagem, modelo de dados, algebra, otimização) 
58 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
SGBD: Extensibilidade 
 Extensibilidade via ADTs (abstract data type) 
• Pacotes de tipos para operações e dados 
sofisticados: texto, imagens, etc 
• Vários nomes: Datablades (Informix), Data 
cartridges (Oracle), Relational Extenders (IBM) 
 Requer modificações significativas no 
compilador de consultas e mecanismo de 
armazenamento 
• parser, regras para lidar com propriedades 
semânticas dos ADTs, etc 
59 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Evolução Arquitetural 
(ou como ensinar novos truques para um elefante velho) 
1. Novas aplicações -> novas demandas 
2. SGBDs especializados 
3. Simulação no topo de SGBDs convencionais 
(relacionais) 
4. Suporte nativo no SGBD convencional (novo tipo de 
dados, índice, e técnica de processamento) 
5. Diferença de performance entre o SBGD especializado 
e convencional diminui a cada nova versão 
6. Pronto! 
 Exemplos: XML, consultas espaciais 
 
60 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Arquiteturas RISC [Chaudhuri e Weikum] 
 Conjunto de componentes básicos de funcionalidade 
especializada e reduzida e interfaces simplificada 
 Componentes mais complexos construídos a partir 
destes componentes básicos 
 Pros/Contras 
+ Previsibilidade e auto-ajuste (automatic tuning) 
- Mais mapeamentos e interfaces -> overhead 
- Requer padronização extensiva: universal “glue” 
- Definição de um conjunto mínimo de funcionalidades não é 
trivial 
- Complexidade pode reaparecer no nível global 
61 
62 
NoSQL (Not only SQL) 
• O termo NoSQL é usado para se refereir a tecnologias de 
armazenamento de dados que abrem mão de consistência em 
prol de escalabilidade e alta disponibilidade 
• O teorema CAP (Consistency, Availability, Partition Tolerance): 
É possível ter apenas duas destas três propriedades em 
sistemas distribuídos [Brewer 04] 
• Modelo de dados tipicamente baseado em pares chave-
payload 
 
 
 
 Relacional: ACID 
• Atomicity 
• Consitency 
• Isolation 
• Durability 
 
 NoSQL: BASE 
• Basically Available 
• Soft-state 
• Eventual consistency 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
NoSQL (Not only SQL) 
 Vários sistemas implementados, diferentes características 
(“One size does not fits all”): Hadoop, Cassandra, 
MongoDB, CouchDB, e muito mais 
 Extensiva adoção (aplicações Web): Google, Facebook, 
eBay, Amazon, Digg, Twitter, e muito mais 
 Pros/Contras 
+ De fato, vários sistemas entregam escalabilidade (petabytes!) e 
alta disponibilidade 
+ Schema-free 
- Muitos sistemas ainda baseados em linguagens procedurais de 
baixo-nível 
- Falta de padronização 
- É realmente necessário abrir mão de consistência? 
 
63 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Evolução Motivada por Hardware 
 Preço 1GB RAM 
• 1970 = $2B, 
• 1985 = $1M, 
• 2000 = $500 
• 2015 = $0.25 
− 1TB < $300 
 
64 
Banco de dados OLTP crescem 
modestamente. A grande maioria 
hoje é menor que 1TB. Este quadro 
não deverá mudar nos próximos anos 
OLTP BDs em memória RAM 
 Fenômeno similar em outros componentes de hardware: 
Moore‘s law 
 Popularização de arquiteturas multiprocessadores shared-
nothing (clusters/grids) como plataforma de hardware 
65 
BDs em RAM e Grids 
• Controle de buffer não 
é necessário 
• Single-thread 
• Exploraçao de 
propriedades de certas 
transações (ex.: 
comutatividade) 
• Hardware redundante 
(réplicas) 
Contagem de instruçoes para vários 
componentes de um típico BD OLTP 
[Harizopoulos et al. SIGMOD 2008] 
Melhoria de performance 
em até 20x! 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Referências Adicionais 
 Härder, T; Reuter, A.: Principles of 
Transaction-Oriented Database Recovery. ACM 
Comput. Surv. 15(4): 287-317 (1983) 
 Härder, T.: DBMS Architecture - Still an Open 
Problem. BTW 2005, pp. 2-28 (2005) 
 Hellerstein, J. M.; Stonebraker, M.; Hamilton, 
J. R.: Architecture of a Database System. 
Foundations and Trends in Databases 1(2): 
141-259 (2007) 
 
66

Outros materiais