如何制作像 SQL 这样的数据操作语言,并实现类似的基本功能
insert, join, natural join
我试图在网上搜索,但我没有得到任何合适的链接,我可以从哪里开始。大多数结果都用于制作 SQL 解析器。
所以我想问
- 制作 DML 背后的基本思想是什么?
- 我应该如何操作数据?
- 我应该使用哪种语言或平台来实现它?
如果可能,请在该领域发布任何过去作品的链接。
如何制作像 SQL 这样的数据操作语言,并实现类似的基本功能
insert, join, natural join
我试图在网上搜索,但我没有得到任何合适的链接,我可以从哪里开始。大多数结果都用于制作 SQL 解析器。
所以我想问
如果可能,请在该领域发布任何过去作品的链接。
您要查找的搜索词是relational algebra
和relational calculus
。我不想讲太多细节,因为这通常需要大约 6 周的时间才能涵盖在大学数据库课程中。
基本思想是 SQL 是一种“关系演算”,因为它描述了您想要实现的结果。DBMS 的工作是将其编译成“关系代数”,描述如何分析数据。
参考您问题的第 1 点和第 2 点:
我将从阅读 SQL 背后的一些理论开始。Chris Date 的书籍 ( http://en.wikipedia.org/wiki/Christopher_J._Date ) 是一个很好的起点。
第 3 点。
大概你必须学习这门语言。我会选择一些现代的东西,具有很好的高级构造,并且内置了字符串操作、Ruby、Python、C# 或 Java?
祝你好运。
您首先需要实现所有功能来执行基本操作,例如投影、过滤、连接、索引……一旦这个功能到位,您需要解析 SQL,创建一个 queryvexecution 计划,然后调用您的 API 来获取结果。这当然是一个非常粗略的描述。我建议阅读开源数据库代码和文档,例如 mysql。有关类似问题,请参阅Studying MySQL, SQLite source code 以了解 RDBMS 实现。另见 http://en.m.wikibooks.org/wiki/Design_of_Main_Memory_Database_System