项目简介
MiniSQL是一个基于C++编写的数据库管理系统,提供轻量级的SQL解析与执行引擎。该项目参考了CMU - 15445 BusTub框架,并加以修改和扩展,以兼容原MiniSQL实验指导的要求。支持缓冲池管理、索引管理、记录管理等功能,同时提供持久化数据页分配回收状态的支持。
项目的主要特性和功能
- 缓冲池管理:实现数据库文件页面的缓存管理,可对硬盘页面进行读取和写回操作。
- 索引管理:支持B+树索引,具备高效的插入、删除、查找和迭代遍历操作。
- 记录管理:支持表的创建、删除、插入、更新和查询操作。
- 元数据管理:实现Catalog Manager,用于管理数据库对象(如表格和索引)的元数据。
- 并发控制:提供锁管理器,支持事务的并发访问控制。
- SQL解析与执行:支持SELECT、INSERT、DELETE、UPDATE等SQL语句的解析和执行。
安装使用步骤
编译&开发环境
- 操作系统:MacOS或Linux
- 编译器:Apple clang version 11.0+ 或 gcc & g++ 8.0+
- 构建工具:cmake 3.20+
- 调试工具:gdb 7.0+(可选)
- 其他工具:flex & bison(可选,用于SQL编译器的语法修改)
构建步骤
Windows
目前代码暂不支持在Windows平台编译。在Win10及以上系统中,可安装WSL(Windows的Linux子系统)进行开发和构建,推荐选择Ubuntu20及以上子系统。若使用Clion作为IDE,可在Clion中配置WSL进行调试。
MacOS & Linux & WSL
基本构建命令:
bash
mkdir build
cd build
cmake ..
make -j
若不涉及CMakeLists
相关文件变动且无新增或删除.cpp
代码,只需直接执行make -j
编译。
默认以debug
模式编译,若需使用release
模式编译:
bash
cmake -DCMAKE_BUILD_TYPE=Release ..
测试
构建后,默认在build/test
目录下生成minisql_test
可执行文件,通过./minisql_test
运行所有测试。
若需运行单个测试,如运行lru_replacer_test.cpp
对应的测试文件,可使用make lru_replacer_test
命令构建。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】