Buscar

banco de dados


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 18 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

PROGRAMAÇÃO 
MOBILE
Camila Andrade Santos
Banco de dados para 
dispositivos móveis
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:
  Diferenciar o uso de bancos de dados locais, remotos e baseados em 
serviços na nuvem.
  Reconhecer os prós e contras das diferentes opções de bancos de 
dados.
  Ilustrar o uso de um banco de dados em um app Android.
Introdução
Atualmente, em quase toda aplicação que se desenvolva, o armazena-
mento de dados se faz necessário. Dependendo da aplicação, um arquivo 
de texto local pode ser o suficiente, como em sistemas embarcados. 
Outras aplicações podem necessitar de banco de dados mais robustos, 
com serviços complementares como aplicações web e mobile.
Neste capítulo, você verá alguns conceitos básicos de banco de dados 
e as principais diferenças entre banco de dados locais, remotos e baseados 
em serviço na nuvem. Ao final, você poderá observar uma utilização 
prática de um banco de dados baseado em serviço na nuvem em uma 
aplicação mobile.
1 Banco de dados
Com a evolução dos sistemas de informação as pessoas começaram a cada 
vez mais armazenar seus dados em ambientes virtuais. Para isso as apli-
cações precisam persistir os dados dos usuários em algum lugar. No meio 
computacional, o lugar em que os dados são armazenados chama-se banco de 
dados. O banco de dados é uma coleção de dados persistentes, usados pelos 
sistemas de aplicação de uma determinada organização comercial (DATE, 
2004). Desta forma, temos que, qualquer empresa precisa necessariamente 
manter muitos dados sobre sua operação, como por exemplo, dados sobre 
produtos, contas, pacientes, sobre alunos, planejamento, entre outros, de 
acordo com o escopo da organização.
Algumas vantagens de se utilizar banco de dados para persistir dados 
estão listadas a seguir.
  Densidade: não há a necessidade de arquivos de papel, possivelmente 
volumosos de acordo com a aplicação.
  Velocidade: o computador pode obter e atualizar dados com maior 
rapidez que o ser humano.
  Atualidade: informações precisas e atualizadas estão disponíveis a 
qualquer momento sob consulta.
  Proteção: os dados podem estar mais protegidos contra perda não in-
tencional e acesso ilegal.
Existem disponíveis alguns modelos de bancos de dados. Atualmente os 
mais utilizados são os modelos relacionais e não relacionais (Figura 1). Bancos 
de dados baseados em modelo relacional são bancos em que basicamente os 
dados dos usuários são persistidos em uma estrutura de dados lógicos, sendo 
que tabelas de dados, exibições e índices são separados de estruturas de arma-
zenamento físico. Este modelo fornece acesso a pontos de dados relacionados 
entre si (DATE, 2004). Como exemplo de bancos de dados relacionais temos 
o PostgreSQL, MySQL, SQLServer, entre outros.
O banco de dados de modelo não relacional, por sua vez, é um banco em 
que não se utiliza esquema de tabelas; em vez disso, utiliza-se um modelo de 
armazenamento otimizado para os requisitos específicos do tipo de dados que 
está sendo armazenado (MICROSOFT, 2018). O modelo de banco de dados 
a ser utilizado dependerá da regra de negócio do sistema. Como exemplo de 
banco de dados não relacional, temos o MongoDB, Redis, Cassandra, Riak, 
entre outros.
Banco de dados para dispositivos móveis2
Figura 1. Banco de dados relacional e não relacional.
Como podemos observar na Figura 1, no modelo relacional temos uma 
estrutura que relaciona informações de uma tabela com a outra, e caso existis-
sem mais registros de livros ou de filmes, ambos seriam registrados em suas 
respectivas tabelas e relacionados na tabela principal. No modelo não relacio-
nal, todos os dados estão em somente uma estrutura, e caso existissem mais 
registros de livros ou de filmes, seriam inseridos na mesma linha. O modelo 
de banco de dados que se utilizará dependerá da regra de negócio do sistema.
Tais bancos de dados, relacionados a espaço físico, podem ser locais, re-
motos ou ainda, baseados em serviços na nuvem. Banco de dados locais pode 
ser entendido por um banco que está no mesmo local físico que a aplicação. 
Normalmente, desenvolvedores desktop, web ou mobile utilizam um banco 
de dados local durante o desenvolvimento de uma aplicação. Neste caso o 
software de banco de dados é instalado na mesma máquina em que o sistema 
está sendo executado. 
Em bancos de dados remotos, o software de banco de dados é instalado 
em uma máquina remota, ou seja, em uma máquina distinta da máquina em 
que se encontra a aplicação. Desta forma é necessário que a aplicação faça 
requisições a outro servidor, e que o servidor possibilite acesso externo.
3Banco de dados para dispositivos móveis
Por fim, banco de dados baseados em serviço são bancos de dados pro-
prietários, normalmente já com a infraestrutura configurada, ou seja, o de-
senvolvedor não precisa se preocupar com esta tarefa; se consome apenas 
o serviço armazenando, alterando e recuperando seus dados. Esse tipo de 
banco de dados geralmente fornece outros serviços que podem ser facilmente 
integrados a uma aplicação mobile.
2 Prós e contras dos tipos de banco de dados
Há no mercado diversas propostas de tipo de banco de dados que necessitamos 
para construir nossas aplicações. Para banco de dados tanto remoto quanto 
local, é necessária a utilização de sistema de gerenciamento de banco de dados 
(SGBD). Há a opção de SGBDs proprietários, como o SQLServer criado pela 
empresa Microsoft, um banco de dados relacional que possui característi-
cas como: segurança, atuando com um sistema de criptografi a integrada; 
integridade, com recursos que impedem que sejam geradas inconsistências 
que inviabilizem a utilização precisa das informações; e concorrência, pois 
possibilita que mais de um usuário acesse a mesma tabela ao mesmo tempo. 
E o sistema de gerenciamento de banco de dados de código livre e gratuito, 
PostgresSQL. Ambos possuem base no structure query language (SQL) sendo 
o diferencial de ambos, e de qualquer outro sistema de gerenciamento de banco 
de dados, a estrutura e a forma de gerenciar os dados.
Amazon Web Service é uma plataforma de serviços na nuvem que fornece 
soluções para armazenamento, redes e computação, em várias camadas, que 
pode ser totalmente gerenciada por meio de uma interface web, ou por meio de 
APIS e linha de comando, dependendo do serviço utilizado. Como banco de 
dados, o serviço da Amazon fornece o serviço Relational Database Service, 
um serviço de banco de dados relacional que facilita o gerenciamento de 
bancos de dados, tendo como principal vantagem a escalabilidade e o auto-
gerenciamento. O Relational Database Service permite a criação de banco 
de dados utilizando os sistemas de gerenciamento de banco de dados Aurora, 
MySQL, MariaDB, PostgreSQL, Oracle e SQL Server.
DynamoDB é um banco de dados não relacional totalmente gerenciado 
que fornece desempenho rápido e previsível com escalabilidade contínua, 
permitindo que você não se preocupe com provisionamento, instalação e 
configuração de hardware, replicação e correção de software e escalabilidade. 
Ele faz com que as cargas administrativas de operação e escalabilidade de 
um banco de dados distribuído sejam transferidas para o serviço em nuvem.
Banco de dados para dispositivos móveis4
Outra solução robusta oferecida pela Amazon Web Service é o AppSync, 
uma implementação de servidor de GraphQL. GraphQL é uma maneira dife-
rente de conectar os aplicativos à parte de trás de seus aplicativos. Com outras 
tecnologias, como REST, por exemplo, há uma necessidade de conhecer os 
chamados end points (MASSÉ, 2011), porém utilizando-se a abordagem do 
GraphQL efetua-se somente uma implementação, não sendo necessário se 
preocupar com mais de uma estrutura como end point. Isso é muito útil quando 
se tem diversos clientes que trabalham com bancos de dados diferentes. Na 
Figura 2, a seguir, podemos observar esta diferença.
Figura 2. REST versus GraphQL.
Ao lado esquerdo temos anecessidade de conhecer cada end point e de-
senvolver um código específico para cada um. Caso vários clientes utilizem 
o sistema em bancos de dados distintos, haverá a necessidade de duplicar o 
código. Já à direita não, pois o GraphQL se encarrega desta tarefa.
Temos ainda o Firebase, uma plataforma de desenvolvimento mobile e web 
da empresa Google que fornece diversos serviços que auxiliam no desenvol-
vimento e no gerenciamento de aplicativos. Na web há um dashboard para 
auxiliar o desenvolvedor durante a implementação de suas aplicações. Na 
Figura 3 é possível observar a tela inicial do Firebase. Esta plataforma oferece 
serviços gratuitos e pagos, de acordo com a utilização. Podemos observar no 
menu à esquerda diversos serviços oferecidos, sendo um deles o banco de dados 
(database). Para criar uma conta, basta possuir uma conta no Google (Gmail).
5Banco de dados para dispositivos móveis
Figura 3. Área de trabalho do Firebase.
O banco de dados oferecido pelo Firebase é o Firestore, um banco de dados 
não relacional, flexível e escalonável, para armazenar e sincronizar dados de 
aplicativos de dispositivos móveis, web e servidores. Como principais recursos 
a Google elenca em seu site oficial, a flexibilidade no armazenamento dos 
dados conforme a necessidade do usuário, consultas expressivas, atualização 
em tempo real, e suporte off-line, ou seja, além de oferecer um banco de dados 
remoto, oferece também banco de dados local.
A Microsoft também oferece um banco de dados baseado em serviço, 
denominado de Azure Cosmos DB. Inicialmente a Microsoft oferece 12 
meses de uso gratuito para testes, e posteriormente assinatura paga. Pos-
sibilita ainda a integração com o repositório de códigos GitHub. Para criar 
uma conta, basta possuir uma conta Microsoft (Outlook). Conforme exposto 
em seu site oficial, este banco é para aplicativos que necessitem de tempos 
de resposta baixos, na ordem de milissegundos, e ser expandidos de forma 
rápida e global.
Banco de dados para dispositivos móveis6
Há também vários outros serviços disponíveis no mercado. Após obser-
var alguns deles, podemos observar que a escolha de onde o banco estará, 
sendo local, remoto ou baseado em serviço, estará relacionada com o que 
sua aplicação necessita. Bancos locais normalmente são utilizados para 
testar o aplicativo desenvolvido, ou ainda em sistemas em que é neces-
sário manter um armazenamento de dados off-line para posteriormente 
ser sincronizado com um banco de dados remoto ou baseado em serviço, 
quando o dispositivo tiver novamente acesso à internet. Aplicações mobile 
normalmente utilizam SQLite. Uma das maiores limitações ao se utilizar 
bancos de dados locais é o armazenamento, pois, utilizando um smart-
phone como exemplo, o armazenamento é reduzido e dificilmente pode 
ser expandido.
Bancos de dados remotos podem possuir maior capacidade de armazena-
mento, porém ainda pode exigir uma certa mão de obra, uma vez que será 
necessário recursos de pessoal para manter o servidor e o banco de dados 
funcionando e disponíveis para os clientes.
Ao se utilizar bancos de dados baseados em serviço, temos mais robustez, 
facilidade e segurança, uma vez que há todo um ambiente preparado para 
atender às necessidades de suas aplicações.
3 Android e banco de dados na prática
Nesta seção exemplifi caremos um aplicativo Android com comunicação com o 
banco de dados no Firebase. Neste capítulo não será abordada a confi guração 
do servidor e da aplicação, somente a construção e ações de inserção, seleção, 
atualização e deleção de dados. Para a construção deste exemplo, foi utilizado 
como base Boyer e Mew (2016). Construiremos um aplicativo como exposto 
na Figura 4.
7Banco de dados para dispositivos móveis
Figura 4. Aplicativo Android com Firebase.
Este aplicativo exemplifica as ações de inserção (símbolo de +), exclusão 
(símbolo de –), atualização (símbolo de recarregar) e seleção, quando o usuário 
selecionar um aluno da lista. A lista apresenta dados já salvos no banco de 
dados no Firebase.
Como estamos salvando alunos, criaremos inicialmente uma classe com 
o nome “Pessoa”, que conterá todos os atributos de uma pessoa. Na Figura 5 
temos o código da classe Pessoa.
Banco de dados para dispositivos móveis8
Figura 5. Classe Pessoa.
Nesta classe temos os atributos Nome, Sobrenome, Email e id de uma 
pessoa. Além disso, temos os getters e setters dos atributos, e ainda sobrescre-
vemos, na linha 54, o método toString, para retornar o nome concatenado 
ao sobrenome de uma pessoa para listarmos na tela inicial. Inseriremos as 
ações desta tela na classe MainActivity, que já é criada por padrão quando 
criamos um projeto. Esta classe estende AppCompatActivity. É necessário 
estender esta classe para capturar as ações do Android, caso contrário seria 
uma classe Java comum. Observe a Figura 6.
9Banco de dados para dispositivos móveis
Figura 6. Classe MainActivity e declaração de variáveis.
Podemos observar na linha 23 extensão da classe AppCompatActivity. 
Nas linhas 25 e 26, declaramos nossas variáveis que receberão os componentes 
criados na tela, além do objeto pessoaSelecionada, que receberá a pessoa 
selecionada na lista. Ao estender a classe AppCompatActivity alguns 
métodos devem ser sobrescritos por padrão, como por exemplo, o onCreate, 
exposto na Figura 7. Tais métodos são anotados por @Override.
Figura 7. Método onCreate da classe MainActivity.
Banco de dados para dispositivos móveis10
O método onCreate carrega consigo as ações que devem ser tomadas 
quando a tela referente a esta classe é renderizada. Em nosso exemplo, 
inicializamos as nossas variáveis nas linhas 38 a 43, lembrando que o 
cast do tipo dos dados deve ser o mesmo inserido no arquivo xml da 
tela, por exemplo, um componente de entrada de texto, e provavelmente 
será um tipo EditText. Chamamos os métodos eventoDataBase 
(Figura 8) e inicializarFirebase (Figura 9), e a ação de carregar 
no formulário os dados do usuário selecionado na lista por meio da ação 
setOnIOtemClickListener.
Figura 8. Método eventoDatabase da classe MainActivity.
O método eventoDatabase efetua a verificação de alguma ação 
feita no banco. Sempre que ocorrer uma ação de inserção, atualização ou 
deleção, este método atualizará a lista de alunos em nosso aplicativo. Ao 
utilizarmos o método addValueEventListenet (linha 60), é criado 
automaticamente os métodos onDataChange para alteração de dado no 
banco e onCancelled, que indica erros ao efetuar alguma operação. O pa-
râmetro dataSnapshot armazena os alunos armazenados no banco, e com 
isso adicionamos à nossa lista “Pessoa” (linha 66). Após, atualizamos nossa 
listagem na tela.
11Banco de dados para dispositivos móveis
Figura 9. Método inicializarFirebase da classe MainActivity.
O método inicializarFirebase é responsável por inicializar nossa cone-
xão com o banco. Então passamos nossa classe atual para o Firebase, capturamos a 
instância do banco e pegamos os dados em databaseReference (Figura 10).
Figura 10. Métodos onOptionsItemSelected e limparCampos da classe 
MainActivity.
Banco de dados para dispositivos móveis12
Os últimos métodos estão relacionados às ações do usuário no menu. Nosso 
menu possui três botões: o de inserir novo aluno, atualizar um aluno, e excluir 
um aluno. Na primeira instrução if, implementamos a ação de criar um aluno. 
Criamos um objeto Pessoa, alteramos seus atributos conforme preenchido no 
formulário, e a ação de salvar no banco está na linha 103. Utilizamos nosso 
databaseReference inicializado no método da Figura 9. Em Child pas-
samos o nome da nossa base de dados no Firebase, nomeada de Pessoa. Em 
child(p.getUid()) indicamos que as pessoas inseridas serão ordenadas 
por id, e então alteramos todos os valores passando o objeto p.
O segundo if efetua a ação atualizar. Observe que agora utilizamos o id 
da pessoa selecionada, e não de uma nova pessoa. Para os outros atributos, 
pegamos o que foi inserido no formulário. E o processo para atualizaros dados 
de uma pessoa é similar à ação de inserir, só que agora o banco entenderá que 
aquele id já existe e fará uma alteração.
O último if efetua a ação de excluir. De forma análoga, pegamos o id 
da pessoa selecionada e. em vez de utilizar o setVealue, utilizamos o 
removeValue. Desta forma temos todas as ações básicas de um CRUD.
Na Figura 11 podemos observar um exemplo de criação de um componente 
na tela. Na Figura 9 em editNome = (EditText)findViewById(R.
id.editNome); o R.id.editNome refere-se ao parâmetro informado 
no android:id, desta forma relacionamos um componente na tela a uma 
variável na classe Java.
A Figura 12 apresenta como os dados são armazenados no Firebase. Note 
que são os mesmos dados listados na tela do aplicativo na Figura 4.
Figura 11. Exemplo de um componente na tela.
13Banco de dados para dispositivos móveis
Figura 12. Resultado no Firebase.
BOYER, R.; MEW, K. M. Android application development cookbook. 2nd ed. Birmingham: 
Packt Publishing, 2016.
DATE, C. J. Introdução a sistemas de bancos de dados. Rio de Janeiro: Elsevier Brasil, 2004. 
MASSÉ, M. REST API design rulebook: designing consistent RESTful web service Interfaces. 
Sebastopol: O'Reilly Media, 2011.
MICROSOFT. Dados não relacionais e NoSQL. 2018. Disponível em: https://docs.micro-
soft.com/pt-br/azure/architecture/data-guide/big-data/non-relational-data. Acesso 
em: 5 maio 2020.
Leitura recomendada
MICROSOFT. Casos de uso comuns do Azure Cosmos DB. 2019. Disponível em: https://docs.
microsoft.com/pt-br/azure/cosmos-db/use-cases. Acesso em: 5 maio 2020.
Banco de dados para dispositivos móveis14
Os links para sites da web fornecidos neste livro foram todos testados, e seu funciona-
mento foi comprovado no momento da publicação do material. No entanto, a rede 
é extremamente dinâmica; suas páginas estão constantemente mudando de local 
e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre 
qualidade, precisão ou integralidade das informações referidas em tais links.
15Banco de dados para dispositivos móveis