littlebot
Published on 2025-04-07 / 0 Visits
0

【源码】基于C++和Google Test框架的OshinoDB数据库系统

项目简介

OshinoDB是一个基于关系模型(RMDB)开发的数据库系统,实现了增删改查、索引和故障恢复等基本功能。此项目是第一届数据库系统大赛的参赛作品,由“我推的数据库”队伍开发。

项目的主要特性和功能

  1. 支持数据的增删改查操作。
  2. 实现了B+树索引,支持高效的查询和数据插入。
  3. 通过日志管理器和恢复管理器实现故障恢复功能。
  4. 支持事务的开始、提交和回滚操作。
  5. 通过锁管理器实现行级和表级的共享锁和排他锁。
  6. 支持SQL语句的解析和执行,包括DDL和DML操作。
  7. 使用Google Test框架进行全面的单元测试,确保系统的稳定性和可靠性。

安装使用步骤

环境配置

  1. 依赖环境:
  2. GCC 7.1及以上版本(要求完全支持C++17)
  3. CMake 3.16及以上版本
  4. Flex
  5. Bison
  6. Readline
  7. 编译工具:
  8. 使用CMake进行项目构建。
  9. 确保所有依赖库已正确安装。

编译与运行

  1. 复制项目: bash cd oshinodb
  2. 构建项目: bash mkdir build cd build cmake .. make
  3. 运行数据库: bash ./rmdb
  4. 运行单元测试: bash ./unit_test

使用说明

  1. 启动数据库:运行编译后的rmdb可执行文件,启动数据库服务器。
  2. 连接客户端:使用rmdb_client连接到数据库服务器,进行数据操作。
  3. 执行SQL语句:在客户端中输入SQL语句,如创建表、插入数据、查询数据等。
  4. 事务管理:使用BEGINCOMMITROLLBACK命令进行事务管理。

示例操作

```sql -- 创建表 CREATE TABLE test (w_id INT, name CHAR(8), flo FLOAT);

-- 插入数据 INSERT INTO test (w_id, name, flo) VALUES (1, '12345678', 1.0);

-- 查询数据 SELECT * FROM test WHERE w_id = 1;

-- 开始事务 BEGIN;

-- 更新数据 UPDATE test SET flo = 2.0 WHERE w_id = 1;

-- 提交事务 COMMIT; ```

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】