Artículo
· 16 oct, 2024 Lectura de 5 min

Dentro de la Herramienta de gestión de bases de datos

En este artículo, nos adentraremos en el funcionamiento de una aplicación publicada en OpenExchange llamada db-management-tool que sirve como herramienta de gestión de bases de datos, explorando la arquitectura y las tecnologías que la sustentan. Comprenderemos cómo funciona la aplicación para daros una visión de su diseño, cómo gestiona bases de datos, tablas y cómo la API interactúa con los datos.

Discutiremos las tecnologías principales utilizadas, incluyendo InterSystems IRIS como la base de datos principal y Redis para la caché. Además, desglosaremos la estructura de las tablas utilizadas y explicaremos cómo el sistema maneja la creación, recuperación y manipulación de datos a través de la API REST.

Descripción general de la aplicación web

Esta aplicación está construida como una herramienta basada en la web, y consta de dos componentes principales: el backend y el frontend.

  • Backend: El backend se desarrolla utilizando Java con el framework Spring Boot. Spring Boot simplifica el proceso de desarrollo, ofreciendo una estructura robusta y escalable para manejar la lógica del lado del servidor. Para gestionar la conexión a las bases de datos, utilicé Spring Data, que se integra a la perfección con InterSystems IRIS (para la base de datos principal) y Redis (para almacenar en caché el JWT). Esta configuración facilita la programación al manejar gran parte del código repetitivo relacionado con el acceso y almacenamiento de datos.
  • Frontend: El frontend se construye utilizando Angular 17, que proporciona una interfaz de usuario dinámica y receptiva para gestionar bases de datos, tablas e interactuar con los datos. La arquitectura basada en componentes de Angular garantiza que la interfaz de usuario sea tanto mantenible como escalable a medida que la aplicación crece.

Estructura de la base de datos y flujo de trabajo

La base de datos principal de InterSystems IRIS contiene cuatro tablas clave que almacenan información crucial sobre los usuarios, sus bases de datos y las tablas que crean. Así es como funciona:

  • Tabla de Usuarios (users): Cuando un nuevo usuario se registra, su información se guarda en la tabla de users. Esta tabla lleva un registro de todos los usuarios registrados, asegurando que cada uno tenga un identificador único para gestionar sus recursos.
  • Tabla de Bases de Datos (dbs): Cuando un usuario crea una nueva base de datos, los detalles de la base de datos (como su nombre) se almacenan en la tabla dbs. Esto permite a la aplicación mantener un seguimiento de qué usuario es propietario de qué base de datos.
  • Tabla de Tokens de Base de Datos (db_tokens): Para cada nueva base de datos, se genera un token único. Este token se utiliza para autenticar las solicitudes de la API a esa base de datos específica. La duración del token (que podría ser un día, semana, mes o año) se almacena en la tabla db_tokens, asegurando que el acceso a la base de datos se gestione de forma segura a lo largo del tiempo.
  • Tabla de Tablas (tables): Cuando un usuario crea una nueva tabla dentro de una base de datos, el nombre de la tabla se guarda en la tabla de tables junto con el ID de la base de datos asociada. Esto asegura que cada tabla esté vinculada a la base de datos correcta.

 

Además de almacenar los metadatos de la tabla, el sistema crea una nueva tabla SQL dentro de InterSystems IRIS para los datos reales del usuario. Cada tabla SQL se nombra utilizando una convención de nomenclatura técnica con el prefijo table_ seguido del ID de la tabla como sufijo. Esta tabla SQL es donde se almacenarán los datos del usuario para esa tabla en particular.

 

Base de datos Redis

La base de datos Redis desempeña un papel simple en la aplicación al gestionar la autenticación de usuarios. Cuando los usuarios inician sesión en el sitio web, se generan sus tokens JWT (JSON Web Tokens) para una gestión segura de sesiones. Estos tokens se almacenan en Redis para un acceso y validación rápidos.

Redis actúa como una caché en memoria, asegurando que la autenticación de usuarios sea rápida y eficiente. Cuando los usuarios realizan solicitudes al backend, la aplicación verifica la validez de los tokens almacenados para confirmar la identidad del usuario y otorgar acceso a los recursos apropiados.

API para operaciones de tablas

Como se mencionó en el primer artículo, para interactuar con los datos almacenados en las tablas de los usuarios, la aplicación proporciona una API REST simple pero poderosa. Actualmente, la API admite cinco operaciones básicas, lo que permite a los usuarios gestionar sus datos de manera eficiente:

  1. Obtener todos los registros por condición: Recuperar registros de una tabla basándose en condiciones o filtros específicos.
  2. Obtener todos los registros: Obtener todos los registros de una tabla sin ningún filtro.
  3. Guardar: Agregar nuevos registros a una tabla.
  4. Actualizar: Modificar registros existentes en una tabla.
  5. Eliminar: Eliminar registros de una tabla.

Estos endpoints de API facilitan la realización de operaciones CRUD (Crear, Leer, Actualizar, Eliminar) sobre los datos de la tabla. En el futuro, la API se ampliará para soportar consultas personalizadas, brindando a los usuarios más flexibilidad para ejecutar operaciones de datos complejas directamente a través de la API.

Conclusión

En este artículo, exploramos el funcionamiento interno de la herramienta de gestión de bases de datos, desglosando las tecnologías del backend y del frontend, y explicando cómo funcionan las bases de datos InterSystems IRIS y Redis dentro del sistema. También analizamos cómo se gestionan los datos a través de la API, con soporte actual para operaciones CRUD básicas.

Si bien la aplicación ya ofrece un potente conjunto de características para gestionar bases de datos, tablas y registros, aún hay más por venir. Las futuras actualizaciones introducirán soporte para consultas personalizadas y otras funciones avanzadas, haciendo que la herramienta sea aún más versátil para los usuarios que buscan gestionar sus datos sin problemas.

Comentarios (0)1
Inicie sesión o regístrese para continuar