~/VibeHandbook
PDF gratis

Bases de datos

sqlite.org

SQLite

Qué es

Piensa en un único archivo de documento que abres y editas directamente, sin un programa aparte ejecutándose en segundo plano para gestionarlo. SQLite es así para una : es una base de datos relacional autocontenida y sin servidor que guarda toda la base de datos en un solo archivo. No hay un proceso separado que ejecutar o administrar. Tu aplicación enlaza la biblioteca directamente y lee y escribe el archivo. Es la base de datos más utilizada del mundo, integrada en teléfonos, navegadores e innumerables aplicaciones.

Fortalezas

  • Configuración cero y ningún servidor que operar.
  • Toda la base de datos es un único archivo portátil, fácil de copiar o respaldar.
  • Rápida para lecturas locales y cargas de escritura moderadas.
  • Soporte completo de (Structured Query Language, lenguaje de consulta estructurado) con transacciones y claves foráneas.
  • Excelente para pruebas, prototipos, entornos de ejecución en el borde () y uso embebido.

Compensaciones

  • Escrituras concurrentes limitadas. Como un solo bolígrafo compartido por un grupo, solo una persona puede escribir a la vez, aunque otras pueden seguir leyendo (un escritor a la vez; WAL —write-ahead logging, registro de escritura anticipada, un modo que permite que las lecturas y una escritura ocurran a la vez— ayuda).
  • No está diseñada para muchos clientes en red ni para un alto rendimiento de escritura.
  • Menos tipos avanzados y sin sistema nativo de usuarios/permisos.
  • Escalar más allá de un solo host requiere otro almacén de datos o una capa como Turso/LiteFS.

Cuándo usarla

Usa SQLite para aplicaciones locales, herramientas de (Command-Line Interface, interfaz de línea de comandos), software de escritorio y móvil, suites de pruebas y sitios pequeños a medianos donde predominan las lecturas. También es cada vez más viable en el borde (edge) mediante réplicas alojadas.

Encaje con vibe coding

Al dirigir a la IA, pídele que active configuraciones seguras por defecto primero: activar PRAGMA foreign_keys = ON y el journaling WAL, ya que SQLite deja las claves foráneas desactivadas por defecto. Haz que use sentencias parametrizadas y mantenga las migraciones de esquema en archivos .sql versionados. Un consejo útil: dile a la IA que las escrituras se serializan, así que debería agrupar las inserciones dentro de una sola transacción y evitar bloqueos de escritura de larga duración. Como la base de datos es solo un archivo, pídele a la IA que incluya un paso simple de respaldo (copiar el archivo o usar el comando .backup) en tu herramental.

PRAGMA journal_mode = WAL;
PRAGMA foreign_keys = ON;

CREATE TABLE notes (
  id         INTEGER PRIMARY KEY AUTOINCREMENT,
  title      TEXT NOT NULL,
  body       TEXT,
  created_at TEXT NOT NULL DEFAULT (datetime('now'))
);

-- Batch many inserts in one transaction for speed
BEGIN;
INSERT INTO notes (title, body) VALUES (?, ?);
INSERT INTO notes (title, body) VALUES (?, ?);
COMMIT;