Este repositorio documenta el recorrido de aprendizaje en la asignatura Bases de Datos II, enfocado principalmente en bases de datos no relacionales (NoSQL), modelado de documentos, agregaciones complejas e integración de persistencia en arquitecturas modernas y contenerizadas.
Autor: Sebastián López Osorno Tecnología Base: MongoDB
El repositorio se divide en hitos de aprendizaje que van desde la consola de comandos hasta el despliegue de aplicaciones distribuidas.
Ubicación: /Parcial2
El proyecto insignia del repositorio. Es una plataforma de e-commerce construida con una arquitectura de microservicios simulada y orquestada con Docker.
- Arquitectura:
- Frontend: React + TypeScript + Vite (Consumo de API).
- Backend: Java Spring Boot 3 (Seguridad JWT, REST API).
- Base de Datos: MongoDB (Desplegada en Atlas para prod / Contenedor para dev).
- DevOps: Docker Compose para orquestar los 3 servicios.
- Conceptos Clave:
Spring Data MongoDB,MongoRepository,Docker Networks,JWT Authentication.
Ubicación: /Parcial1 y /Quiz1
Ejercicios prácticos centrados en el dominio del MongoDB Query Language (MQL).
- Parcial 1: Scripts complejos para un sistema de inventario. Incluye uso de
$lookup,$unwind,$group(Aggregation Framework) y actualizaciones atómicas. - Quiz 1: Modelado de datos para una Biblioteca. Demostración de Modelado de Documentos (Embedding vs Referencing) insertando libros prestados dentro del documento de usuario.
Ubicación: /ClaseMongo6
Introducción a la conexión de aplicaciones mediante ODMs.
- Stack: Node.js + Express.
- Tecnología:
Mongoose(ODM). - Funcionalidad: API CRUD básica para gestión de productos, demostrando la definición de Esquemas (
Schema) y Modelos en JavaScript.
| Categoría | Tecnologías |
|---|---|
| Base de Datos | MongoDB, MongoDB Atlas, Compass |
| Backend | Spring Boot (Java 17), Node.js (Express) |
| Frontend | React, TypeScript, Tailwind CSS |
| Infraestructura | Docker, Docker Compose |
| Herramientas | Maven, Postman/Thunder Client |
Este proyecto está totalmente contenerizado. Si tienes Docker instalado:
- Navega a la carpeta:
cd Parcial2 - Levanta la infraestructura completa:
docker-compose -p fashionline up -d
- Accede a los servicios:
- Frontend: http://localhost:5173
- API Swagger: http://localhost:8091/swagger-ui.html
- Mongo Express (BD): localhost:27018
Requieren tener instalado mongosh o MongoDB Compass.
- Abre el archivo
.jso.mongodben VS Code (con la extensión de MongoDB) o copia el contenido en tu terminalmongosh. - Ejecuta las sentencias para crear las colecciones y realizar las consultas de agregación.
cd ClaseMongo6
npm install
npm run dev
# Servidor corriendo en http://localhost:3001- Diferencias SQL vs NoSQL: Transición de esquemas rígidos a esquemas flexibles (Schema-less).
- Aggregation Pipeline: Uso de etapas (
$match,$group,$project) para análisis de datos en el servidor. - Modelado de Datos: Decisiones de diseño sobre cuándo embeber documentos (1:Pocos) vs referenciar documentos (1:Muchos).
- Persistencia Políglota: Conexión a MongoDB desde entornos asíncronos (Node.js) y entornos tipados/síncronos (Java Spring).
Repositorio académico para la asignatura de Bases de Datos II.