Advent of Code 2024 en SQL puro
(databasearchitects.blogspot.com)-
Reto de Advent of Code 2024 con SQL puro
-
Resumen
- El autor decidió resolver el Advent of Code de este año íntegramente en SQL.
- Esta experiencia resultó interesante porque obligaba a pensar los problemas de otra manera, y logró resolver todos los retos con SQL.
- SQL resultó ser más cómodo de usar de lo esperado en muchos casos.
-
Ejemplo del Día 11
- Presenta la solución completa, incluyendo la entrada del problema.
- Parsear la entrada en SQL es algo engorroso, pero no imposible.
- El algoritmo es relativamente corto y realiza una exploración recursiva de campos.
- SQL es adecuado para tareas de exploración de pequeña escala.
-
Retos de otros días
- En el Día 16 se hace un trabajo similar al calcular la distancia mínima de recorrido en una cuadrícula.
- Es fácil de expresar en SQL, pero su evaluación es ineficiente.
- Con entradas grandes hay que mantener mucha cantidad de estado y se requiere más de 200 GB de memoria.
- Algunos DBMS no ofrecen funciones para resolver este caso.
-
Límites de SQL recursivo
- En el Día 23 había que encontrar la clique máxima en un grafo disperso.
- Se puede usar el algoritmo de Bron-Kerbosch, aunque es complicado expresarlo en SQL recursivo.
- La SQL recursiva solo permite pasar un único conjunto, lo que choca con algoritmos que deben mantener varios conjuntos.
-
Conclusión
- Es posible codificar algoritmos complejos en SQL, y el código SQL puede resultar, de forma sorprendente, bastante cómodo.
- Si existiera un mecanismo para actualizar estados, SQL recursivo sería más eficiente y más cómodo de usar.
- Al introducir mecanismos complejos de manipulación de estado, SQL podría convertirse en una opción potente para ejecutar algoritmos complejos dentro de una base de datos.
1 comentarios
Comentarios de Hacker News