FERRAMENTA AUXILIAR PARA PROCESSOS DE DESENVOLVIMENTO DE UM FIREBASE REALTIME DATABASE

Dênis Ivan Lenz, Kurt Werner Molz

Resumo


O presente trabalho tem por objetivo destacar problemas existentes durante os processos de desenvolvimento de uma aplicação com o banco de dados Firebase Realtime Database da Google e também elaborar uma ferramenta que possa servir de ajuda ao desenvolvimento nesta tecnologia. A comunidade, dos criadores até os mais novos usuários, e o próprio Firebase de inúmeras maneiras se pronunciam perante as dificuldades que são encontradas ao realizar a projeção, a manutenção e documentação de um Realtime Database. Com a relevância que é dada a este fato, no trabalho é elaborada uma forma de proporcionar um recurso que seja capaz de auxiliar o desenvolvedor nesses processos.Uma das abordagens de design de banco de dados que mais vem ganhando visibilidade em torno dos desenvolvedores, que buscam soluções diferentes, é o NoSQL (Not only SQL) que apresenta melhor escalabilidade e desempenho superior em seu armazenamento e consulta de seus dados. Com esse fato e o aumento da quantidade de aparições desta tecnologia em empresas famosas como Google, Twitter, LinkedIn e Netflix fez com que os olhos do mundo começassem a se voltar aos poucos para seus recursos. Foi ao observar essa tendência que em 2014 a Google comprou o Firebase, uma plataforma de serviços para desenvolvimento, que foi criada com o intuito de ajudar os desenvolvedores de software a construírem aplicações NoSQL com o processamento de dados em tempo real. De uma forma mais simplificada, um banco de dados em tempo real pode ser visto como um banco de dados tradicional que é capaz de trabalhar com um workload (a análise da capacidade do número de pesquisas que podem ser realizadas em um determinado período de tempo) que possui mudanças constantes.O Realtime Database, banco de dados principal da plataforma Firebase, é um banco de dados em tempo real e NoSQL baseado em documentos, especificamente no JSON (JavaScript Object Notation) com a presença de key-value pairs (pares de chave-valor). Com essas informações, são comuns serem criados certos julgamentos a respeito dessa abordagem de bancos: com o NoSQL espera-se a diminuição da necessidade de construção de caras e complexas plataformas para suportar as aplicações.Existem diversos requisitos ao se realizar a modelagem da estrutura de dados de um banco Realtime Database, alguns destes são relatados na documentação geral do serviço disponibilizada pelo próprio Firebase. Porém há uma intensa interação da comunidade sobre técnicas e boas práticas de projeto para as estruturas dos bancos. As principais seriam: Evitar o aninhamento de dados, que leva ao particionamento da estrutura; Usar índices na estrutura para definir relações complexas; O duplicar de dados para melhorar o desempenho de leituras do banco; Criar uma estrutura que apresente escalabilidade para o download dos dados.Todo o entorno desses requisitos pode ser resumido em um processo chamado de desnormalização, que faz com que o desenvolvimento desse banco de dados seja um tanto quanto difícil de organizar e manter sob uma forma de prática manutenção.Nesse contexto, uma ferramenta que auxilie no projeto e desenvolvimento específicos de um Realtime Database, que permita a modelagem, a análise, a documentação e uma organização ágil, vem a ter valor fundamental para a comunidade de desenvolvedores.

Apontamentos

  • Não há apontamentos.