SQLite
SQLite
SQLite es un sistema de gestión de bases de datos relacional (RDBMS) ligero, embebido y sin servidor, implementado como una biblioteca en C. Fue creado por D. Richard Hipp en el año 2000 y es de dominio público.
A diferencia de otros motores como MySQL o PostgreSQL, SQLite no utiliza arquitectura cliente-servidor, sino que funciona directamente dentro de la aplicación que lo usa.
Características
- Sin servidor (serverless): no requiere instalación ni configuración de un servicio.
- Archivo único: la base de datos completa se almacena en un solo archivo.
- Ligero: tamaño muy reducido.
- Portable: funciona en múltiples sistemas operativos sin cambios.
- ACID: garantiza atomicidad, consistencia, aislamiento y durabilidad.
- Embebido: se integra directamente en la aplicación.
- Transaccional: soporta transacciones completas.
- Multiplataforma: Windows, Linux, macOS, Android, iOS.
Arquitectura
SQLite no sigue el modelo cliente-servidor:
- La aplicación accede directamente al archivo de base de datos.
- No hay procesos en segundo plano.
- Todo se maneja mediante llamadas a la biblioteca SQLite.
Funcionamiento
SQLite ejecuta sentencias SQL estándar sobre un archivo local.
Operaciones principales:
CREATEINSERTSELECTUPDATEDELETE
Ejemplo:
<syntaxhighlight lang="sql"> CREATE TABLE usuarios (
id INTEGER PRIMARY KEY, nombre TEXT, edad INTEGER
);
INSERT INTO usuarios (nombre, edad) VALUES ('Juan', 25);
SELECT * FROM usuarios; </syntaxhighlight>
Tipos de datos
SQLite usa tipado dinámico. Tipos principales:
- NULL
- INTEGER
- REAL
- TEXT
- BLOB
Ventajas
- No requiere instalación
- Muy rápido en local
- Bajo consumo de recursos
- Fácil de transportar
- Ideal para apps pequeñas o embebidas
Desventajas
- Concurrencia limitada
- No escala bien a sistemas grandes
- Sin gestión avanzada de usuarios
- Bloqueo de escritura a nivel de archivo
Casos de uso
- Aplicaciones móviles
- Software de escritorio
- Sistemas embebidos / IoT
- Navegadores
- Prototipos
Comparación
| Característica | SQLite | PostgreSQL / MySQL |
|---|---|---|
| Arquitectura | Embebida | Cliente-servidor |
| Instalación | No | Sí |
| Escalabilidad | Baja | Alta |
| Concurrencia | Limitada | Alta |
Comandos útiles
.open archivo.db.tables.schema.exit
Seguridad
SQLite no tiene autenticación interna. Depende de:
- Permisos del sistema operativo
- Encriptación externa (ej: SQLCipher)
Licencia
Dominio público. Uso libre sin restricciones.