你需要实现一个(简化的)文件数据库。该数据库使用一种新的语言进行查询和操作(不使用 SQL 语句),例如可以传入 Type Sound 的 AST 进行数据查询等。
- 你首先需要给这个项目起一个名字,并且将项目仓库建在 https://github.com/SYSU-MSC-Studio 中
- 文件形式的存储:你设计的数据库最终需要将数据存储在硬盘上便于迁移,不能仅仅是停留在内存中的数据库。
- 基本操作语句:你的数据库至少需要实现以下方法
在表中插入一条数据
在表中更新一条数据
在表中删除一条数据
在表中查询数据
在数据库中新建一张表
在数据库中删除一张表
重命名数据库中的一张表
添加/删除/修改表的表列 - 基本算术表达式:你的数据库至少需要支持以下运算符
- 双目运算符:
+
: 加法运算
-
: 减法运算
*
: 乘法运算
/
: 除法运算
%
: 取余运算
&&
: 逻辑且运算
||
: 逻辑或运算
==
: 判等运算
!=
: 判非等运算
|
: 或运算
&
: 与运算 - 单目运算符:
~
: 非运算
!
: 逻辑非运算 - 括号运算符:
(
: 左括号
)
: 右括号
- 双目运算符:
- 基本函数:你的数据库至少需要支持以下函数/功能
取最小值
取最大值
计数
求和
按某一字段排序 - 高级功能(可选):
密码保护
用户/角色/权限控制
延时查询
分组查询
联表查询
外键 unique,nullable,default value 等
行锁/表锁机制
并发支持
以上没有提到的你想到的功能都可以尝试实现 - 可以尝试对性能进行优化
2019/6/16 进行成果展示 :) 定期 Checkpoint 汇报和 Schedule 制订,其余的自行安排吧
邱奕乔 李建谊 关雅雯 欧阳浩岚 侯少森 薛明淇 夏一溥 颜彬 瓜铭浩 张昊熹 邹雨桐 夏林瀚 李一宏
人数太多,建议分 2 组分别完成