Portafolio · Edición 2026 Cúcuta, Colombia Disponible para patrocinio SENA
Implementación y Gestión de Bases de Datos · SENA

La inteligencia artificial, al servicio de sus datos.

Soy Diego Angel Chaustre Baena. Estudio bases de datos en el SENA y uso la IA como copiloto para diseñar, proteger y automatizar datos. Hoy escribo SQL fundamental por mi cuenta y avanzo cada semana; con la IA he llevado proyectos reales mucho más lejos, entendiendo y verificando cada paso. Aquí están las pruebas.

8

tablas relacionales diseñadas para una app de movilidad

18

políticas de seguridad a nivel de fila (RLS) en PostgreSQL

1.074

líneas de SQL generadas con IA bajo mi dirección y revisadas por mí

6

proyectos construidos con IA, uno de ellos una tienda en línea con ventas reales

I.Enfoque

Cuatro formas en que la IA mejora una base de datos.

Una empresa no necesita "usar IA"; necesita datos ordenados, seguros y útiles para decidir. Así es como aplico la inteligencia artificial en cada etapa del ciclo de vida de los datos, con evidencia de mis propios proyectos.

01 / Diseñar

Del negocio al esquema.

Con la IA, convierto un proceso de negocio en tablas, relaciones y reglas que impiden datos inválidos desde el origen.

EvidenciaALIS: 8 tablas, 12 tipos enumerados, 16 índices y restricciones de integridad.
Para su empresaPasar inventarios, clientes o ventas de hojas de Excel a una base de datos consistente.
02 / Proteger

Seguridad desde el diseño.

Cada usuario ve solo lo suyo. Con la IA reviso accesos, datos expuestos y el cumplimiento de la ley de protección de datos.

Evidencia18 políticas RLS, auditoría de seguridad asistida por IA y política de Habeas Data (Ley 1581).
Para su empresaDetectar información de clientes expuesta antes de que se convierta en un problema legal.
03 / Automatizar

Datos que se mueven solos.

Conecto formularios, APIs y hojas de cálculo para que la información fluya sin volver a digitarla.

EvidenciaPedidos que viajan de la tienda a la API logística, a Google Sheets y a un panel contable.
Para su empresaMenos digitación manual, menos errores y reportes al día.
04 / Consultar

Preguntas convertidas en SQL.

Traduzco preguntas de negocio a consultas SQL con IA, y verifico que la respuesta sea correcta.

EvidenciaEl laboratorio en vivo de este portafolio: siete preguntas reales sobre una réplica de ALIS.
Para su empresaSaber qué se vende, dónde, a qué hora y qué cliente vuelve, en minutos.
II.Caso principal

ALIS: la base de datos de una app de movilidad para Cúcuta.

Una super-app de transporte en carro, moto y mensajería, pensada para que el conductor pague menos comisión. La construí de principio a fin: investigación del problema, modelo de datos, seguridad, API y aplicación móvil.

RolDiseño de datos y producto
MotorPostgreSQL 15 · Supabase
StackNode.js + TypeScript · Flutter
EstadoMVP en desarrollo · 2026
El reto

Conductores, pasajeros, viajes y dinero, sin que nada se desordene.

Una app de transporte mueve datos sensibles en tiempo real: ubicación, pagos y calificaciones. Si el modelo de datos falla, se pierde dinero o se exponen personas. Por eso empecé por la base de datos antes de escribir una sola pantalla.

"Primero diseñé los datos; la aplicación vino después."

01 · Modelo entidad–relación
profilesPKid uuidrole enumfull_nameUQphone driversPKidFKprofile_id 1:1status · tiercurrent_lat / lng walletsPKidFKdriver_id 1:1balancevehicle_fund ratingsPKidFKtrip_id · from_idstars CHECK 1–5UQ(trip_id, from_id) tripsPKidFKpassenger_idFKdriver_id (nullable)status enum(7)fare · commission wallet_transactionsPKidFKwallet_id · trip_idamount · balance_afterappend-only paymentsPKidFKtrip_idmethod enumstatus · provider trip_offersPKidFKtrip_id · driver_idstatus enumexpires_at RLS activoen las 8 tablas: cada usuariosolo lee y modifica sus propiosregistros.
● Punto bronce: lado "muchos" de la relaciónPK clave primaria · FK clave foránea · UQ única
02 · Decisiones de diseño
  • a.
    Billetera de solo inserción (append-only)

    Los movimientos de dinero nunca se editan ni se borran. El saldo siempre se puede reconstruir y auditar desde el historial.

  • b.
    Estados cerrados con ENUM

    12 tipos enumerados (estado del viaje, método de pago, nivel del conductor) hacen imposible guardar un valor inválido.

  • c.
    Seguridad a nivel de fila

    El pasajero solo ve sus viajes y el conductor solo los que tiene asignados. La regla vive en la base de datos, no en la app.

  • d.
    La lógica cerca de los datos

    La búsqueda de conductores cercanos (fórmula de Haversine), la tarifa y la comisión por nivel son funciones SQL.

  • e.
    Índices para las consultas reales

    Un índice parcial compuesto acelera la búsqueda de conductores disponibles, y 9 triggers mantienen fechas y perfiles al día.

  • f.
    Privacidad por ley

    Política de tratamiento de datos personales redactada bajo la Ley 1581 de 2012 y el Decreto 1377 de 2013.

03 · Extractos del código SQL
-- Conductores disponibles dentro de un radio, ordenados por distancia
CREATE OR REPLACE FUNCTION public.nearby_drivers(
  search_lat numeric, search_lng numeric,
  radius_km  numeric DEFAULT 3.0,
  v_type     public.vehicle_type DEFAULT 'car'
) RETURNS TABLE (driver_id uuid, distance_km numeric, ...)
LANGUAGE sql STABLE AS $$
  SELECT d.id,
    (6371.0 * acos(cos(radians(search_lat)) * cos(radians(d.current_lat))
      * cos(radians(d.current_lng) - radians(search_lng))
      + sin(radians(search_lat)) * sin(radians(d.current_lat))))::numeric(8,3)
  FROM public.drivers d
  JOIN public.profiles p ON p.id = d.profile_id
  WHERE d.status = 'available' AND d.vehicle_type = v_type
    AND d.is_active = true  -- ...y distancia <= radius_km
  ORDER BY distance_km ASC;
$$;
Fragmentos tomados de los scripts originales del proyecto · PostgreSQL 15
04 · Cómo trabajé con la IA
ClaudeArquitecto

Diseña la arquitectura y redacta especificaciones precisas por fases: tablas, reglas y contratos de la API.

DeepSeekProgramador

Genera el código a partir de esas especificaciones, dentro de VS Code, archivo por archivo.

YoResponsable

Ejecuto cada script en Supabase, pruebo en emulador y en celular real, reporto errores y decido qué se corrige.

21

endpoints de API con validación de datos

~3.000

líneas de TypeScript en el backend

~3.900

líneas de Dart en la app móvil

05 · Funcionando
App ALIS en modo conductor, en línea sobre el mapa de Cúcuta

Modo conductor en línea, esperando viajes cercanos sobre el mapa de Cúcuta. El estado "disponible" se guarda en la tabla drivers y alimenta la función de búsqueda por cercanía.

Tras una auditoría de seguridad asistida por IA, el backend salió bien librado: verifica la propiedad de cada viaje, valida los datos y mantiene la clave maestra solo en el servidor. Los siguientes pasos son limitar peticiones por minuto y automatizar la expiración de ofertas.

III.Laboratorio en vivo

Pregúntele algo a mi base de datos.

Esta es una réplica de ALIS con datos de prueba de Cúcuta, ejecutándose en su navegador. Elija una pregunta de negocio: verá la consulta SQL que la responde, redactada con apoyo de IA y revisada por mí. También puede escribir la suya.

Preguntas de negocio
Cargando…
Preparando el motor SQL…
Los resultados aparecerán aquí.
Motor SQLite compilado a WebAssembly (sql.js) Datos ficticios generados para la demostración Nada sale de su navegador
IV.Índice de proyectos

Más trabajo, cada uno con una lección de datos.

Un emprendimiento real, aplicaciones y práctica deliberada. En cada proyecto aprendí algo sobre cómo se guardan, se mueven y se protegen los datos.

01VeloziTienda contraentrega y panel de contabilidadIntegración de datos · APIEn línea · con ventas+

Tienda en línea de bienestar y belleza con pago contraentrega en toda Colombia, en funcionamiento y con ventas reales conseguidas con campañas de publicidad en Facebook e Instagram (Meta Ads). Cada venta queda registrada automáticamente: se envía al operador logístico y aparece en un panel de contabilidad con su estado real (entregado, en novedad o devuelto).

Visitar velozi.store ↗
Anuncio en Meta→Checkout→PHP→API logística (JWT)→Registro de pedidos→Panel contable
  • Autenticación contra la API con caché de tokens y renovación automática.
  • Selección de ciudad con códigos DANE para cotizar el envío correcto.
  • Panel con conteos por estado, búsqueda, detalle y acciones masivas.
  • Ventas generadas con publicidad pagada en Meta Ads: segmentación, creativos y seguimiento de resultados.
PHPREST APIJSONHostingerMeta Ads
Lección de datos

Guardé los pedidos en un archivo JSON para arrancar rápido. Funcionó, pero no permite consultas ni escala. Esa limitación me llevó al modelo relacional de VELOX.

Demostración interactiva · de la tienda al panel de contabilidad
  1. 1Compra
  2. 2Servidor
  3. 3Panel
  4. 4Transportadora
  5. 5Sincronización
VELOZIPago contraentrega
Producto

Pedido de prueba: no se cobra ni se envía nada.

velozi.store/contabilidad
Pedidos0
Facturado$0
Pendientes0
Entregados0
PedidoClienteCiudadTotalEstado

Haga un pedido en la tienda VELOZI y mírelo llegar aquí.

Recreación interactiva del flujo de mi panel real, con datos ficticios; las llamadas a la API de Mastershop están simuladas. Ver la réplica exacta del panel original ↗

02VELOXMotor de pedidos para dropshippingModelo relacional · AutomatizaciónPrototipo+

Backend que recibe pedidos por webhook, elige proveedor, despacha y rastrea cada orden, con la ganancia calculada por pedido.

  • Modelo products · orders · order_items con SQLAlchemy sobre PostgreSQL 16 en Docker.
  • Estados del pedido como enumeración: pendiente, despachado, enviado, entregado, fallido o reembolsado.
  • Rentabilidad por pedido (precio frente a costo) e historial de eventos por orden.
  • Flujo en n8n: webhook, validación, creación de la orden, registro en Google Sheets y aviso por Gmail.
Python · FastAPISQLAlchemyPostgreSQLDockern8n
Lección de datos

Separar el pedido de sus ítems (1 a N) es lo que permite responder "¿qué producto deja más margen?" con una sola consulta.

03Auditoría de datos personalesRevisión de seguridad de un formulario de pedidosSeguridad de datosCaso de estudio+

Construí una página de pedidos contraentrega que guardaba los datos de cada cliente en el servidor y los mostraba en un panel de ventas. Antes de usarla con más clientes, le pedí a la IA una auditoría de seguridad del código, y esto encontró:

  • Hallazgo 1: el archivo de pedidos podía descargarse públicamente, con nombres, teléfonos y direcciones.
  • Hallazgo 2: la clave del panel era débil y estaba escrita en el código.
  • Hallazgo 3: riesgo de inyección de fórmulas al abrir el registro en Excel (CSV injection).
  • Hallazgo 4: ausencia de protección contra pedidos automatizados (bots).

Se generaron las correcciones para cada punto. La sanitización contra inyección de fórmulas y la validación de cantidades en el servidor ya están implementadas.

PHPValidación server-sideCSVLey 1581
Lección de datos

Los datos de un cliente no son solo información: son una responsabilidad legal. Proteger el archivo importa tanto como diseñarlo.

04NotitasApp de notas para AndroidPersistencia localPruébela aquí+

App de notas sin anuncios, con widget de escritorio, recordatorios, listas de tareas y nota flotante. Nació en Kotlin nativo y la reescribí en Flutter para publicarla en Android e iOS con un solo código.

  • Borrado lógico: el campo deletedAt manda la nota a la papelera en lugar de eliminarla.
  • Purga automática de la papelera a los 30 días, con restauración.
  • Orden personalizado persistente y patrón Repository que separa los datos de la interfaz.
  • Instalada y verificada en un celular real (Android 15), y compilada también para web a partir del mismo código.
KotlinFlutter · DartSoft deleteRepository

Demo en vivo: es la misma app compilada para web. Cree una nota, cámbiele el color o abra la papelera. Todo se guarda solo en su navegador.

05Formación en SQLMySQL 8 · WorkbenchPráctica de consultasEn curso+

Instalé y configuré un servidor MySQL 8 local, con los datos en un disco secundario, y practico sobre las bases de ejemplo world y sakila con la IA como tutor, lección por lección.

  • Consultas con SELECT, WHERE, ORDER BY y LIMIT.
  • Agregaciones con SUM, AVG, COUNT, GROUP BY y HAVING.
  • INNER JOIN entre dos y tres tablas combinado con agregaciones.
SELECT country.Name AS Pais, COUNT(city.ID) AS NumeroCiudades
FROM country
INNER JOIN city ON country.Code = city.CountryCode
GROUP BY country.Name
ORDER BY NumeroCiudades DESC LIMIT 15;
Lección de datos

WHERE filtra filas; HAVING filtra grupos. Entender esa diferencia cambió mi forma de leer una consulta.

06Juego SQLAprender bases de datos jugandoAprendizaje · Python + MySQLEn diseño+

Un juego de rol de texto en el que cada misión se supera escribiendo una consulta SQL contra una base de datos MySQL. Explorar una región es un SELECT, reparar el inventario es un UPDATE y formar una alianza entre facciones es un JOIN.

  • Objetivo: practicar cada tema del programa del SENA como un reto, no como un ejercicio suelto.
  • La IA como maestro de juego: da pistas y explica el error sin entregar la respuesta.
  • Estado: estructura del proyecto creada (Python, configuración de conexión y script inicial). Lo desarrollaré durante la etapa lectiva.
PythonMySQLDiseño de retosGamificación
Por qué lo construyo

La mejor forma de aprender una base de datos es necesitarla. Este juego me obliga a consultar para avanzar.

V.Método

Cómo trabajo con la IA.

La IA escribe rápido, pero no conoce su negocio ni responde por sus datos. Mi trabajo es dirigirla, cuestionarla y verificar lo que produce.

1

Entender el negocio

Antes de crear una tabla, identifico el problema. En ALIS empecé investigando los dolores de conductores y pasajeros.

2

Diseñar con la IA

Le pido propuestas de modelo y las cuestiono: ¿qué pasa si se cancela un viaje?, ¿quién puede ver este dato?

3

Construir por fases

El código se genera en pasos pequeños y ordenados: esquema, seguridad, funciones y, al final, los datos.

4

Verificar

Ejecuto, pruebo con datos reales y en dispositivos reales, leo los errores y los corrijo.

5

Auditar

Reviso seguridad y privacidad antes de publicar. Lo que expone datos de clientes no sale.

"La IA acelera el trabajo. La responsabilidad sobre los datos sigue siendo mía."

Principio de trabajo
VI. · Carta de presentación

A la empresa que decida patrocinarme:

Llevo pocas semanas en el programa de Implementación y Gestión de Bases de Datos del SENA, pero no llego desde cero: antes de iniciarlo completé por iniciativa propia el curso certificado Bases de datos: generalidades y sistemas de gestión, para adelantar los fundamentos del programa. He manejado los pedidos y la contabilidad de mi propia tienda en línea, y he construido proyectos con bases de datos reales trabajando junto a la inteligencia artificial.

Quiero ser transparente con mi nivel: hoy escribo por mi cuenta consultas SQL fundamentales (filtros, agregaciones y uniones entre tablas). Lo más avanzado que ve en este portafolio (funciones, triggers y políticas de seguridad) lo construí dirigiendo a la IA, entendiendo qué hace cada parte y verificando que funcione. Esa es justamente mi propuesta: aprender las bases a fondo en el SENA mientras aporto a su equipo con lo que ya sé hacer.

Lo que puedo aportar mientras aprendo:

  • i.
    Apoyar la organización de la información.

    Ordenar datos dispersos en Excel o correos y ayudar a llevarlos a una base de datos, con la guía de su equipo.

  • ii.
    Consultas y reportes.

    Consultas SQL básicas por mi cuenta y, con apoyo de IA, reportes más elaborados que valido antes de entregar.

  • iii.
    Automatizar tareas repetitivas.

    Conectar formularios, hojas de cálculo y correos para reducir la digitación manual, como ya lo hice en mi tienda.

  • iv.
    Cuidado de los datos personales.

    Buenas prácticas básicas de acceso y conocimiento de la Ley 1581 de protección de datos.

No pretendo llegar sabiéndolo todo. Llego con la disciplina de quien ha sacado adelante su propio emprendimiento, con ganas de aprender la forma de trabajar de su equipo y con una manera de usar la IA que me permite rendir más mientras crezco. Agradezco de antemano su tiempo y su consideración.

Diego A. Chaustre B.Aprendiz SENA · Implementación y Gestión de Bases de Datos
VII.Trayectoria
2026 · Sep
Ingreso al SENA

Tecnólogo en Implementación y Gestión de Bases de Datos, en formación virtual.

2026 · Jul–Ago
Curso certificado SENA

Bases de datos: generalidades y sistemas de gestión (40 horas), por iniciativa propia antes del tecnólogo.

2026 · Jun
Formación práctica en MySQL

Servidor local, consultas, agregaciones y JOIN.

2026 · Jun
Notitas en dispositivo real

Persistencia, borrado lógico y recordatorios.

2026 · May
ALIS: de la idea al MVP

Investigación, base de datos en PostgreSQL, API y app móvil.

2026
Velozi

Tienda en línea contraentrega, con ventas reales por publicidad en Meta.

 Herramientas
Bases de datosPostgreSQL · MySQL 8 · Supabase · SQLite
FormaciónTecnólogo SENA virtual en curso · Curso certificado SENA en bases de datos (40 h)
SQL · por mi cuentaSELECT, WHERE, ORDER BY, LIMIT, agregaciones, GROUP BY, HAVING, INNER JOIN
SQL · con IAFunciones, triggers, seguridad RLS e índices (en aprendizaje)
BackendNode.js + TypeScript · Python (FastAPI, SQLAlchemy) · PHP
Móvil y webFlutter · Kotlin · HTML, CSS y JavaScript
Automatizaciónn8n · Webhooks · APIs REST · Google Sheets
IAClaude · DeepSeek · desarrollo guiado por especificaciones
IdiomasEspañol nativo · Inglés B2 (lectura de documentación técnica)
EntornoVS Code · MySQL Workbench · Docker · Git
SENA40 h
Certificación · Servicio Nacional de Aprendizaje

Bases de datos: generalidades y sistemas de gestión.

Formación virtual · 16 de julio – 14 de agosto de 2026 · Centro de Electricidad y Automatización Industrial (CEAI), Regional Valle · Certificado registrado el 24/08/2026

Lo tomé por iniciativa propia antes de empezar el tecnólogo, para llegar con los fundamentos adelantados. Unidades del programa:

  1. 01Introducción a las bases de datos y a los sistemas gestores de bases de datos (SGBD)
  2. 02Bases de datos relacionales
  3. 03Normalización y modelo entidad–relación
  4. 04Diseño de bases de datos relacionales

Verificable en el registro oficial certificados.sena.edu.co. Código de verificación disponible a solicitud.

Contacto

Conversemos sobre sus datos.

diego.chaustre.data@gmail.com