项目简介
本项目是基于C++实现的TinyDB数据库系统,主要面向教学场景。采用简单的文件系统进行数据存储,借助B树实现索引,以此支持快速的查询操作,具备创建、查询、更新、删除等基础数据库操作功能。
项目的主要特性和功能
- 支持INT、FLOAT、VARCHAR、DATE等基本数据类型。
- 支持插入、删除、查询、更新等多种SQL语句。
- 采用Bison解析,能处理任意深度嵌套的算术与条件表达式。
- 实现COUNT、SUM、AVG、MIN和MAX五种聚集查询函数。
- 支持主键、外键、UNIQUE、NOT NULL、DEFAULT和CHECK等属性完整性约束。
- SELECT语句支持任意多表连接操作,且利用索引优化查询。
- 多表连接查询时支持使用表别名。
- 用文件系统管理数据库的表、索引等部分。
- 利用B树结构提高查询效率。
- 具备可处理查询、插入、更新、删除等操作的SQL解析器。
- 通过内存管理函数精确管理数据,防止内存泄漏。
- 推测支持事务处理以保证数据一致性和完整性。
安装使用步骤
编译及运行
- 在项目根目录下执行
make image
编译镜像。 - 执行
make build-dev
构建开发环境。 - 执行
make run
运行项目。
数据库操作
运行生成的二进制文件后,可通过命令行输入SQL语句进行数据库操作,也能使用testsql
目录下的sql文件进行测试。
功能测试
使用提供的测试脚本验证TinyDB的功能正确性。
注意事项
- 确保所有源代码文件完整且正确。
- 可能需安装网络库、数据库操作库等依赖库。
- 该系统为简化版数据库,性能可能不如商业数据库。
- 实际应用中可能需添加更完善的错误处理机制。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】