LearnDB adlı projeyi tanıtan bir yazı; bu proje, SQLite'a benzer bir ilişkisel veritabanı yönetim sistemi (RDBMS) olup sıfırdan saf Python ile yazılmıştır.
- Proje, Richard Feynman'ın "Yapamadığım şeyi anlayamam" sözünden ilham alıyor ve veritabanlarına dair derin bir anlayış kazandırmayı hedefliyor.
- LearnDB, basit bir kod tabanı ve görece tam bir RDBMS uygulaması sunduğu için üzerinde deney yapmak açısından uygun.
- Zengin bir SQL (
learndb-sql) desteği sunuyor; select, from, where, group by, having, limit, order by gibi yapıları destekliyor ve lark kullanarak özel bir lexer ve parser oluşturuyor.
- Sistem, kullanıcıların REPL üzerinden, Python modülü olarak içe aktararak veya komut dosyası dosyalarını motora vererek RDBMS'e birden fazla yolla bağlanmasına olanak tanıyor.
- Temel veri yapısı olarak disk tabanlı bir
btree implementasyonu kullanıyor.
- Ancak LearnDB'nin bazı kısıtları var; örneğin kayan noktalı sayı aritmetiğinin basitleştirilmiş bir implementasyonu bulunuyor ve wildcard sütun genişletme gibi genel yardımcı özellikleri desteklemiyor.
- Yazı, LearnDB'nin nasıl kurulup çalıştırılacağına dair ayrıntılı yönergeler sunuyor; buna sistem gereksinimleri ve testleri çalıştırma adımları da dahil.
- Yazar, projeyi geliştirirken başvurduğu kaynaklara da yer veriyor; bunlar arasında SQLite Database System: Design and Implementation (1st ed), SQLite dosya biçimi dokümantasyonu ve SQL ifade implementasyonu için Postgres bulunuyor.
- Kısıtlarına rağmen LearnDB, gerçek bir depolama çözümü olarak kullanılmak için değil, veritabanı iç yapısını anlamaya yönelik bir öğrenme aracı olarak tasarlanmış.
1 yorum
Hacker News görüşleri