作为个人项目,我一直在用C#开发自己的数据库软件。许多当前的数据库系统可以使用SQL命令进行查询。这里有没有人可以指出我在完全从头开始编写的数据库软件中实现这样一个系统的正确方向?例如,熟悉SQL的用户可以将语句作为字符串输入到应用程序中,该语句将由我的应用程序进行分析,并运行正确的查询。有没有人有这样的经历吗?这可能是一个非常不寻常的问题哈哈。基本上我要问的是,有哪些工具可以解析SQL语句,还是我必须从头开始编写自己的工具?
提前感谢您的帮助!
(我可能将我的一些东西转移到Python和Java,所以任何潜在的答案都不必限于C#)
另外:我没有使用任何当前的SQL数据库或类似的东西,我的系统完全是从头开始,我希望我的问题有道理。基本上我希望我的应用程序能够与发送SQL命令的程序进行交互。
答案 0 :(得分:3)
完整的数据库引擎是一项相当严肃的工作。下周你不会坐下来拥有一个完整的引擎,所以我想你会想要逐步编写SQL解析器:在解析器中添加功能,因为引擎支持这些功能。
我猜这只是一件有趣的事情,而不是你想尽快工作的事情。鉴于此,我认为编写SQL解析器是该项目的最佳位之一!我使用平面文件数据库引擎做了很多工作,因为查询所需的响应时间不允许使用RDBMS。最令人愉快的一点就是在例如SQL片段中添加对SQL片段的支持。用户界面,响应时间不是那么重要。
我所使用的实现是简单的旧C,但实际上从我所看到的,大多数关系数据库仍然主要用C编写。并且有一些令人满意的用非常低级的语言编写这些东西:)