图书借还书数据库设计.docx
- 文档编号:7311274
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:21
- 大小:1.04MB
图书借还书数据库设计.docx
《图书借还书数据库设计.docx》由会员分享,可在线阅读,更多相关《图书借还书数据库设计.docx(21页珍藏版)》请在冰点文库上搜索。
学号:
课程设计
题目
图书借还书数据库设计
学院
计算机科学与技术学院
专业
班级
姓名
指导教师
唐祖锴
2013
年
1
月
9
日
图书借还书数据库设计
1、图书馆借还书系统介绍
图书馆作为一个机构或组织的文化服务场所,提供了许多的文献检索与图书借阅功能。
而如今大量的文献有人工进行管理已经很不现实了,所以需要一个有效的管理系统来进行图书管理。
在图书管理系统中重点是实现图书的新增、修改、删除、借阅、归还,以及读者的管理、管理员的管理。
要考虑各个实体之间的联系,设计出数据冗余最小、范式级别尽可能高的和健壮性强的图书管理系统。
2、需求分析说明书
2.1数据库分析
通过对本校图书馆的图书管理系统的功能分析和实际调查,所设计的数据库系统包括以下几个数据库信息:
(1)管理员(adminstrator):
工作号、密码、姓名、性别、电话、住址、备注
(2)读者(reader):
学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码
(3)借还表(borrow):
学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数
(4)图书(book):
条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数
2.2数据库功能分析
各模块的功能取决于用户的身份,以管理员登陆具有以下功能:
(1)增加新书
(2)删除无用、过期图书
(3)增加、修改读者信息
(4)把图书借出给读者
(5)删除过期用户
(6)对图书逾期未换进行扣费
以用户账号登录具有以下权限:
(1)查看正在借阅的图书
(2)查看已经借阅过的图书
(3)具有一次续借权限
所有用户有以下权限:
(1)按不同条件查看图书信息
(2)查看借阅量前10名的图书
图书馆借阅的业务流程图见下:
借阅过程:
还书过程:
续借过程:
2.3数据字典
数据项
数据项名
数据类型
长度
值域范围
说明
工作号
字符型
20
不为空
密码
字符型
30
不为空
姓名
字符型
12
不为空
性别
字符型
1
男或女
联系电话
字符型
20
住址
字符型
50
备注
ntext
学号
字符型
20
不为空
姓名
字符型
12
不为空
性别
字符型
1
男或女
邮箱
字符型
30
联系电话
字符型
20
所在系
字符型
20
不为空
生效时间
时间型
失效时间
时间型
密码
字符型
30
不为空
条形码
字符型
20
不为空
索引号
字符型
16
不为空
书名
字符型
50
不为空
作者
字符型
12
不为空
出版社
字符型
30
出版日期
时间型
简介
字符型
200
入库日期
时间型
馆藏地址
字符型
50
是否在馆
字符型
1
借阅次数
整型
续借次数
整型
借书日期
时间型
应还日期
时间型
是否归还
字符型
1
归还日期
时间型
扣费
浮点型
数据结构
编号:
ID01名称:
读者别名:
简述:
读者的基本信息
组成:
学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码
编号:
ID02名称:
图书别名:
简述:
图书的基本信息
组成:
条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数
编号:
D03名称:
管理员别名:
简述:
管理员的基本信息
组成:
工作号、密码、姓名、性别、电话、住址、备注
编号:
ID04名称:
借还别名:
简述:
读者借阅图书生成的记录信息
组成:
学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数
数据流
编号:
F101名称:
读者相关信息别名:
简述:
读者的基本信息
组成:
ID01ID02ID03
若为数据流
来源:
读者相关信息
去向:
借阅处理
编号:
F102名称:
借阅相关信息别名:
简述:
借阅的基本信息
组成:
ID01ID02ID04
若为数据流
来源:
借阅信息
去向:
借阅处理
编号:
F103名称:
归还相关信息别名:
简述:
归还的基本信息
组成:
ID01ID02IDO4
若为数据流
来源:
借还相关信息
去向:
还书处理
数据存储
编号:
S1名称:
借还记录别名:
简述:
读者借书,续借,还书形成的记录
组成:
D01
关键字:
记录长度:
记录数:
数据量:
处理过程
编号:
P1名称:
借阅
输入信息:
读者信息,图书信息
数据存储:
图书记录
输出信息:
图书记录
简要说明:
读者借阅图书,输入读者信息和图书信息
编号:
P2名称:
续借
输入信息:
读者信息或图书信息
数据存储:
借书记录
输出信息:
借书记录
简要说明:
读者续借图书,输入读者信息或图书信息,由系统判断是否能够续借,每本书用户一旦续借只可续借一次
编号:
P3名称:
还书
输入信息:
图书信息
数据存储:
借书记录
输出信息:
借书记录
简要说明:
读者还书,输入图书信息判断是否超过期限,是否需要罚款,还书是否成功
编号:
P4名称:
是否允许借阅
输入信息:
借书记录,预约记录
数据存储:
借书记录
输出信息:
借书记录
简要说明:
读者确定要借的图书,由系统根据读者的借阅记录判断读者是否允许借阅
编号:
P5名称:
是否允许续借
输入信息:
借书记录
数据存储:
借书记录
输出信息:
借书记录:
简要说明:
读者所借图书是否能够续借
编号:
P6名称:
是否超过期限
输入信息:
借书记录
数据存储:
借书记录
输出信息:
借书记录
简要说明:
读者是借阅的图书是否超过了借书期限
编号:
P7名称:
罚款
输入信息:
借书记录
数据存储:
借书记录,罚款金额
输出信息:
借书记录
简要说明:
读者是借阅的图书超过了借书期限需要罚款
3、概念设计
E-R图
密码
姓名
管理员
读者
图书
借还
管理
管理
学号
所在系
联系电话
生效时间
失效时间
条形码
索引号
书名
出版日期
是否在馆
工作号
密码
姓名
扣费
借书日期
应还日期
借阅次数
4、逻辑结构设计
管理员(adminstrator):
工作号、密码、姓名、性别、电话、住址、备注
读者(reader):
学号、姓名、性别、联系电话、邮箱、所在院系、生效时间、失效时间、密码
借还表(borrow):
学号、条形码、借书日期、应还日期、续借次数、是否归还、归还日期、扣费、借阅次数
图书(book):
条形码、索引号、书名、作者、出版社、出版日期、简介、入库日期、馆藏地址、是否在馆、借阅次数、续借次数
说明:
下划线为主键,黑体字为外键
5、物理结构设计
管理员:
读者:
图书:
借阅:
6、系统主要查询功能及SQL语句
应用程序的界面及功能如下:
开始界面:
此界面是起始界面,没有用到任何数据源。
读者空间:
此界面是读者登录界面,数据源是reader,通过输入的“用户名”和“密码”与表中的“学号”和“密码”进行对比,如果匹配成功则可以进入读者用户界面,否则,提示用户名或密码输入错误。
当前正借阅的书:
此界面是读者用户界面,通过对borrow表进行检查,对已往借过的图书和正在阅读的图书进行分类,并且可以对正在借阅进行续借,但是续借是有条件的,一个用户借的每本图书只有一次续借的机会。
以往借过的书:
续借:
管理员空间:
采用多选项卡的界面:
管理员具有最多的权限。
管理员管理着图书、读者,可以对这些表的信息进行增、删、改操作,并进行硬件的管理。
硬件管理:
书目按多条件查询:
最受欢迎的图书:
重要的查询语句:
按照书名进行模糊查询:
select条形码,索引号,书名,作者,出版社,出版日期,简介,入库日期,馆藏地址,是否在馆,借阅次数,续借次数frombookwhere书名like'%"+textBox1.Text.ToString()+"%'"
查询借阅数量前10的图书:
selectdistinct书名,作者,book.条形码,索引号,馆藏地址,是否在馆,cs2.借阅总次数,cs2.续借总次数,cs2.总借阅次数
frombook,borrow,(selecttop10borrow.条形码as条码,sum(借阅次数)as借阅总次数,sum(续借次数)as续借总次数,sum(借阅次数)+sum(续借次数)as总借阅次数fromborrowgroupbyborrow.条形码orderby总借阅次数desc)cs2
wherecs2.条码=book.条形码andbook.条形码=cs2.条码
这句查询语句重点在于利用了topn来查询前n个数据。
这条语句涵盖了整个程序的重点查询,所以其他语句不再赘述。
7、总结
通过这次课程设计,加深了我对数据库知识的理解,提高了应用能力,也对C#语言的掌握更深了一步。
原来总是写一些控制台程序,也总是在与黑框程序打交道,最多涉及文本存储,没有涉及数据库的存储管理的程序,更不知道如何连接数据库。
通过这次一个星期的课程设计,我掌握了ADO.NET的基本应用,能够对数据库进行查找、增加和删除,对数据库的应用有了一定的了解,能够熟练的应用SQLSever等工具进行数据库创建和开发。
在开始进行这个系统的初步规划阶段,我对我们学校的图书馆管理系统进行了细致的观察,并结合平时自己使用图书馆网站的习惯,对这个系统的功能做了设计,我就是想要把网站做成单机版的应用程序,后来在进行数据库的建立过程中,我结合本校图书的管理模式进行了逻辑分析,后来决定用4个表对信息进行存储,在应用程序实现过程中,对单表的增、删、改操作没有出现太大问题,但是对多表进行操作时确实花了许多的精力,比如列出借书次数排名前10的图书的信息就设计borrow表、reader表,其中还用到groupby进行分类,再者,在C#中将SQL语句变成一串字符串,还涉及textBox,comoBox中的文字,对引号,空格的掌握实在有些繁琐。
后来在基本功能完成之后,在测试过程中发现每次这样输入图书编号、学号太麻烦,我又想到近期做的一个项目中用到RFID读写器,所以就在程序中加了硬件实现代码,把C语言实现的硬件代码进行了移植,后来发现能够很好地完成工作。
在这个系统中当然也存在一些问题需要没来得及解决,其中在调试过程中发现对时间类型的操作,比如在1月31日借的图书,在一个月后还,这个系统只是将月份加1,那么就到2月31日,把这个日期类型存到数据库就会出现问题,我已经初步想好了如何解决这个问题,采用最繁琐方法就是每个月份就行判断,1、3、5、7、8、10、12月是有31天的,闰年二月29天,准备采用一个switch语句进行处理,其中具体过程还没来得及在程序中反应,但我相信这个方法可以完成这个功能。
通过这个课设,我收获了新的知识,发现了自己不足,为以后更好更快地学习和发展奠定了基础。
科生课程设计成绩评定表
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
10
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
10
6
设计验收
10
总得分/等级
评语:
注:
最终成绩以五级分制记。
优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
2013年 1月 9日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 借还书 数据库 设计