3 पॉइंट द्वारा GN⁺ 2023-08-14 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • 'LearnDB' नाम के एक प्रोजेक्ट पर लेख, जो SQLite जैसा एक relational database management system (RDBMS) है और जिसे शुद्ध Python में शुरुआत से लिखा गया है.
  • यह प्रोजेक्ट Richard Feynman के इस कथन "जो मैं बना नहीं सकता, उसे मैं समझ नहीं सकता" से प्रेरित है, और इसका लक्ष्य डेटाबेस की गहरी समझ प्रदान करना है.
  • LearnDB का codebase सरल है और इसमें अपेक्षाकृत काफ़ी पूर्ण RDBMS implementation है, इसलिए यह प्रयोग करने के लिए उपयुक्त है.
  • यह समृद्ध SQL (learndb-sql) को support करता है, जिसमें select, from, where, group by, having, limit, order by आदि शामिल हैं, और lark का उपयोग करके custom lexer और parser बनाए गए हैं.
  • सिस्टम उपयोगकर्ताओं को कई तरीकों से RDBMS से जुड़ने देता है, जैसे REPL, Python module import करना, या engine को command file देना.
  • यह backing data structure के रूप में disk-based btree implementation का उपयोग करता है.
  • हालांकि, LearnDB में कुछ सीमाएँ हैं, जैसे floating-point arithmetic का सरल implementation और wildcard column expansion जैसी सामान्य utility features का support न होना.
  • लेख में LearnDB को install और run करने के विस्तृत निर्देश दिए गए हैं, जिनमें system requirements और test चलाने के चरण शामिल हैं.
  • लेखक ने प्रोजेक्ट लिखते समय जिन सामग्रियों का संदर्भ लिया, उनका भी उल्लेख किया है, जिनमें SQLite Database System: Design and Implementation (1st ed), SQLite file format documentation, और SQL statement implementation के लिए Postgres शामिल हैं.
  • इन सीमाओं के बावजूद, LearnDB का उद्देश्य इसे वास्तविक storage solution की तरह उपयोग करना नहीं, बल्कि database internals को समझने के लिए एक learning tool के रूप में इस्तेमाल करना है.

1 टिप्पणियां

 
GN⁺ 2023-08-14
Hacker News टिप्पणियाँ
  • एक नए RDBMS (Relational Database Management System) के बारे में पोस्ट, जो Python में शुरू से लिखा गया SQLite का एक क्लोन है।
  • Python भाषा को डेटाबेस में अक्सर इस्तेमाल होने वाली C++ या C जैसी भाषाओं की तुलना में उसकी readability और accessibility की वजह से चुना गया।
  • इस प्रोजेक्ट को डेटाबेस कैसे काम करते हैं, यह सीखने के लिए शैक्षिक और उपयोगी माना गया।
  • इसने इस बात में रुचि जगाई कि डेटाबेस इंजन distributed तरीके से कैसे काम कर सकता है।
  • SQLite को C# में फिर से लिखे गए एक समान प्रोजेक्ट का भी उल्लेख किया गया।
  • प्रोजेक्ट का उद्देश्य तेज़ चलना नहीं था, लेकिन तुलना के लिए benchmark देखने में रुचि है।
  • इस लेख ने पाठकों को Python की parser library Lark से परिचित कराया, जिसका उपयोग इस प्रोजेक्ट में किया गया।
  • इस प्रोजेक्ट को data structures और algorithms (DS&A) बेहतर सीखने का अच्छा तरीका माना गया, खासकर उन लोगों के लिए जिन्हें डेटाबेस और Python में रुचि है।
  • यह सवाल उठाया गया कि यह प्रोजेक्ट SQLite test suite का कितना हिस्सा पास कर सकता है, और क्या यह ACID (Atomicity, Consistency, Isolation, Durability) guarantees या query planning/optimization को support करता है।
  • Python का उपयोग करने वाले इस प्रोजेक्ट के फ़ायदे और सीमाओं को लेकर जिज्ञासा है, खासकर C++ की तुलना में low-level concurrency control और storage management को support करने के संदर्भ में।
  • प्रोजेक्ट के code की readability अच्छी होने और comments शानदार होने की प्रशंसा की गई।