0

如何制作像 SQL 这样的数据操作语言,并实现类似的基本功能

insert, join, natural join 

我试图在网上搜索,但我没有得到任何合适的链接,我可以从哪里开始。大多数结果都用于制作 SQL 解析器。

所以我想问

  1. 制作 DML 背后的基本思想是什么?
  2. 我应该如何操作数据?
  3. 我应该使用哪种语言或平台来实现它?

如果可能,请在该领域发布任何过去作品的链接。

4

3 回答 3

2

您要查找的搜索词是relational algebrarelational calculus。我不想讲太多细节,因为这通常需要大约 6 周的时间才能涵盖在大学数据库课程中。

基本思想是 SQL 是一种“关系演算”,因为它描述了您想要实现的结果。DBMS 的工作是将其编译成“关系代数”,描述如何分析数据。

于 2013-10-12T19:41:53.200 回答
2

参考您问题的第 1 点和第 2 点:

我将从阅读 SQL 背后的一些理论开始。Chris Date 的书籍 ( http://en.wikipedia.org/wiki/Christopher_J._Date ) 是一个很好的起点。

第 3 点。

大概你必须学习这门语言。我会选择一些现代的东西,具有很好的高级构造,并且内置了字符串操作、Ruby、Python、C# 或 Java?

祝你好运。

于 2013-10-12T19:45:24.790 回答
1

您首先需要实现所有功能来执行基本操作,例如投影、过滤、连接、索引……一旦这个功能到位,您需要解析 SQL,创建一个 queryvexecution 计划,然后调用您的 API 来获取结果。这当然是一个非常粗略的描述。我建议阅读开源数据库代码和文档,例如 mysql。有关类似问题,请参阅Studying MySQL, SQLite source code 以了解 RDBMS 实现。另见 http://en.m.wikibooks.org/wiki/Design_of_Main_Memory_Database_System

于 2013-10-12T19:38:00.437 回答