Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Persistência de dados em dispositivos 
móveis
APRESENTAÇÃO
A persistência de dados, de forma geral, pode ser conceitualizada como o armazenamento coere
nte e confiável das informações em um sistema de armazenamento de dados. A garantia da segu
rança durante a manipulação e a persistência desses dados também será abordada, pois estes dev
em se manter seguros e disponíveis somente para quem realmente deve ter o acesso.
Nesta Unidade de Aprendizagem, você conhecerá sobre persistência de dados em aplicativos mó
veis. Além disso, verá quais são as principais técnicas e ferramentas utilizadas para persistir os d
ados em aplicação móvel, assim como quais são as formas de armazenamento e os principais co
mandos SQL para manipulação dos dados armazenados em um banco de dados.
Bons estudos.
Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:
Explicar o que é a persistência de dados em dispositivos móveis e qual é a sua necessidad
e.
•
Identificar as técnicas e as ferramentas na persistência de dados.•
Praticar os principais comandos SQL.•
INFOGRÁFICO
Os dados e as informações manipuladas em uma aplicação móvel precisam ser preservadas e nã
o podem ser perdidas quando a aplicação é encerrada. Para que isso não aconteça, existe a persis
tência de dados. Uma aplicação precisa de dados persistentes. Assim, é possível dizer que a pers
istência é um dos conceitos fundamentais no desenvolvimento de aplicações.
Neste Infográfico, você vai ver alguns dos pontos de prós e contras em relação aos tipos de persi
stência de dados. 
CONTEÚDO DO LIVRO
Em aplicativos móveis, a persistência de dados pode ser conceitualizada como a garantia da não 
perda dos dados que estão sendo manipulados quando uma aplicação é encerrada. Essa expressã
o é relacionada diretamente ao banco de dados.
No capítulo Persistência de dados em dispositivos móveis, da obra Dispositivos móveis, base teó
rica desta Unidade de Aprendizagem, você vai ver como funciona a persistência de dados nesses 
ambientes. Além disso, vai aprender alguns comandos principais do SQLite. Por fim, vai execut
ar um passo a passo desde a instalação do SQLite até a sua manipulação, para uma melhor fixaç
ão dos comandos.
Boa leitura.
DESENVOLVIMENTO 
PARA DISPOSITIVOS 
MÓVEIS 
Olimar Teixeira Borges
Persistência de dados 
em dispositivos móveis
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
 � Explicar a persistência de dados em dispositivos móveis e sua 
necessidade.
 � Identificar as técnicas e ferramentas na persistência de dados.
 � Praticar os principais comandos Structured Query Language.
Introdução
Neste capítulo, você estudará o conceito de persistência de dados, como 
funciona sua integração em dispositivos móveis; as técnicas e ferramentas 
mais utilizadas na persistência, como o JavaScript Object Notation (JSON) 
e a linguagem de banco de dados Structured Query Language (SQL), 
bem como os principais comandos SQL utilizados no SQLite, uma das 
ferramentas mais utilizadas para a manipulação dos dados armazenados 
em aplicativos móveis.
Persistência de dados
A persistência de dados é o armazenamento de forma coerente e confiável das 
informações de um sistema, que estão em um meio volátil da memória, como 
a random access memory (RAM), em um dispositivo não volátil, por exemplo, 
o disco rígido. Trata-se da garantia de que as informações enviadas ao banco 
de dados não serão perdidas ou alteradas, nem deixarão de ser armazenadas, 
mantendo-as no meio físico recuperável.
Pode-se utilizar a linguagem Java para exemplificar, geralmente, o armaze-
namento de dados na aplicação desenvolvida nela está associado a um banco de 
dados relacional que usa a linguagem SQL, porém, existem alternativas para 
persistir os dados, como em arquivos eXtensible Markup Language (XML), 
JSON, arquivos texto, etc.
Quando se pensa no cenário de um aplicativo móvel, a persistência de dados 
continua sendo necessária, mantendo-se igual nesses dispositivos e garantindo 
que os dados que estão sendo manipulados no aplicativo não sejam perdidos 
quando a aplicação for encerrada.
Porém, o armazenamento de dados nem sempre seguiu essa forma mais 
complexa de estruturação. Houve uma época em que era feito por meio do 
Record Management System e, como não existiam tabelas, campos, tipos de 
dados, etc., tudo era armazenado como um vetor. Assim, para saber quando 
um campo iniciava ou terminava, era inserido um caractere especial nesse 
array unidimensional de bytes. Por exemplo, para salvar um registro com as 
informações de um aluno: maria;das dores;45;rua frederico da 
silva;porto alegre. Essa string virava um vetor de bytes e era persistida.
Utilizando como base a plataforma do Google, quando se trata de persis-
tência de dados com a Application Programming Interface (API) nativa do 
Android, existem algumas possibilidades boas. Pode-se incluir um par de 
chave-valor, chamado de shared preference, que armazena os dados de forma 
primitiva e privada; o armazenamento interno, que armazena os dados privados 
na memória do dispositivo; e o banco de dados relacional convencional, como 
o SQLite, que armazena os dados em um banco de dados privado. Há ainda 
a conexão de rede, que armazena os dados na Web com seu próprio servidor 
de rede, ou a possibilidade de armazenar os dados em servidores externos (na 
nuvem), guardando-os de forma pública e compartilhada.
Nem sempre o aplicativo móvel se limita apenas ao armazenamento local 
de dados do usuário, da mesma forma que ele pode querer buscar informa-
ções externas, como a previsão do tempo, a cotação do dólar do dia, etc. Tais 
informações estão armazenadas em um servidor Web externo (nuvem), e o 
aplicativo também precisa acessá-las.
Todas essas soluções serão mais bem exploradas na seção de técnicas e 
ferramentas deste capítulo.
Atente-se ao fato de que se o sistema de informação não conseguir manter os dados 
quando for encerrado, ele não será prático, nem usual.
Persistência de dados em dispositivos móveis2
Integração de dados em dispositivos móveis
A integração de dados em dispositivos móveis é vista como uma trama de téc-
nicas e tecnologias necessárias para que haja conectividade entre os diferentes 
aparelhos de rede, smartphones, notebooks e computadores. Assim, um aplicativo 
móvel deve ser capaz de lidar com a troca de dados em ambientes heterogêneos 
e de baixa confiabilidade, de maneira segura, consistente e com desempenho.
Quando se trata de segurança dos dados, de acordo com Janssen e Janssen 
(2013), refere-se às medidas protetivas de privacidade digital, que são utilizadas 
para impedir o acesso não autorizado aos computadores, banco de dados e 
sites. Essa segurança é vista como a proteção dos dados contra sua corrupção 
e pode ser chamada de segurança da informação.
De acordo com Goodrich e Tamassia (2013), a segurança da informação 
se define em três termos: Confidencialidade, Integridade e Disponibilidade, 
que forma o acrônimo CID (ou CIA, em inglês Confidentiality, Integrity and 
Availability), conforme você pode ver na Figura 1.
Figura 1. Conceitos CID ou confidencialidade, integridade e disponibilidade.
Fonte: Goodrich e Tamassia (2013, p. 3).
3Persistência de dados em dispositivos móveis
Basicamente, confidencialidade é a ação de evitar a revelação não autorizada 
de informação, e como os computadores estão em todos os lugares, podem 
executar ações e operações que a comprometem. Quando ferramentas são 
desenvolvidas para proteger essa confidencialidade dos sistemas, elas devem 
incorporar os conceitos de encriptação, controle de acesso, autenticação, 
autorização e segurança física.
Já a integridade é a propriedade responsável por garantir que a informação 
não foi modificada de maneira não autorizada. Além dos conceitos relacio-
nados à confiabilidade dos sistemas, existem outros projetados para apoiar 
a integridade, como as cópias de segurança, as somas de verificaçãoe os 
códigos de correção de dados. Esses conceitos possuem uma característica 
em comum, a redundância, replicando a informação para que seja possível 
corrigir e/ou detectar problemas na sua integridade.
A disponibilidade, por sua vez, é a propriedade que objetiva manter a in-
formação acessível e modificável no momento certo por aqueles que realmente 
estejam autorizados a isso. Da mesma forma que os anteriores, ela também tem 
conceitos mais específicos, como proteções físicas e redundâncias computa-
cionais. Assim, a CID forma um tripé de apoio à segurança da informação, 
sendo todos mutuamente importantes.
 No banco de dados, também é importante você se atentar à consistência 
das suas transações, que podem ser definidas como uma unidade de trabalho 
lógica e atômica que contém uma ou mais diretivas SQL. Os efeitos de todas 
as instruções SQL em uma transação podem ser confirmados (aplicados 
ao banco de dados) ou revertidos (desfeitos do banco de dados) (ORACLE 
CORPORATION, 2019). Já as propriedades básicas de uma transação são 
popularmente conhecidas por Atomicidade, Consistência, Isolamento e Du-
rabilidade, ou pelo acrônimo ACID. No Quadro 1, você pode entender melhor 
o que esse acrônimo significa.
Atomicidade: Uma TRANSAÇÃO É uma unidade de 
processamento realizada 
integralmente ou não.
Consistência: Uma TRANSAÇÃO Leva um banco de 
dados de um estado 
consistente a outro 
estado consistente.
Quadro 1. Os conceitos de ACID: Atomicidade, Consistência, Integridade e Durabilidade
(Continua)
Persistência de dados em dispositivos móveis4
Isolamento: Uma TRANSAÇÃO Deve parecer 
como se estivesse 
sendo executada 
isoladamente.
Durabilidade: As alterações 
aplicadas a um 
banco de dados 
por meio de uma
TRANSAÇÃO Confirmada 
(efetivamente aplicada 
nele) devem persistir 
no banco de dados.
Quadro 1. Os conceitos de ACID: Atomicidade, Consistência, Integridade e Durabilidade
Quando se trata de desempenho em aplicativos móveis, o grande desafio 
está na conexão do acesso móvel às bases de dados remotas. Ao enviar uma 
requisição ao banco de dados, antes da obtenção da resposta, há uma série 
de verificações necessárias para garantir a segurança e a consistência das 
transações, que devem ser realizadas durante seu ciclo de vida. Todos esses 
pontos servem para aumentar o tempo de resposta que cada usuário terá em 
relação às suas ações no aplicativo. De qualquer forma, existem algumas 
técnicas que tendem a diminuir esse tempo, como a compressão de dados, a 
paginação de resultados e o caching.
A integração de dados em dispositivos móveis deve ser muito observada; e 
sua segurança precisa ser um dos princípios básicos em uma aplicação móvel. 
Assim, todas as questões trazidas anteriormente referentes à segurança, à 
consistência e ao desempenho são fundamentais durante o desenvolvimento.
Técnicas e ferramentas
O paradigma de orientação a objetos (OOP, em inglês object-oriented program-
ming) é utilizado para desenvolvimento de aplicações e contém o conceito de 
persistência, que possibilita que um objeto continue existindo após a finalização 
do processo que o criou, armazenando seu estado em disco e viabilizando 
sua posterior recriação.
Pelos fundamentos em suas criações, a OOP e o paradigma relacional de 
banco de dados inviabilizam uma adequação para seu uso concomitantemente. 
No entanto, há uma técnica que ajuda a contornar as diferenças entre as duas 
(Continuação)
5Persistência de dados em dispositivos móveis
abordagens, mundialmente conhecida como mapeamento objeto relacional 
(ORM, em inglês object-relational mapping), que é responsável por separar 
o mundo dos objetos do mundo das relações. Ele serve ainda para traduzir 
objetos de uma aplicação para tabelas de um banco de dados relacional, utili-
zando metadados que descrevem o mapeamento entre esses objetos e o banco.
Na Figura 2, você pode visualizar, de forma mais clara, como funciona a 
relação entre as aplicações OOP, o ORM e a base de dados relacional, sendo 
que o ORM fica no meio dessa interação.
Figura 2. Modelo de alto nível sobre a interação das aplicações e do banco de dados 
com o ORM.
Persistência de dados em dispositivos móveis6
Em relação ao armazenamento das informações em dispositivos móveis na 
plataforma Android, pode-se armazenar os dados de cinco maneiras diferentes, 
conforme Android... (2019). No Quadro 2, você pode ver os conceitos básicos 
de cada uma das formas de armazenamento.
1 Shared preferences:
armazenam os dados primitivos privados em pares de chave-valor.
2 Armazenamento interno:
armazena os dados privados na memória do próprio dispositivo.
3 Armazenamento externo:
armazena os dados públicos em armazenamento 
externo compartilhado.
4 Banco de dados SQLite:
armazena os dados estruturados em um banco de dados privado.
5 Conexão de rede:
armazena os dados na Web com seu próprio servidor de rede.
Quadro 2. Conceitos básicos das 5 maneiras de armazenamento de dados na plataforma 
Android
A dúvida que pode surgir é saber qual das soluções você deve usar no 
aplicativo, considerando que cada solução vai de acordo com suas necessidades 
específicas; a decisão de como os dados precisam ser tratados, de forma privada 
ou pública (disponíveis aos outros usuários e aplicativos); e a quantidade de 
espaço necessário para o armazenamento desses dados.
No armazenamento interno, os arquivos são salvos diretamente no armaze-
namento do dispositivo e, por padrão, privados do aplicativo, não sendo possível 
acessá-los por outros. Já quando o aplicativo for deletado do dispositivo, os 
arquivos também serão.
Em armazenamento no banco de dados SQLite, que é totalmente compa-
tível com a plataforma Android, os arquivos também costumam ser salvos de 
maneira privada no aplicativo. Trata-se de um tipo de banco muito poderoso 
e, ao mesmo tempo, simples de ser manipulado em plataformas móveis, sendo 
a principal forma de persistência para aplicativos Android.
7Persistência de dados em dispositivos móveis
O SQLite possui características muito interessantes, como ser autocontido, 
não precisar de servidor, nem de configuração e ser baseado em transações. Ele 
é autocontido/autônomo, pois requer o mínimo do sistema operacional ou da 
biblioteca externa, sendo integrado ao aplicativo que acessa o banco de dados, 
permitindo que ele leia e escreva diretamente nos arquivos armazenados no 
banco do disco. Por ele não precisar de um servidor, não é necessário fazer 
instalação alguma para usá-lo. Ele ainda se baseia em transações totalmente 
compatíveis com o ACID, garantindo que elas sejam atômicas, consistentes, 
isoladas e duráveis.
Quanto ao armazenamento em nuvem ou servidores externos, geralmente 
para aplicativos mobile, utiliza-se as API construídas por meio do conceito 
de Representational State Transfer (RESTFul), uma forma de construção 
de WebService mais leve do que o conceito Simple Object Access Protocol 
(SOAP). Há várias vantagens ou facilidades em utilizar API, em vez de 
fazer conexões diretas com os bancos de dados, entre elas, a segurança é a 
principal, sobretudo nesse tipo de armazenamento, pois não se recomenda 
acessar diretamente o banco de dados de forma externa. Para isso, tem-se 
as API, as quais fazem a intermediação entre o aplicativo e o servidor de 
banco de dados, sem a necessidade de usar consultas SQL, de modo direto, 
no aplicativo.
O uso de API facilita a não exposição do banco de dados a terceiros e 
possíveis interceptações dos dados, sendo que toda a lógica de negócio fica 
dentro dela, auxiliando na manutenção das informações. Sua outra vantagem 
é que o banco de dados fica totalmente isolado e, se for necessário trocá-lo, 
tudo fica transparente, sem impacto para sua aplicação.
Aprenda como implementar as cinco formas de armazenamento de dados da plata-
forma Android no link a seguir.
https://qrgo.page.link/eRyVX
Persistência de dados em dispositivos móveis8
Principais comandos SQL
Os comandos SQL abordados aqui serão os utilizadosno banco de dados 
SQLite, que é uma das ferramentas mais usadas para armazenamento de 
dados em aplicativos móveis.
Alguns conceitos iniciais
O SQLite possui versões para os principais Windows e Linux, mas, neste caso, 
será abordada sua instalação no Linux. Antes de iniciar essa instalação, é bom 
que você conheça alguns dos principais tipos de dados.
 � INTEGER: são valores inteiros armazenados em 1, 2, 3, 4, 6 ou 8 bytes, 
dependendo da grandeza do valor (1, 2, 3, 4, ...).
 � REAL: são valores com ponto flutuante armazenados em 8 bytes (1.5, 
1.67, …).
 � TEXT: são valores string usando Unicode Transformation Format 
(UTF) -8, UTF-16BE ou UTF-16LE (“Instalação e principais 
conceitos”).
 � NULL/NOTNULL: indica se o campo pode ou não ficar vazio.
 � BLOB: armazena um blob, como o próprio nome indica.
 � Boolean: não existe uma classe booleana, pode-se considerar os inteiros 
0 ( false) e 1 (true).
Não existem tipos de dados específicos para o armazenamento de data e/
ou hora, porém, há funções que tratam TEXT, REAL ou INTEGER como 
data e hora. As cinco principais funções são:
 � date(timestring, modifier, modifier, ...) retorna a data no formato 
YYYY-MM-DD;
 � time(timestring, modifier, modifier, ...) retorna a hora no formato 
HH:MM:SS;
 � datetime(timestring, modifier, modifier, ...) retorna data e hora no for-
mato YYYY-MM-DD HH:MM:SS;
 � julianday(timestring, modifier, modifier, ...) retorna o dia conforme o 
calendário juliano;
 � strftime(format, timestring, modifier, modifier, ...) retorna a data de 
acordo com o formato especificado no primeiro argumento.
9Persistência de dados em dispositivos móveis
No SQLite, ainda existem alguns comandos simples de auxílio sobre as 
informações do banco de dados criado, que são geralmente executados quando 
se utiliza a linha de comando para manipulação desse banco. Todos esses 
comandos iniciam com um ponto (.) antes da palavra, conforme você pode 
ver a seguir:
 � .help — serve para pedir ajuda, como o próprio nome indica;
 � .exitt — sai do ambiente do banco e retorna ao usuário normal no 
terminal;
 � .schema — serve para ver o último comando usado;
 � .header on — serve para visualizar o nome das colunas;
 � .mode column — serve para exibir os dados na forma de coluna;
 � .table — serve para visualizar as tabelas no banco.
O comando “SELECT date('now');” calcula da data corrente. Já o comando 
“SELECT date('now', '+1 days');” calcula a data corrente mais um dia. 
Por fim, o comando “SELECT date('now', 'start of month');” calcula 
o primeiro dia do mês corrente.
Instalação do SQLite3
Para iniciar a instalação, basta abrir um terminal do Linux e executar os 
seguintes comandos:
sudo apt install sqllite3
sudo apt install sqlite3 libsqlite3-dev
sudo add-apt-repository ppa:linuxgndu/sqlitebrowser
sudo apt install sqlitebrowser
Você já realizou a instalação do sqllite3. Agora, para iniciar a mani-
pulação do banco, abra novamente o terminal do Linux e digite ‘sqlite3’ 
(apenas um ‘l’). No console, abrirá uma linha de comando que permitirá 
manipular esse banco, conforme pode ser observado na Figura 3.
Persistência de dados em dispositivos móveis10
Figura 3. Linha de comando inicial após executar o comando ‘sqlite3’.
Após fazer a instalação, usa-se a linha de comando do sqlite3 para 
trabalhar com algumas das principais estruturas utilizadas no SQL. É im-
portante se atentar ao uso do ponto e vírgula (;) ao final de cada comando 
no shell de comando do banco, porque, caso seja inserido um comando sem 
o ponto e vírgula e, em seguida, pressionado o botão enter, o interpretador 
não executará o comando e ficará aguardando por esse ponto — portanto, 
não esqueça de utilizá-lo no final de cada comando.
Comandos principais
Os principais comandos da instalação são:
 � SQLITE3 — cria o banco;
 � CREATE TABLE — cria a tabela;
 � INSERT INTO — insere os registros;
 � SELECT — consulta os registros;
 � ALTER TABLE — altera a tabela;
 � UPDATE — atualiza os registros de uma tabela;
 � DELETE — apaga os registros de uma tabela;
 � DROP TABLE — apaga uma tabela.
Para ajudar no entendimento do uso destas estruturas, será criado um 
exemplo de banco, fazendo algumas manipulações nos registros e passando 
por cada estrutura. Antes de iniciar a manipulação desse banco, você deve 
criá-lo fora do shell do sqlite3.
 � Se você estiver exatamente como a Figura 3, digite na linha de comando 
.exit. 
 � Você voltará para a linha de comando do seu usuário local. 
11Persistência de dados em dispositivos móveis
 � Agora crie seu banco, que, neste caso, se chama BancoExemplo.db. 
O símbolo de $ serve apenas para mostrar que você está executando 
os comandos na linha de comando do seu usuário local, não o coloque 
quando escrever os comandos. Para gerar o banco, use o comando a 
seguir:
$ sqlite3 BancoExemplo.db;
Ao realizar o comando de criação do banco, este será criado, e você redi-
recionado para dentro do shell do sqlite para iniciar sua manipulação.
Depois, crie a primeira tabela, chamada de TabelaExemplo. Ela terá 
um identificador do tipo inteiro, que será sua chave primária (primary key), 
um campo para armazenar um nome do tipo texto e um campo idade do 
tipo inteiro:
sqlite> CREATE TABLE TabelaExemplo(id int primary key, nome 
text, idade int);
Já para verificar as tabelas que você possui em seu banco, utilize o comando 
.table.
sqlite> .table
TabelaExemplo
Após criar a tabela, insira um registro para iniciar a manipulação. Atente-
-se à ordem em que os registros serão inseridos, pois devem sempre seguir a 
ordem da tabela. Neste caso, o primeiro valor é o identificador; o segundo, o 
nome; e o terceiro, a idade.
sqlite> INSERT INTO TabelaExemplo (id, nome, idade) values (1, 
“Maria”, 35);
Contudo, nem todos os valores precisam ser inseridos, sendo obrigatório, 
neste caso, apenas o id, pois ele é a chave primária da tabela e, portanto, NOT 
NULL. Já os demais, por não terem sido especificados NOT NULL na criação 
da tabela, são criados por padrão como NULL, assim, o campo da tabela 
aceita que o valor fique vazio na inserção. Para inserir mais de um registro 
ao mesmo tempo, basta você colocar uma vírgula (,) depois dos parênteses 
e fazer uma nova query:
Persistência de dados em dispositivos móveis12
sqlite> INSERT INTO TabelaExemplo (id, nome, idade) values (1, 
“Maria”, 35), (2, “João”, 45);
Após realizar as inserções, você pode consultar os registros já inseridos:
sqlite> SELECT * from TabelaExemplo;
1|Maria|35
2|João|45
Se você quiser melhorar a exibição dos registros da tabela, ative o cabeçalho 
e a exibição por coluna por meio dos comandos: “.header on” e “.mode 
column”. Feito isso, a exibição ficará da seguinte forma:
sqlite> SELECT * from TabelaExemplo;
id nome idade 
---------- ---------- ----------
1 Maria 35 
2 João 45 
O select possui algumas variações que auxiliam muito. Existe a cláusula 
where que atua como o limitador e serve como uma espécie de filtro do que 
está sendo consultado, você pode verificar dois exemplos da sua utilização a 
seguir, uma para filtrar pelo id e outra pelo nome:
sqlite> SELECT * from TabelaExemplo WHERE id = 2;
id nome idade 
---------- ---------- ----------
2 João 45 
sqlite> SELECT * from TabelaExemplo WHERE nome like “J%”;
id nome idade 
---------- ---------- ----------
2 João 45 
Conforme pode ser observado, utiliza-se a cláusula like logo após o where, 
o que significa que se deseja como saída todos os nomes que iniciam com a letra 
“J”. O símbolo de porcentagem (%) serve para mostrar que o restante depois 
dessa letra pode ser qualquer coisa. Assim, os nomes que começarem com a 
letra “J” serão apresentados no resultado de saída da consulta. Isso serve para 
13Persistência de dados em dispositivos móveis
números desde que eles estejam dentro de um campo de texto. Neste exemplo, 
o único campotexto é o nome, os outros são inteiros, mas, se tivesse números 
dentro do campo nome, você poderia usar o like e buscar pelos números:
sqlite> SELECT * from TabelaExemplo WHERE nome like “5648”;
Existe também a possibilidade de ordenar a saída por ordem alfabética 
e, para isso, utiliza-se a cláusula order by, seguida do campo que deseja 
ordenar. Para a ordem decrescente, basta acrescentar desc ao final:
sqlite> SELECT * from TabelaExemplo order by idade;
id nome idade 
---------- ---------- ----------
1 Maria 35 
2 João 45 
sqlite> SELECT * from TabelaExemplo order by idade desc;
id nome idade 
---------- ---------- ----------
2 João 45 
1 Maria 35 
A próxima estrutura que se pode utilizar é o alter table, responsável 
por alterar as informações da tabela. Com esse comando, altera-se o nome da 
tabela e as colunas, adicionando novas colunas, por exemplo.
sqlite> ALTER TABLE TabelaExemplo rename to TabelaExemploRenomeada;
sqlite> ALTER TABLE TabelaExemploRenomeada add endereco text;
A cláusula rename to é utilizada para alterar o nome da tabela, já a 
cláusula add serve para inserir novas colunas à tabela. Não se esqueça de 
informar o tipo do campo ao adicionar uma coluna, neste exemplo, o campo 
é do tipo texto.
Depois de adicionar um registro na tabela, é possível alterá-lo e, para isso, 
usa-se a estrutura update. Da mesma forma que se apresentou no select, o 
update precisa da cláusula where e não falhará se este não for utilizado, mas 
é extremamente perigoso não o fazer. Se houver uma tabela com milhares de 
registros e você executar um update sem where, sem especificar qual registro 
exatamente quer alterar, pode-se mudar todos os registros da tabela. Portanto, 
Persistência de dados em dispositivos móveis14
tome muito cuidado quando não for utilizar o where juntamente ao update e 
tenha certeza de sua decisão. A seguir, veja um exemplo da utilização do update:
sqlite> UPDATE TabelaExemploRenomeada set nome=”Tania” where id=1;
No exemplo anterior, se você não tivesse utilizado where, todos os registros 
da tabela teriam seus nomes alterados para “Tania”.
Há, ainda, a possibilidade de usar a cláusula in no update, que serve para 
varrer um range específico.
sqlite> UPDATE TabelaExemploRenomeada set idade=20 where id 
in (1,2);
Você também pode excluir um registro da tabela, com a estrutura delete. 
Da mesma forma que o update, sempre se atente ao uso da cláusula where, 
podendo utilizar a cláusula in, se for necessário.
sqlite> DELETE FROM TabelaExemploRenomeada where id = 1;
sqlite> DELETE FROM TabelaExemploRenomeada where id in (1,2);
Para finalizar as estruturas, pode-se utilizar o comando drop table, 
responsável por deletar a tabela inteira do banco de dados. Porém, ele deve 
ser utilizado com atenção, pois você pode perder todos os registros de uma 
tabela importante.
sqlite> DROP TABLE TabelaExemploRenomeada;
Neste capítulo, foram elencados os principais comandos do SQLite, usando 
a linha de comando do Linux. O exemplo de banco de dados apresentado 
serve para você praticar esses comandos, considerando que, com a prática, o 
conhecimento será mais bem absorvido.
Saiba mais sobre o uso das funções de data e hora no SQLite no link a seguir.
https://qrgo.page.link/yfyYb
15Persistência de dados em dispositivos móveis
ANDROID Developers. [S. l.: S. n.], 2019. Disponível em: https://developer.android.com. 
Acesso em: 21 jun. 2019.
GOODRICH, M. T.; TAMASSIA, R. Introdução à segurança de computadores. Porto Alegre: 
Bookman, 2013. 568 p.
JANSSEN, D.; JANSSEN, C. What is Data Security? Techopedia, [S. l.], 2013. Disponível em: 
http://www.techopedia.com/definition/26464/data-security. Acesso em: 21 jun. 2019.
ORACLE CORPORATION. Transaction Management: Introduction to Transactions. 
In: ORACLE CORPORATION. Database Concepts. Redwood Shores: Oracle, 2019. p. 9. 
Disponível em: https://docs.oracle.com/cd/B19306_01/server.102/b14220/transact.
htm#i1666. Acesso em: 21 jun. 2019.
Leituras recomendadas
CROCKFORD, D. Introdução ao JSON. San José: [S. n.], 2018. Disponível em: http://www.
json.org/json-pt.html. Acesso em: 21 jun. 2019.
DEITEL, P.; DEITEL, H.; WALD, A. Aplicativo Address Book. In: DEITEL, P.; DEITEL, H.; WALD, 
A. Android 6 para programadores: uma abordagem baseada em aplicativos. 3. ed. Porto 
Alegre: Bookman, 2016. cap. 9.
SQLite: a C-language library that implements a small, fast, self-contained, high-reliability, 
full-featured, SQL database engine. The SQLite Consortium, [S. l.], 2019. Disponível em: 
https://www.sqlite.org/index.html. Acesso em: 21 jun. 2019.
13 - Criando Banco de dados com SQLite - Ionic 4 & Angular. [S. l.: S. n.], 2018. 1 vídeo (26 
min 39 s). Publicado pelo canal Patrick Miranda. Disponível em: https://www.youtube.
com/watch?v=GHU7qobOhKk. Acesso em: 21 jun. 2019.
Persistência de dados em dispositivos móveis16
DICA DO PROFESSOR
O Ionic Storage é um modelo simples de armazenamento de dados no formato de pares de chav
e-valor, para aplicativos desenvolvidos em Ionic, tendo suporte para o SQLite. A priorização no 
uso do SQLite é pelo fato da ocorrência de alguns problemas dependentes do sistema operaciona
l (SO), no armazenamento de dados do browser em aplicativos nativos. O que acontece é que e
m alguns SOs, quando o dispositivo fica com pouca memória, ele limpa o armazenamento local. 
 
Nesta Dica do Professor, você vai ver o Ionic Storage, um tipo de recurso de persistência de dad
os disponibilizado pelo Ionic. 
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
SAIBA +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professo
r:
SQLite
Neste link, você vai poder visualizar e baixar a última versão do banco SQLite. Veja a seguir.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Introdução ao JSON
Neste site, você vai entender, de maneira mais detalhada, como funciona a estrutura do formato 
JSON. Este é um formato texto e completamente independente de linguagem, pois usa convençõ
https://fast.player.liquidplatform.com/pApiv2/embed/cee29914fad5b594d8f5918df1e801fd/a9c692809d12dadbe777585ab3dcf071
https://www.sqlite.org/index.html
es que são familiares às linguagens C e familiares, incluindo C++, C#, Java, JavaScript, Perl, Py
thon e muitas outras. Confira.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
SQLite: o pequeno notável
Neste link, você vai ver algumas informações históricas sobre o SQLite, assim como a sua impo
rtância no atual mercado de desenvolvimento de aplicativos móveis.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
Criando banco de dados com SQLite
Veja o seguinte vídeo, o qual mostra um exemplo da criação de um modelo de banco de dados S
QLite utilizando a versão 4 do Ionic, juntamente com o Angular.
Aponte a câmera para o código e acesse o link do vídeo ou clique no código para acessar.
http://www.json.org/json-pt.html
https://www.devmedia.com.br/sqlite-o-pequeno-notavel/7249
https://www.youtube.com/embed/GHU7qobOhKk

Mais conteúdos dessa disciplina