Employees.txt es una tabla de empleados que registra el ID y el nombre de cada empleado. Relationships.txt registra las relaciones de subordinación entre empleados. Por ejemplo, el primer registro indica que el empleado 7902 tiene como responsable al empleado 7566, y el registro 14 muestra que el empleado 7839 no tiene responsable y es el directivo de nivel superior.
Objetivo: devolver un conjunto de resultados que describa la jerarquía completa en forma de rutas tipo King, King-Blake, King-Blake-Allen, …, King-Clark, King-Clark-Miller, …, donde cada línea concatena los nombres desde la cúspide hasta el empleado final separados por guiones.
Enfoque iterativo con SPL
1. Leer la tabla de empleados y establecer EMPNO como clave primaria. Leer la tabla de relaciones y establecer también su clave primaria. Preparar una secuencia vacía para almacenar resultados.
2. Recorrer cada empleado A. Con su EMPNO, buscar en la tabla de relaciones a su superior B. Si no tiene superior, la ruta está completa. Si lo tiene, buscar el nombre de B en la tabla de empleados, anteponerlo al nombre de A y actualizar EMPNO para seguir subiendo al superior de B. Repetir hasta alcanzar al líder máximo.
3. Al terminar para cada empleado, registrar la cadena completa de nombres. Finalmente, ordenar el conjunto resultante para obtener una presentación coherente de la estructura jerárquica.
Demostración práctica con SPL
En una primera solución, A1 lee Employees y B1 lee Relationships, ambas con sus claves. A2 recorre empleados. En cada iteración, se localiza el superior inmediato, se antepone su ENAME a la ruta, se actualiza el EMPNO y se continúa hasta que ya no existe MGR. Una vez procesados todos, se ordena el resultado por la cadena jerárquica y se devuelve. Puedes probarlo en línea en el entorno interactivo de SPL en el siguiente enlace: Probar DEMO
Enfoque con join y asociación por clave foránea
1. A1 y A2 leen la tabla de empleados y la de relaciones. A3 realiza un join para añadir el campo MGR a la tabla de empleados.
2. A4 aplica la función switch para transformar el MGR en el registro correspondiente del empleado superior, realizando una asociación efectiva y facilitando cálculos posteriores.
3. A5 recorre empleados y, con la función prior, asciende por todos los niveles de MGR hasta no encontrar más, extrayendo sus ENAME. Como el recorrido produce la lista de nombres de abajo hacia arriba, se usa rvs para invertirla y luego concat para generar la cadena jerárquica final. El resultado, tras ordenar, coincide con el del método previo. Puedes ver otra variante lista para ejecutar aquí: Probar DEMO
Notas útiles sobre SPL
La función switch materializa la clave foránea convirtiéndola en el registro de la tabla dimensión, lo que hace más intuitivo recorrer relaciones jerárquicas. La función prior permite seguir referencias recursivas nivel a nivel sin escribir bucles complejos. Con rvs y concat es sencillo invertir y presentar la jerarquía en el formato solicitado.
Recursos
SPL es open source y su código está disponible en GitHub. También puedes descargarlo y evaluarlo sin coste desde su web oficial: Descárgalo gratis
Cómo te ayuda Q2BSTUDIO
En Q2BSTUDIO somos una empresa de desarrollo de software con amplia experiencia en aplicaciones a medida y software a medida. Integramos estas prácticas de modelado jerárquico en soluciones de datos reales para reporting, cuadros de mando y analítica avanzada. Si buscas potenciar tus decisiones con datos, descubre nuestros servicios de inteligencia de negocio con Power BI y Business Intelligence.
Además, somos especialistas en inteligencia artificial y en la creación de agentes IA para automatizar procesos complejos, clasificación y enriquecimiento de información, y soporte a tu equipo en tiempo real. Conoce cómo aplicamos ia para empresas en nuestros proyectos de visión, NLP y generación de conocimiento en inteligencia artificial para empresas.
También ofrecemos ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, automatización de procesos, así como consultoría para integrar de forma segura y escalable tus sistemas. Si tu organización necesita alinear datos y operaciones con una arquitectura moderna, nuestro equipo puede ayudarte a poner en producción soluciones robustas y listas para crecer.
Palabras clave recomendadas para este tema: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.