320 likes | 480 Views
Tipos de Dados em BD Móveis. Adriano Gomes [ ajog@cin.ufpe.br ] Farley Millano [ 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
E N D
Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ] Farley Millano [ 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
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
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
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
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.”
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
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
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’
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’.
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.
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.
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.
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
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
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
Aplicação - ContactManager • 2 modos de operação: • Standalone
Aplicação - ContactManager • 2 modos de operação: • Sincronizado
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
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.
Aplicação - ContactManager • Arquitetura
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
DB2 Everyplace Sync Server • 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 núcleo Arquitetura da sincronização
DB2 Everyplace Sync Server • Conectividade
DB2 Everyplace Sync Server As mudanças registradas no log são capturadas pelo DB2 DataPropagator e as faz na tabela de dados • Sincronização: Cópia para tabela espelho e resolução de conflitos (inconsistências, tipos de dados...). Registro em DB2 log Usuário atualiza dados Aplicação das mudanças na tabela de dados na tabela fonte Dados colocados numa staging table, para facilitar sincronizações simultâneas Requisição é autenticada e colocada na fila Sincronização automática IBM Sync Engine API ou manual USERID e senha validados, validação do cliente
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