Advent of Code 2024 en SQL pur
(databasearchitects.blogspot.com)-
Relever l'Advent of Code 2024 en SQL pur
-
Aperçu
- L'auteur a décidé de résoudre l'Advent of Code de cette année uniquement en SQL.
- L'expérience était intéressante car elle imposait une manière de penser différente aux problèmes, et j'ai réussi à résoudre tous les défis en SQL.
- SQL s'est révélé souvent plus agréable à utiliser que prévu.
-
Exemple du Day 11
- Une solution complète est fournie, y compris les entrées du problème.
- L'analyse de l'entrée en SQL est un peu fastidieuse, mais ce n'est pas impossible.
- L'algorithme est relativement court et effectue une exploration récursive des champs.
- SQL convient bien aux petites recherches exploratoires.
-
Autres jours du challenge
- Au Day 16, j'ai exécuté une tâche similaire pour calculer la distance minimale de parcours dans une grille.
- C'est facile à exprimer en SQL, mais l'évaluation est inefficace.
- Il faut conserver de nombreux états pour gérer de gros jeux de données, ce qui nécessite plus de 200 Go de mémoire.
- Certains SGBD ne disposent pas des fonctionnalités nécessaires pour résoudre ce problème.
-
Limites du SQL récursif
- Au Day 23, il fallait trouver le maximum clique dans un graphe clairsemé.
- L'algorithme de Bron-Kerbosch peut être utilisé, mais son expression en SQL récursif est complexe.
- Le SQL récursif ne permet de transmettre qu'un seul ensemble, ce qui entre en conflit avec les algorithmes qui nécessitent de maintenir plusieurs ensembles.
-
Conclusion
- Il est possible de coder des algorithmes complexes en SQL, et le code SQL peut être étonnamment agréable.
- Avec un mécanisme permettant de mettre à jour l'état, le SQL récursif serait plus efficace et plus confortable à utiliser.
- En introduisant des mécanismes complexes de manipulation d'état, SQL pourrait devenir une option puissante pour exécuter des algorithmes complexes directement dans la base de données.
1 commentaires
Commentaires de Hacker News