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