项目简介
RucBase数据库管理系统基于C++语言开发,具备数据库管理、表管理、索引管理、事务管理、并发控制、日志管理和缓冲池管理等功能,能够满足数据库的创建、删除、操作以及事务处理、并发控制等需求。
项目的主要特性和功能
1. 数据库管理
支持创建、删除、打开和关闭数据库目录,同时在打开时加载元数据,关闭时清理资源。
2. 表管理
可创建、删除表,显示当前数据库的所有表名,描述指定表的结构信息,包括字段名、类型和是否索引。
3. 索引管理
支持在指定表的指定列上创建和删除索引,并处理相关索引文件。
4. 事务管理
能够开始新事务、提交事务操作或终止事务并回滚操作。
5. 并发控制
提供行级和表级的共享锁、独占锁以及意向锁,具备死锁预防机制。
6. 日志管理
记录数据库操作日志用于恢复和审计,支持从日志中恢复数据库状态。
7. 缓冲池管理
支持页面的读取、写入、分配和释放,具备LRU和Clock替换策略。
安装使用步骤
1. 环境准备
- 操作系统:Ubuntu 18.04 及以上(64位)
- 编译器:GCC
- 编程语言:C++17
- 管理工具:cmake
- 推荐编辑器:VScode
2. 依赖环境库配置
- gcc 7.1及以上版本(要求完全支持C++17)
- cmake 3.16及以上版本
- flex
- bison
- readline
3. 编译和运行
- 复制项目代码到本地。
- 进入项目目录:
bash cd rucbase
- 创建构建目录并进入:
bash mkdir build cd build
- 使用cmake生成构建文件:
bash cmake ..
- 编译项目:
bash make
- 运行数据库系统:
bash ./rucbase
4. 使用示例
- 创建数据库:
sql CREATE DATABASE mydb;
- 打开数据库:
sql USE mydb;
- 创建表:
sql CREATE TABLE mytable (id INT, name VARCHAR(255));
- 插入数据:
sql INSERT INTO mytable (id, name) VALUES (1, 'Alice');
- 查询数据:
sql SELECT * FROM mytable;
- 删除表:
sql DROP TABLE mytable;
- 删除数据库:
sql DROP DATABASE mydb;
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】