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

Post on 07-Apr-2016

227 views 1 download

Transcript of Tipos de Dados em BD Móveis Adriano Gomes [ ajog@cin.ufpe.br ]ajog@cin.ufpe.br Farley Millano [...

Tipos de Dados em BD MóveisAdriano 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

Motivação

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

Conceitos e definiçõ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.

Plataformas – DB2 Everywhere

Plataformas - MS SQL Server CE

Comparação

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

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

DB2 Everyplace Sync Server• Conectividade

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

Conclusão

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