Bancos de Dados Móveis
Gustavo Gomes
Matheus Aguiar
Yure Guajajara
BANCO DE DADOS II - 2019.1
UFMA - DEINF
Sumário
1. Introdução
2. Computação Móvel
3. Arquitetura do Sistema
4. Comunicação
5. Aplicações/Implementação
6. Considerações Finais
2
Introdução ao
Banco de
Dados Móvel
3
Introdução ao BD Móvel
Com o aumento da mobilidade no ambiente corporativo, funcionários
passaram a utilizar dispositivos móveis para trabalhar, o que tornou
necessário contar com Banco de Dados mais eficientes e acessíveis o tempo
todo.
Banco de Dados que pudessem ficar disponíveis a todos, mesmo quando
algum dispositivo conectados ficasse offline foi a principal iniciativa para o
desenvolvimento de um novo modelo.
Mais eficaz, mais amplo e mais complexo, são algumas características deste
Banco de Dados diferenciado.
4
Motivos para adoção de um sistema móvel:
● Apenas conectar o BD e os usuários à rede não garante acesso cosntante a
todos os usuários;
● Elementos podem interferir no acesso;
● Necessidade de conexão constante ao BD para atualização.
Introdução ao BD Móvel
5
Computação Móvel
Para uma implementação contínua e estável para todos os usuários, mesmo
que algum deles esteja offline, é utilizado o Sistema de Banco de Dados
Distribuídos.
O Sistema de Banco de Dados Distribuídos garante que não somente o
servidor tenha guardado consigo às informações, mas também os
dispositivos que nele estão conectados.
O Sistema de Banco de Dados Móveis se baseia na aplicação ddo Sistema de
Banco de Dados Distribuídos.
6
● Independência de replicação;
● Gerenciamento de transações
distribuídas;
● Autonomia nas transações locais;
● Confiabilidade;
● Acessado por um equipamento físico
ou móvel
Computação Móvel
7
Arquitetura
de um Banco
de Dados
Móvel
8
Arquitetura do BD Móvel
Conhecendo e adicionando o conceito da Computação Móvel no ambiente do
Banco de Dados, são necessárias novas formas de manipular as
informações;
Assim, algumas linhas de raciocínio diferentes em relação ao manuseio da
comunicação foram criadas;
Essas geraram diferentes arquiteturas, que compartilham alguns conceitos
entre si. Vejamos a seguir.
9
● O Cliente se conecta diretamente com o
servidor;
● Não prevê questões de desconexão ou
mobilidade;
● O Servidor se encarrega do
gerenciamento de dados e o Cliente da
interface e de uma memória local para
armazenamento de consultas e
resultados.
Cliente-Servidor
Ilustração do modelo Cliente-Servidor
10
● O Servidor tem um agente específico
para representação do Cliente;
● Não prevê o trabalho desconectado.
Entre as funções do agente:
● Processar os dados da consulta e
enviar somente o que importa ao
Cliente;
● Compactar os dados antes do envio;
● Criar uma fila de prioridade para envios
de respostas enquanto o Cliente está
desconectado e alterar a ordem, se
necessário.
Cliente-Agente Servidor-Servidor
Ilustração do modelo Cliente-Agente
Servidor-Servidor
11
● Menos utilizada. Nela, o Cliente é que
tem um agente específico;
● Amplia as funções do Cliente, que
geralmente é pobre em
processamento.
Entre as funções do agente:
● Administrar a memória cache
disponível;
● Prefetching - Disponibilizar memória
progressivamente para o Cliente
durante o tráfego. Reduz o tempo de
espera;
Cliente-Agente Cliente-Servidor
Ilustração do modelo Cliente-Agente
Cliente-Servidor
12
● Dois agentes - um de cada lado - trabalhando em conjunto;
● Resolve questões relativas a trabalho desconectado.
Como os agentes podem trabalhar em conjunto aqui?
● O agente do Cliente possui um cache que guarda informações com certo nível
de importância para consulta offline;
● O Cliente faz a requisição, e se ela não estiver disponível offline, é lançada
para uma fila de consultas a serem enviadas para o agente do Servidor
quando online.
● Além disso, os agentes podem manipular envios e recebimentos de consultas
em blocos, o que diminui o consumo de bateria do Cliente.
Cliente-Agente Cliente-Agente Servidor-Servidor
13
Cliente-Agente Cliente-Agente Servidor-Servidor
Ilustração do modelo:
14
Modelos de arquiteturas
Sem agente no Servidor Agente no Servidor
Sem agente no Cliente Cliente-Servidor Cliente-Agente
Servidor-Servidor
Agente no Cliente Cliente-Agente
Cliente-Servidor
Cliente-
Interceptador-
Servidor
15
Comunicação
entre o
Cliente e o
Servidor
16
Comunicação
Aqui está a grande diferença de um Banco de Dados convencional para um
Banco de Dados Móvel;
Uma unidade móvel pode trabalhar em estados distintos, considerando que
passa por situações que variam entre uma conexão totalmente estável e uma
conexão fraca ou inexistente;
Assim, para cobrir as necessidades que cada situação promove, os estados
promovem alguns procedimentos a serem executados pela unidade móvel.
Vejamos.
17
Estados de Operações Desconectadas
Cochilo;
Hoarding (acumulação):
Pré-carregamento de dados(mínimos necessários para se realizar uma
operação) no dispositivo móvel, podendo ser acessados a qualquer momento e
armazenado no cache;
Local Operations (operações locais):
Operações que são executadas apenas sobre os dados carregados pelo
Hoarding, quando o dispositivo está completamente desconectado da rede.
Importante o uso do LOG.
Reconciliation (reconciliação):
Atualização dos dados locais após a reconexão, onde se gera uma
situação de concorrência e a necessidade de eliminar qualquer inconsistência nos
dados.
18
Aplicação do Banco de Dados
19
Banco de dados disponíveis:
➔ SyBase Ultralite
➔ Banco de Dados Oracle Lite 10g
➔ DB2 Everyplace
➔ Microsoft SQL Server CE
➔ SQLite
20
Aplicação do Banco de Dados
❏ Leve, enxuto;
❏ Kernel de processamento anexado ao programa executável;
❏ Multi-plataforma;
❏ Mobilink: qualquer modificação feita no database central é
espelhada no dispositivo móvel, e vice-versa, controle de
transações e integridade referencial com robustez.
SyBase Ultralite:
Aplicação do Banco de Dados
21
Oracle Lite 10g:
Aplicação do Banco de Dados
22
DB2 Everyplace:
❏ Distribuído pela IBM;
❏ Instalação simples;
❏ Fácil integração com sistemas já existentes;
❏ Escalabilidade.
Aplicação do Banco de Dados
23
Microsoft SQL Server CE:
❏ Suportado pelos sistemas operacionais da linha Windows Mobile;
❏ Fácil integração com o SQL Server;
❏ Suporta até 2 gb de armazenamento.
Aplicação do Banco de Dados
24
SQLite:
❏ Leve e fácil utilização.
❏ SQLite é software Livre.
❏ Comunicação simples entre os servidores.
❏ O SQLite é extremamente popular no mundo de aplicativos
móveis.
❏ O SQLite o SGBD mais utilizado em termos de instâncias
criadas, já que cada celular cria localmente uma nova
instância do banco de dados.
Implementação do SQLite
25
SQLite no Android:
Usaremos SQLite e Android Studio para demonstrações do banco de dados
móveis a seguir.
Cada aplicação Android pode criar quantos bancos de dados desejar e eles irão
ficar armazenados no sistema, mas vale lembrar que o banco de dados criado pela
aplicação não pode ser acessado nem visualizado por outra aplicação, apenas
pela que o criou.
Implementação do SQLite e Android Studio
26
Create Class Controller
27
28
Gravando os dados no
Sqlite
Ocorreu um Erro
Create Class DBHelper
29
Create Class Main
30
31
Create Class Main
Criado o Aplicativo Banco de Dados
32
Imagem
01
Imagem
02
33
Inserindo os Dados
Imagem 03 Imagem 04
Apagando do dados No Sqlite
34
Imagem 05 Imagem 06
Se interessou pelo o nosso aplicativo?
35
Acesse o nosso repositório no GitLab
click aqui http://bit.ly/2EQlR8g
Concluindo...
36
Claramente pudemos observar aqui como o Banco de Dados Móveis é
uma importante alternativa quando o objetivo é guardar informações em
no servidor. Podemos concluir que essa ferramenta é bem útil para criar
banco de dados no dispositivos móveis e, assim facilitando o melhor
desempenho de busca de dados no sistema.
37
Fontes
https://www.devmedia.com.br/criando-um-crud-com-android-studio-e-sqlite/32815
38
Muito obrigado
pela compreensão!

Bancos de dados móveis

  • 1.
    Bancos de DadosMóveis Gustavo Gomes Matheus Aguiar Yure Guajajara BANCO DE DADOS II - 2019.1 UFMA - DEINF
  • 2.
    Sumário 1. Introdução 2. ComputaçãoMóvel 3. Arquitetura do Sistema 4. Comunicação 5. Aplicações/Implementação 6. Considerações Finais 2
  • 3.
  • 4.
    Introdução ao BDMóvel Com o aumento da mobilidade no ambiente corporativo, funcionários passaram a utilizar dispositivos móveis para trabalhar, o que tornou necessário contar com Banco de Dados mais eficientes e acessíveis o tempo todo. Banco de Dados que pudessem ficar disponíveis a todos, mesmo quando algum dispositivo conectados ficasse offline foi a principal iniciativa para o desenvolvimento de um novo modelo. Mais eficaz, mais amplo e mais complexo, são algumas características deste Banco de Dados diferenciado. 4
  • 5.
    Motivos para adoçãode um sistema móvel: ● Apenas conectar o BD e os usuários à rede não garante acesso cosntante a todos os usuários; ● Elementos podem interferir no acesso; ● Necessidade de conexão constante ao BD para atualização. Introdução ao BD Móvel 5
  • 6.
    Computação Móvel Para umaimplementação contínua e estável para todos os usuários, mesmo que algum deles esteja offline, é utilizado o Sistema de Banco de Dados Distribuídos. O Sistema de Banco de Dados Distribuídos garante que não somente o servidor tenha guardado consigo às informações, mas também os dispositivos que nele estão conectados. O Sistema de Banco de Dados Móveis se baseia na aplicação ddo Sistema de Banco de Dados Distribuídos. 6
  • 7.
    ● Independência dereplicação; ● Gerenciamento de transações distribuídas; ● Autonomia nas transações locais; ● Confiabilidade; ● Acessado por um equipamento físico ou móvel Computação Móvel 7
  • 8.
  • 9.
    Arquitetura do BDMóvel Conhecendo e adicionando o conceito da Computação Móvel no ambiente do Banco de Dados, são necessárias novas formas de manipular as informações; Assim, algumas linhas de raciocínio diferentes em relação ao manuseio da comunicação foram criadas; Essas geraram diferentes arquiteturas, que compartilham alguns conceitos entre si. Vejamos a seguir. 9
  • 10.
    ● O Clientese conecta diretamente com o servidor; ● Não prevê questões de desconexão ou mobilidade; ● O Servidor se encarrega do gerenciamento de dados e o Cliente da interface e de uma memória local para armazenamento de consultas e resultados. Cliente-Servidor Ilustração do modelo Cliente-Servidor 10
  • 11.
    ● O Servidortem um agente específico para representação do Cliente; ● Não prevê o trabalho desconectado. Entre as funções do agente: ● Processar os dados da consulta e enviar somente o que importa ao Cliente; ● Compactar os dados antes do envio; ● Criar uma fila de prioridade para envios de respostas enquanto o Cliente está desconectado e alterar a ordem, se necessário. Cliente-Agente Servidor-Servidor Ilustração do modelo Cliente-Agente Servidor-Servidor 11
  • 12.
    ● Menos utilizada.Nela, o Cliente é que tem um agente específico; ● Amplia as funções do Cliente, que geralmente é pobre em processamento. Entre as funções do agente: ● Administrar a memória cache disponível; ● Prefetching - Disponibilizar memória progressivamente para o Cliente durante o tráfego. Reduz o tempo de espera; Cliente-Agente Cliente-Servidor Ilustração do modelo Cliente-Agente Cliente-Servidor 12
  • 13.
    ● Dois agentes- um de cada lado - trabalhando em conjunto; ● Resolve questões relativas a trabalho desconectado. Como os agentes podem trabalhar em conjunto aqui? ● O agente do Cliente possui um cache que guarda informações com certo nível de importância para consulta offline; ● O Cliente faz a requisição, e se ela não estiver disponível offline, é lançada para uma fila de consultas a serem enviadas para o agente do Servidor quando online. ● Além disso, os agentes podem manipular envios e recebimentos de consultas em blocos, o que diminui o consumo de bateria do Cliente. Cliente-Agente Cliente-Agente Servidor-Servidor 13
  • 14.
  • 15.
    Modelos de arquiteturas Semagente no Servidor Agente no Servidor Sem agente no Cliente Cliente-Servidor Cliente-Agente Servidor-Servidor Agente no Cliente Cliente-Agente Cliente-Servidor Cliente- Interceptador- Servidor 15
  • 16.
  • 17.
    Comunicação Aqui está agrande diferença de um Banco de Dados convencional para um Banco de Dados Móvel; Uma unidade móvel pode trabalhar em estados distintos, considerando que passa por situações que variam entre uma conexão totalmente estável e uma conexão fraca ou inexistente; Assim, para cobrir as necessidades que cada situação promove, os estados promovem alguns procedimentos a serem executados pela unidade móvel. Vejamos. 17
  • 18.
    Estados de OperaçõesDesconectadas Cochilo; Hoarding (acumulação): Pré-carregamento de dados(mínimos necessários para se realizar uma operação) no dispositivo móvel, podendo ser acessados a qualquer momento e armazenado no cache; Local Operations (operações locais): Operações que são executadas apenas sobre os dados carregados pelo Hoarding, quando o dispositivo está completamente desconectado da rede. Importante o uso do LOG. Reconciliation (reconciliação): Atualização dos dados locais após a reconexão, onde se gera uma situação de concorrência e a necessidade de eliminar qualquer inconsistência nos dados. 18
  • 19.
    Aplicação do Bancode Dados 19 Banco de dados disponíveis: ➔ SyBase Ultralite ➔ Banco de Dados Oracle Lite 10g ➔ DB2 Everyplace ➔ Microsoft SQL Server CE ➔ SQLite
  • 20.
    20 Aplicação do Bancode Dados ❏ Leve, enxuto; ❏ Kernel de processamento anexado ao programa executável; ❏ Multi-plataforma; ❏ Mobilink: qualquer modificação feita no database central é espelhada no dispositivo móvel, e vice-versa, controle de transações e integridade referencial com robustez. SyBase Ultralite:
  • 21.
    Aplicação do Bancode Dados 21 Oracle Lite 10g:
  • 22.
    Aplicação do Bancode Dados 22 DB2 Everyplace: ❏ Distribuído pela IBM; ❏ Instalação simples; ❏ Fácil integração com sistemas já existentes; ❏ Escalabilidade.
  • 23.
    Aplicação do Bancode Dados 23 Microsoft SQL Server CE: ❏ Suportado pelos sistemas operacionais da linha Windows Mobile; ❏ Fácil integração com o SQL Server; ❏ Suporta até 2 gb de armazenamento.
  • 24.
    Aplicação do Bancode Dados 24 SQLite: ❏ Leve e fácil utilização. ❏ SQLite é software Livre. ❏ Comunicação simples entre os servidores. ❏ O SQLite é extremamente popular no mundo de aplicativos móveis. ❏ O SQLite o SGBD mais utilizado em termos de instâncias criadas, já que cada celular cria localmente uma nova instância do banco de dados.
  • 25.
    Implementação do SQLite 25 SQLiteno Android: Usaremos SQLite e Android Studio para demonstrações do banco de dados móveis a seguir. Cada aplicação Android pode criar quantos bancos de dados desejar e eles irão ficar armazenados no sistema, mas vale lembrar que o banco de dados criado pela aplicação não pode ser acessado nem visualizado por outra aplicação, apenas pela que o criou.
  • 26.
    Implementação do SQLitee Android Studio 26
  • 27.
  • 28.
    28 Gravando os dadosno Sqlite Ocorreu um Erro
  • 29.
  • 30.
  • 31.
  • 32.
    Criado o AplicativoBanco de Dados 32 Imagem 01 Imagem 02
  • 33.
  • 34.
    Apagando do dadosNo Sqlite 34 Imagem 05 Imagem 06
  • 35.
    Se interessou peloo nosso aplicativo? 35 Acesse o nosso repositório no GitLab click aqui http://bit.ly/2EQlR8g
  • 36.
    Concluindo... 36 Claramente pudemos observaraqui como o Banco de Dados Móveis é uma importante alternativa quando o objetivo é guardar informações em no servidor. Podemos concluir que essa ferramenta é bem útil para criar banco de dados no dispositivos móveis e, assim facilitando o melhor desempenho de busca de dados no sistema.
  • 37.
  • 38.

Notas do Editor

  • #25 Em que situação o tema é útil: Diversos tipos de aplicação necessitam salvar e recuperar informações: jogos salvam os recordes do usuário, assim como clientes móveis de sistemas de informação e aplicativos utilitários salvam dados localmente para evitar acesso à rede que pode pesar no bolso do usuário.
  • #29 Então por exemplo, quando o usuário finaliza o cadastro, o aplicativo insere os dados no Sqlite, e cria uma versão de dados, e ao mesmo tempo ja tenta se comunicar com o servidor para enviar os dados inseridos. Quando chega no servidor o PHP consulta se a versão é mais nova, e altera os dados e envia a resposta de conclusão pro aplicativo.
  • #30 SQLiteDatabase: Classe que contém os métodos de manipulação dos dados no banco; SQLiteOpenHelper: Classe responsável pela criação do banco e também responsável pelo versionamento do mesmo. Cria o Nome da tabela e os campos das colunas Temos o construtor que passará para a super classe as informações do local e versão do banco.
  • #31 criando o banco de dados