当前位置: 首页 > 面试题库 >

如何编写一个简单的数据库引擎

公羊嘉
2023-03-14
问题内容

我对学习数据库引擎的工作方式(即它的内部)感兴趣。我知道CS中讲授的大多数基本数据结构(树,哈希表,列表等),以及对编译器理论的很好理解(并实现了一个非常简单的解释器),但我不知道该怎么做关于编写数据库引擎。我已经搜索了有关该主题的教程,但找不到任何教程,因此我希望其他人可以向我指出正确的方向。基本上,我想了解以下信息:

  • 数据如何在内部存储(即表的表示方式等)
  • 引擎如何查找所需的数据(例如,运行SELECT查询)
  • 如何以快速有效的方式插入数据

以及与此相关的任何其他主题。它不必是磁盘上的数据库,即使是内存数据库也可以(如果更简单),因为我只想学习它的原理。

非常感谢您的帮助。


问题答案:

如果您擅长阅读代码,那么学习SQLite将会教会您有关数据库设计的全部知识。它很小,所以缠头比较容易。但是它也是专业写的。

http://sqlite.org/



 类似资料:
  • 问题内容: 我一直在努力写两个管道函数,一个可以编译较少的文件,另一个可以合并这些文件。我想学习如何为更复杂的插件编写转换流/管道。 因此,我想知道如何从另一个管道读取数据,以及如何更改该数据并将其发送到下一个管道。这是我到目前为止的内容: 我无法在第二个管道中获得每个文件的。如何发送? 问题答案: 嗯,您不需要在这里使用,您已经获得了文件流(在此处)。 还有一点,您没有将文件发送回管道,所以我想

  • 问题内容: 我正在寻找一个简单的功能,可以从instagram评论中删除表情符号字符。我现在已经尝试过的内容(带有在SO和其他网站上找到的示例中的许多代码): 任何帮助,将不胜感激 问题答案: 我认为preg_replace函数是最简单的解决方案。 正如EaterOfCode所建议的那样,由于没有SO(或其他网站)答案似乎适用于Instagram照片标题(API返回格式),因此我阅读了Wiki页并

  • 我想模拟一个学生,老师,班级的关系。每个学生都和一个老师联系在一起(老师可以有很多学生)。只有三个班级。我认为这是三个表格: 学生桌- 教师桌 - 班级表- 我不确定如何在表格中显示师生关系。我们怎么知道哪个老师被分配给哪个学生呢?

  • 如何写一个简单的公平锁模拟新的? 自定义不公平锁(我不确定它是否正确)

  • 问题内容: 我想编写以下功能,该功能应在Excel工作表中使用: …这将通过ODBC在内部连接到SQL数据库,然后在其中执行 并将返回结果值作为函数GetRecField的结果。上面的SQL被授权仅返回一个记录(IOW KEY_FIELD具有唯一约束)。 当然,上面的函数可以在工作表中多次调用,所以请尽量避免盲目 TIA。 问题答案: 您可以编写一个自定义函数来做到这一点 打开VBA编辑器(ALT

  • This section is intended as a walkthrough for the creation of custom extensions. It covers the basics of writing and activating an extensions, as well as commonly used features of extensions. As an ex