Skip to content

Repository files navigation

RUCBase

RUCBase :面向数据库系统课程的教学型关系数据库管理系统

RUCBase CI License: MulanPSL-2.0 C++20

快速开始 · 文档导航 · 课程实验 · 参与开发

项目简介

RUCBase 是由中国人民大学卢卫教授带领数据库教学团队开发的一款教学用数据库管理系统,配套教育部“101计划”计算机核心教材《数据库管理系统原理与实现》建设,主要面向数据库系统课程初学者,为本科数据库系统课程的实验教学提供支撑。

RUCBase 的系统框架参考并借鉴了 CMU 15-445 课程的 BusTub 和 Stanford CS346 课程的 RedBase。目前,中国人民大学、哈尔滨工业大学、华中科技大学、西北工业大学、西安电子科技大学等高校已使用 RUCBase 开展数据库内核相关实验教学。

从这里开始

目的 文档
查看全部文档 文档导航
配置、编译、运行和测试 RUCBase 使用文档
了解系统模块和目录结构 RUCBase 项目结构
修改或扩展框架代码 RUCBase 开发文档
了解客户端通信协议 RUCBase 通信协议

快速开始

推荐使用仓库提供的课程 Docker 环境。手工配置时建议使用 Ubuntu 24.04 LTS、GCC 11+ 或 Clang 14+、CMake 3.22+。

git clone --recursive https://github.com/ruc-deke/rucbase-lab.git
cd rucbase-lab
cmake --preset debug
cmake --build --preset debug-client -j 4

启动服务端:

cd build/debug
./bin/rmdb -p 8765 demo

在另一个终端启动客户端:

cd build/debug
./bin/rucbase_client -p 8765

完整环境说明、测试命令和常见问题见 RUCBase 使用文档

课程实验

课程教学中,建议按照实验顺序逐步完成各模块,并避免提前修改后续实验涉及的框架代码。

实验 主题 文档
Lab 1 磁盘、缓冲池和记录管理 存储管理
Lab 2 B+ 树索引 索引管理
Lab 3 元数据、DDL 和查询执行 查询执行
Lab 4 事务、锁和并发控制 并发控制

主要目录

src/                  数据库内核、服务端和测试
rucbase_client/       课程客户端
docs/                 使用、开发、项目结构和实验文档
docker/               课程开发镜像

许可

RUCBase 项目源码按 MulanPSL-2.0 发布。GoogleTest 等第三方组件及生成代码仍受其各自许可证约束。

About

RUC Educational Database Project open lab

Topics

Resources

Stars

249 stars

Watchers

7 watching

Forks

Contributors

Languages