32
Tipos de Dados em BD Móveis Adriano Gomes [ [email protected] ] Farley Millano [ [email protected] ]

Tipos de Dados em BD Móveis Adriano Gomes [ [email protected] ][email protected] Farley Millano [ [email protected] ][email protected]

Embed Size (px)

Citation preview

Page 1: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Tipos de Dados em BD MóveisAdriano Gomes [ [email protected] ]Farley Millano [ [email protected] ]

Page 2: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Motivação• Convergência digital

– Miniaturização / unificação de dispositivos

– Poder de processamento– Poder de armazenamento

• Diversidade nos meios de acesso• Plataformas especiais

– Adaptação de tecnologias “maiores”• Fusão de comportamentos

– Cliente\servidor– Aumento da importância/participação

dos envolvidos

Page 3: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Motivação

Page 4: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Agenda• Introdução• Conceitos e Definições• Plataformas

– Oracle Lite– DB2 Everywhere– MS SQL Server CE– Comparação

• Prós• Contras

• Aplicação– DB2 Everyplace Sync Server

• Conclusão

Page 5: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Introdução• Transição de um ambiente

estático para um móvel e heterogêneo– Um requisita outro responde– Requisita e responde

• Adaptação de comportamentos via necessidades específicas– Distribuição (gerenciamento,

replicação...)– Integração (Schemas, dados não

estruturados, ontologias...)– Mobilidade (garantias de qualidade,

restrições de tipos, conversões...)• Distribuição de processamento de

transações

Page 6: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Introdução• Ubiqüidade da forma de

acesso– Qualidade/ disponibilidade das

redes (?)• Aumento da complexidade

das aplicações– Necessidades das companhias

= $$$• Interoperabilidade

– Transparência– Conversão simplificada de

tipos– Obediências à restrições

Page 7: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Conceitos e definições

Page 8: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• A Oracle possui uma extensa

gama de plataformas– Enterprise Edition,Standard Edition,

Standard Edition One and Personal Edition

– Varia de uma versão completa/empresarial até uma personalizada

• Oracle Lite é mais dessas edições– Não é auto-suficiente– Feature para Oracle Database

Enterprise Edition ou Oracle Database Standard Edition

– “... is designed to make your existing Oracle Database mobile.”

Page 9: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• Composto de 2 componentes:

– Client que armazena os dados do lado do dispositivo móvel

– Server (Mobile Server) que gerencia as sincronizações e distribuição das aplicações

• Características:– Tamanho da base: 4GB– Plataforma do cliente:Palm, Pocket

PC,Win32 e Linux.– Requisitos de HW:1 MB RAM (16MB

para memória compartilhada) e 5 MB Disco

– Máximo de conexões: 32

Page 10: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• Características:

– Segurança (papéis e previlégios): DBA,ADMIN, RESOURCE,SELECT, INSERT,UPDATE, DELETE

– Suporte a Java: Stored Procedures e Triggers

Page 11: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• Valores literais

– Texto: Cercados por aspas simples. Ex: ‘Casa’

• CHAR, VARCHAR e VARCHAR2– Inteiro: Seqüência de números, com sinal

+ -. Ex:123 , -99• INTEGER ou CHAR (caracter simples)

– Número: reais com parte decimal, sequência de números com um . Decimal. Ex: 123.4

• NUMBER, DECIMAL ou NUMERIC.– Data e tempo: são representados como

texto. Possuindo um dos seguintes formatos:

• ’yyyy-mm-dd’ (data)• ’hh:mm:ss’ (tempo)• ’yyyy-mm-dd hh:mm:ss’ (data e tempo)• Ex: ‘2007-09-09 12:00:10’

Page 12: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• Tipos de dados suportados:

– BINARY: Permite armazenar um dado binário de até 4,096 bytes.

– BLOB: Objeto binário grande. Deve especificar precisão (o número de bits ou valores decimais que podem ser armazenados). O máximo é 64KB.

– CHAR: Informação de caracter de tamanho fixo. Tamanho máximo é 10KB. Valor default e mínimo é 1 byte.

– DATE: Data válida entre: 1 de Janeiro de 4712 AC até 31 de Dezembro de 4712 DC. Formato é: ’yyyy-mm-dd’.

Page 13: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite– DECIMAL: Um número que pode ser

medido em termos de precisão (valor decimal) ou escala (valor fracionário).

• Pode-se medir precisão usando DECIMAL (p)

• Pode-se medir escala usando DECIMAL (p, s)

• Obs: a escala não pode ser maior que a precisão

– DOUBLE: um número com sinal, aproximado, com mantissa decimal de precisão 15

• Seu valor absoluto é zero ou entre 10^-308 e 10^308.

– FLOAT: Número de ponto flutuante– INTEGER e INT: um valor inteiro do qual

a precisão é definida pelo SO. Varia entre -214783647 to 214783647.

Page 14: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• NUMBER e NUMERIC: Um número que pode ser

medido em termos de precisão (valor decimal) ou escala (valor fracionário)

– Pode-se medir precisão usando NUMERIC (p). – Pode-se medir escala usando NUMERIC (p, s). – Valor máximo para precisão é 38. – Obs: A escala não pode ser maior que a precisão

• REAL: permite requisitar um número de ponto flutuante de precisão simples sem opções.

– A precisão é escolhida pela implementação e é normalmente o tipo de dado de precisão simples do HW.

• SMALLINT: Um inteiro pequeno em que a precisão é definida pela implementação.

– Varia entre -32768232767 a 32768232767.

Page 15: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – Oracle Lite• TIME: Armazena um valor para o tempo em

termos de horas, minutos e segundos– Horas são representadas por 2 dígitos entre

00 e 23.– Minutos e segundos são representados por 2

dígitos entre 00 e 59 – Formato é: ’hh:mm:ss’.

• TIMESTAMP: Armazena data e hora.– Formato é: ’yyyy-mm-dd hh:mm:ss’.

• VARCHAR: Seqüência de caracteres de tamanho variável, sendo o máximo 10KB.– Deve-se especificar o tamanho. – O VARCHAR com precisão é definida como

uma sequência de tamanho variável• VARCHAR2: Seqüência de caracteres de

tamanho variável, sendo o máximo 10KB.

Page 16: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas – DB2 Everywhere

Page 17: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Plataformas - MS SQL Server CE

Page 18: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Comparação

Page 19: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - SyncML• Protocolo de sincronização• Além de J2ME, dispositivos móveis

(PDAs, celulares e SmartPhones) possuem outras aplicações nativas– Agenda, calendário, lista de contatos

(gerenciadores de informação pessoal, aplicações PIM)

– Problemas de sincronização protocolos proprietários

• Diversidade e conflitos de driver• Ex: Pocket PC com Linux ou Mac

• SyncML vem com a proposta de unificação– Modelo de dados estruturados em XML– A sintaxe define tipos de dados PIM,

como um vCard

Page 20: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - SyncML• Usuários de SyncML possuem

suporte para acesso a dados– IBM WebSphere Everyplace Access

provê acesso a Lotus Notes e servidores Microsoft Exchange

• Importantes base da dados como IBM DB2 e Oracle9i Database possuem também suporte built-in para SyncML

• Limitação SyncML:– Ideal para aplicações do tipo PIM

(contatos, agenda, datas..), não possui bom suporte para dados relacionais

– Trabalha com um conjunto restrito de tipos de dados

Page 21: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager • Aplicação que permite

sincronização de uma agenda “paralela” com uma base de dados remota

• Provê acesso, busca e sincronização de tipos de dados como: nome, endereço, e número de telefones com foto

Page 22: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager• 2 modos de operação:

– Standalone

Page 23: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager• 2 modos de operação:

– Sincronizado

Page 24: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager• Código da aplicação

– http://www.javaworld.com/javaworld/jw-06-2003/jw-0606-wireless.html?page=4

– A classe DBManager permite a aplicação sincronizar a base do dispositivo com uma backend do servidor usando a engine proprietária do PointBase, UniSync

Page 25: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager• Passo a passo da sincronização:

– Criar tabela correspondentes em ambas as partes

– Criar um hub no servidor que vai servir para especificar backend tables (ou partial tables) para sincronização

– Usar hubs para criar spokes• Spokes: representações do dispositivo no

servidor• Identificados por ID, que servem para os

clients se conectarem aos dados (tabelas) desejados.

– Iniciar o servidor de sincronização (com.pointbase.me.sync.Server main())

• O servidor escuta pela porta 8124. – Iniciar sincronização usando o ID do

Spoke e os stubs dele residentes no dispositivo.

Page 26: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - ContactManager• Arquitetura

Page 27: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Aplicação - DB2 Everyplace Sync Server

• Sincroniza dados da base de dados da empresa com o DB2 Everyplace do Palm

• Arquitetura:– IBM Sync client;   – DB2 Everyplace Sync Server;   – Enterprise data sources.

• DB2 Everyplace Sync Server está disponível para AIX – Linux e Solaris em beta testes

Page 28: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

DB2 Everyplace Sync Server

Arquitetura da sincronização

núcleo

• IBM Sync client está disponível para Palm OS – Windows CE/Pocket PC, Psion EPOC,

Embedded Linux e QNX Neutrino estão em fase de teste Adaptadores para tipos de dados

Page 29: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

DB2 Everyplace Sync Server• Conectividade

Page 30: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

DB2 Everyplace Sync Server• Sincronização:

Sincronização automática IBM

Sync Engine API ou manual

Usuário atualiza dados

Requisição é autenticada e colocada na

filaUSERID e

senha validados,

validação do cliente

Dados colocados numa staging

table, para facilitar sincronizações

simultâneas

Cópia para tabela espelho e resolução

de conflitos (inconsistências, tipos de dados...). Registro

em DB2 log

As mudanças registradas no log são capturadas pelo DB2 DataPropagator e as

faz na tabela de dados

Aplicação das mudanças na tabela de dados na tabela

fonte

Page 31: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Conclusão

Page 32: Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [ fmmf@cin.ufpe.br ]fmmf@cin.ufpe.br

Referências• [1] Palm Top e banco de dados

http://www.pr.gov.br/batebyte/edicoes/2002/bb118/estagiario.htm

• [2] Mobile Database Review: Oracle 9i Lite• http://www.samspublishing.com/articles/article.asp

?p=25484&seqNum=3&rl=1 • [3] Oracle9i Lite Database Release 1 (9.0.1)

User, Administrator, and Developer Guides Documentation http://www.oracle.com/technology/documentation/oracle9i_arch_901.html

• [6] Oracle9i Lite - Developers Guide for Palm• [7] RAINONE, Flávia. Bancos de Dados Móveis• [8] BRAYNER, Angelo; PITOMBEIRA, Dorotéa,

BRITO,Ricardo. Uma Arquitetura Eficiente para Armazenamento, Compressão e Acesso a Dados em Dispositivos Móveis com Recursos Computacionais Limitados

• [9] Oracle Database Lite 10g: What’s the Difference with other Oracle Database Editions?

• [10] CORTES, Sérgio. Banco de dados para ambientes de computação móvel

• [11] COSTA, Sérgio; CÂMARA, Gilberto. TerraHS: Programação Funcional e Modelo de Dados Espaço-Temporal