近年来, 由于人类知识容量的爆炸式增长, 图书馆的图书条目与文献种类也不断扩大。图书馆是一所高校的标志, 其资源的丰富度、信息化程度和服务质量也是高校实力的体现。
以下为本篇论文正文:
摘 要: 随着图书馆规模的扩大, 针对传统的图书管理系统无法响应的大批量访问需求、运行效率低下的现状, 本文基于B/S的软件架构, 使用PHP语言和MySQL数据库对现有的图书管理信息系统的进行了优化设计。系统采用Apache服务器, 对访问需求的处理能力改善了三倍以上, 同时具有功能完备、运行稳定、维护方便的优点。
关键词:图书管理系统; B/S架构; PHP; MySQL;
Abstract: With the expansion of the library scale, status of mass for the traditional library management system can not respond to the access demand, low efficiency, the B/S software architecture based on the existing library management information system is optimized using PHP language and MySQL database.The system adopts Apache server, which improves the processing ability of access demand more than three times, and has the advantages of complete function, stable operation and convenient maintenance.
Keyword: library management system; B/S; PHP; MySQL;
近年来, 由于人类知识容量的爆炸式增长, 图书馆的图书条目与文献种类也不断扩大。图书馆是一所高校的标志, 其资源的丰富度、信息化程度和服务质量也是高校实力的体现。图书馆的馆藏资源是重要的社会信息资源, 在大数据时代, 传统的基于人力的图书管理方式无法保证这些信息资源的有效管理与及时共享, 这无疑是资源的闲置与浪费。高校原本的图书管理系统随着访问量和相应需求的急速上涨, 需要不断对服务器上的数据库进行查询访问, 传统的图书管理系统无法应对当下的访问需求, 运行效率低下, 急需优化。文中通过了前期的调研分析, 明确了设计需求, 在传统的旧式的图书管理方式进行了改进研究, 通过软硬件的合理配置, 结合数据库优化方法, 减少系统用户的访问响应时间, 提高服务器的吞吐量。最终, 基于PHP语言和My SQL数据库, 采用B/S架构, 完成了图书管理系统的设计。
文中的研究内容包括两个部分:一是图书管理系统功能需求分析和功能模块构建, 二是对实现系统的软件技术进行介绍, 在传统的图书管理系统系统的基础上, 对本文阐述的功能模块的实现过程进行阐述, 同时优化系统的运行效率。
1、 系统设计
1.1、 需求分析
需求分析是软件工程的第一部, 在构建图书管理系统的时候, 需要明确其想要完成的任务, 给出系统的原型。本图书管理系统的设计是为了实现大学生与老师的图书借阅、查询等功能, 同时简化图书管理工作人员的日常管理工作, 使得原本需要人力完成的采购、图书编目等工作都可以信息化的集成在系统中[2].系统需要有友好的界面, 使用方便快捷。功能全面, 方便扩展。图书管理系统的后端是由图书馆信息管理人员维护的, 我们可以从他们的角度出发, 基于他们现有的图书馆里工作流程描述系统的后端逻辑。基于以上分析, 建立系统的运行的逻辑流程图如图1所示。
1.2、 系统工作流程设计
在图书管理系统中, 核心流程是图书的借还流程[3].其具体的业务场景分为借书与还书。当读者借书时, 通过图书查询的功能找到图书, 在服务台将待借图书交给工作人员, 工作人员用扫描器扫描图书上的条码与读者的身份信息, 输入完成后, 网页自动提交读者的借书请求。服务器响应借阅需求, 在数据库中对该图书条目进行检索, 若检索成功, 系统会率先判断读者身份是否合法, 如是否存在逾期未还造成的待赔款项, 同时判断该图书是否已被预约, 核实无误后, 修改数据库的图书状态。还书的流程与借书相反, 关于图书的借还的更多细节如图2所示。
图1 系统的功能逻辑图
此外系统中还包括预约与续借两项重要流程。这两项流程可以在系统的客户端自助实现, 读者凭借自己的账号进入个人管理界面, 查询相应书目, 点击预约, 系统查询该书目是否可以预约, 并响应需求。读者可以在个人的已借目录中查询自己已经借阅的图书, 对想要继续阅读的图书进行续借。
1.3、 系统功能模块介绍
图1反映了系统的业务逻辑, 由管理员登陆之后负责各个模块的维护与更新。具体包括基础数据的维护与系统的维护, 同时, 为图书馆的工作人员分配权限, 支持工作人员进行图书的节约管理, 新书的订购管理和系统维护。
从系统地功能模块的角度上进行系统结构层次的划分可以将系统划分为四个部分, 包括通用功能模块、读者功能模块、工作人员功能模块与管理员功能模块。
通用功能模块:通用功能模块包括了图书的查询与一些常规的帮助信息。图书查询可以满足系统用户与一些网络游客对图书馆馆藏的查询需求, 用户可以根据图书的名字、作者、ISBN、出版社等类别进行查询, 系统也会给出图书借阅的排行榜, 用户可以对排行榜内的书目进行预约。系统的帮助信息主要是图书馆的开闭馆时间、规章管理制度, 帮助用户更好的使用图书馆。
工作人员功能模块:工作人员在登录自己的账号后, 可以在服务台为读者提供图书的借阅与归还服务。除此之外, 工作人员还需检查归还的图书是否有损坏, 及时要求读者赔偿。同时对丢失的图书及时处理。对于新书, 作入库管理。工作人员模块还可以对读者的权限进行更改, 对于已经缴纳过逾期款项的读者, 重新赋予其借书权限。
图2 图书借还流程示意图
管理员功能模块:这里的管理员是图书管理系统的信息技术人员, 来自图书馆信息管理处, 他们是系统运行的维护者, 他们还负责读者、工作人员信息的入库与权限管理。
2、 系统实现
2.1、 系统的软件架构
本系统在实现上采用B/S架构, 采用PHP语言编写, 系统使用的数据库是My SQL.B/S架构的软件系统是实现最流行的软件架构, 其架构图如图3所示, 相较于早期的C/S架构, B/S架构的软件只在服务器中运行, 用户在终端只需要一个浏览器就可以访问客户端的界面, 这样对于前端机器的要求就非常低, 客户端的维护、程序的更新更加便捷, 可以充分的利用Internet中的资源。
PHP (Hypertext Preprocessor) 是超文本处理语言, 在语法结构上与C语言相似, 在执行上与JSP语言相似, 都是嵌入在服务器端的HTML文本中执行。这种特性保证了它在执行的时候能够快速的执行动态网页, 相比于CGI与Perl执行效率更高。PHP的常用的执行程序会在内存中常驻, 当用户在此访问的时候不需要二次编译, 直接执行内存中的命令即可, 同时它还支持CGI与Java Script和当下主流的数据库与操作系统。因此, 在B/S架构的软件系统中有着广泛的使用。
图3 系统软件架构图
SQL (Structed Query Language) 是一种结构化的查询语言, 它诞生于IBM的圣约瑟实验室, 最早应用与System R数据查询工具中, 目前, 当下主流的数据库系统都支持SQL语言, 在关系型的数据中都可以使用。SQL定义了查询、操纵等功能, 通过使用SQL, 可以告诉数据该做什么。
2.2、 开发环境配置
系统在开发时, 选择Windows作为开发系统, 服务器选择Apache, 数据库选择My SQL, 编程语言选择PHP.
首先下载安装My SQL的win32版本, 进入工作目录后, 将mysqld-shareware.exe重命名mysqld.exe, 接着运行mysqld-install, 从而实现My SQL作为服务进程在操作性系统中运行。接着配置PHP的win32版本, 将php.ini-dist重命名为php3.ini, 移动该文件至\Winnt目录, 改变extension_dir为PHP3的安装目录, 设置doc_root指向web根目录, 然后取消extension=php3_*.dll的注释, 将browscap指向…\browscap.ini路径。最后一步是对Apache服务器的安装和配置, 在安装目录的…\http.conf文件中加入如下代码, 即可完成服务器的配置, 然后将Apache设置为系统服务进程
2.3、 数据库设计
数据库的设计过程是指通过对客观现实的分析产生一个可靠的数据库来实现详细的数据模型。在进行需求分析之后, 具体分为逻辑设计与物理设计两个步骤。
逻辑设计是指根据数据库的设计需求, 了解数据库的应用环境后, 分析数据流通中涉及的各项客体, 同时对客体进行逻辑划分, 得到概念性的数据模型。通过E-R图表征这种模型, 在E-R图中, 用方框、椭圆、菱形分别表示数据实体、属性与数据间的关系。在本图书管理系统中, E-R图通过UML类图体现, E-R图反映了各个客体间的对应关系, 以读者和图书为例, 这是一种多对多的关系, 同一本图书可以被多个读者分批次的借阅, 一个读者可以同时借阅多本图书。通过抽取系统中的逻辑客体, 建立系统给的E-R图如图4所示, 由于系统中的客体数量十分庞大, 在图4中只展示了最主要的客体, 对于次要的客体与相关。日志记录没有展示。
数据库的物理设计是指根据逻辑分析得到的关系模型设计符合数据库要求的数据表, 包括数据结构与索引等信息, 同时为各个数据项指定合理的存储位置。
2.4、 系统实现界面
本节基于1.2中分析的系统工作流程进行了图书的归还与续借模块的设计。图5 (a) 与图5 (b) 分别是系统工作人员管理功能模块中的归还与续借界面, 工作人员通过扫码机扫描读者的条形码信息, 点击确定按钮后可以帮助读者完成归还和续借业务。由图5可以看出, 本图书管理系统的界面清晰, 设计友好, 操作简洁, 易用性好。
图4 数据库E-R图
3、 结束语
文中对图书管理系统进行了研究, 从图书馆信息管理人员的角度出发, 分析图书管理系统所需的功能模块间的内在逻辑, 在参考了现有的图书管理系统的架构的基础上, 基于B/S的软件架构, 使用PHP语言和My SQL数据库完成了系统的设计。系统充分体现了B/S架构和Apache服务器的优势, 可以同时响应巨量用户的访问需求。本系统的功能设计完备, 在方便了读者用户的同时, 也极大地简化了图书馆管理人员的工作。
图5 图书馆系统界面
参考文献:
[1]张俊本。图书馆信息技术部文档共享系统设计与实现[J].农业图书情报学刊, 2017, 29 (2) :47-51.
[2]Turner J, Bedell K.Struts Kick Start[M].北京:机械工业出版社, 2004.
[3]吴其庆。Java编程思想与实践[M].北京:冶金工业出版社, 2002.
[3]杨红飞, 李振坤, 梅松青, 等。基于Struts和Hiber-nate的教务系统研究与设计[J].计算机技术与发展, 2008, 18 (2) :202-204.
[4]王宝龙, 李子扬, 李晓辉。基于SSH框架和DWR技术的减灾卫星运行管理系统建设[J].计算机工程与设计, 2010 (23) :5096-5099.
[5]蒋卫祥。基于SSH框架煤炭企业物流挂案例系统的设计与实现[J].煤炭技术, 2013, 32 (8) :262-263.
[6]郑世竹。RFID图书管理系统中图书定位排架方式研究[J].办公室业务, 2016 (5) :191.
[7]袁晓戎。一卡通与图书管理系统数据交换及对接的实现[J].山东工业技术, 2016 (8) :143-144.
[8]潘家鑫, 吴瑕, 李显杨。基于。Net的图书馆图书管理系统设计与实现[J].民营科技, 2016 (12) :75.
[9]徐敏, 蒋伟梁。基于Android平台的图书管理系统的设计与研究[J].电脑与信息技术, 2017, 25 (1) :53-55.
[10]刘涛, 张红敏。高校图书馆微信公众平台服务发展现状及对策[J].福建质量管理, 2016 (11) .
[11]孙号夕, 胡伟, 杨中宇, 等。基于PHP和Mysql的销售管理系统的设计与实现[J].电脑知识与技术, 2014 (23) :5393-5398.
[12]龙则灵。基于B/S架构的高校人事管理系统的设计[J].智能计算机与应用, 2016, 6 (2) :58-61.
[13]程萍, 吴飞, 徐华中, 等。基于Web的多功能实验室管理系统设计及应用[J].武汉理工大学学报 (信息与管理工程版) , 2014 (4) :495-498.
[14]任凤仙, 李强, 张振华, 等。利用PHP的MVC框架开发电子书库的设计实践[J].电子设计工程, 2014, 22 (16) :25-27.
[15]胥颖。图书管理信息系统的设计与实现--以兴义民族师范学院为例[J].科技经济导刊, 2015, 23 (2) :37.