O que é SQLite?

O que é SQLite?
O SQLite é um mecanismo de banco de dados relacional que trabalha com a linguagem SQL, mas com uma diferença enorme em relação a sistemas como MySQL ou PostgreSQL: ele não é um servidor. O SQLite é uma biblioteca escrita em linguagem C que fica embutida dentro do próprio aplicativo e armazena o banco de dados inteiro em um único arquivo. Não há serviço para instalar, porta para configurar nem administrador para vigiar: o programa que usa o SQLite abre esse arquivo e trabalha diretamente com ele, da mesma forma que leria um documento ou um arquivo de configuração. Essa simplicidade explica sua popularidade. O SQLite foi lançado no ano 2000 e desde então se tornou, provavelmente, o mecanismo de banco de dados mais difundido do planeta: estima-se que haja bilhões de cópias em uso, muitas delas invisíveis para o usuário. Sempre que um celular salva uma mensagem, que um navegador lembra seu histórico ou que um programa de computador conserva seus dados, é bem possível que, por trás, um arquivo SQLite esteja trabalhando em silêncio.Uma biblioteca embutida, não um servidor de banco de dados
Para entender o que é o SQLite, vale compará-lo com a arquitetura clássica cliente-servidor. No MySQL ou no PostgreSQL existe um processo servidor que fica ouvindo as requisições, e os aplicativos se conectam a ele pela rede ou por meio de um socket local. Esse servidor precisa ser instalado, configurado, protegido e mantido atualizado. O SQLite elimina toda essa camada: o mecanismo é uma biblioteca ligada ao seu programa que executa o SQL diretamente sobre o arquivo do banco. O aplicativo é, ao mesmo tempo, cliente e servidor. Por isso se diz que o SQLite é autossuficiente (self-contained), sem servidor (serverless) e de configuração zero. Ele não exige administrador, não consome memória nem CPU em segundo plano quando está ocioso e funciona igual no Windows, no Linux, no macOS, no Android ou no iOS. Além disso, o arquivo do banco é portátil entre plataformas: você pode copiá-lo, enviá-lo por e-mail ou fazer backup com um simples comando de cópia.Principais características do SQLite
Apesar do tamanho reduzido, o SQLite é um mecanismo completo. Suas características mais marcantes são:- Transações ACID: as operações são atômicas, consistentes, isoladas e duráveis. Se uma transação for interrompida no meio, o banco nunca fica pela metade.
- SQL padrão: implementa a maior parte da linguagem SQL, incluindo consultas complexas, subconsultas, junções (JOIN), índices, visões, gatilhos (triggers), funções de janela e expressões de tabela comuns (CTE).
- Um único arquivo: toda a informação, incluindo tabelas, índices, visões e registros, mora em um único arquivo .sqlite ou .db.
- Sem configuração: não há servidor para iniciar, usuários de banco para criar nem arquivos de configuração para editar.
- Tipos dinâmicos: cada coluna aceita as classes de armazenamento INTEGER, REAL, TEXT, BLOB e NULL, com afinidade de tipos por coluna, o que oferece muita flexibilidade.
- Confiabilidade comprovada: o projeto inclui uma suíte de testes com milhões de casos e suporta bancos de dados de até 281 terabytes.
- Domínio público: o código do SQLite é de domínio público: pode ser usado, copiado, modificado e distribuído sem pagar licenças.
- Multiplataforma: compila e funciona em praticamente qualquer sistema, do celular ao servidor.
Quando vale a pena usar o SQLite?
O SQLite brilha quando o banco de dados fica na mesma máquina do aplicativo e o número de gravações simultâneas é baixo ou moderado. É uma escolha excelente nesses cenários:- Aplicativos móveis: Android e iOS trazem o SQLite integrado; é o armazenamento nativo recomendado para aplicativos offline.
- Sites pequenos e médios: se um site recebe alguns milhares de visitas por dia, o SQLite dá conta sem esforço e sem administrar um servidor de banco. Aliás, é o mecanismo padrão de muitos projetos pequenos escritos em PHP e Python.
- Aplicativos de desktop: programas de faturamento, estoque, contabilidade e gestão local guardam seus dados em um arquivo SQLite, sem precisar instalar mais nada.
- Protótipos e desenvolvimento: começar com o SQLite é instantâneo; depois dá para migrar para um mecanismo servidor se o produto crescer.
- Dispositivos embarcados e internet das coisas: roteadores, televisores, consoles, drones e equipamentos industriais usam o SQLite pelo tamanho e pelo consumo mínimos.
- Análise e conversão de dados: como é um único arquivo portátil, o SQLite é muito usado para consultar e transformar dados (CSV, JSON) sem montar infraestrutura.
Quando NÃO usar o SQLite
Para ser honesto: o SQLite não é a ferramenta certa para tudo. Vale escolher PostgreSQL, MySQL ou SQL Server quando:- Há muitas gravações simultâneas: o SQLite permite vários leitores ao mesmo tempo, mas somente um escritor por vez. Com um volume alto de inserções e atualizações em paralelo, o bloqueio de escrita vira gargalo.
- Muitos usuários simultâneos pela rede: os mecanismos cliente-servidor são feitos para atender centenas ou milhares de conexões de máquinas diferentes, com controle de acesso por usuário.
- O banco fica grande demais ou exige alta disponibilidade: os servidores de banco oferecem réplicas, balanceamento de carga e backups a quente que o SQLite não fornece nativamente.
- Cliente e servidor estão em máquinas diferentes: o SQLite não conversa pela rede; cada computador teria sua própria cópia do arquivo e os dados ficariam dessincronizados.
SQLite vs MySQL: diferenças principais
Uma das dúvidas mais frequentes é como o SQLite se compara ao MySQL. São mecanismos SQL, mas com filosofias opostas:| Aspecto | SQLite | MySQL |
|---|---|---|
| Arquitetura | Biblioteca embutida, sem servidor | Cliente-servidor com processo próprio |
| Armazenamento | Um único arquivo portátil | Diretório de dados gerenciado pelo servidor |
| Configuração | Zero: funciona na hora | Instalação, configuração e administração |
| Gravação simultânea | Um escritor por vez | Vários escritores ao mesmo tempo |
| Acesso pela rede | Não: uso local | Sim: muitos clientes remotos |
| Usuários e permissões | Não gerencia usuários | Gestão completa de usuários e privilégios |
| Melhor para | Móvel, desktop, sites pequenos e médios | Web com muitos usuários e alta concorrência |
| Licença | Domínio público | GPL e licença comercial |
| Backup | Copiar o arquivo | Ferramentas do servidor (mysqldump, réplicas) |
Como abrir um arquivo .sqlite ou .db
Abrir um banco SQLite é simples porque, no fundo, ele é um arquivo normal. Estes são os caminhos mais comuns:- Pelo terminal (sqlite3): o cliente oficial vem no pacote de ferramentas de linha de comando do site do SQLite. O uso é assim: sqlite3 estoque.db. Dentro dele, o comando .tables lista as tabelas, .schema mostra a estrutura, e .headers on junto com .mode column melhoram a leitura dos resultados.
- Com Python: o módulo sqlite3 já vem incluído no Python, então basta escrever import sqlite3 e conectar ao banco para executar consultas.
- Com um gerenciador gráfico: programas gratuitos e multiplataforma como o DB Browser for SQLite permitem explorar tabelas, executar consultas e exportar dados sem escrever uma linha de código.
- Com outras linguagens: PHP (PDO SQLite), Java, C#, Go, Node.js e Rust têm bibliotecas oficiais ou muito estáveis para o SQLite.
Exemplos reais de uso do SQLite
O SQLite está muito mais perto do que parece. Alguns exemplos de uso real:- Navegadores web: Chrome, Firefox e Safari guardam histórico, favoritos, cookies e dados de extensões em arquivos SQLite.
- Celulares Android: o sistema operacional traz o SQLite como armazenamento nativo: contatos, mensagens e quase todos os aplicativos o usam.
- iOS: no iPhone e no iPad, o SQLite também é o banco de dados embutido padrão dos aplicativos.
- Sistemas locais de estoque e faturamento: programas de gestão para pequenas empresas costumam guardar produtos, estoque e vendas em SQLite, o que poupa o cliente de instalar um servidor de banco de dados.
- Dispositivos embarcados: roteadores, televisores, consoles de videogame e equipamentos médicos o incorporam para armazenar configuração e registros.