Advent of Code 2024 dengan SQL Murni
(databasearchitects.blogspot.com)-
Tantangan Advent of Code 2024 dengan SQL Murni
-
Rangkuman
- Penulis memutuskan untuk menyelesaikan Advent of Code tahun ini sepenuhnya dengan SQL.
- Pengalaman ini menarik karena memaksa saya berpikir tentang masalah dengan cara yang berbeda, dan semuanya dapat diselesaikan dengan SQL.
- Ternyata SQL sering kali terasa sangat nyaman untuk dipakai.
-
Contoh Day 11
- Menyertakan solusi lengkap termasuk input soal.
- Mengurai input di SQL memang agak merepotkan, tetapi tidak mustahil.
- Algoritmanya relatif singkat dan melakukan penelusuran rekurif pada field.
- SQL cocok untuk penelusuran berskala kecil.
-
Tantangan Hari Lain
- Pada Day 16, saya melakukan pekerjaan serupa untuk menghitung jarak pencarian minimum pada field.
- Mudah direpresentasikan dalam SQL, tetapi evaluasinya tidak efisien.
- Untuk input besar, perlu mempertahankan banyak state dan dibutuhkan lebih dari 200GB memori.
- Beberapa DBMS tidak menyediakan fitur untuk mengatasinya.
-
Batasan SQL Rekursif
- Pada Day 23, saya harus menemukan maksimum clique pada graf yang jarang (sparse).
- Dapat diselesaikan dengan algoritma Bron-Kerbosch, tetapi ekspresinya rumit dalam SQL rekursif.
- SQL rekursif hanya dapat membawa satu himpunan, sehingga tidak cocok untuk algoritma yang perlu mempertahankan beberapa himpunan sekaligus.
-
Kesimpulan
- Memang mungkin untuk mengodekan algoritma kompleks dalam SQL, dan kode SQL bisa terasa nyaman secara tak terduga.
- Jika ada mekanisme yang bisa memperbarui state, SQL rekursif akan menjadi lebih efisien dan lebih nyaman digunakan.
- Dengan mekanisme manipulasi state yang kompleks, SQL bisa menjadi pilihan kuat untuk menjalankan algoritma kompleks di dalam database.
1 komentar
Komentar Hacker News