SQLite – Uma Altenativa de RDBMS para Sistemas Embarcados

Será demonstrado como utilizar de forma simples uma “query” do SQL dentro do SQLite. Também,  abordaremos configuração, criação e manipulação dados em tabela.

Atualmente, a utilização de base de dados é fundamental na maioria das aplicações embarcadas em dispositivos inteligentes; sendo assim, é natural que existam diferentes alternativas desses recursos disponíveis no mercado. 

Desenvolvido por D. Richard Hipp, e lançado em agosto de 2000, o SQLite é um mecanismo de armazenamento e manipulação de dados “open source” amplamente conhecido dentre os seus pares por ser capaz de criar a estrutura de um “Data Bank” embutido. Mas o que isso significa?

Bem, se você tem vivência em desenvolvimento de programas com sistemas RDBMSRelational Database Management System”, certamente já ouviu falar em SQL, MySQL, Oracle ou outros “Data Banks” (DBs) que são indiscutivelmente eficazes, mas que em certas ocasiões estarão super dimensionados para o propósito desejado. Nessas situações, o SQLite cabe como uma solução útil, leve, de fácil configuração, fácil operação, e que possui muitos recursos distintos em relação a outros bancos de dados relacionais. Veja a seguir alguns pontos positivos:

  • Esse banco de dados se resume a um único arquivo de disco que pode ser armazenado em qualquer diretório, tornando seu compartilhamento tão simples a ponto de necessitar somente de uma mídia para armazenamento ou da transferência direta por e-mail ou mesmo pela nuvem. 
  • Não necessita de administrador para atribuição de instâncias ou gerenciamento de permissões de acesso de usuários; além disso, não existem processos que precisam ser inicializados, interrompidos ou configurados. 
  • É um banco de dados que não depende de tipagem estática, permitindo o armazenamento de qualquer quantidade de dados, em qualquer coluna, independentemente do tipo de dados declarado nesta coluna, obviamente guardadas às devidas ressalvas.

Mas como nem tudo são flores, o SQLite possui algumas limitações quando comparado aos demais “DBs”. A primeira e mais relevante delas é a fragilidade na segurança e proteção quanto ao uso indevido de dados, justamente pela ausência do administrador. A segunda, trata-se da impossibilidade de utilização de alguns comandos de busca e organização de dados baseados na interseção dessas informações.

Apesar disso, creio que podemos desconsiderar os pontos negativos ressaltados acima ao utilizarmos o SQLite em aplicações que requeiram mecanismos de armazenamento e manipulação de dados sob medida. 

Será demonstrado a partir de agora como utilizar de forma simples uma “query” do SQL dentro do SQLite. Também,  abordaremos configuração, criação e manipulação dados em tabela.

Antes de tudo é necessário acessar o site para baixar o arquivo sqlite-tools-win32-x86-3270200.zip que é um pacote de ferramentas de linha de comando contendo três programas para gerenciamento dos arquivos do SQLite, a saber: o sqlite3.exe, o sqldiff.exe, e o sqlite3_analyzer.exe

Após a descompactação do arquivo baixado, basta clicar sobre o executável sqlite3 para abrir a janela de comando e começar a trabalhar. Observe que o padrão sugerido é a utilização de um “DB” transiente na memória, ou seja, seus dados possuirão “data de validade”; contudo, criaremos um novo banco de dados utilizando o comando “.open” acompanhado pelo nome que desejamos atribuir ao banco, e obrigatoriamente pela extensão “.db”.

image 43

Agora, veremos que de maneira extremamente fácil poderemos inserir nossa primeira tabela no “meu_banco_dados.db”. Essa será uma tabela gerada a partir de um modelo com extensão “.csv” previamente existente, mas isso somente deverá ser realizado após configurarmos o SQLite para trabalhar com essa extensão de arquivo; o que pode ser feito através do comando “.mode csv”. Portanto, a sintaxe dessas ações será a seguinte: “.import” + “nome do arquivo .csv” + “nome da tabela”. 

Nota: No caso acima, o arquivo “.csv” já havia sido transferido antecipadamente para a mesma pasta onde descompactamos o SQLite e criamos o banco de dados. Se desejar utilizar como modelo um arquivo que não esteja localizado na mesma pasta, basta digitar seu “path” seguido pelo nome que irá atribuir à tabela. 

image 40

A fim de assegurarmos que houve efetividade na importação da primeira tabela, usaremos o comando “.tables” para exibir todas as planilhas disponíveis dentro do nosso banco de dados. Em seguida, podemos utilizar o comando “.schema” para vermos exibida a estrutura da tabela que acabamos de criar. Observe abaixo que os campos “Nome_IO, Tipo e Status” foram apresentados, e que todos são campos do tipo “TEXT”.

image 41

A partir desse ponto estamos prontos para executar operações no banco de dados. A priori solicitaremos a exibição de apenas quatro dos seis registros já existentes na nossa tabela através do comando SELECT * FROM “nome da tabela” LIMIT “quantidade de registros”. Vale ressaltar que tais registros já existem por terem sido inseridos no ato da edição do arquivo “PLC_tags.csv” que deu origem a “Primeira_Tabela”. Veja a sintaxe aplicada a seguir:

image 42

Como pôde ser verificado na imagem acima, foram exibidos os primeiros quatro registros – que nesse caso hipotético fazem parte de uma lista de entradas digitais de um “PLC” (“Programable Lógic Controler”). Repare que todos foram exibidos juntamente com as informações de tipo de dados e seus respectivos estados de atuação (On/Off); desse modo, tivemos uma noção do quão simples é a configuração e a manipulação de informações no SQLite.

Conclusão

Esta foi uma breve demonstração do quanto o SQLite incrementa o cenário de excelentes ferramentas que são capazes de proporcionar grandes resultados quando aplicadas em sistemas embarcados, ciência de dados, aplicativos móveis e outros ecossistemas que demandam recursos leves, práticos e eficientes. Com toda certeza, há muito mais a se explorar sobre esse assunto; logo, outros artigos deverão ser publicados em seguida.

Graduado em Engenharia Elétrica com ênfase em eletrônica e Pós-Graduado em Desenvolvimento de Sistemas Embarcados, possui experiência em rotinas de gerenciamento de atividades operacionais, vivência em nacionalização e atualização tecnológica de máquinas e equipamentos automáticos, bem como automação de processos, desenvolvimento de sistemas embarcados e dispositivo IoT para aplicação nos setores de mineração, indústria, saúde e outros.

Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Markos
Markos
04/10/2021 15:29

Um tutorial em Português para contribuir com a divulgação e uso da SQLite:

http://www.c2o.pro.br/hackaguas/apq.html

Marcelo Campos
Marcelo Campos
04/10/2021 12:19

Muito bom seu artigo Fábio, o SQLite tem sido pra mim uma ótima opção já há alguns anos, pra aplicações onde o banco de dados não tem a necessidade ou não pode ter um server, ou seja, totalmente local.

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H