Volver a recursos del Bloque 5

CÁPSULA DE BASE

SQL y Postgres

La base de datos relacional que guarda documentos, chunks y evidencia de un RAG.

Objetivo técnico

Al terminar podrás crear dos tablas relacionadas, insertar un documento y recuperar sus chunks. No aprenderás pgvector todavía: primero necesitas entender qué datos representa cada fila.

Antes de empezar

Necesitas un proyecto Supabase con SQL Editor o un Postgres local con psql. Usa una base de práctica. Si compartes pantalla, revisa que no aparezca la cadena de conexión.

Paso a paso

  1. Crea la tabla de documentos y la de fragmentos:
create table documents (
  id text primary key,
  source text not null
);

create table chunks (
  id bigserial primary key,
  document_id text not null references documents(id),
  position integer not null,
  content text not null
);
  1. Inserta un documento y dos chunks:
insert into documents (id, source) values ('manual-1', 'manual.md');
insert into chunks (document_id, position, content) values
  ('manual-1', 0, 'Las devoluciones se aceptan durante 30 días.'),
  ('manual-1', 1, 'Se requiere comprobante de compra.');
  1. Recupera los fragmentos en orden:
select d.source, c.position, c.content
from chunks c join documents d on d.id = c.document_id
where c.document_id = 'manual-1'
order by c.position;

Verificación

La consulta debe devolver dos filas con la misma fuente y posiciones 0 y 1. Intenta insertar un chunk con document_id = 'no-existe': la foreign key debe rechazarlo.

Errores frecuentes

  • No declarar relación y terminar con chunks huérfanos.
  • Ejecutar texto interpolado desde el usuario en vez de parámetros.
  • Confundir orden de almacenamiento con relevancia semántica.

Práctica

Agrega un segundo documento y consulta cuántos chunks tiene cada uno usando count(*) y group by. Predice las dos filas antes de ejecutar.

Puente al RAG

El Bloque 5 añadirá embeddings a chunks y buscará similitud. La trazabilidad seguirá dependiendo de document_id, source y la relación que acabas de comprobar.

Fuente primaria

Tutorial de SQL — documentación oficial de PostgreSQL