图书管理系统数据库设计实验报告

文章目录

  • 更新日志
  • 1.概述
  • 2.需求分析
    • 2.1需要实现的功能
    • 2.2业务流程图
      • 2.2.1学生流程图
      • 2.2.2管理员流程图
      • 2.2.3超级管理员流程图
    • 2.3功能需求分析
  • 3.数据字典
  • 4.概念模型
  • 5.数据模型
  • 6.建表代码与界面展示
    • 6.1表创建:
    • 6.2界面显示及服务端用到的查询代码:
      • 6.2.1登录界面
      • 6.2.2学生界面
      • 6.2.3管理员界面
      • 6.2.4超级管理员界面
      • 6.2.5修改密码与密保
  • 7.项目总结
    • 7.1数据库设计
    • 7.2程序客户端设计
    • 7.3程序服务端设计
    • 7.4 Bug调试
  • 8.使用的参考资料
  • 总结和源码下载
    • 源码地址:

更新日志

2020.7.11 修改了表的结构,表之间增加了外键联系,更加完整且符合第三范式。

数据库设计实验报告

1.概述

疫情期间,大家都只能够在家里,不能去到学校,此时需要在图书馆借书,就是只能通过网络来操作了。因此,网上图书馆就此诞生了,有了网上图书馆,学生通过网络来订阅图书是一件非常轻松的事情,只要在网上申请了书籍的借阅,管理员则可以通过快递把书籍寄给学生,并且学生在规定时间内再通过快递把书籍送还给学校图书馆。

本系统是一个针对学校的网上图书馆借还系统,通过网络,学生可以很轻松的查询某些书籍是否可以借到,并且还可以通过网络续借书籍。管理员可以通过该系统很容易的将书籍信息存储到数据库和查询学生的借还情况,并且通知那些逾期的学生尽快归还或者续借。超级管理员则对学生和管理员的信息进行修改,或者增加用户。用户必修用户名和密码相互匹配正确后才能登陆成功,然后在进行相应的操作。对于非法操作,该系统有识别作用。

2.需求分析

2.1需要实现的功能

  1. 登陆功能:登陆系统为身份验证登陆。分为学生登陆,管理员登陆,超级管理员登陆。不具备注册功能。

  2. 学生登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍并且预约书籍,查看已经借到的书籍的情况,还书的情况。

  3. 管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看书籍信息并且修改数据信息,添加书籍。查看学生的借还情况。

  4. 超级管理员登陆后:显示该用户的基本信息。可以修改密码,修改密保问题,查看,修改管理员的信息,添加新的管理员。添加用户学生,查看学生的情况。

  5. 修改密码:通过匹配密保问题的答案进行修改密码。

  6. 修改密保问题:通过匹配原密码进行修改密保问题。

  7. 预约书籍:查看书籍的具体信息后,可以对该书籍进行预约,预约到期时间1天后,如果一天后还没有借到该书籍,则自动取消预约。

  8. 查看借书情况:查看书籍的具体信息后,可以对该书籍进行续借,续借的有效时间是30天,只可以对同一书籍续借1次。

  9. 查看还书情况:查看书籍的具体信息后,可以对该书籍进行预约,预约和预约书籍功能一样。

  10. 修改书籍信息:查看书籍的具体信息后,可以对该书籍的信息进行修改。

  11. 增加书籍:增加书籍。

  12. 查看学生借还情况:查看学生的借还详细信息。

  13. 权限移交:只有超级管理员才有的功能。删除该管理员,新增加一个超级管理员。

  14. 增加管理员:增加一个新的管理员。

  15. 查看管理员信息:查看信息后,可以进行信息修改

  16. 查看学生信息:只能查看学生的信息,而不能进行修改

2.2业务流程图

2.2.1学生流程图

2.2.2管理员流程图

2.2.3超级管理员流程图

未命名文件 (2)

2.3功能需求分析

系统主要结构功能如下:

3.数据字典

名字:书籍信息表

描述:数据库中书籍信息表各字段的集合,包含编号,书名,作者,译者,出版社,库存,进货时间

名字:学生信息表

描述:数据库中学生信息表各字段的集合,包括学号,姓名,学院编号,性别,出生日期,身份证号码,手机号码

名字:学生账号信息

描述:数据库中学生账号信息表各字段的集合,包括学号,密码,密保问题,密保答案,剩余可以借次数

名字:学生预约

描述:数据库中学生预约表各字段的集合,包括学号,书籍编号,预约时间,到期时间

名字:学生借书

描述:数据库中学生借书表各字段的集合,包括学号,书籍编号,借书时间,到期时间

名字:学生还书

描述:数据库中学生还书表各字段的集合,包括学号,书籍编号,还书时间

名字:管理员信息

描述:数据库中管理员信息表各字段的集合,包括工号,名称,性别,手机号码,email,身份证号码

名字:管理员账号信息

描述:数据库中管理员账号信息表各字段的集合,包括工号,密码,密保问题,密保答案

名字:超级管理员信息

描述:数据库中超级管理员信息表各字段的集合,包括工号,姓名,性别,手机号码,身份证号码,email

名字:超级管理员账号信息

描述:数据库中超级管理员账号信息信息表各字段的集合,包括工号,密码,密保问题,密保答案

名字:用户信息

描述:数据库中账户信息以及账户类型,包括工号/学号,用户类型。

数据库关系图

4.概念模型

经过上述系统功能分析和需求总结,设计如下面所示的数据项和数据结构。

书籍表:存放书籍记录。包括编号,书名,作者,译者,出版社,库存,进货时间,分类

学生信息:存放学生信息。包括学号,姓名,班级编号,性别,出生日期,身份证号码,手机号码

学生账号信息:存放学生账号信息。包括学号,密码,密保问题,密保答案,剩余可以借的次数。

学生预约情况:学号,书籍编号,预约时间,预约到期时间

学生借书情况:学号,书籍编号,借书时间,借书到期时间

学生还书情况:学号,书籍编号,还书时间

管理员信息:存放管理员信息。包括工号,姓名,性别,手机号码,身份证号码,email。

管理员账号信息:工号,密码,密保问题,密保答案

超级管理员信息:工号,姓名,性别,手机号码,身份证号码,email

超级管理员账号信息:工号,密码,密保问题,密保答案

职工信息:工号/学号,职位

  1. R图:

书籍实体:

学生信息实体:

学生账号实体:

学生预约实体:

学生借书实体:

学生还书实体:

管理员信息实体:

管理员账号实体:

超级管理员信息实体:

超级管理员账号实体:

职工信息:

所有实体的联系:

5.数据模型

将E-R图转换成的关系模式如下:

书籍信息(编号,书名,作者,译者,出版社,库存,进货时间,分类)

学生信息(学号,姓名,校区编号,性别,出生日期,身份证号码,手机号码)

学生账号信息(学号,密码,密保问题,密保答案,剩余可以借次数)

学生预约(学号,书籍编号,预约时间,到期时间)

学生借书(学号,书籍编号,借书时间,到期时间)

学生还书(学号,书籍编号,还书时间)

管理员信息(工号,名称,性别,手机号码,email,身份证号码)

管理员账号信息(工号,密码,密保问题,密保答案)

超级管理员信息(工号,姓名,性别,手机号码,身份证号码,email)

超级管理员账号(工号,密码,密保问题,密保答案)

职工信息(工号/学号,职位)

6.建表代码与界面展示

6.1表创建:

(书籍表)create table book(Bno smallint primary key not null, Bname varchar(50) not null, Bauthor varchar(50) not null, Btranslator varchar(50), Bpublish varchar(50) not null, Bsort varchar(50) not null, BinTime date not null, Bstock smallint not null, Bacount int not null ) (学生信息表) create table studentimfornation ( Sno varchar(20) primary key not null, Sname varchar(20) not null, no smallint not null, Ssex nchar(1) not null, Sbirthday date , Sid varchar(20) not null, Sphone varchar(13), Sno foreign key references studentsacount(sno) ) (学生账号表) create table studentaccount ( sno varchar(20) primary key not null, Spassword varchar(18) not null, Squestion varchar(50) , Sanswer varchar(20), Sstats smallint not null, ) (学生预定表) create table studentorder ( sno varchar(20) primary key not null, bno smallint not null, sorder date not null, soverdue date not null, Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (学生借书表) create table studentborrow ( sno varchar(20) primary key not null, Bno smallint not null, Sborrow date not null, soverdue date not null Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (学生还书表) create table studentreturn ( sno varchar(20) primary key not null, bno smallint not null, sreturn date not null, Bno foreign key references book(Bno) Sno foreign key references studentacount(sno) ) (管理员信息表) create table admitinformation ( ano varchar(