项目简介
MiniSQL是一个基于CMU - 15445 BusTub框架改写的数据库系统,其目的是兼容原MiniSQL实验指导的要求。该项目在保留缓冲池、索引、记录模块核心设计理念的基础上,进行了修改和扩展,以支持持久化数据页分配回收状态。
项目的主要特性和功能
- Disk Manager模块:扩展了位图页和磁盘文件元数据页,支持持久化数据页的分配和回收状态。
- Record、Index和Catalog Manager模块:通过内存对象的序列化和反序列化来持久化数据。
- Parser层:扩展Parser层,支持输出语法树供Executor层调用。
- B + 树索引:实现B + 树数据结构存储键值对,提升数据检索速度。
- 缓冲池管理器:采用LRU替换策略管理内存缓冲区,高效访问磁盘数据。
- 执行引擎:具备创建、删除、显示、使用数据库,显示、创建、删除表,显示、创建、删除索引,选择、插入、删除、更新数据,以及事务开始、提交、回滚和退出等功能。
安装使用步骤
前提条件
假设用户已经下载了本项目的源码文件。
编译环境要求
- MacOS:Apple clang版本需为11.0+,使用
gcc --version
和g++ --version
查看。 - Linux:gcc和g++版本需为8.0+,使用
gcc --version
和g++ --version
查看。 - cmake版本需为3.20+,使用
cmake --version
查看。 - 可选:gdb版本需为7.0+,使用
gdb --version
查看。
构建项目
bash
mkdir build
cd build
cmake ..
make -j
运行测试
bash
./minisql_test
运行单个测试
bash
make lru_replacer_test
通过上述步骤,可成功编译并运行MiniSQL数据库系统,同时进行相应测试。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】