La unión recursiva es una operación utilizada en bases de datos relacionales , también conocida como "unión de punto fijo". Es una operación compuesta que implica repetir la operación de unión , generalmente acumulando más registros en cada iteración, hasta que una repetición no produce cambios en los resultados (en comparación con los resultados de la iteración anterior). [ 1 ]
Por ejemplo, si se va a buscar en una base de datos de relaciones familiares y el registro de cada persona tiene los campos "madre" y "padre", una unión recursiva sería una forma de recuperar todos los antepasados conocidos de una persona: primero se recuperarían los registros de los padres directos de la persona, luego se usaría la información de los padres para recuperar los registros de los abuelos, y así sucesivamente hasta que no se encuentren nuevos registros.
En este ejemplo, como en muchos casos reales, la repetición involucra solo una tabla de base de datos, por lo que se trata más específicamente de una "auto-unión recursiva".
Las uniones recursivas pueden ser muy lentas [ 2 ] a menos que se optimicen mediante indexación, la adición de campos clave adicionales u otras técnicas. Los recorridos de grafos tienen un costo menor que el método de uniones recursivas. [ 3 ]
Las uniones recursivas son características de los datos jerárquicos y, por lo tanto, representan un problema grave con los datos XML . En XML, operaciones como determinar si un elemento contiene a otro son extremadamente comunes, y la unión recursiva es quizás la forma más obvia de implementarlas cuando los datos XML se almacenan en una base de datos relacional.
La forma estándar de definir uniones recursivas en el estándar SQL:1999 es mediante expresiones de tabla comunes recursivas . Los sistemas de gestión de bases de datos que admiten CTEs recursivas incluyen Microsoft SQL Server , Oracle , PostgreSQL y otros.
Véase también
Referencias
- ↑ Zygiaris, Sotirios (23 de agosto de 2018). Sistemas de gestión de bases de datos: un enfoque orientado a los negocios con Oracle, MySQL y MS Access . Emerald Group Publishing. pág. 136. ISBN 978-1-78756-696-5.
- ↑ Healey, Christopher G. (17 de noviembre de 2016). Algoritmos basados en disco para macrodatos . CRC Press. pág. 127. ISBN 978-1-315-30286-7.
- ↑ Recursos, Management Association, Información (2016-04-20). Big Data: Conceptos, Metodologías, Herramientas y Aplicaciones: Conceptos, Metodologías, Herramientas y Aplicaciones . IGI Global. pág. 596. ISBN 978-1-4666-9841-3.
{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
- teoría de bases de datos
- Modelo relacional
- esbozos de informática