Octava Entrada de la Bitácora (03/24/2026)

Hora de inicio: 5:30 pm

Hora de fin: 10:35 pm

Cantidad de horas: 5 horas casi exactas

Primero voy a documentar algunas investigaciones que hice respecto a estándares a la hora de trabajar en bases de datos, y dejaré algunas de mis referencias:

sql - Database Naming Conventions by Microsoft? - Stack Overflow

Release AdventureWorks sample databases · microsoft/sql-server-samples

Employee Table (AdventureWorks) | Microsoft Learn

Stored Procedures in AdventureWorks | Microsoft Learn

Ahora voy a documentar la creación de la base de datos y todos los requerimientos relacionados a la base de datos solicitados en el documento del proyecto (utilizando SSMS).

Nótese que técnicamente ya habíamos creado una base de datos llamada BDTareaProgramada, pero era más como una prueba para temas de conexión por red hamachi y otras pruebas iniciales, de modo que este fue el proceso:

1. Crear la base de datos:


2. Nombrar la base de datos:



3. Crear la tabla Empleado, nótese que estoy escribiendo los queries con una sintaxis más parecida a la que utiliza el profesor en los ejemplos de clase (con paréntesis cuadrados, GO, y demás), aunque le agrego los punto y coma por "buena práctica".

Otra cosa que noté es que el profesor puso "id" con todo minúsculas en el ejemplo del script, pero en la tabla de referencia Id comienza en mayúscula, y las otras columnas también comienzan en mayúscula, a pesar de que en otros ejemplos de bases de datos que ha mostrado el profesor parece utilizar camelCase, como en la base de datos abeja en la tabla [dbo].[Cliente] donde columnas como [tipoIdentificacion] no comienzan en mayúscula. Por esto decidí seguir el ejemplo de la tabla que se muestra de imagen en el documento del proyecto y lo hice con inicial mayúscula (Id, Nombre, Salario):


Sale con error porque tomé la captura cuando ya había creado la tabla, pero además incluí el archivo en el repositorio de GitHub por mantener registro del mismo.

4. Cargar al menos 40 filas manualmente mediante el estatuto INSERT, este no cabe en una sola captura de pantalla, pero lo hice igual siguiendo los mismos estándares, y también lo incluí en el repositorio de GitHub:

5. Creé un procedimiento almacenado (SP) simple para insertar empleados a la base de datos, este está parcialmente incompleto ya que debería validar si el nombre ya existe, lo cual no se hace de momento, pero quería hacer algo así para probar rápidamente:


6. Creé un procedimiento almacenado (SP) para obtener empleados con nombre en orden ascendente, aunque basado en los dibujos del profesor parece que lo que se debería ordenar ascendentemente es el apellido, lo cual parece ser más complicado de hacer en SQL, pero no he investigado al respecto, así que este también es "provisional":

Ahora continuando el desarrollo de la API desde el punto que lo dejé ayer, pero los archivos principales que desarrollé fueron el empleadoController, que es el que se encarga de establecer la conexión e intentar ejecutar el procedimiento almacenado (SP) respectivo:

Y el archivo de rutas:


Intenté hacer una prueba y no funcionó, pero era porque tenía mal puestas mis variables de entorno en el .env, además de que había un typo en el package.json donde escribí "nodedmon" en vez de "nodemon".

Con las variables de entorno corregidas (la variable SQL_SERVER tenía que ser nada más 25.11.123.190, no 25.11.123.190,1433), y la corrección en el package.json, solo hay que seguir unos pasos simples:

a) ejecutar el comando "npm start" (desde el directorio de la carpeta api), para correr el servidor del back end

b) utilizar alguna aplicación para probar APIs como Postman (es la que uso yo, ya que de momento no se ha establecido conexión con el front end):

Al correr esta prueba se obtienen todos los empleados, ordenados alfabéticamente por nombre:

Al correr esta otra prueba se puede insertar un empleado, aunque de momento no se verifica si ya existe un empleado con el mismo nombre, esto por el momento queda como un TODO:


De momento concluyo esta entrada a la bitácora, aunque para finalizar diré que gran parte del tiempo fue utilizado investigando cómo hacer las cosas correctamente, desde los procedimientos almacenados (SP), hasta el controlador que ejecuta los mismos, próximamente me pondré a trabajar más en detalle sobre la documentación así que dejaré eso para otra entrada, y quizás tenga que arreglar algunos detalles del código como el TODO mencionado anteriormente, así que dejaré eso también para mi siguiente entrada.

Comentarios