图书馆管理信息系统.docx
《图书馆管理信息系统.docx》由会员分享,可在线阅读,更多相关《图书馆管理信息系统.docx(72页珍藏版)》请在冰豆网上搜索。
图书馆管理信息系统
图书馆管理信息系统
作者:
赵汝丹
广东工业大学
经济管理学院
信息管理与信息系统专业
地址:
中国广东省广州市东风东路729号
邮编:
510090
文摘
在当今信息时代,图书馆管理信息系统是利用java技术基于网上的适用于各种图书馆服务的系统。
它能提高图书馆的竞争能力,使得藏书与服务台分离,提供图书馆的藏书量。
另外,图书馆管理信息系统能迎合各种读书爱好者的需要,使得图书馆管理员操作更方便。
关键字:
JAVA,JSP,图书馆,管理信息系统
LIBRARYMANAGEMENTINFORMATIONSYSTEM
DEVELOPER:
ZHAORUDAN
IM&ISEconomicCollegeGuangdongUniversityofTechnology
NO.729,EastDongfengRoad,GuangzhouCity,P.R.CHINA
(519000)
Abstract
Thelibrarymanagementinformationsystemisaprojectforvariesoflibraryservicesinwebbaseusingjavatechnologyintheinformationtime.Itcanenhancethecompetitivenessandtopromotethecontentofbooks.Thelibrarymanagementinformationsystemwillcatertotheneedsofitspeopleandmakemoreconveniencetothelibraryassistants.
Keywords:
JAVA,JSP,Library,managementinformationsystem
目录
前言5
1.综述6
2.系统分析7
2.1用户需求7
2.2可行性研究7
2.2.1从技术层面上的可行性7
2.2.2经济层面上的可行性7
2.2.3从社会层面上的可行性7
2.2现状调查7
2.3.1图书馆管理信息系统环境图7
2.3.2业务流程概况8
2.3目标分析11
2.4.1数据存储初始分析11
2.4.2业务流程改进15
2.4.3新系统的数据流程为19
2.4.4系统的初始的功能层次图21
3.系统设计22
3.1总体设计22
3.1.1一般关系模型设计22
3.1.2处理功能总体结构设计:
23
3.2详细设计24
3.2.1系统代码设计24
3.2.2系统平台具体设计26
3.2.3数据库结构的具体设计26
4.系统实现30
4.1系统平台的实现30
4.1.1系统运行环境:
30
4.1.2环境变量的设置30
4.1.3数据库表结构(SQL源模式)31
5.系统运行37
5.1系统操作说明及其运行情况:
37
5.1.1输入模块设计37
5.1.2输出模块设计40
5.1.3接口模块设计41
5.1.4机内模块设计43
5.1.5人工模块设计53
5.2系统特点61
5.2.1系统的先进性61
5.2.2系统的经济性61
5.2.3系统的灵活性61
5.2.4系统的开放性61
5.2.5系统的可扩展性61
结束语63
主要参考文献64
谢词65
前言
传统的图书馆需要制作有署名与对应编号的书卡,由读者按分类查找再交由图书管理员来处理借书工作,还书也要人工翻阅大量的记录,这样使得工作量大并及其繁琐,效率变得低下。
建立网上电子图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,方便读者查阅所需的图书,还可以利用网络实现预约图书,提醒读者还书的功能。
管理员还可以对各种图书进行分析统计,对过时、损坏的图书进行删除,预约图书供应商订购更新的图书。
达到降低成本提高工作效率的目标。
1.综述
1994年,一个名叫杰夫贝索斯(JeffBezos)的年轻人迷上了迅速发展的互联网,当时他还只是个财务分析师兼基金管理员。
他列出了20种可能在互联网上畅销的产品。
通过认真的分析,他知道图书属于低价商品,易于运输,而且很多顾客在买书时不要求当面检查一下。
所以,如果促销有力,就能够使顾客冲动购买图书。
每时每刻,全球都有400多万种图书正在印刷,即使是最大的书店也不可能库存有20多万种图书。
这样,网上图书馆或者网上书店的在线销售的战略机会就应运而生。
2.系统分析
2.1用户需求
在现金信息化发达的社会,图书的发行量与日俱增。
由人手进行登记管理图书是一项非常繁重的工作。
要提高工作效率,我们可以引入信息技术,从而减轻人手负担,降低成本,给用户带来方便。
2.2可行性研究
2.2.1从技术层面上的可行性
(1)如果不采用电子图书馆系统,图书的登记与组织分类将随着图书数量的增加而变得难以应付,借/还手续的时间拖长,因为管理员每次都要查阅大量得记录并进行登记。
(2)在技术上的可行性方面,可以利用互联网,租用服务器或者自够的方式,内部网络构建也是十分方便和容易的。
(3)现在互联网的发展迅速,可以通过三层客户机/服务器的模式实现庞大的数据存储与处理,方便快捷,读者也可以在家中轻松预约图书,无须每次都要亲自来到图书馆询问。
2.2.2经济层面上的可行性
(1)若还停留在人工处理的阶段,会加重人员的负担增加人手的开支。
(2)投入的人力可大大减少,网络布置投资不大,接入互联网非常便利。
(3)虽然一次性投资较大,从长远角度来看,其投资回收期较短,之后增加的投资会逐渐减少。
2.2.3从社会层面上的可行性
(1)世界的图书数量增机的速度惊人,若还是人手管理很难与时俱进。
(2)开发该系统界面清晰,人员很快可以进行熟练的操作,培训期短,由机器进行数据处理可以减少人手出错的机会。
(3)能满足读者对各类图书的需求,在互联网上可以吸引各类潜在客户,能节省大量的广告开销。
2.2现状调查
2.3.1图书馆管理信息系统环境图
2.3.2业务流程概况
(1)业务流程分析简述如下
A.借书管理:
接受读者交来的图书编号和借阅证,审查,已借满限额图书数量的或有过期图书未还的不予受理,无上述情况则到书库查找对应图书编号的图书,若无则归还借书证,有则借出并修改该读者的借阅情况与图书馆库存情况。
B.还书管理:
接受读者叫来的图书与借阅证,查找对应借阅记录,若无过期还书则修改借阅情况与藏书情况,若过期还书,则按一定的公式计算要求读者缴交一定的罚款,方可办理还书手续。
C.进书管理:
定期与图书供应商联系,接收图书供应商的新图书,给新图书编号,修改图书库存情况,增加新图书编号与名称的供读者查阅的卡片。
(2)其现状业务流程图如下
(3)数据流程图
2.3目标分析
2.4.1数据存储初始分析
由现状业务流程图,我们分析得出要长期存储的基本项如下:
(1)用户:
编号,用户类型,姓名,性别,出生日期,电子邮箱,证件号,地址,邮编,职业,联系电话,总限额图书数,总可借图书数。
(2)图书:
图书编号,命名书号,种类,科目,媒体,语言,书名,简要说明,作者,关键字,供应商,国际标准书号,长度,发行日期,总数量,总预约数,可借阅数,已借出数
(3)借/还书记录:
借/还记录号,书号,借书员编号,还书员编号,读者编号,读者邮箱,借书日期,过期日期,还书日期,借书性质
(4)罚款记录:
罚款记录号,借书记录号,读者编号,过期时间,罚款金额
(5)预约记录:
预约记录号,命名书号,预约者编号,预约者邮箱,预约时间,预约取消时间,预约通知时间,预约状态。
(6)由此分析可得初步ERD:
(见下页)
(7)一般关系模型为
1.读者
编号
姓名
性别
出生日期
电子邮箱
证件号
地址
邮编
职业
联系电话
总限额图书数
可借图书数
主键
2.图书管理员
管理员编号
姓名
密码
进入级别
主键
3.图书出版商
图书出版商编号
出版商名
出版商地址
主键
4.图书管藏书
命名书号
主属科目
附属科目
书名
媒体
语言
简要说明
关键字
作者
发行商
国际标准书号
发行日期
数量
长度
总预约数
可借阅数
已借出数
主键
5.图书
图书编号
命名书号
图书属性
主键
6.借/还书记录
编号
书号
借/还书员编号
读者编号
读者邮箱
借书日期
到期日期
还书日期
借书状态
外键
外键
外键
主键
7.罚款记录
编号
借书记录编号
读者编号
过期日数
罚款金额
外键
外键
主键
8.预约记录
编号
命名书号
预约者编号
预约者邮箱
预约时间
取消时间
预约通知时间
预约状态
外键
外键
主键
由现状业务流程图与各层次的数据流程图得出,图书馆管理员的工作非常繁重,每项作业都必须经受处理并进行数据记录,容易出错。
因此我们引入信息管理技术进行数据存储,由读者自己处理部分作业流程,减轻管理员的工作负担、降低成本与方便读者。
2.4.2业务流程改进
根据构思ERD的四条原则得出以上得ERD和根据由ERD导出一般关系模型图型的原则列出了如上的数据存储初步构思。
综合分析,进行业务流程改进,得出如下的业务流程图:
2.4.3新系统的数据流程为
2.4.4系统的初始的功能层次图
3.系统设计
3.1总体设计
3.1.1一般关系模型设计
根据构思ERD的四条原则和导出一般关系模型的四条原则,使其符合BCNF或3NF。
因此将上述的一般关系模型修改为以下模式:
将读者、图书管理员、出版商合成一个用户表。
另外将图书、图书管藏书合成图书一个表。
具体如下:
1.用户
编号
所属类型
姓名
性别
出生日期
电子邮箱
证件号
地址
邮编
职业
联系电话
总限额图书数
可借图书数
主键
主键
主键
2.图书
编号
命名书号
种类
科目
书名
媒体
语言
简要说明
关键字
作者
发行商
国际标准书号
发行日期
数量
长度
总预约数
可借阅数
已借出数
主键
3.借/还书记录
编号
书号
借/还书员编号
读者编号
读者邮箱
借书日期
到期日期
还书日期
借书状态
外键
外键
外键
主键
4.罚款记录
编号
借书记录编号
读者编号
过期日数
罚款金额
外键
外键
主键
5.预约记录
编号
命名书号
预约者编号
预约者邮箱
预约时间
取消时间
预约通知时间
预约状态
外键
外键
主键
3.1.2处理功能总体结构设计:
信息管理系统的数据流图有两种典型类型,即线状数据流图和束状数据流图,复杂系统的数据流图通常识这两种类型数据流图的组合。
对这两种数据流图可以分别用变换分析技术和事务分析技术导出模块结构图。
本图书管理系统由DFD导出的初始模块结构图如下
3.1.3系统平台的总体结构设计:
这个系统采用应用在设计N-层模式的MSF(MicrosoftSolutionFramework)应用模型,图书馆系统的基础页面即操作平台采用HTML和JSP语言设计,后台数据库则采用MYSQL数据库。
为了调试方便,本系统采用了可以单机运行的数据库MYSQL,但也可以适用于三层客户机/服务模式:
3.2详细设计
3.2.1系统代码设计
各个功能的详细代码请见系统光碟,在此仅列出计算过期借书记录的数目和用户登录的不同类型所选择的菜单的程序代码作为说明。
(1)计算过期借书记录的数目和已经可接触的预约书的数目,以通知的形式显示
query="SELECTcount(*)FROM`borrowrec`whereborrowStatus='overdue'andborrowerID='"+login.getUserID()+"'";
try{
Connectionconnection=connectionPool.getConnection();
myResultSet=DatabaseUtilities.getQueryResultSet(connection,query,false);
connectionPool.free(connection);
}catch(Exceptione){
errorMsg="错误:
"+e;
}
if(myResultSet!
=null){
try{
while(myResultSet.next()){
numberOfOverDueRec=Integer.parseInt(myResultSet.getString("count(*)"));
}
}catch(SQLExceptionsqle){
System.err.println("连接错误:
"+sqle);
}
}
query="SELECTcount(*)FROM`reserverec`wherereserveStatus='available'andreserverID='"+login.getUserID()+"'";
try{
Connectionconnection=connectionPool.getConnection();
myResultSet=DatabaseUtilities.getQueryResultSet(connection,query,false);
connectionPool.free(connection);
}catch(Exceptione){
errorMsg="错误:
"+e;
}
if(myResultSet!
=null){
try{
while(myResultSet.next()){
numberOfReserveAvailable=Integer.parseInt(myResultSet.getString("count(*)"));
}
}catch(SQLExceptionsqle){
System.err.println("连接错误:
"+sqle);
}
}
if((numberOfOverDueRec!
=0)||(numberOfReserveAvailable!
=0)){
out.println("
");
}
%>
(2)根据用户登录的类型,显示不同的菜单
<%
if((login.isUserLogin())){
if((staff.getUserType().equals("admin"))){
%>includepage="../common/header_admin.jsp"flush="true"/>
<%}elseif((staff.getUserType().equals("librarian"))){
%>includepage="../common/header_librarian.jsp"flush="true"/>
<%}else{
%>includepage="../common/header_borrower.jsp"flush="true"/>
<%}
}else{
%>includepage="../common/header_normal.jsp"flush="true"/>
<%
}
%>
3.2.2系统平台具体设计
1.网络的具体布局
2.主控菜单设计
登录
管理(读者模式没有)
搜索
操作
我的帐户
用户记录
借书
查询我的帐户
图书馆藏书记录
还书
我的借书记录
借书记录
添加预约
预约记录
我的预约记录
罚款记录
3.2.3数据库结构的具体设计
(1)数据项表
1.预约记录
编号
字段
类型
长度
Null
定义
备注
YK40
reserveRecNumber
Int
10
No
自动生成
YK23
itemCallNumber
Varchar
20
No
图书编号
YK02
reserverID
Varchar
10
No
0
读者编号
YK08
reserverEmail
Varchar
50
No
读者e-mail
YK41
reserveDate
Date
8
No
0000-00-00
预约日期
YK42
reserveCancelDate
Date
8
No
0000-00-00
预约取消时间
YK43
reserveInformDate
Date
8
Yes
0000-00-00
预约通知时间
YK44
reserveStatus
varchar
10
No
预约状态
2.图书
编号
字段
类型
长度
Null
定义
备注
YK22
itemRecNumber
Int
11
No
自动生成
YK23
itemCallNumber
Varchar
20
No
图书编号
YK24
itemCategory
Varchar
40
No
种类
YK25
itemSubject
Varchar
40
No
科目
YK26
itemMediaType
Varchar
25
No
媒体类型
YK27
itemLanguage
Varchar
25
No
语言
YK28
itemTitle
Varchar
150
No
书名
YK29
itemBriefDesc
Varchar
200
Yes
NULL
简要说明
YK30
itemAuthor
Varchar
200
Yes
NULL
作者
YK31
itemKeyword
Varchar
100
No
关键字
YK32
itemPublisherName
Varchar
30
Yes
NULL
出版商名
YK33
itemISBN
Varchar
15
Yes
NULL
国际标准书号
YK34
itemLength
Varchar
6
Yes
NULL
长度
YK35
itemYear
Varchar
4
Yes
NULL
出版年
YK36
itemTotQuantity
Int
3
No
0
总数量
YK37
itemTotReserve
Int
3
No
0
总预约数
YK38
itemTotAvailable
Int
3
No
0
可借出数
YK39
itemTotBorrow
Int
3
No
0
已借出数
3.罚款记录
编号
字段
类型
长度
Null
定义
备注
YK50
penaltyRecNumber
int
10
No
自动生成
YK45
borrowRecNumber
Int
10
No
0
借书记录号
YK02
borrowerID
Varchar
10
No
读者编号
YK51
overdueDay
Int
10
No
0
过期日数
YK52
penaltyAmount
Decimal
10.2
No
0.00
罚款金额
4.用户
编号
字段
类型
长度
Null
定义
备注
YK01
userRecNumber
int
10
No
自动生成
YK02
userID
Varchar
10
No
用户编号
YK03
userPassword
Varchar
20
No
用户密码
YK04
userType
Varchar
10
No
读者
用户类型
YK05
UserFirstNam