Apache IoTDB
用户6993
添加快捷方式
分享
《数据库原理》2023春大作业要求
输入“/”快速插入内容
《数据库原理》2023春大作业要求
693
2178
💡
【2023-05-20更新】
同学们请注意,之前给出的ThssDB框架代码中有一处需要修改的地方。请同学们将
parser
/SQL.g4 文件的原第 75 行代码改为 K_SHOW K_TABLE tableName; 并删除原 50~52 行、原 30 行的 showMetaStmt 相关的定义和使用。
修改后注意重新执行 mvn clean package -DskipTests 进行编译。
【2023-06-15更新】
更新大作业提交说明
《数据库原理》ThssDB2023 作业提交说明
更新性能测试参数
《数据库原理》ThssDB-2023 测试样例及测试说明
1.
概述
本次大作业要求基于给出的 ThssDB 框架,根据作业要求,使用 Java 语言补充、实现、扩展并调优一个关系型
数据库管理系统
。本次大作业要求完成 ThssDB 的所有基本功能,并且能够在实现基本功能的基础上提高 ThssDB 在增删改查以及事务
并发
处理等方面的性能。同时,本次大作业要求在提交大作业代码的同时,提交 ThssDB 的设计文档和用户文档(含运行方式)。
2.
核心模块
2.1
元数据管理模块
在存储引擎的基础上,实现元数据管理
模块
。框架中的schema包定义了一些基本概念:
•
Table类:表的信息。一个Database可以有多张Table。
•
Database类:数据库的信息。用户可以创建多个Database。
•
Manager类:管理Database。
2.1.1
基础要求
1.
实现表的创建、删除;
2.
实现数据库的创建、删除、切换;
3.
实现表和数据库的元数据(有哪些数据库,数据库里有哪些表,每个表的结构如何)的持久化。
4.
重启数据库时从持久化的元数据中恢复系统信息。
5.
实现元数据管理模块后,ThssDB应当能够支持下列SQL语句(不区分大小写):
a.
创建数据库
代码块
SQL
create database dbName;
b.
删除数据库
代码块
SQL
drop database dbName;
c.
切换数据库
代码块
SQL
use dbName;
d.
创建表:
实现“NOT NULL”和“
PRIMARY
KEY”这两个关键字,Type为Int,Long,
Float
,Double,String(必须给出长度)之一。主键仅在某一列定义。
代码块
SQL
CREATE TABLE tableName(
attrName1 Type1,
attrName2 Type2,
attrNameN TypeN NOT NULL,
…,
PRIMARY
KEY(attrName1)
);
示例: CREATE TABLE person (name String(256), ID Int not null,
PRIMARY
KEY(ID))
e.
删除表:
删除某张表的模式信息
代码块
SQL
DROP TABLE tableName
;
f.
查找表:展示某张表的模式信息(每一列的名字及其数据类型,格式自定);
代码块
SQL
SHOW TABLE tableName
;
2.1.2
进阶要求
1.
外键
约束的实现
2.
实现表结构的修改(alter table)
a.
添加、删除、修改列
b.
添加、删除表上的约束