数据库原理——图书馆管理系统

简介: 数据库原理——图书馆管理系统

1. 题目名称

图书馆管理系统


2. 题目简介

图书馆的图书管理如果需要人工管理则要耗费大量的人力物力。为提高图书馆管理的效率,现在建立图书馆管理系统。


本系统是面向学生和图书管理员两类用户开发的,用于对图书馆图书借阅与归还图书的管理。以账号和密码作为登陆依据。学生完成查看图书馆图书信息、查看自己借阅信息、借书和还书的功能。图书管理员完成修改图书信息和删除学生用户等功能。主要的功能如下:


用户登陆管理(查)

学生访问图书馆

图书管理员管理学生及用户

新用户注册


3. 需求分析

3.1 调查用户需求

客户的需求具体体现在各种信息的提供,保存,更新和查询。这就要求数据库的结构能充分满足各种信息的输入和输出。图书管理系统是基于学生借阅者,图书,管理员三者的满足三者的联系的系统,学生借阅者在该系统能方便查询,借阅书籍,图书信息应保存在该系统数据库中,管理员应方便管理学生与图书信息。现对各方面进行调查,需求如下:


借阅者:


在图书馆里,面对庞多的书籍,无法尽快找到自己所需要的书籍,也无法更具体了解图书馆图书的信息,该系统应可以满足借阅者对图书的各种查询功能。图书馆对书籍的借阅有一定限制:最多可以同时借阅几本,一本书的借阅时间,借阅期限,归还时间,更多时候,借阅者忘记了自己借阅某一本书的时间,想知道应该什么时候归还,还剩几天借阅时间,及仍可以借阅几本书籍。所以,该图书管理系统应可以满足这些条件,借阅者注册自己的账户,在该账户里,借阅者可以查询自己的具体借阅信息。


管理员:


对图书馆进行管理,主要包括对借阅者,图书的管理。


**对图书的管理:**应包括可以查询图书的信息(包括图书的种类,总数,每一种图书所包含的具体书籍,某书籍的信息,数量),查询图书的借阅情况(包括被借阅的书籍信息,借阅者的信息),当图书有变动时,还应有修改图书信息的权限。


**对借阅者的管理:**首先,应可以满足对借阅者借阅信息的查询,包括借阅者借阅的书籍,借阅的时间,应归还的时间等;其次,当借阅者存在借书不还的情况是,应可以查询到借阅这得个人信息,包括姓名,年纪,所属学院专业等。


3.2 数据库基本情况说明

图书管理系统数据库Library_Management由四个实体:借阅者实体,图书实体,管理员实体,图书种类实体组成,共六个表如下:


图书表:主要包括图书的信息,包括图书的id,书名,图书的种类,作者,出版社,数量。

图书借阅表:主要包括图书的借阅信息,包括所有的借阅图书,该图书信息,借阅者信息,借阅时间,剩余数量。

借阅者信息表:包括借阅者分别所借阅的书籍名字,书籍id,借阅者姓名,学号,年级,所属学院专业。

图书种类表:包括图书种类,种类数,每一种类分别所包含的书籍信息。

管理员:包括管理员的信息,姓名,账号id,教职工号。

图书归还表:主要包括图书的归还信息,包括所有的归还图书,归还时间,归还者信息。


3.3 系统功能设计和划分

**用户注册:**主要针对借阅者用户,借阅者用户需先注册账号,填写自己的个人信息,方便后期管理与信息检索。注册自己的账户之后,用户可登陆自己的账户进行借阅操作。


**借阅者登陆借阅:**借阅者登陆自己的账户之后,可进行查询操作,可查询自己的借阅信息,图书信息;可进行借书与还书。当用户借书后,系统先检索图书表确认有无该书,若有该书,则借阅成功,同时,图书表该书数量减一,借阅归还表增加该条借阅信息。


**管理员后台管理:**管理员可登陆自己的账户,进行信息的查询,删除,更改。查询图书的借阅归还表中的图书的借阅与归还信息,查询借阅者信息,查询图书信息,当增加图书时,可增加图书信息,当有意外情况时可删除图书信息,删除借阅归还表中的借阅信息,删除借阅者即用户信息。


3.4 数据字典

image.png

4. 概念模型设计

image.png


5. 逻辑结构设计

image.png


6. 数据库物理设计

image.png


7. 数据库实施

7.1 各表展示

图书表

image.png



学生表

image.png



图书种类表

image.png



管理员表

image.png



借阅表和归还表初始为空


7.2 查询

image.png


7.3 更新

学生借阅图书

image.png



变更后借阅表增加一条记录

image.png



管理员变更图书数量

image.png



变更前

image.png



变更后

image.png



7.4 删除

管理员删除学生

image.png

8. 设计总结

设计本数据库耗费了我们两个人大量的时间和精力。从刚开始的寻找课题到需求分析再到后面一系列的设计与数据库的实施和完善都需要两个人的通力合作。虽然我们一开始就做好了也项作业肯定是不容易的准备,可是还是没有想到会遇到那么多的困难。例如,需求分析时两人的意见不统一;数据库代码实现时不知道如何连接数据库等等许多问题。但是我们最后在合作的情况下终于克服了重重困难完成了数据库的设计与实施。至于我们两个人任务分工情况——基本的每个步骤都有共同参与。值得一提的是数据库VC访问的代码部分我们首次采用了工程的设计方式(以前设计程序都是直接全部放在一个源文件下)。采用工程设计更加方便我们的分工合作并且也让项目结构和逻辑更清晰。


对于我们本次设计的数据库,设计之初我们做了详细的讨论,仔细分析了需求并且在开始编写程序之前手绘了功能蓝图,这样让我们在进行设计数据库和编写程序时思路更清晰节省了大量的时间。这一点在以后课程学习中可以借鉴——首先要知道自己的目的,这样才能提高效率。同时我们深刻地理解了“1+1>2”的含义,每个的想法可能都有局限性,这个时间我们就需要和别人交流这样才能取得更好的效果。


虽然我们在这个图书馆管理系统上耗费了大量的心血,但是由于我们能力的有限和时间的仓促,因此它还是有很多不足的地方,例如在图书与学生多对多关系的处理上应该增加联系的属性来增强系统的可用性;在程序设计时应该考虑用户的实际使用体验增加GUI界面等等。


总之,完成这个数据库的设计让我们学习到了很多东西,同时也让我们认识到自己的不足和前进的方向。我们以后一定端正学习计算机的态度努力学习,争取为我国的计算机事业做一份贡献。


9. 部分核心代码展示

主函数

image.png 

登陆检查

image.png 

查询

image.png

更新

image.png

删除

image.png

相关文章
|
1月前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
50 5
Mysql(3)—数据库相关概念及工作原理
|
18天前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
34 2
|
19天前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
64 3
|
18天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
1月前
|
SQL 存储 关系型数据库
数据储存数据库管理系统(DBMS)
【10月更文挑战第11天】
88 3
|
1月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
31 2
|
1月前
|
安全 NoSQL 关系型数据库
阿里云数据库:构建高性能与安全的数据管理系统
在企业数字化转型过程中,数据库是支撑企业业务运转的核心。随着数据量的急剧增长和数据处理需求的不断增加,企业需要一个既能提供高性能又能保障数据安全的数据库解决方案。阿里云数据库产品为企业提供了一站式的数据管理服务,涵盖关系型、非关系型、内存数据库等多种类型,帮助企业构建高效的数据基础设施。
55 2
|
1月前
|
存储 NoSQL 关系型数据库
数据库管理系统
【10月更文挑战第8天】
58 1
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
31 5
|
1月前
|
SQL JSON 关系型数据库
MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
【10月更文挑战第3天】MySQL是一个广泛使用的开源关系型数据库管理系统,它有许多不同的版本
133 5