2 poin oleh GN⁺ 2025-01-03 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2025-01-03
Komentar Hacker News
  • Reaksinya terhadap item menu baru adalah gabungan dari hasrat, rasa malu, dan kekaguman terhadap kreativitas manusia
  • Ini adalah bahasa yang paling sering saya tulis sepanjang karier saya, dan meski dalam lima tahun terakhir penggunaannya berkurang, menulisnya tetap menyenangkan
  • Ketika berhenti berpikir secara iteratif dan mulai berpikir dengan operasi himpunan, semuanya menjadi lebih alami dan kuat
  • Mencoba AoC di Google Sheets dan mencapai Hari 6, tetapi terbentur batasan karakter pada beberapa masukan
    • Tidak disarankan untuk membukanya di ponsel
  • Di masa lalu, saat wawancara operasional, saya pernah diberikan tantangan membuat laporan faktur untuk dataset besar
    • Karena saya bukan data scientist, saya kesulitan merakit solusi
    • Saya menjelaskan bahwa saya kemungkinan akan menggunakan paket pelaporan seperti Crystal Reports
    • Masalah tersebut saya selesaikan dengan SQL, tapi membutuhkan banyak teknik
  • Mencoba AoC dengan EdgeQL, dan itu menjadi pengalaman yang menarik
    • Membagikan tweet terkait
  • Membangun sistem antrian/containerisasi dengan SQL dan menggunakan beberapa fitur tambahan
    • Algoritme dasarnya sangat cocok dengan kemampuan SQL
    • Beberapa aspek sulit disesuaikan dengan SQL
  • Saat ini sedang mengerjakan AoC2024 di Google Sheets dan berencana untuk mendokumentasikannya
  • Bekerja dengan SQL murni itu mengesankan, dan mempertahankan blog lama ini menunjukkan "niche mastery"