Skip to content

Latest commit

 

History

History
52 lines (33 loc) · 1.98 KB

数据库索引模块阶段报告.md

File metadata and controls

52 lines (33 loc) · 1.98 KB

数据库索引模块阶段报告

计64 范轩玮、计64刘佳阳

本阶段工作

索引功能

在IndexModule下的相关文件是本阶段工作的新增模块,包括B+树的实现以及管理索引的类IndexHandle。

引入GitHub上B+树的开源模块,其包括了B+树的核心功能,在其基础上实现对索引的相关操作。包括:

  1. 根据Column创建索引
  2. 根据Column删除索引
  3. 插入Record时,对于存在索引的行,在对应的索引文件里插入记录节点。
  4. 删除Record时,对于存在索引的行,在对应的索引文件里移除记录节点。
  5. 开启索引文件,建立B+树。
  6. 程序结束时,将B+树从内存写回文件。

目前尚未实现的功能包括给定条件查询返回相应的记录,现在我们仅支持打印全部记录以及顺序遍历,基于索引的查找待实现。

记录模块修改

修改并补完了记录模块缺失的一些功能,例如显示全部记录、更新记录等,并新增了一些在索引模块中需要的接口。相关修改文件在RecordModule下。

工程结构优化

以CMake取代原先的MakeFile作为编译工具,并借此重构了项目结构使其更为明晰,得到了更好的跨平台支持。编译方式同一般CMake方法,示例如下(以下操作基于库目录):

mkdir build
cd build
cmake ..
make
./main

待修复/改善的问题

1.增加文件动态存储的特性

当前代码中,当database目录下不存在相应的索引文件或数据库文件时不会动态创建文件,导致错误。我在本机上的丑陋调试方法是先手动建立好相应的文件,显然这不太合适,计划尽早修复。

2. 实现条件查找

本功能在此阶段并未调试完成,尽快修复。

下阶段计划

  1. 原先应该在下个阶段完成的任务
  2. 修复上述问题
  3. 开始集成SQL语句解析器,期望支持使用SQL语句调试而非硬编码。