3 poin oleh GN⁺ 2023-08-14 | 1 komentar | Bagikan ke WhatsApp
  • Artikel tentang proyek bernama 'LearnDB', yaitu sistem manajemen basis data relasional (RDBMS) yang mirip dengan SQLite dan ditulis dari nol dengan Python murni.
  • Proyek ini terinspirasi oleh kutipan terkenal Richard Feynman, "Apa yang tidak bisa saya buat, berarti tidak saya pahami", dengan tujuan memberikan pemahaman yang mendalam tentang basis data.
  • LearnDB memiliki basis kode yang sederhana dan implementasi RDBMS yang relatif lengkap, sehingga cocok untuk digunakan bereksperimen.
  • Mendukung SQL yang kaya (learndb-sql), termasuk select, from, where, group by, having, limit, order by, dan membangun lexer serta parser kustom menggunakan lark.
  • Sistem ini memungkinkan pengguna terhubung ke RDBMS dengan berbagai cara, seperti melalui REPL, mengimpor modul Python, atau meneruskan file perintah ke engine.
  • Menggunakan implementasi btree berbasis disk sebagai struktur data pendukung utama.
  • Namun, LearnDB memiliki beberapa keterbatasan, seperti implementasi aritmetika bilangan floating-point yang disederhanakan dan tidak mendukung fitur utilitas umum seperti ekspansi kolom wildcard.
  • Artikel ini menyediakan petunjuk rinci tentang cara memasang dan menjalankan LearnDB, termasuk persyaratan sistem dan langkah-langkah menjalankan pengujian.
  • Penulis juga memberikan referensi materi yang digunakan saat menulis proyek ini, termasuk SQLite Database System: Design and Implementation (1st ed), dokumentasi format file SQLite, dan Postgres untuk implementasi pernyataan SQL.
  • Terlepas dari keterbatasannya, LearnDB dimaksudkan bukan untuk digunakan sebagai solusi penyimpanan nyata, melainkan sebagai alat belajar untuk memahami cara kerja internal basis data.

1 komentar

 
GN⁺ 2023-08-14
Komentar Hacker News
  • Artikel tentang RDBMS (Relational Database Management System) baru, sebuah klon SQLite yang ditulis dari awal dengan Python.
  • Bahasa Python dipilih karena keterbacaan dan kemudahannya diakses dibandingkan bahasa seperti C++ atau C yang lebih sering digunakan untuk basis data.
  • Proyek ini dipandang edukatif dan berguna untuk mempelajari cara kerja basis data.
  • Memunculkan ketertarikan pada bagaimana mesin basis data dapat bekerja secara terdistribusi.
  • Disebutkan proyek serupa di mana SQLite ditulis ulang dalam C#.
  • Proyek ini tidak dimaksudkan untuk berjalan cepat, tetapi ada ketertarikan untuk melihat benchmark sebagai perbandingan.
  • Tulisan ini juga memperkenalkan pembaca pada Lark, pustaka parser untuk Python, yang digunakan dalam proyek ini.
  • Proyek ini dianggap sebagai cara yang baik untuk mempelajari data structures and algorithms (DS&A) dengan lebih baik, terutama bagi mereka yang tertarik pada basis data dan Python.
  • Muncul pertanyaan tentang seberapa besar bagian dari SQLite test suite yang bisa dilalui proyek ini, serta apakah proyek ini mendukung jaminan ACID (Atomicity, Consistency, Isolation, Durability) atau query planning/optimization.
  • Ada rasa ingin tahu tentang kelebihan dan keterbatasan proyek ini yang menggunakan Python, terutama dibandingkan C++ dalam hal dukungan terhadap kontrol konkurensi tingkat rendah dan manajemen penyimpanan.
  • Kode proyek ini dipuji karena mudah dibaca dan memiliki komentar yang sangat baik.