图书馆管理信息系统分析、设计、实现与测试
1.1 系统分析
1.1.1图书馆管理信息系统的基本任务
该“图书馆管理信息系统”是一个具有万人以上的员工,并地理位置分布在大型企的图
书馆理系统,图书馆藏书 100 多万册,每天的借阅量近万册。在手工操作方式下,图书的编目和借阅等的工作量大,准确性低且不易修改维护,读者借书只能到图书馆手工方式查找书目,不能满足借阅需求。需要建立一套网络化的电子图书馆信息系统。
该图书馆管理信息系统服务对象有两部分人:注册用户和一般读者。一般读者经注册后成为注册用户,注册用户可以在图书馆借阅图书,其他人员只可查阅图书目录,但不能借阅图书。系统同时考虑提供电子读物服务,目前只提供电子读物的目录查询服务,不久的将来将提供电子读物全文服务。用户可通过网络方式访问读图书馆管理信息系统。
1.1.2系统内部人员结构、组织及用户情况分析
为了对系统有一个全貌性的了解,首先要对系统内部人员结构、组织及用户情况有所了
解。图书馆系统的组织结构如图 1 - 1 所示。
图 1 - 1 图书馆管理信息系统的组织结构
图书馆由馆长负责全面工作,下设办公室、财务室、采编室、学术论文室、图书借阅室、电子阅览室、期刊阅览室和技术支持室。各部门的业务职责如下。
办公室:办公室协助馆长负责日常工作,了解客户需求,制定采购计划。
财务室:财务室负责财务方面的工作。
采编室:采编室负责图书的采购,入库和图书编目,编目后的图书粘贴标签,并送图书借阅室上架。
学术论文室:负责学术论文的收集整理。
图书借阅室:提供对读者的书目查询服务和图书借阅服务。
电子阅览室:收集整理电子读物,准备提供电子读物的借阅服务,目前可以提供目录查询和借阅。
期刊阅览室:负责情况的收集整理和借阅。
技术支持室:负责对图书馆的网络和计算机系统提供技术支持。
1.1.3系统业务流程分析
系统的业务室系统要达到的业务目标,业务流程分析是系统分析的基础环节。图书馆管
理信息系统的业务流程如图 1 - 2 所示。
图 1 - 2 图书馆管理信息系统的业务流程
通过业务流程调查,理清图书馆管理系统的主要业务和业务的流程。
图书馆管理员编制图书采购计划,由采购员负责新书的采购工作。采购图书入库后,交采编室编目,粘贴标签,产生图书目录。图书交图书借阅室上架,供读者借阅。采编后的电子读物交电子阅览室。
读者分为注册读者和非注册读者,只有注册读者可以在本图书馆借书,非注册读者可查询目录但不能借书。读者填写注册登记表交图书馆的管理员审核后,记人读者登记表,成为注册读者,发给借书证。注册读者借书时,需填写借书单,连同借书证一起交给借阅室管理员,借阅管理员核对无误后,填写借阅登记表,修改图书登记表中该书的数量,上架取书交给读者。图书馆设读者信箱,读者需要但没有库存的图书,读者可以通过读者信箱反映。图书馆管理员定期处理读者信箱中的意见,将读者需要的图书编制成图书采购计划交采购员购买。
1.1.4数据流程图
数据流程图时全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务
处理过程联系起来。以下时图书馆管理信息系统地数据流程图。
1. 零层数据流程图 1 - 3
图 1 - 3 零层数据流程图
( 2 ) 1 层数据流程图 1 - 4
图 1 - 4 图书馆管理信息系统 1 层数据流程图
3.2 层数据流程图
图书馆管理信息系统的 2 层数据流程图有:图书采编系统数据流程图、图书借阅系统数
据流程图、图书查询系统数据流程图、图书预定系统数据流程图、读者留言系统数据流程图、图书维护系统数据流程图、读者管理系统数据流程图和电子读物系统数据流程图。
?? 图书采编系统数据流程图
图 1 - 5 图书采编系统数据流程图
?? 图书借阅系统数据流程图
图 1 - 6 同时借阅系统数据流图
?? 图书查询系统数据流程图
图 1 - 7 图书查询系统数据流程图
?? 图书预定系统数据流程图
图 1 - 8 图书预定系统数据流程图
?? 读者留言系统数据流程图
图 1 - 9 读者留言系统数据流程图
?? 图书维护系统数据流程图
图 1 - 10 图书维护系统数据流程图
?? 读者管理系统数据流程图
图 1 - 11 读者管理系统数据流程图
?? 电子读物系统数据流程图
图 1 - 12 电子读物系统数据流程图
1.1.5数据定义及数据字典
为了对数据流程图中各元素进行详细的说明,我们采用了数据字典的说明方法。图书馆
管理信息系统的数据字典如下:
(1) 数据流描述
数据流编号: D01
数据流名称:图书采编信息
简述:图书采编信息
数据流来源:图书购买后,由图书馆采编人员编码整理后,输入计算机。
数据流去向:采编管理模块。图书采编信息将采编数据存入数据库(图书表)
数据项组成: BookID (图书编码)+ BookType (图书类别)+ BookName (书名)+ Auth (作者)+ Publisher (出版社)+ Price (单价)+ PubDate (出版日期)+ Quantity (购买数量)
数据流量: 100 本 / 日
高峰流量: 500 本 / 日
?
数据流编号: D02
数据流名称:图书借阅单
简述:图书借阅单
数据流来源:用户填写图书借阅单交图书馆管理员,图书馆管理员审核后,输入计算机。
数据流去向: P2_11 检查读者身份。
数据项组成: OrderDate (借阅日期)+ BookName (书名)+ RederID (读者账号)+ ReaderName (读者姓名)+ O_Quantity (借阅数量)
数据流量: 1000 部 / 日
高峰流量: 5000 部 / 日
?
数据流编号: D03
数据流名称:填写借阅记录
简述:填入借阅表的记录
数据流来源: P2_13 检查合格的借阅图书信息录人到借阅库中
数据流去向:借阅库
数据项组成: OrderID (借阅号)+ OrderDate (借阅日期) BookName( 书名 ) + BookID( 图书编码 ) + ReaderName (读者姓名)+ ReaderID (读者账号)+ ReturnDate (还书日期)+ O_Quantity (借阅数量)+ state (状态)
数据流量: 1000 人 / 日
高峰流量: 20## 人 / 日
?
数据流编号: D04
数据流名称:借阅图书数量
简述:修改图书库中图书数量
数据流来源: P2_13 修改图书库中图书数量
数据流去向:图书库
数据项组成: BookID (图书编码)+ O_Quantity (借阅数量)
数据流量: 1000 人 / 日
高峰流量: 20## 人 / 日
?
数据流编号: D05
数据流名称:图书查询信息
简述:图书查询信息
数据流来源:读者
数据流去向: P3_11 检索处理模块
数据项组成: Book ID︱BookName︱Auth︱Publisher
数据流量: 2000次/日
高峰流量: 4000次/日
?
数据流编号:D06
数据流名称:图书检索结果
简述:返回给读者的查询结果
数据流来源: P3 _11 检索条件处理模块,从图书库中返给读者的查询结果
数据流去向:读者
数据项组成:查无此书︱符合条件的图书数量+{图书馆藏号+图书类别+书名+作者+出版社+出版日期+在库册数}
数据流量:2000次/日
高峰流量:4000次/日
?
数据流编号: D07
数据流名称:图书预定信息
简述:读者预定图书时填写的信息
数据流来源:用户填写图书预定信息,要求预定图书
数据流去向: P4 _11 预定信息输入
数据项组成: ReaderName + Password + BookID
数据流量: 50 次 / 日
高峰流量: 100 次 / 日
1.2 系统设计
1.2.1系统功能设计
“图书馆管理信息系统”的主要功能有:图书目录检索、网上图书预定、图书借阅、电子出版物借阅、图书采编、读者留言和系统维护等。系统功能如图 1 - 13 所示。
图 1 - 13 图书馆管理信息系统功能
各子系统功能如下所述。
1. 读者注册系统
读者访问系统时将检验读者账号和密码,经过注册的读者允许进入系统。
2. 书目查询系统
读者进入图书馆管理信息系统后,可以根据需要检索书名或期刊。检索条件可以是书名称、图书编号、作者姓名或关键字等条件,如果读者拥有不充分还可以进行模糊查询。
3. 图书预定系统
读者检索到需要的图书后,单击所需要图书条目,进入图书预定系统,读者也可以从图书馆管理信息系统主界面进入图书预定系统。系统查询图书库,如果书库中有此书,则将此书为该读者保留三天。读者应当在三天内到图书馆办理借阅手续,否则系统将自动取消保留。
4. 图书借阅系统
读者查找到所需图书后,在图书保留期内到图书馆办理借阅手续。图书借阅系统处理图书借阅、还书、续借等手续。
5. 图书采编系统
图书采购入库经过编目等处理后,将其目录存入数据库,提供给读者检索使用。目录信
息包括图书编号、图书类别、书名、作者、出版社、定价、出版日期和数量等。
6. 电子读物系统
随着数字技术的发展,图书馆中的电子读物的数量越来越大。电子读物系统处理电子读物的阅览、版权与安全等事务。
7. 读者留言板
通过留言板,读者将需要的图书、要求和建议等记录下来,与图书馆管理人员交流。
8. 系统维护模块
系 统维护模块主要为图书馆管理人员提供图书统计信息和读者统计信息,以便于管理人
员从宏观上掌握图书馆运行的总体状况。
1.2.2系统环境设计
1.硬件环境设计
图书馆管理信息系统采用两台服务器构成双机备份结构,保证提供实时服务。为保证较快的响应时间,选用处理速度较高的计算机系统,内存大小对数据库系统的响应速度影响较大,选择内存较大的系统。网络通信速度选用100Mbit/s1000Mbit/s。为保证系统中心的信息安全,配置必要的数据备份设备(采用外部备份方式)。
2.软件设计环境设计
图书馆管理信息系统采用先进的 Client ( Browser ) Server/Database Server 模式,服务器端采用 Web 方式进行系统开发,用户使用通用的浏览器访问该“图书馆管理信息系统”,服务器端采用应用逻辑服务和数据库服务两层,与客户端形成三级系统结构。采用这样的三层结构,具有结构清晰、维护简单、运行速度高等特点。软件结构如图 1 - 14 所示。
图 1 - 14 图书馆管理信息系统的三层体系结构
操作系统采用 Microsoft 公司的 NT 服务器, Web 站点发布系统选用 Microsoft 公司的 IIS ,数据库系统选用 Microsoft 公司的 SQL 。用户界面设计设计使用 Dreamweaver 、 Flash 和 FrontPage 等软件工具。
3. 网络环境设计
图书馆的网络系统,由图书馆主交换机和部门交换机组成。用户可以在图书馆内部使用
图书馆网络系统访问该系统,也可以在图书馆外部使用互联网访问该图书馆管理信息系统。
1.2.3数据库设计
数据库设计包括数据库中表设计,表中字段(域)的设计,对各字段要指明数据类型,数据大小及其他需要的信息。各报表需要指定其关键字段,表与表之间的关系等。
图 1 - 15 图书馆管理信息系统网络连接图
数据库使用 SQL ,数据库名称为 libdb 。数据库中包括 5 张表 Books (图书)表、 Readers (读者)表、 Orders (借阅)表、 Notes (留言)表和 EBooks (电子读物)表。它们的结构如下。
1.Books (图书)表
Books 表存储与图书有关的信息,例如书名、作者、出版社和出版日期等,表结构如下表 1 - 1 所示。
表 1 - 1 Books (图书)表
2.Readers (读者)表
Readers 表存储与读者有关的信息,例如:读者账号、读者姓名、密码、读者所在单位、
读者的 E_mail 和电话等。表结构如表 1-2 所示。
表 1 - 2 Reader (读者)表
?
3.Orders (借阅)表
Orders 表存储与借书有关的信息,例如:借阅统一流水号、图书预定日期、借阅日期
书名、图书馆藏号、读者账号和归还日期等。表结构如 1 - 3 所示。
表 1 - 3 Orders (借阅)表
4.Notes (留言)表
Notes (留言)表存放读者留言,包括读者账号、读者姓名、留言主题、留言日期和留
言内容等信息。表结构如表 1 - 4 所示。
表 1 - 4 Notes (留言)表
5.EBooks (电子读物)表
EBooks (电子读物)表存储与电子读物有关的信息,例如电子读物的书名、作者、出版社、出版日期等,表结构如表 1 - 5 所示。
表 1 - 5 EBooks (电子读物)表
1.3系统实现(编码)
系统实现是根据系统设计进行代码开发的过程,本案例我们给出读者注册系统与读者
留言板的编码实现。
1.3.1读者注册系统的实现
1.代码功能简介
读者登录界面文件名为 user.html。当读者在页面中输入读者帐号和密码,并单击“提
交”按钮后,先由 user.html文件中的VBScript脚本检查读者是否在文本框输入了数据,如果没有输入,要求重新输入。如果输入了数据,由服务器端应用程序judge.asp接收页面的表单信息,并将帐号和密码文本框中的信息与数据中Readers数据表的信息相比较。如果登录正确,允许用户进入图书馆管理信息系统网站。如果登录不正确,则显示“读者帐户或密码不正确,请重新注册”字样,单击超链接返回读者登录界面。
2.读者登录界面user.html代码控件属性
读者登录界面代码控件属性如下:
● 表单name属性:frmRes
● 输入读者帐号文本框 name属性:txtNum
● 输入密码文本框 name属性:txtPasswd
● “提交”按钮 name属性:cmdSubmit
● “清除”按钮 name属性:cmdReset
● 代码 judge.asp:接收用户登录表单信息
3.用户登录界面代码user.html
用户登录界面代码 user.html清单如下(为使代码简洁易读,我们删除了部分与布局有关的代码):
<html>
<head>
<title>读者注册系统</title>
</head>
<body background=〝back1.GIF〞vlink=〝#0000FF〞alink=〝#0000FF〞>
<font size=〝5〞face=〝华文彩云〞color=〝#00ff00〞>
<b>图 书 馆 管 理 信 息 系 统 </b></font>
<img src=〝screen1.gif〞height=6 width=300>
<script language=〝VBScript〞>
<!--
Sub cmdSubmit_onClick()
If frmRes.txtNum.value=〝〝or frmRes.txtPasswd.value=〞〞or
(Not IsNumeric (frmRes.txtNum.value)) then
Alert〝请在读者帐号和密码中输入相应内容!读者帐号必须是数字!〞
else
frmRes.submit
end if
end sub
-->
</script><p><b>
<font size=〝5〞face=〝华文彩云〞color=〝#FF6666〞>欢迎登录</font></b>
<form method=〝post〞action=〝judge.asp〞name=〝frmRes〞>
<align=〝left〞><fron face=〝隶书〞size=〝4〞>
读者帐号:<input type=〝text〞name=〝txtNum〞size=〝12〞>
密码:<input typt=〝password〞name=〝txtPasswd〞size=〝12〞><br><p>
<input type=〝submit〞value=〝提交〞name=〝cmdSubmit〞>
<input type=〝reset〞value=〝清除〞name=〝cmdReset〞></front><br>
</form>
</body>
</html>
4.接收用户登录界面信息
接收用户登录界面信息judge.asp代码如下:
<html>
<head>
<title>注册判断</title>
</head>
<body>
<% '接受表单信息
Num=Request.form (〝txtNum〞)
Passwd=Request.form(〝txtPasswd〞)
Set MyConn=Server.CreateObject(〝ADODB.Connection〞)
MyConn.Open〝libdsn〞
'检查读者帐号和密码的合法性
Set sql=MyConn.Execute (〝select*from readers
Where ReaderID=〞‵&Num&′〝AND Password=〞′&Passwd&′〞〞)
If sql.BOF or sql.EOF then
%>
<p>读者帐户或者密码不正确,<br>请<a href=〝user.html〞>重新注册</a></p>
<%
Eles
%>
<p>祝贺你,注册成功!<a href=〝index.html〞>
欢迎进入图书馆管理信息系统!</a>
<%
end if
MyConn.Close
%>
</body></html>
?
1.3.2读者留言板的实现
1.代码功能简介
留言板是图书馆管理信息系统的基本功能之一,是读者与管理人员互相沟通的渠道。
读者留言板共有如下 4个功能:
?? 接受读者信息。由浏览器端的表单接受读者信息,表单程序名: ReaderNote.html;
?? 后台应用程序处理读者留言。接受读者信息,并对信息进行处理。处理留言程序名: ReaderNote.asp;
?? 查看留言。查看留言程序名: ViewNote.asp;
?? 存储读者留言信息。由 libdb数据库的Notes数据表存储留言信息。
2.读者留言主界面ReaderNote.html代码控件属性
读者留言主界面代码控件属性如下:
?? 输入读者姓名文本框 name属性:txtName
?? 输入读者帐号文本框 name属性:txtNum
?? 输入留言主题文本框 name属性:txtKey
?? 输入留言内容多行文本框 name属性:txtCon
?? 【查看留言】超链接:转跳至 ViewNote.asp,显示留言
?? 【返回】超链接:单击链接,页面返回图书馆管理信息系统主界面
?? 代码 ReaderNote.asp:处理读者留言板界面信息
3.读者留言界面代码
读者留言界面代码 ReaderNote.html清单如下(为使代码简洁易读,我们删除了部分
与布局有关的代码):
<html>
<head><title>读者留言板</title></head>
<body background=〝back1.gif〞>
<p align=〝center〞>
<font size=〝7〞face= 〝华文彩云〞color=〝#vff0000〞读 者 留 言 板</font><br>
<img src=〝screen1.gif〞height=6 width=300><br><br>
<form action=〝ReaderNote.asp〞method=〝post〞>
<div align=〝center〞>
<table><font size=〝4〞>
读者姓名:<input type=〝text〞Name=〝txtName〞size=〝20〞><br><br>
读者帐号:<input type=〝text〞Name=〝txtNum〞size=〝20〞><br><br>
读者主题:<input type=〝text〞Name=〝txtKey〞size=〝20〞clas=〝yk9〞 >
留言内容: <br>
<textarea Name=〝txtCon〞ROWS=〝6〞COLS=〝48〞></textarea>
<p align=〝center〞>
<input type=〝Submit〞VALUE=〝提交留言〞
<a href=〝ViewNote.asp>〞[查看留言]</a>
<a href=〝contents.html〞>[返 回]</a>
<input type=〝Reset〞value=〝重写留言〞name=〝Reset〞>
</font></table>
</div>
</form></body></html>
4.处理读者留言代码ReaderNote.asp
处理读者留言代码 ReaderNote.asp清单如下:
<% ′接受表单信息
Name=Request.form(〝txtName〞)
Num=Request.form(〝txtNum〞)
Key=Request.form(〝txtKey〞)
Cont=Request.form(〝txtCon〞)
MyDay=Noe
Set Myconn=Server.CreateOblect(〝ADODB.Connection〞)
Myconn.Open 〝libdsn〞
′查询Readers表中的读者帐号和读者姓名
Set MyRS=Myconn.Execute(〝SELECT * FORM Readers Where ReaderID=〞′&Num&′〞and ReaderName=〞′&Name&〞〞)
′读者输入数据合理和合法性检查
If Num<>〝〞and Name <>〝〞<>and Key <>〝〞and Con<>〝〞then
if MyRS.bof or MyRS.eof then
Response.Write〝请输入正确的读者帐号和读者姓名!〞
Response.Write〝<a href=readerNote.html>[返回]</a>〞
Response.end
end if
else
Response.Write 〝请将表单填写完整!〞
Response.Write 〝读者姓名、读者帐号、留言主题、留言请务必填写!〞
Response.write 〝<a href=readerNote.html>[返回]</a>〞
Response.end
End if
‵将数据写入数据库
sql=〝Insert Into Notes (ReaderID,ReaderName,NoteKey,NoteDate,Content)〞
Sql=sql&〝Values (〞′& ??Num&〞′,〞′&Name&〞′, 〞′&Key&〞′, 〞′&MyDay&〞′, 〞′&Cont&〞′) 〞
MyConn.Execute (sql)
Response.Redirect〝ViewNote.asp〞
MyConn.close
%>
5.浏览读者留言界面代码ViewNote.asp
浏览读者留言界面代码 ViewNote.asp清单如下:
<html>
<head><title>查看读者留言板</title></head>
<body background=〝back1.jpg〞>
<p align=〝Center〞>
<font face=〝华文彩云〞size=〝6〞color=〝#ff0000〞>查看读者留言</font>
<img src=〝screen1.gif〞height=6 width=400><br><br>
[<a href=〝ReaderNote.html〞>留言</A>]<BR>
<% Set Myconn=Server.CreatObject(〝ADODB.Connection〞)
Myconn.Open〝libdsn〞
Set MyRS=Myconn.Execute(〝SELECT*FROM Note,Readers
Where Readers.ReaderID=Notes.ReaderID〞)
%>
<% do While Not MyRS.eof%>