Skip to content

Williams500/db_demo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HuaDB

HuaDB 为清华大学数据库内核课程的实验框架,实验说明可参阅课程文档,课程资料可在课程主页查阅。

编译与测试

运行如下命令进行编译:

make

你也可以通过设置 CMAKE_BUILD_PARALLEL_LEVEL 环境变量来并行编译:

CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) make

运行如下命令进入数据库交互界面:

make shell

代码结构

实验框架主要包含以下几个模块,加粗部分为实验中涉及到的、需要你来补充的模块:

  • binder: 语义解析模块
  • catalog: 系统表模块
  • common: 工具模块,包含字符串处理函数、异常相关类等
  • database: 数据库引擎
  • executors: 查询执行模块
  • log: 日志模块
  • operators: 查询计划树节点
  • optimizer: 优化器
  • planner: 查询计划生成模块
  • storage: 存储模块
  • table: 表相关类及函数
  • transaction: 事务模块

第三方库

本项目包含了如下第三方库代码:

  • fmt: 提供了类似 Python 的字符串插值功能,可以方便地将变量插入到字符串中
  • libfort: 用于在终端输出表格,提供了表格布局和样式设置的功能
  • libpg_query: 由 DuckDB 改写的支持 PostgreSQL 语法的解析器,用于查询解析
  • linenoise: 用于创建交互式命令行界面,简化了用户输入的处理和历史记录的管理

致谢

在 HuaDB 的设计和开发过程中,我们参考了如下优秀的开源数据库项目,对他们的工作表示感谢:

  • BusTub: The BusTub Relational Database Management System (Educational)
  • DuckDB: An in-process SQL OLAP Database Management System
  • PostgreSQL: The World's Most Advanced Open Source Relational Database

About

HuaDB数据库内核实验

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.7%
  • CMake 1.2%
  • Other 1.1%