Advent of Code 2024 in reinem SQL
(databasearchitects.blogspot.com)-
Advent of Code 2024 in reinem SQL angehen
-
Überblick
- Der Autor hat beschlossen, Advent of Code in diesem Jahr vollständig in reinem SQL zu lösen.
- Diese Erfahrung war spannend, weil sie dazu zwang, die Aufgaben anders zu denken, und es gelang ihm, alle Probleme in SQL zu lösen.
- SQL erwies sich überraschenderweise häufig als angenehm zu verwenden.
-
Day 11 Beispiel
- Er zeigt die vollständige Lösung mit dem Problem-Input.
- Das Parsen der Eingabe in SQL ist etwas umständlich, aber nicht unmöglich.
- Der Algorithmus ist relativ kurz und führt eine rekursive Feldsuche durch.
- SQL ist für kleine Suchvorgänge geeignet.
-
Herausforderungen an anderen Tagen
- In Day 16 wurde eine ähnliche Aufgabe durchgeführt, nämlich die Berechnung der minimalen Suchdistanz im Feld.
- Die Modellierung in SQL ist einfach, die Auswertung jedoch ineffizient.
- Bei großen Eingaben müssen viele Zustände gehalten werden, was mehr als 200 GB Speicher benötigt.
- Einige DBMS bieten dafür keine passenden Funktionen.
-
Grenzen rekursiven SQL
- In Day 23 musste die maximale Clique in einem spärlichen Graphen gefunden werden.
- Dafür wäre der Bron-Kerbosch-Algorithmus geeignet, die Umsetzung in rekursivem SQL ist jedoch komplex.
- Rekursives SQL kann nur eine einzige Menge übergeben, was bei Algorithmen kollidiert, die mehrere Mengen verwalten müssen.
-
Fazit
- Es ist möglich, komplexe Algorithmen in SQL zu programmieren, und SQL-Code kann überraschend angenehm sein.
- Mit einem Mechanismus, der Zustandsupdates ermöglicht, wäre rekursives SQL effizienter und komfortabler zu nutzen.
- Führt man komplexe Zustandsmanipulationsmechanismen ein, kann SQL eine starke Option sein, um komplexe Algorithmen innerhalb der Datenbank auszuführen.
1 Kommentare
Hacker News Kommentar