320 likes | 408 Views
PicoDBMS: Scaling down Database Techniques for the Smartcard Christophe Bobineau, Luc Bouganin, Philippe Pucheral, Pratick Valduriez. Ana Karina de Oliveira Rocha. Roteiro. Motivação Problemática Desafios Armazenamento Custo de Armazenamento Processamento de Consultas
E N D
PicoDBMS: Scaling down Database Techniques for the SmartcardChristophe Bobineau, Luc Bouganin, Philippe Pucheral, Pratick Valduriez Ana Karina de Oliveira Rocha
Roteiro • Motivação • Problemática • Desafios • Armazenamento • Custo de Armazenamento • Processamento de Consultas • Comentários Finais • Referências Bibliográficas
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.
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.
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
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)
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?
Problemática • Técnicas tradicionais • Armazenamento: • Possuem várias estruturas de índices • Possuem valores repetidos • Consumo de memória
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
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
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.
Armazenamento • Armazenamento por domínio (DS) • Ausência de valores duplicados • Uso de apontadores em atributos Valores Relação S Relação R
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
Armazenamento • Estrutura de índice em anel – Select Index R.a Relação R Indice em R.a Valores Select Index ... Where R.a=“v1”
Armazenamento • Estrutura de índice em Anel – Join Index R.b Relação R S.a Relação S Join Index ... Where R.b=S.a
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.
Custo de Armazenamento • A Figura abaixo compara FS com DS
Custo de Armazenamento • A Figura abaixo compara FS com RS
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.
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.
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
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.
Processamento de Consultas • O “otimizador” pode usar diferentes formas de QEP: • 1. Árvore de profundidade à esquerda. • 2. Árvore de profundidade à direita.
Processamento de Consultas • Árvore de profundidade à esquerda • Os operadores são executados seqüencialmente e cada resultado intermediário é materializado.
Processamento de Consultas • Árvore de profundidade à direita • Os operadores são executados em pipeline evitando que resultados intermediários sejam materializados.
Processamento de Consultas • Problema: Eles requerem materialização em memória para todas as relações da esquerda.
Processamento de Consultas Básicas • O PicoDBMS propõe usar somente pipeline em todos os operadores. Ex: árvore de extrema profundidade à direita.
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.
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.
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.
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).
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.