Skip to content

Latest commit

 

History

History
32 lines (27 loc) · 3.93 KB

README.md

File metadata and controls

32 lines (27 loc) · 3.93 KB

数据库课程设计

山东科技大学 数据库课程设计

得分:12.3/14

完成度:

  • 设计特定的数据结构,用于存储数据表、视图、索引三种数据库对象的元数据信息,建立数据库系统的数据字典;{表占0.5分,视图和索引占0.5分,要有存储文件对应}
  • 设计特定的数据结构,用于存储数据表中的数据;{要有存储文件对应}
  • 设计特定的数据结构,用于存储索引数据;{要有存储文件对应}
  • 设计特定的数据结构,分别用于存储用户和访问权限的信息;{用户的数据结构占0.5分,用户包含超级管理员和普通用户;权限的数据结构占0.5分,存储某用户对某数据库对象的某种访问权限;要有对应的存储文件}
  • 输入“help database”命令,输出所有数据表、视图和索引的信息,同时显示其对象类型;输入“help table 表名”命令,输出数据表中所有属性的详细信息;输入“help view 视图名”命令,输出视图的定义语句;输入“help index 索引名”命令,输出索引的详细信息;{4个各占0.25分}
  • 解析CREATE、SELECT、INSERT、DELETE、UPDATE等SQL语句的内容;检查SQL语句中的语法错误和语义错误;{5个各占0.2分}
  • 执行CREATE语句,创建数据表、视图、索引三种数据库对象;创建数据表时需要包含主码、外码、唯一性约束、非空约束等完整性约束的定义;{创建数据表0.5分,视图0.3分,索引0.2分;对于create table,要支持主码、外码、unique、null和not null、check约束,约束缺失扣除0.2分}
  • 执行SELECT语句,从自主设计的数据表中查询数据,并输出结果;在SELECT语句中需要支持GROUP BY、HAVING和ORDER BY子句,需要支持5种聚集函数;{单表查询占0.4分、连接查询占0.4分、嵌套查询占0.8分、集合查询占0.4分;where语句支持and、or、between and、in、like等谓词、支持分组功能和排序功能,简单的单表查询功能仅得0.2分} (1.5分)
  • 执行INSERT、DELETE和UPDATE语句,更新数据表的内容;更新过程中需要检查更新后的数据表是否会违反参照完整性约束。如果是,则提示违反哪一条完整性约束,并拒绝执行更新操作;如果否,提示数据表更新成功,并说明插入、删除或修改了几个元组。{insert语句占0.4分,update语句占0.4分,delete语句占0.2分,insert要实现单个元组的插入和元组集合的插入(带子查询),要检查实体完整性(唯一和非空),参照完整性约束和check约束,约束缺失扣除0.2分。 delete和update要支持where子句(and、or、between and、in、like),条件缺失和约束检查缺失扣除0.2分}
  • 当数据表的内容更新后,根据索引的定义,自动更新索引表的内容; {有存储索引节点的数据结构,有构造B+树的函数}
  • 在有索引的数据表上执行查询语句时,首先利用索引找到满足条件的元组指针,然后通过指针到数据表中取出相应的元组;
  • 执行GRANT语句,为用户授予对某数据库对象的SELECT、INSERT、DELETE、UPDATE等权限;执行REVOKE语句,收回上述权限;{grant和revoke各占0.5分}
  • 用户登录时,需要输入用户名;如果用户没有被授权,则拒绝执行用户查询或更新等操作,并给出提示信息;{有用户名和密码管理得0.5分;有权限管理得0.5分}
  • 将SELECT语句转化为关系代数表达式,再利用查询优化算法对关系代数表达式进行优化,输出优化后的关系代数表达式或SELECT语句。
1.索引的查询写的不完善
2.子查询和语法检错待优化
3.代码有点乱(一直在修修补补😅)
4.有几个功能只是把该模块写完了在用的时候直接调用就行(比如权限检查)
5.复杂查询代码写了没测。