PicoDBMS: Scaling down Database
Techniques for the Smartcard
Christophe Bobineau, Luc Bouganin, Philippe
Pucheral, Pratick Valduriez
Ana Karina de Oliveira Rocha
1
Roteiro
• Motivação
• Problemática
• Desafios
• Armazenamento
• Custo de Armazenamento
• Processamento de Consultas
• Comentários Finais
• Referências Bibliográficas
2
Motivação
• Proliferação de dispositivos portáteis.
− Celulares
− PDAs
− Cartões inteligentes (Smart cards)
• Acesso de serviços independente da sua
localização física.
− Aplicações nas áreas de telefonia celular,
bancárias, de transportes, de saúde, de
identificação pessoal e de finanças.
3
Motivação
• Os cartões inteligentes são modernos e
seguros.
• Número cada vez maior de aplicações utilizam
cartões inteligentes.
• Os cartões inteligentes fornecem grande
mobilidade devido ao seu tamanho reduzido.
4
Motivação
• Vantagens dos cartões inteligentes:
− São bastante flexíveis.
− São recarregáveis.
− São multioperacionais.
• Quanto a forma de comunicação os cartões
inteligentes podem ser de dois tipos:
− Cartões com contato
− Cartões sem contato
5
Problemática
• Os Cartões inteligentes possuem
limitações computacionais.
− Possuem uma CPU.
− Memória RAM (4KB – 128 KB).
− Memória ROM – 96 KB.
− Memória EEPROM (128 KB – 1MB).
• Tempo de leitura rápido (60-100 ns)
• Tempo de escrita lento (10 ms/palavra)
6
Problemática
• Os cartões inteligentes possuem as maiores
restrições de recursos computacionais.
• As técnicas de banco de dados tradicionais
não podem ser diretamente aplicadas em
ambientes com recursos computacionais
limitados.
• Como baixar a escala das técnicas tradicionais
de banco de dados?
7
Problemática
• Técnicas tradicionais
− Armazenamento:
• Possuem várias estruturas de índices
• Possuem valores repetidos
− Consumo de memória
8
Problemática
• Técnicas tradicionais
− Processamento de Consultas
• Alto consumo de memória
• Armazenamento de resultados intermediários
• Materialização
• Estruturas temporárias guardadas na memória
− Ex: índices
9
Desafios
• Diminuir o espaço ocupado pelas
estruturas de dados (índices, tuplas,
etc.)
• Diminuir uso da memória RAM
• Diminuir as operações de escrita
• Aproveitar eficiência de operações de
leituras
10
Armazenamento
• Armazenamento Seqüencial (FS)
− Simplicidade
− As tuplas são armazenadas em seqüência;
• Problemas
− 1. Consumo de espaço – valores de atributos
duplicados
− 2. Ineficiente – Ausência de índices -> busca
seqüencial
• Adição de índices resolve o 2 problema ao
mesmo tempo que agrava o 1.
11
Armazenamento
• Armazenamento por domínio (DS)
− Ausência de valores duplicados
− Uso de apontadores em atributos
Valores
v1
v2
v3
Relação R
v4
Relação S
12
Armazenamento
• Armazenamento em anel (RS)
− Redução das estruturas de índices
− Formação de anel: valor -> atributos ->
valor
− Semelhança com armazenamento por
domínio
13
Armazenamento
• Estrutura de índice em anel – Select
Index
Relação R
R.a
Indice em R.a
Valores
v1
v2
Select Index
...
Where R.a=“v1”
v3
v4
14
Armazenamento
• Estrutura de índice em Anel – Join Index
Relação R
R.b
S.a
Relação S
Join Index
...
Where R.b=S.a
15
Custo de Armazenamento
• Se os atributos não precisam ser
indexados a escolha deve ser feita entre
o FS e o DS. Caso contrário,
• A escolha deve ser feita entre por RS e
FS com índices tradicionais.
16
Custo de Armazenamento
• A Figura abaixo compara FS com DS
17
Custo de Armazenamento
• A Figura abaixo compara FS com RS
18
Processamento de Consultas
• Modelos tradicionais consomem muita
memória principal armazenando estrutura de
dados temporários e resultados intermediários.
• Quando a memória principal não é suficiente
eles recorrem a materialização para evitar
overflow de memória.
19
Processamento de Consultas
• Algoritmos tradicionais não podem ser usados
no PicoDBMS:
− 1. Lentidão da escrita na memória.
− 2. Não se pode estimar previamente o tamanho de
uma área específica de RAM a ser utilizada.
− 3. No estado da arte os algoritmos são bastante
sofisticados.
• No PicoDBMS - Código simples, compacto e
seguro.
20
Processamento de Consultas
• Para resolver estes problemas o
PicoDBMS propõe técnicas de consulta
que não utilizam nenhuma área de RAM,
nem escrevem na memória estável.
− 1. Consultas Básicas - Seleção, projeção e
junção
− 2. Consultas Complexas - Agregação,
ordenação e remoção
21
Processamento de Consultas
• No modelo tradicional o processo de
Consultas é feito em 2 passos:
− 1. O “otimizador” gera planos de otimização
de execução de consultas (QEP).
− 2 O QEP é executado para uma consulta
que implementa um modelo de execução e
usa bibliotecas de operadores relacionais.
22
Processamento de Consultas
• O “otimizador” pode usar diferentes
formas de QEP:
− 1. Árvore de profundidade à esquerda.
− 2. Árvore de profundidade à direita.
23
Processamento de Consultas
• Árvore de profundidade à esquerda
− Os operadores são executados seqüencialmente e cada
resultado intermediário é materializado.
24
Processamento de Consultas
• Árvore de profundidade à direita
− Os operadores são executados em pipeline evitando que
resultados intermediários sejam materializados.
25
Processamento de Consultas
• Problema: Eles requerem materialização em
memória para todas as relações da esquerda.
26
Processamento de Consultas
Básicas
• O PicoDBMS propõe usar somente pipeline em
todos os operadores. Ex: árvore de extrema
profundidade à direita.
27
Processamento de Consultas
Complexas
• Problema: Pipeline não é compatível com os
operadores de seleção e remoção de duplicatas, pois
classicamente os seus resultados intermediários são
materializados.
28
Processamento de Consultas
Complexas
• O picoDBMS explora duas propriedades:
•
•
1. Agregação e remoção de duplicatas podem ser
feitos em pipeline se: As tuplas de entrada já
estiverem agrupadas por valores distintos.
2. Operadores pipeline preservam a ordem desde
que eles consumam ou produzam tuplas na sua ordem
de chegada.
29
Processamento de Consultas
Complexas
• Existe um problema na solução proposta pelo
PicoDBMS:
− Para construir uma Árvore de extrema profundidade à direita
o processador de consultas do PicoDBMS viola uma heurística
para a otimização de consultas relacionais.
• PicoDBMS possui um processamento de consultas
dispendioso, manipulando uma maior quantidade de
dados e consumindo muito tempo no processamento
dos dados.
30
Considerações Finais
• Existência do Sql Java Machine - pequeno e
completo SGBD, menor que 8KB que fornece as
linguagens de definição de dados (DDL) e de
manipulação de dados (DML).
31
Referências
•
PicoDBMS: Scaling down Database Techniques for the
Smartcard. Christophe Bobineau, Luc Bouganim, Philippe
Pucheral and Patrick Valduriez.Proceedings of the 26th
International Conference on Very Large Databases, Cairo, Egypt,
2000.
• Pré-Calculo de Junções para Processamento Consultas em
Ambientes com Recursos Computacionais Limitados. Tathianne
Moreira Paulino. Orientador: Dr. Angelo Brayner. Dissertação de
Mestrado – UFC, 2004.
32
Download

Apresentafsdsfdsdfção de treinamento