littlebot
Published on 2025-04-10 / 1 Visits
0

【源码】基于C++的MiniSQL数据库管理系统

项目简介

MiniSQL是一个基于C++编写的数据库管理系统,提供轻量级的SQL解析与执行引擎。该项目参考了CMU - 15445 BusTub框架,并加以修改和扩展,以兼容原MiniSQL实验指导的要求。支持缓冲池管理、索引管理、记录管理等功能,同时提供持久化数据页分配回收状态的支持。

项目的主要特性和功能

  1. 缓冲池管理:实现数据库文件页面的缓存管理,可对硬盘页面进行读取和写回操作。
  2. 索引管理:支持B+树索引,具备高效的插入、删除、查找和迭代遍历操作。
  3. 记录管理:支持表的创建、删除、插入、更新和查询操作。
  4. 元数据管理:实现Catalog Manager,用于管理数据库对象(如表格和索引)的元数据。
  5. 并发控制:提供锁管理器,支持事务的并发访问控制。
  6. 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】