项目验收流程

  1. 进行基本操作演示;
  2. 简要介绍整个系统的设计思路,若实现了额外的功能或是性能优化可以一并介绍,介绍的时候最好能够体现出整体系统设计的亮点之处;
  3. 模块提问抽查,针对一些实现细节做提问,考察项目是否是由小组独立完成的(可能会问得非常深入,请做好充分准备)

    基本操作示例

  4. 创建数据库db0db1db2,并列出所有的数据库

  5. db0数据库上创建数据表account,表的定义如下: ```sql create table account( id int, name char(16) unique, balance float, primary key(id) );

— Note: 在实现中自动为UNIQUE列建立B+树索引的情况下, — 这里的NAME列不加UNIQUE约束,UNIQUE约束将另行考察 ```

  1. 考察SQL执行以及数据插入操作:
    1. 执行数据库文件sql.txt,向表中插入#7 MiniSQL 项目验收流程 - 图1条记录(分次插入,每次插入#7 MiniSQL 项目验收流程 - 图2条)
      1. 参考SQL数据,由脚本自动生成:account00.txt
    2. 执行全表扫描select * from account,验证插入的数据是否正确(要求输出查询到#7 MiniSQL 项目验收流程 - 图3条记录)
  2. 考察点查询操作:
    1. select * from account where id = ?
    2. select * from account where balance = ?
    3. select * from account where name = "name56789",此处记录执行时间#7 MiniSQL 项目验收流程 - 图4
    4. select * from account where id <> ?
    5. select * from account where balance <> ?
    6. select * from account where name <> ?
  3. 考察多条件查询与投影操作:
    1. select id, name from account where balance >= ? and balance < ?
    2. select id, name, balance from account where balance > ? and id <= ?
  4. 考察唯一约束:
    1. insert into account values(?, ?, ?),提示PRIMARY KEY约束冲突或UNIQUE约束冲突
    2. create index idx01 on account(balance),提示只能在唯一键上建立索引
  5. 考察索引的创建删除操作、记录的删除操作以及索引的效果:
    1. create index idx01 on account(name)
    2. select * from account where name = "name56789",此处记录执行时间#7 MiniSQL 项目验收流程 - 图5,要求#7 MiniSQL 项目验收流程 - 图6
    3. select * from account where name = "name45678",此处记录执行时间#7 MiniSQL 项目验收流程 - 图7
    4. delete from account where name = "name45678"
    5. insert into account values(?, "name45678", ?)
    6. drop index idx01
    7. 执行(c)的语句,此处记录执行时间#7 MiniSQL 项目验收流程 - 图8,要求#7 MiniSQL 项目验收流程 - 图9
    8. 执行(b)的语句,此处记录执行时间#7 MiniSQL 项目验收流程 - 图10,要求#7 MiniSQL 项目验收流程 - 图11
  6. 考察删除操作:
    1. delete from account where balance = ?,并通过select操作验证记录被删除
    2. delete from account,并通过select操作验证全表被删除
    3. drop table account,并通过show tables验证该表被删除