还剩61页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
题目小型图书馆管理系统的设计及实现__学科、专业软件工程指导教师申请学位日期年月西北工业大学硕士学位论文(专业学位研究生)题目小型图书管管理系统的设计及实现作者学科专业软件工程指导教师副教授高级工程师二零一五年月TheDesignandImplementationof__allScaleLibrary__ngementSystemSubmittedtotheSchoolofNorthwesternPolytechnicalUniversityinfulfillmentoftherequirementsforthedegreeof__sterofEngineeringBy:Supervisor:Xi’anP.R.China2015摘要随着人类社会的发展,人们对知识的需求越来越大一方面,作为知识的载体—图书,仍然是人们获取知识的最主要、最广泛的途径另一方面,信息技术的发展与普及,传统的图书馆管理方式已经不适用,特别是目前图书馆书籍和读者的数量不断增加因此,建立一个高效、友好、全方面的图书管理系统是非常有必要的本文根据图书馆的业务需求和实际使用经历,使用APACHE服务器、PHP程序设计语言及MySQL数据库,__设计了一套全面的图书馆信息管理系统该系统分为两大部分,一是面向系统___的系统操作管理部分,一是面向普通用户即读者的信息查询管理客户端部分系统操作管理部分又分为书籍管理、用户管理、公告管理、报表统计四大主要功能书籍管理又包括新进图书管理、旧书下架、借书管理、还书管理、丢失图书管理5个模块用户管理包括用户注册、用户有效期延期、用户充值、用户帐号注销4个模块公告管理包括发布公告、删除公告两大模块客户端部分分为公告展示、用户个人信息管理、图书查询与新书推荐四大主要功能本文的主要研究内容包括目前图书馆管理系统使用的先进技术,如RFID技术、系统需求分析、流程分析、数据库分析及系统的实现和部分代码介绍关键词图书、管理系统、PHP、MySQLAbstractAsthedevelopmentofhu__nsocietythede__ndofpeopleforknowledgeisrapidlygrowing.Ontheonehandasthecarrierofknowledgebookre__insthemostprincipalandcomprehensivewayforac__ssingknowledge.Ontheotherhandasthedevelopmentandpopulationofinfor__tiontechnologythetraditionallibrary__nagementwayisnotsuitableespeciallyinthecasethatthereaderandbookisincreasingrapidly.Sobuildingaeffectivefriendlyallaroundlibrary__nagementsystemisveryne__ssary.Accordingtothelibrary’sbusinessneedandthepracticalusingexperien__usingAPACHEserverPHPprogramdesignlanguageandMySQLdatabaseIdesignedanexhaustivelibraryinfor__tion__nagementsystem.It__inlyincludestwoparts.Oneis__nagementofsystemoperationpartforsystemadminister.Theotheristheclientaimedforreadertoinquiryinfor__tion.Thesystemoperation__nagementpartthenincludesfourparts.Andtheyarebook__nagementuser__nagementnews__nagementandtablesstatistics.Book__nagementincludesnewbook__nagementoldbookundercarriage__nagement,borrowing__nagementreturningbook__nagementandlostbook__nagement.User__nagementincludesuserregistrationuserdelayuserchargeanduseracountlogout__nagement.Thereaderclientincludesfourpartsnewsshowingpersonalinfor__tion__nagementbookinquiryandnewbooksrecommendation.The__inresearchofthispaperincludes:theadvan__dtechnologyusinginlibrary__nagementsuchasRFIDsystemneed____ysiscircuit____ysisdatabase____ysissystemaccomplishmentandpartscodesintroduction.Keywords:Books__nagementsystemPHPMySQL目录TOC\o1-3\h\u第一章绪论
11.1课题的研究背景
11.2课题研究目的和意义
2221.3国内外研究现状
31.4本文研究的主要内容
51.5本文研究的组织结构6第二章相关理论与技术
72.1MySQL技术
778882.2PHP编程语言
89992.3面向对象编程技术
101010112.4Apache服务器
1212132.5条形码
1313142.6RFID1414151515第三章系统需求分析
173.1系统需求分析
1717183.2系统用例分析
213.3功能模块分析
243.4技术性能分析
253.5本章小结26第四章系统设计
274.1系统的总体结构设计27B/S结构
2728284.2数据库设计29293438第五章系统实现、测试与分析
395.1系统__环境
395.2系统实现39394750第六章总结与展望
526.1总结
526.2后续的工作52____54致谢55在学期间发表的学术论文56第一章绪论
1.1课题的研究背景随着人类社会的进步,生活水平的提高,人们对于信息、知识获取的渴望更加强烈虽然,目前阅读方式越来越多,手机阅读,网上阅读越来越普遍,但是,总体来说,纸质图书阅读方式还是占主导地位国家对人民精神文明建设投入也越来越大,不管是社区图书馆,还是高校图书馆,其建设规模也在相应的扩大图书,作为信息存储的重要介质和知识传播方式,其数量与规模与日俱增,图书馆图书数量日益增多,种类越来越多据国家___数据,就2013年,图书出版种数为444427种,图书总印数达到
83.10亿馆藏规模的不断扩大,使得传统手工管理模式早已经满足不了实际的需求在图书信息存储、查询,借阅管理等诸多环节的动态过程中浪费大量人力物力,且效率低下
[1]面对庞大的业务信息数据,管理人员力不从心另一方面,传统手工管理方式使得借还书业务周转缓慢,同时信息的封闭性,读者获取借阅信息方式单一或者获取信息的复杂性使得大量图书借出后长时间得不到归还,有时候甚至是读者不知道规定的归还时期,极易导致图书丢失总体来说,人工管理存在如下问题1效率低,工作量大就目前来说,图书馆的馆藏都比较大,且使用用户多,产生的用户数据量大,人工操作一方面易出错,二是耗时,三是浪费了大量的人力,提高了运营成本2信息更新慢当__了新书或者有什么公告信息,读者很难及时的知道,造成用户的不便,同时,影响了用户使用体验3统计工作复杂图书馆的运营需要许多的数据以供决策,但是,图书馆信息量具大无疑是的统计工作非常复杂另一方面,目前使用了图书馆信息管理系统的地方,依然存在巨大的改进空间如,读者有目的性的想阅读某书或某类书时,一般要去图书馆查询是否有该本书籍,但是如果没有的话,读者就会白跑一趟图书馆,严重了降低了读者的图书馆使用满意度同时,对于图书馆新进的图书,一般读者很难发现,并利用,这样,使得这些书的使用率降低,而有些书是越新越有参考价值,这样也使这些书的价值降低针对上述实际情况,结合该系统的特点和需求,运用所了解的数据库技术、面向对象编程技术、计算机知识,设计一个通用的图书馆信息管理系统
1.2课题研究目的和意义研究目的在日常运行中,图书馆具有一定数量的读者,随之而产生各种了相应的用户管理信息,包括读者借阅信息,图书信息,财务信息,信息数量巨大,仅凭工作人员手工管理,那是非常繁琐且易出错现在的信息技术是日新月异,成功的应用到生活中的各个领域,各个方面,将人从繁琐、复杂的工作中解放出来
[1]同样,借助于信息化系统,将图书管管理信息化、自动化,简化借阅流程,实现信息集成,是图书管理发展的必然趋势本课题在参照相关管理信息系统的基础上,结合实际图书馆使用经历,应用结构化系统分析与设计、面向对象程序设计方法、PHP程序设计语言,设计并__适和于小型的图书馆的信息管理系统,可以极大的减轻相关工作人员的工作压力,优化工作流程、提高图书馆管理效率、工作流程的自动化水平,提供图书信息的共享率,不断改进图书馆信息管理服务的质量本系统的__通过对图书信息在图书入库、借阅登记、借阅查询、过期提示、读者管理、财务管理等日常业务流程中产生的信息进行管理,合理规范系统管理,同时也简化借阅手续,方便借阅者的快速查询,从而大幅度提高图书周转速度和工作服务质量,实现部分工作的自动化,缓解管理人员的工作压力,优化图书借阅流程对图书管理水平起到很好的促进与提升作用研究意义实现图书管理的信息化、自动化管理是国家实现科学技术现代化的极其重要的组成部分上个世纪四十年代以来,计算机科学技术相关领域引起了人们的高度重视,也得到长足发展,它为人类的生产生活带来了深刻的变化经历了二___的快速发展,计算机科学技术渗透到人们生活中的各个领域,这包括图书管理领域,并对图书信息管理领域产生了深刻影响西方发达国家在计算机技术的应用方面一直处于领跑地位,我国尽管在近年来在某些领域取得了傲人的成绩,但依然与发达国家存在比较大的差距图书文献的管理水平是直接影响着科学研究的一个重要因素因此,图书管理的信息化是提高科学技术水平的一项具有重大实际意义的举措,也是实现信息管理工作现代化、自动化的重要组成部分伴随着计算机科学与技术、网络通讯技术及软硬件的不断更新换代,数据的规模和信息处理的繁琐程度呈海量增长,现在在办公模式也发上了巨大的变化计算机成为了信息处理领域的关键技术和手段图书资料管理方面需要管理的信息可谓是海量的,不仅包括了数十万册图书的书名、__、译者(针对外文文献)出版时间、出版社、图书检索号I__N等基本信息,而且还包括图书的保存和流通等管理应用信息,用户管理等众多信息传统的图书___的手工登记、手工编号、卡片登记等管理方式,不仅消耗了大量的人力物力,而且由于信息流通较慢可能导致大量图书资源处于休眠状态,没有得到有效利用,管理缺乏效率,导致图书丢失的情况常有发生因此,传统手工式的图书信息管理方式已不能适应读者日趋增长的实际情况和效率要求相对与较纯粹的人工管理方式,图书信息管理系统,大大提高了工作效率和准确率,降低了图书馆运营成本,从根本上提高了图书馆的管理水平在图书信息管理系统应用中,数据库___用户具有最高管理权限,可以对不同层级的用户进行权限管理(如采编工作人员、流通工作人员、普通读者),并实现数据的备份及发生严重错误时系统恢复;采编工作人员利用管理系统将图书信息如图书名称、图书检索号等基本信息进行录入系统;流通工作人员根据系统赋予的权限可以给读者__借阅、还书业务借书时,有最大借阅数的限制,还书时,有最长借阅时间的限制,流通工作人员根据最长借阅时间决定是否需要收取其滞纳金,同时,图书馆用户还可能将借出的书籍丢失,流通工作人员需要向读者收取一定的丢失图书结算金;用户则可借助系统享受便捷的信息查询服务和借阅服务信息系统对于减少工作人员的重复工作、减少工作人员的工作量和图书馆的管理成本的作用显而易见同时,使用信息系统对于减少图书丢失、账目不清等问题的作业也是非常明显的随着时代的进步和新兴技术的不断涌现,科研人员对图书管理的做更加深入的研究,引导图书管信息管理的现代化建设
1.3国内外研究现状图书馆的自动化研究最早是源于美国海军军方图书管理中心,美国海军军械中心图书馆的泰利特与1950年撰写的一篇关于图书馆信息化建设的文献,该文献指出图书馆日常工作及管理应该应用计算机技术进行辅助管理,是世界上最早提出应用信息技术进行图书管理工作的文献
[1]__世纪90年代之后,伴随网络技术、软件技术的发展,图书馆信息管理进入相对成熟过程,逐步向自动化、网络化、电子化、信息化的方向发展目前的图书馆管理系统已经是一个非常复杂的系统,需要集成更大范围的信息领域的高新技术来支撑改进这包括OLAP(联机分析处理)、RFID(无线射频识别)、DW数据仓库、DM数据挖掘等技术
[1],主要是大数据的数据处理方法将DW和DM引入图书管理信息系统的具体应用中,实现图书管理的多层次交互以及联机分析处理,实现以图书内容为目的的图书信息查找,内容涵盖概要查询、分类检索、自动摘要、自动转换以及匹配、自动收集书目信息并产生报表,加快编目过程等等
[1]在国外,人机交互一直是图书信息管理系统研究的一大热点在这个方向研究比较突出的设计者是E.Morton-Owens等,所__的图书馆数据管理仪表盘系统可以利用数据的可视化以及仪表盘布局能够动态的完成__计数、流通以及馆际互借、参考__、聊天消息、数据周转等等业务功能相对于以前的界面显示设计理念,这是一个非常重大的突破在图书信息管理系统的维护、扩展方面多数的国外的图书馆都还是采用传统的线性组合方式J.Cho提出了一种新的基于软件的运营服务模型系统维护模式该模式主要是由网络服务、业务资源管理、软件运营服务等组成模块组成通过该模式,能够极大化的降低系统的运行和维护成本
[1]在国外,将图书馆各项业务进行融合、集成也一直都是图书管理信息系统研发所要考虑的一项重要的内容但是,能够将图书馆各项整体职能统一自然的融合在一套系统中,并进行通盘考虑的设计实现并不多M.E.Dempse等__出一种可以使使用者自主操控文木印刷的图书管理信息系统它能有极大的减少印刷的失误率从而提高图书馆运营的成本在进行系统的底层设计过程当中为保证图书信息管理系统在深度运行当中的适应度和计算精确度国外的设计者一般要考虑图书管理的过程中的网络环境以及其他可能突变的环境S.Huang在分析了Web
2.0基础组件库的基础上,设计了一种基于Web
2.0的图书馆信息管理系统结构在这个结构中包含了系统的使用、排序以及维护、系统组件库的建设等功能H.Li等人提出了一种基于视觉能量损耗的图书信息管理系统该系统能够以在线或者离线的方式来计算不同设备的工作精确度和工作效益
[1]在系统的集成方面大部分的国外的研究者将注意力放在了图书馆的管理工作业务的集成上其中J.F.Brown等人认为不同规模的图书馆在__、集成、维护其管理信息系统方面Web页面的创建、业务的融合、资源管理的授权、共享资源等方面取决于图书馆管理系统的多种组合国内图书管理系统的发展可分为三个阶段第一阶段萌芽阶段,70年代至80年代我国有部分高校使用了简单的信息管理系统,实现了图书信息系统的半自动化例如清华大学的图书馆、__交通大学的图书馆等都采用了简单的图书信息管理系统但总的来说,并没有代表性的图书馆信息系统的设计__第二阶段发展阶段,90年代在这个阶段,许多的国外优秀的图书信息管理系统被引入到国内如__向我国十余所高校增送图书管理系统在同期,国内部分单位也在__图书信息管理系统第三阶段网络阶段,90年代后期至今,由于网络技术的快速发展,许多单位都在__图书管理系统,并且,使用图书管理系统的单位也越来越多,功能也越来越齐全例如,山东大学的戴欢教授为山东某个中学设计__了一套基于B/S网络模式的中学图书信息管理系统该系统主要利用SQLServer2000作为后台的数据库使用ASP作为主要的__语言在系统模块包括为图书管理、系统管理、图书借阅、用户的管理等多个模块,并在经过一段时间的试运行该系统运行稳定,较好的满足了用户的要求北京邮电大学的吴彦亮教授__出了一套基于WIFI技术的大学图书管理系统该系统利用了WIFI技术,使得用户可以通过手机或是其他设备就能够访问该系统钱欢等设计了基于RFID重要图书信息管理系统,该系统成功的将RFID技术与以往的图书档案管理技术结合在系统功能上,不仅实现了学校各个部门的图书、重要档案的管理,还包括图书馆的保险柜的开关监控控制、图书馆重点部门的监控和出入控制等功能“用户驱动服务是未来不可逆转的趋势”、“Google-like发现系统已成为下一代图书馆系统的技术热点”随着计算机技术、网络技术以及__通讯技术的发展为了应付“无纸”社会带来的挑战各地高校图书馆纷纷进入探索和不断创新一方面新生科技要如何应用到图书馆管理中去,另一方面图书馆管理如何转变理念跟上时代的发展以及满足读者的需求这都成为各所高效__的焦点
1.4本文研究的主要内容本文通过对图书馆运营的调研及实际使用经历,通过对图书___读者的访问,形成了比较具体详细的需求分析,紧紧的围绕功能的实现这个目标,介绍了系统的设计实现的过程,并对图书信息管理系统进行了设计与实现系统分为两大部分,一是面向系统___的系统操作管理部分,一是面向普通用户即读者的信息查询管理客户端部分系统操作管理部分又分为书籍相关信息管理、用户相关信息管理、公告信息管理、报表统计四大主要功能书籍管理又包括新进图书管理、旧书下架、借阅管理、归还书籍管理、丢失图书管理5个模块用户管理包括用户个人帐号注册、有效期延期、用户充值、帐号注销4个模块公告信息管理有发布新公告、查看公告、删除公告两大模块客户端部分分为公告展示、用户个人信息管理、图书查询与新书推荐三大主要功能
1.5本文研究的组织结构本文总共包括6个章节第1章绪论,主要包括课题研究背景、研究目的及意义、研究现状通过查阅文献,了解图书馆管理的内容,自动化建设的国内外现状,并简述本文的主要研究内容和组织结构第2章相关理论与技术,主要包括MySQL数据库介绍、面向对象编程技术、条码码、RFID等相关的理论知识介绍第3章系统需求分析,以查阅文献、访谈并结合实际使用经历,形成系统需求,然后通过流程图、系统用例,进一步描述系统业务要求和流程,最后形成一个总体的系统架构第4章系统设计,对系统的总体设计,主要包括系统的总体结构设计和数据库设计和部署,重点是数据表的分析和其他数据库部件的设计第5章系统实现、测试与分析,根据
3、4章的内容,在系统分析、数据库设计的基础上,将各个系统模块功能区做了说明第6章是总结与展望,对文本工作情况进行了总结分析,并阐述了研究工作中存在的不足,并对今后需要做的改进和研究问题进一步说明第二章相关理论与技术本章主要为本文涉及到的一些技术做一个简要的介绍,包括MySQL数据库技术、PHP编程语言、面向对象编程技术、条码码、RFID
2.1MySQL技术由瑞典MySQLAB公司__的MySQL是一个关系型数据库管理系统,目前属于OracleMySQL在WEB应用方面是最好的RDBMSRelationalDatabase__nagementSystem关系型数据库管理系统应用软件之一
[2]MySQL是一种关联型数据库管理系统,将数据存储在不同的表中,而不是在数据仓库中,在增加了速度的同时提高了系统的灵活性它分为商业版和社区版,由于其体积小、性能稳定,速度快、总体成本低,并且开放源码,使得一般中小型__应用的__都会选择MySQL作为后台数据库另外社区版的性能也比较优秀,搭配PHP和Apache服务器可组成良好的低成本的__配置与其他的数据库相比,如Oracle、DB
2、SQLServer等大型数据库,MySQL也有它的缺点,但是这并没有减少它广泛使用程度因为对于个人或是中小型企业而言,MySQL提供的功能就能满足他们的要求,另外由于MySQL是开放源码项目,因此可以极大的降低总体的使用成本
[2]系统特性MySQL的系统特性如下1使用C与C++编写,并通过了多种编译器的测试,确保了源码的可移植性2支持AIX、FreeBSD、Linux、__cOS、OpenBSD、Solaris、Windows等多种操作系统
[2]3具有多种编程语言的API这些语言包括C、C++、Python、J__a、Perl、PHP等4支持多线程__,提高了CPU的利用率5优化的SQL查询算法,提高了查询速度6提供多语言支持,如中文GB
2312、BIG5编码,日文的Shift_JIS编码,都可以用作数据表名,列名
[2]7提供TCP/IP、JDBC、ODBC等多种接口,丰富的数据库连接途径
[2]8支持大型的数据库能够处理上千万条数据记录的大型的数据库9支持多种存储引擎10MySQL是开源的,可以____,不需支付任何费用11MySQL对PHP的支持非常好PHP是目前最流行的Web__语言应用架构MySQL应用架构有如下三种其特点如下单点(Single),适合小规模应用__(Replication),适合中小规模应用集群(Cluster),适合大规模应用索引功能索引是特殊的文件,它们包含着对数据表里记录的引用指针(InnoDB数据表上的索引是表空间的一个组成部分)
[2]索引在加快数据检索操作的同时,也会使数据修改操作变慢每次修改数据记录,索引就必须更新一次为了弥补这一缺陷,许多SQL命令都有DELAY_KEY_WRITE选项
[2]这个选项的作用是为了暂时制止MySQL在该SQL每插入一条记录和每改变一条现有记录,就马上对索引数据进行更新,而是将对索引的刷新推后到全部记录插入/修改完毕之后再进行在需要把许多记录插入到某个表的情况下,这个选项的作用是非常明显的另外,索引也会占用比较多的的硬盘容量备注MySQL把同一张表里的索引数限制在16项以下MySQL语法MySQL的语法基本上和标准的SQL语法一致只是在个别地方有一点细微的差别
2.2PHP编程语言PHP(PHP:HypertextPrepro__ssor,超文本预处理器)是一种通用开源脚本语言
[3]它吸收了C语言、J__a和Perl的特点,利于学习,使用广泛,主要用于Web__领域它独特的语法混合了C、J__a、Perl以及PHP自创的语法
[3]它可以比CGI或Perl更快速执行动态网页与其他的程序语言相比,用PHP做出的动态页面可嵌入到HTML文档中执行,执行效率比完全生成HTML标签的CGI要高很多;PHP也可以执行编译后代码,使代码运行更快发展PHP开始为PersonalHomePage的缩写,现正式更名为PHP:HypertextPrepro__ssor
[3]由Ra__usLerdorf于1994年创建,开始是Ra__usLerdorf为了维护个人主页而制作的简易的用Perl语言的程序
[3]后来又用C重新改写,添加访问数据库功能他将这些程序和表单直译器结合起来,命名为PHP/FIPHP/FI可以和数据库连接,产生简易的动态网页效果在1995年以PersonalHomePageTools对外发表第一个正式版本,在这的版本中,提供了访客留言本和访客计数器等功能之后越来越多的__都在使用PHP,他们强烈要求新增一些新特性,如循环语句、引入数组变量等;在1995年6月8日,Ra__usLerdorf将PHP/FI公__布,希望可以通过社群来加速程序__与优化,并将这个版本发布称为PHP2,已经有了PHP的简单模型PHP/FI加入了对MySQL数据库的支持,从而建立了PHP在动态网页__上稳固的地位
[3]PHP的特性包括1PHP独特的语法混合了Perl、C、J__a、以及PHP自创的语法2PHP比CGI或者Perl更快速的执行动态网页与其他的语言相比,对于动态页面方面,PHP是将程序片段嵌入到HTML文件中执行的,执行效率CGI要高许多;PHP功能非常强大完善,所有能用CGI实现的功能PHP都能实现
[3]3PHP几乎支持所有流行的数据库和操作系统4最重要的是PHP可以使用用C、C++进行程序扩展!优势PHP的优势非常多,主要有
1.开放源代码所有的PHP源码都可以免费得到
2.免费性和其它技术相比,PHP本身免费
3.快捷性技术本身学习快嵌入于HTML因为PHP可以被嵌入到HTML中,相对于其他编程语言,编辑非常简单,实用性强,易于上手
[3]
4.跨平台性强PHP是运行在服务器端的脚本,支持多种平台,如UNIX、LINUX、__cOS、Android、WINDOWS等
[3]
5.效率高PHP消耗相当少的系统资源
6.面向对象在php4php5中,对面向对象的支持有了很大的改进,php可以用来编写大型的商业程序
7.专业专注支持脚本语言,为类C程序语言
2.3面向对象编程技术面向对象是一种软件__方法面向对象的理念及应用已超越了软件设计和软件__领域,扩展到后台数据库管理系统、应用结构、交互式界面、分布式系统等领域
[4]面向对象是一种对现实世界理解、抽象的思维方法相关概念1对象对象是人们要进行研究事物,可以是到复杂的轮船,也可以是简单的一双筷子,不仅能描述实物,还能描述抽象的规则
[4]2对象的状态和行为对象具有状态,可用数据来衡量它的状态对象有与之相关的数据操作,用于转换对象的状态,其具体操作的是对象的动作对象将数据和操作封装,使数据和操作统一3类将具有相同特性和行为的对象抽象出来就是类,它具有属性、具有操作因此,类是对象的一种抽象,而对象属于类的实例类实际上就是一种数据类型
[4]4消息和方法对象之间通过消息机制进行通信类中的操作叫做方法,它的属性包括方法名、返回值、输入参数和具体方法体要素1抽象抽象是指强调对象的本质和内在__的属性在系统__过程中,抽象是指是在只__必要的属性,而忽略一些无关紧要的细节类实现了对象的状态属性和行为的抽象
[4]2封装性(信息隐藏)面向对象的类是采用封装形式的模块,类将其定义与实现显式地分开类的定义部分属于用户可见的使用接口,而实现是对用户隐藏的内部实现,由其作用属性来提供保护3共享性同一个类的对象有着相同数据结构定义,它们之间共享一些数据结构和操作类有继承性,子类可重复利用父类的操作特征1对象唯一性每个对象都有自身特定的标识,通过这个标识属性,可定位对应的对象在对象的整个生命期中,这个标识不会改变,不同的对象实体拥有不同的标识2抽象性抽象性是指将具有一致的数据结构、行为的实体抽象成类一个类就是一种抽象,它反映了与应用相关、敏感的重要性质,而忽略其他一些无关紧要的性质类的划分是主观的,但另一方面又和具体的应用场景有关
[4]3继承性继承性是指子类对象自动共享父类的数据结构(属性)和方法,这是类与类之间的关系在定义实现一个类时,可以在基类之上来完成,继承原有的属性和方法,并加入自己独有的属性和方法,进行扩充继承性是面向对象程序语言区别与其它编程语言的一个最重要的特性,这是其他语言所没有的
[4]在类层次中,如果子类只能继承一个父类,则称为单重继承如果可以继承多个父类,则为多重继承J__A、VB、NET、O__ective-C均仅支持单继承C++支持多重继承,但在使用多继承时,注意其二义性在软件__中,类的继承性使软件具有了可扩充性,开放性,它减少了对象、类的实现时的重复工作量,同时增加了代码的空扩展性和可重用性4多态性多态可分为通用多态、特定多态通用的多态又可分为参数多态、包含多态,特定的多态又可分为强制多态,过载多态参数多态采用参数化模板,参数化类型,通过不同的类型实参,使得一个结构具有多种类型包含多态同样的操作可作用在一个类型和子类型上过载多态同一个符号(操作符或函数名)在不同的上下文中有不同的实际类型强制多态编译程序根据语义,强制把对象的类型加以变换,以符合函数或是操作符的要求面向对象程序设计不仅提高了程序的灵活性、可维护性,并且使得大型项目设计变得容易此外,因为它能够让__者更加简单地设计、编写程序,使得程序更加容易分析、设计、维护和理解总体而言,面向对象技术,不仅是一种程序设计方法,更多的是一种程序__思维方式
2.4Apache服务器Apache,一个开放源代码的Http服务器软件,同时也是世界上使用率排名第一的Web服务器,它几乎可以部署在所有的计算机平台上它快速、可靠并且可通过友好简单的API接口可扩充到多种解释器(如Perl、Python解释器)编译到服务器中起源及发展开始由伊利诺伊大学香槟分校IllinoisUrbana-Champaign的国家高级计算程序中心__,主要是由当时最流行的HTTP服务器HTTPNCSAHTTPd
1.3代码修改而来
[5]之后,Apache在开放源码团体的成员不断的完善下,拥有牢靠稳定可信的美誉,并已用在超过半数的因特__服务器中,几乎所有最热门和访问量最大的__都在使用Apache目前,Apache
2.x分支中已不包含任何NCSA的代码开始,Apache只是Netscape网页服务器(也就是现在的SunONE)之外的开放源码选择后来它开始在速度和性能上超过其他的基于Unix系统的HTTP服务器
[5]在1996年4月之后,Apache一直是Internet中最流行的网络服务器在1999年5月之后,它在网页服务器中的市场份额达到57%之后发展一直非常迅速但是,在微软IIS平台的发展,Apache的市场占有率开始慢慢下滑,加之Google自己__的网络服务器平台GWS的推出及发展、其他轻量级的网络服务器的使用使得Apache市场占有率在2007统计数据中只有52%左右即使如此,它仍然是现阶段在Internet市场上使用率最高的Http服务器组件
[5]特点Apacheweb服务器拥有以下特点1支持最新的HTTP/
1.1通信协议2拥有简单却强有力的基于文件的配置方法3支持通用__接口4支持基于IP和基于域名的虚拟主机5支持多种方式的HTTP认证方式6集成Perl处理模块,方便Perl接入7集成代理服务器模块8支持实时监视服务器状态并定制个性化服务器日志功能
[5]9支持服务器端指令SSI10支持安全Socket层协议11提供跟踪用户会话过程的功能12支持FastCGI13通过第三方模块可以支持J__aServlets
2.5条形码条形码是指将宽度不等的若干个黑白条,按照一定的规则排布,用以表述特定信息的二维图形标识符
[6]常用的条形码是由反射率相差较大的平行黑白条图案组成条形码可以标出物品的制造国家、名称、生产日期、图书分类号、类别等多种信息,因而在图书管理、银行系统、货物流通等许多领域都得到充分的应用
[6]运作原理将条形码变成可读、有特定含义的信息,需要经过扫描、译码过程物体反射光决定了物体的颜色,白色可以反射各种波长的可见光,而黑色则会吸收各种光,所以由条形码扫描器发出的光源光照在条形码上进行反射之后,特定的反射光又照射到条码扫描器内部光电转换器中,它能根据反射光的强弱和波长,转换成特点的电__
[6]根据放射光转换原理的不同,扫描器可以分为光笔、红光CCD、影像和激光四种对于不同的白黑条宽度,产生的相应的电__持续时间的长短不相同然后译码器通过测量脉冲数字__0和1的数目来判别黒条和白条的数目根据测量0和1__持续的时间长短来判断条空的宽度这时所得到的数据__是无须、且没有特定含义的,要正确解读条形码所携带的信息,则还需要根据特定的编码规则转换条形符号成相应的可读字符信息
[6]最后,由计算机软件系统进行这些数据分析处理这样,物品的详细信息便读取出来了优点介绍条形码是迄今为止最经济最实用的一种自动识别技术它具有以下几个方面的优点
1.输入速度快与键盘等手动输入方法相比,条形码的输入的速度是手工输入的5倍,并且还可以实现“即时数据输入”2.可靠性高键盘手动输入数据的出错率大概为1/300,光学字符识别技术的错误率为1/_____,而采用条形码技术错误率小于1/_____00
[6]3.采集信息量大每次一维条形码可收集几十位字符的数据二维条形码一次可容纳数千字符的信息,并且带有一定的自动纠错能力
[6]4.灵活实用它可作为一种单独识别手段,也可与其他识别设备组成一个系统,实现高级自动化识别功能,还可以和其他控制设备联接起来,达到自动化管理目的
[6]此外,条形码标签制作简单,使用简单,特别是对设备材料没有特别要求,不需要特殊培训,且相关设备也较便宜,使用成本低在商品零售业中,由于条码是印刷到商品包装上,导致其成本几乎为零
2.6RFIDRFID(RadioFrequencyIdentification,射频识别)技术,又称无线射频识别,是一种新型通信技术,它可利用无线电讯号识别特定目标并读写相关信息,不需要识别系统与被识别目标之间建立光学接触或是机械接触
[7]概念从流程、概念上来讲,RFID与条码扫描十分相似对于条码技术,它是将已编码的条形码附于目标上并用专门的扫描读写器,利用光__将数据传送到扫描读写器;而RFID则利用专门的RFID读写器、可附着于目标物的RFID标签,使用频率__将数据从标签上送到RFID读写器中
[7]组成部分应答器包含天线、耦合元件及简单芯片,一般都是用标签作为应答器,每个标签都带有唯一的电子编码,附着在目标物上用来识别目标物体
[7]阅读器包含天线、耦合元件和芯片,读取标签信息的设备(有时还可写入),分为为手持式RFID、固定式读写器
[7]应用软件系统是应用层软件组件,主要是处理收集起来的数据,并为用户提供友好操作界面,供用户使用
[7]工作原理RFID技术的实现原理比较简单在标签进入磁场中后,吸收阅读器发射出射频__,并凭借磁场中产生的感应电流所获得的能量发送存在芯片中的数据(这种标签称为无源或者是被动标签)
[7]或者标签主动的发送特点频率的__,阅读器接收到信息后解码信息,之后送至系统进行有关数据处理,这种称为主动标签或是有源标签优势RFID是一项易于操作且实用简单又特别适合于自动化操控的可灵活应用的通信技术可工作在各种恶劣环境下不受油渍、灰尘污染等恶劣的环境影响的短距离射频产品可以替代条形码,例如可用在工厂流水线中来跟踪目标物体;其他产品还可用于交通上自动收费或是识别车辆身份等,如长距射频产品射频识别的系统优势可分为如下几点
[7] 1读取方便快捷读取数据无需光源,甚至可以穿透外包装操作有效识别距离大,如利用主动标签有效识别间距在30m以上; 2识别速度快标签在进入磁场后,阅读器就可立即获取所携带的数据,而且还可以同时处理数个标签,达到批量识别的目标
[7];3数据容量大对于___而言最大存储量为2725个数,但是如果要存储字符的话,存储量便会更少(___是数据容量最大的条形码);而RFID标签可以根据用户的需求扩充到数10K
[7]; 4寿命长,使用范围广使用无线电通信,不受粉尘或是油污等高污染环境或是辐射性环境的影响限制,同时使用封闭式包装使其寿命大大的超过印刷包装的条码; 5标签信息可动态更改通过编程器,可以向标签中重新输入数据,因此让RFID标签具有交互式数据通信功能,而且写入所花费的时间比打印条码少; 6动态实时通信解读器可与RFID标签以50~100hz的频率进行通信,因此只要标签所附着的对象在解读器的有效范围内,就可对其物__置进行动态的追踪监控定位
[7]第三章系统需求分析通过对实际问题的观察与分析,将需求抽象出程序可表述的问题该章主要描述这个问题的分解和描述对问题的描述主要采用UML进行__的描述UML采用的是“4+1”视图,包括逻辑视图、进程视图、__视图、物理视图、剧情它的主要特点是提供形式化基础以利于理解建模语言,提供易用的、表现力强的可视化建模语言
3.1系统需求分析通过对图书馆系统的使用,接触和参阅文献,根据实际分析,使用UML建模语言,对图书馆管理系统进行建模分析系统需求定义本系统主要的用户角色有普通用户(读者)、系统___、数据库人员普通用户是主要的服务对象,其主要功能有登录通过设计简单友好的系统客户端使用界面,为用户提供用户经由系统客户端的登录功能,需要用户输入有效的用户名及__,进入系统书目查询用户登录后,可查询图书管拥有的资源,粗略的定位图书位置,避免用户盲目手工找书浪费的时间查询时,可根据书籍名、__、出版社、I__N等关键信息进行查询
[8]查看新书推荐图书管每隔一段时间便会__一些新书,而这些书被使用的次数较少,很难通过书目查询查选到用户登录后,可以通过该功能搜索到一些感兴趣的书籍,增加这些新书的利用率个人信息管理用户登录后,可以查看或处理相关信息包括查看个人资料,修改个人信息,查看历史借阅记录,查看借还书记录等功能)在该web系统,普通用户这一部分主要是查看个人信息、图书借阅信息,而不能进行数据增删改操作(除了个人信息外)其他的和普通用户相关业务主要是由系统_____,只需要普通用户在柜台向系统___提出申请即可系统___是该系统的主要运作管理对象,管理整个系统的运营和维护具体实现时还分有不同的类型的帐号,分别管理不同的模块)拥有的权限最高他的主要功能有各类数据统计,报表展示对于信息管理系统,各类信息的统计是非常有必要的,可以帮助决策者更好的做出合理的决策数据报表主要有各类图书统计、各种图书借阅记录统计、各种图书搜索频率、用户超时欠费统计书籍管理一方面包括新进图书的录入、旧书的下架、图书丢失管理,另一方面普通用户的借书、还书管理普通用户管理系统___可以单独的注册新用户,也可以批量的导入用户对于__用户,例如新录取的一届学生,系统___可以通过导入用户信息文件注册用户对于个体用户,例如个人注册,可以单独录入资料完成注册系统___需要给普通用户进行充值用户将钱交由系统___,由系统___完成充值业务系统___可以给单个普通用户__注销、证件有效期延期当普通用户退出系统时,系统___可以对用户注销操作,注销用户信息当普通用户证件快过有效期时,系统___可以可以延长用户的有效期公告管理公告的发布和删除等公告主要是系统的一些信息的发布,如图书馆关闭时间,一些节假日放假通知等普通用户登录系统后可在系统首页看到数据库管理人员,主要是对整个数据库系统进行管理,主要工作任务有数据的备份,数据恢复当系统出现故障时,数据库管理人员需要根据备份的数据对系统进行恢复平时需要对数据做好备份工作系统管理人员权限管理数据库管理人员根据系统____,产生分配系统管理人员帐号,并分配权限当人员离职时,删除相应帐号通过实际中对某图书馆管理系统使用,结合图书管理日常工作的调研、分析,总结形成了系统的基本业务流程,其主流程图如
3.1所示1普通用户图书借阅业务普通用户将要借阅的书籍拿到柜台,由系统_____借阅业务系统___录入用户的证件号、书籍号,完成借阅业务在__借阅业务时,系统需要检查用户的借阅权限、是否达到最大借阅限额、用户是否有超时未还的书籍或者因为超时扣费而欠款,在没有这些情况时,才具有借阅资格另一方面,图书馆内一般都设有特殊的标签的书籍,如每种书都有一本存底的书(保证每种书都有至少一本留在馆内,给其他普通用户查看),该种书需要贴上特殊、明显的标记,防止用户那这种书籍__借阅业务,而不成功在借阅时,系统___也需要查看是否是该种特殊的书籍,如果是,则不予以__业务同时,系统也需要检查,防止不熟悉业务的系统___对这类书籍__业务借阅业务是图书管中的主要的对外业务,也是最繁忙的业务,因此该业务的优化是非常有重要的为了减少系统___的工作量,同时增加图书馆业务的自动化水平,现在某些图书馆已经__了自助借还机自助借还机24小时工作,操作简单,智能识别证卡,且操作界面人性化,不过__较高图
3.1系统主业务流程图2普通用户还书业务普通用户借出的书籍必须在限定的时间范围内归还,否则,会按照一定的规则进行扣费普通用户__还书业务时,将图书拿到柜台即可,由系统_____还书业务,系统更新图书信息和用户信息如果用户借阅的书籍超时,且已造成欠费,需要提醒用户充值,否则影响下次借阅业务的__3普通用户图书丢失结算业务如果普通用户将借出的书籍丢失,则需要去___理结算业务普通用户告知系统___丢失的图书信息,同时需要按图书进价赔偿,同时赔偿图书制作工本费,如图书RFID标签费用等4普通用户客户端操作普通客户可通过客户端操作,减少在___理业务的等待时间,方便用户使用普通客户端通过帐号__登录,远程登录,查看系统公告、查看个人信息、借阅记录、查看图书管新进图书推荐、查看图书,避免图书馆没有想要看的书而白跑一趟5普通用户管理系统___可以单独的注册新用户,也可以批量的导入用户对于__用户,例如新录取的一届学生,系统___可以通过批量导入用户信息文件注册用户对于个体用户,例如个人注册,可以单独录入资料完成注册系统___可以给普通用户__充值业务用户将钱交由系统___,由系统___完成充值业务系统___可以给单个普通用户__注销、证件有效期延期当普通用户退出系统时,系统___可以对用户注销操作,注销用户信息当普通用户证件快过有效期时,系统___可以可以延长用户的有效期6书籍管理系统___需要给用户__借阅业务,通过录入用户信息和图书信息,更新相应数据给用户__还书业务,通过扫描图书信息即可,自动读取相关信息,更新数据系统___给用户__图书丢失结算业务时,通过读取用户证件,获取用户当前借阅的图书信息,由用户确认具体丢失书籍,给用户__结算业务另一方面,系统___需要将新进的图书的信息录入系统,完成图书管书籍扩充操作,同时,当图书馆运营一段时间后,有一些书籍已经破损,或者是出版时间太长,缺乏参考价值,没有读者借阅,或者是已经__新的版本,则这些图书应当移除图书馆,减少对图书馆空间的占用,系统___需要将这些图书清除出系统,在数据库中,将这些书的相关数据转存到另外的空间或者删除7系统___报表统计系统的运营会产出许多数据,一般难以查看,需要进行统计分析后,做出报表来方便管理人员查看系统___可以统计相关数据,以报表的形式展示,包括各类图书统计、各种图书借阅记录统计、各种图书搜索频率、用户超时欠费统计8数据库管理人员对人员、数据的管理数据库管理人员的主要是对系统人员和数据的管理如分配相关帐号的权限,增加系统管理人员的帐号,定期对数据的备份,当发生系统崩溃时,对数据的恢复
3.2系统用例分析本节通过UML中的用例图来展示系统中涉及的主要场景1借阅书籍图
3.2借阅用例图普通用户借阅书籍业务用例图如图
3.2所示由系统___在__借阅业务时,需要录入用户的证件号、书籍号,完成借阅业务在__借阅业务时,系统需要检查用户的借阅权限、是否达到最大借阅限额、用户是否有超时未还的书籍或者因为超时扣费而欠款,在没有这些情况时,才具有借阅资格借阅业务是图书管中的主要的对外业务,也是最繁忙的业务,因此该业务的优化是非常有重要的为了减少系统___的工作量,同时增加图书馆业务的自动化水平,现在某些图书馆已经__了自助借还机当用户使用自助借还机进行借书业务时,不需要系统___的参与,直接将书籍、卡证放入相应位置即可2还书普通用户__还书业务时,将图书拿到柜台即可,由系统_____还书业务,还书时,由系统计算该用户所还书目的时间是否在规定时间内,若在规定时间内,则按正常还书流程更新图书信息和用户信息,若超过规定的借用期限,则继续获取超出规定归还日期的天数并计算罚款金额,待用户将罚款还清,再更新用户信息普通用户还书业务用例图如图
3.3所示3普通用户管理普通用户可在___理用户注册、充值、延长有效期、用户注销业务用户注册或余额不足时,用户将钱交由系统___,由系统___完成注册及充值业务用户注销时,系统___需要将该用户信息删除,清算用户余额或欠款其用例图如图
3.4所示图
3.3借阅用例图图
3.4普通用户管理用例图4普通用户图书丢失结算业务当普通用户将图书馆的图书丢失时,需向图书馆___申请图书挂失,图书馆系统___收集该用户信息以及丢失的图书的信息,将所有信息录入图书馆管理系统,计算该图书所涉及的金额(包含图书定价以及图书制作工本费用等)并告知该用户,待其付清赔偿金额稍后,图书___需将该图书相关信息从图书馆管理系统的数据库中删除图
3.5图书丢失结算业务用例图5普通用户客户端操作普通客户使用有效的帐号__在客户端登录入图书馆管理系统进入系统主界面后,有“查看系统公告”、“查看个人信息”、“查看借阅记录”、“查看图书馆新进图书推荐”、“搜索图书”等功能为用户提供不同的体验“查看系统公告”功能查看图书馆最新公告内容;“查看个人信息”功能,查看本人相关信息,并可修改个人信息或__;“查看借阅记录”功能,可查看该用户的历史借阅记录;“查看图书馆新进图书推荐”功能,可自动为用户推送图书馆最近新引进的图书;“搜索图书”为用户提供图书查询,以查看是否存在该图书或是图书余量,避免普通用户亲自到图书馆手动查找普通用户客户端用例图如图
3.6所示6系统___书籍录入、下架、数据统计系统___需要将新进的图书的信息录入系统,完成图书管书籍扩充操作,同时,当图书馆运营一段时间后,有一些书籍已经破损,或者是出版时间太长,缺乏参考价值,没有读者借阅,或者是已经__新的版本,则这些图书应当移除图书馆,减少对图书馆空间的占用,系统___需要将这些图书清除出系统,在数据库中,将这些书的相关数据转存到另外的空间或者删除系统的运营会产出许多数据,一般难以查看,需要进行统计分析后,做出报表来方便管理人员查看系统___可以统计相关数据,以报表的形式展示,包括各类图书统计、各种图书借阅记录统计、各种图书搜索频率、用户超时欠费统计系统___书籍录入、下架、数据统计用例图如图
3.7所示图
3.6普通用户客户端用例图图
3.7系统___书籍录入、下架、数据统计用例图
3.3功能模块分析跟据图书管系统实际,本研究将系统划分为如下几个模块普通用户客户端模块、系统___模块、数据库管理模块,各个模块下又有不同的子模块,具体如图
3.8所示关于各个模块的详细信息见第5章图
3.8系统的模块划分图
3.4技术性能分析该系统面向社区或者高校图书馆,所以,使用用户比较多,数据量比较大,另一方面,由于信息技术发展比较快,由此也带来相应的问题因此,在系统__实现过程中,需要考虑如下问题1系统使用用户比较多,如在高校图书馆,数据量比较大,单独学生就要2万条的数据量,所以,在数据库选择、数据库设计时,需要考虑数据库系统承受的范围、冗余分析,尽量对数据库操作优化,减少系统响应时间和稳健性2现在信息技术发展比较快,如之前图书馆信息系统主要用条形码技术管理识别图书,现在利用RFID技术并结合电子标签来管理,但是目前来说,新技术的使用成本比较高,设备__昂贵,所以推行起来可能需要一定时间
[9]所以,在系统的设计时,需要留下相应接口,便于新技术的接入,同时,兼容现有的主流的技术3交互友好性,现在衡量软件系统是否成功优秀的一个重要标准就是系统的友好性,所以,系统在设计时,在尽量多实现功能的同时,尽量使系统简单易懂、易学,减少用户错误操作的频率
3.5本章小结本章主要是对图书信息管理系统做需求分析,然后使用UML分析方法,通过系统业务流程分析、用例分析对系统产生一个基础框架,为系统实现打下基础第四章系统设计在这一章中,主要介绍图书馆管理系统的详细设计思路根据前几章的工作,对系统总体设计,包括系统总体结构设计,数据库设计
4.1系统的总体结构设计一个正确而有效的软件系统需要一个与需求相适应的系统支架信息管理系统目前主要的结构有B/S和C/S结构,下面简要的介绍下这两种结构B/S结构B/S结构即浏览器(browser)和服务器(Server结构由于Internet技术的广泛使用而流行,主要特点是用户通过浏览器实现对信息的访问浏览器为前端,主要发送用户请求给服务器,并向用户展示从服务器端返回的信息,事务逻辑较少后台服务器主要是接收用户请求,并信息相关处理,然后将信息返回,事务逻辑的主要实现都在服务器端其主要优势在于维护及升级简单、易于扩展,用户访问简单用户通过在服务器端提供一组用户名和__,在任何设备上都可以访问资源,并可通过浏览器进行安全验证传统的B/S结构其本质为两层结构,结构简单,但是也正因为如此,也带来了许多问题在B/S结构中,几乎所有的资源都依赖与服务器通过网络进行传输,当数据量较大时,而浏览器对于大数据的表示能力有限另一方面,目前,用户所使用的浏览器种类比较多,而且同一浏览器的不同版本也可能被不同用户所使用,而这些问题(主要是CSS布局、J__aScript等脚本的兼容性问题)会导致不同用户看到的视图存在差异性同时,在B/S模式下,数据处理过于依赖服务器端,如果数据访问量比较大的话,易在后台形成瓶颈随着互联网技术的不断发展、性能的逐渐提高以及应用软件系统的大型化,传统的基于客户/服务器结构,实质为两层结构其缺陷和不足越来越明显研究人员提出了一种全新的三层结构模型,其结构模型定义包含了表示层(Presentation、应用逻辑层(BusinessLogic以及数据服务层(DataServi__目前在应用程序的__领域,三层应用模型的结构已成为主流表示层、应用逻辑层和数据服务层分为为三个__的单元,完成不同的任务表示层一方面需要承接用户的需要,和用户交互,另一方面并把这种交互需要通过网络传递给应用逻辑层应用逻辑层的组件需要处理事务逻辑,并将数据和资源请求通过SQL的方式发送到数据服务层数据服务层则进行数据底层的处理,如查询、插入、删除等操作表示层可以看作人机交互界面,通常被称为客户层,它是用户与系统进行信息交流的接口表示层的主要功能是帮助用户使用服务、获取资源、发送请求,并检查操作用户数据输入是否符合应用规则的要求,并作为系统输出数据的呈现载体应用逻辑层处于三层结构的中间,也可称之为中间层,其主要功能是接收表示层或是数据逻辑层的输入,进行处理处理并返回数据和结果,以及__格式转换的作用,如客户机通过网络传输到中间层的用户请求需要在这里转换为数据库可以识别的数据库语言,才能够被数据库服务器所识别和处理数据服务层__处理后的结果同样需要在中间层进行转换,转化成用户语言再送到表示层,方便表示层的展示数据层的主要是对数据库的进行操作和管理在收到中间层的请求后,数据库服务器就按照作业要求对数据库进行操作,迅速执行大量数据的更新或是检索,并对数据的访问和数据的完整性进行约束,最后将处理结果反回给应用逻辑层C/S结构C/S结构,及客户机(Client)和服务器(Server结构
[10]在客户机client/服务器Servier网络环境中,两者分别扮演不同的角色,完成不同的任务
[11]服务器为客户机提供网络资源,客户群向服务器索取网络资源由于软件系统规模大小不一,在选择服务器时,通常选择小型机或是工作站等高性能计算机设备作为服务器,而用PC机作为客户机载体其主要优势在于后台服务器运行数据负荷相比与B/S结构来说较轻本系统结合图书馆信息管理系统的业务特点,采用C/S结构前台采用PHP技术,后台数据库采用MySQL这两种开源的技术的组合,能够满足系统的基本性能需求,且减少了系统的实施、部署成本B/S结构和C/S结构的比较C/S结构是基于局域网的两层结构,而B/S则是基于广域网的三层结构这两种结构需要的网络环境是不同的1C/S结构通常需要专用的网络环境的支持相比之下,下B/S结构比C/S结构具有更强的适应性、这方面的要求比较低,它不需要专门的网络作支持,而是建立在广域网环境中的2两种结构安全等级不同B/S结构和C/S结构支持的网络规模存在比较大的差异由于C/S结构适用于专用的、较小规模的局域网,同时其用户也相对固定,因此对信息传播的控制能力也就较强;而由于B/S结构主要用于网络规模较大的广域网,面向的用户存在诸多不确定性,也就导致对信息传播的控制能力相对较弱在软件__时可以根据这一特点,按照信息安全性的要求,有针对性的选择使用B/S结构或C/S结构部署项目3两种结构对程序架构要求有所不同按照C/S结构__的应用系统的运行速率不属于考虑的重点,她更加注重于权限的多层次校验检查;而在B/S结构中,系统的运行速率和安全性都是需要考虑的问题4两种结构的程序维护方式和成本不同在C/S结构中,程序由于客户机端和服务器端关联度、耦合度很高,必须作为一个整体进行考虑,其维护和升级很难,必须同时对客户机和服务器进行维护;而在B/S结构中,程序的升级维护可以通过更换程序构件来实现,浏览器和服务器关联并不大,系统的维护及升级成本都比较低
[11]5两种结构处理对操作系统平台的要求也不相同在C/S结构中,程序由于其在专用网络中应用,面向的用户相对比较固定,信息传播中的安全性要求较高,所以要__作系统也应该是相同的;而B/S结构的系统是建立在广域网的基础上的,面向的用户面不固定,所以对操作系统平台也没有特别的要求通过以上对C/S结构和B/S结构特点的比较,容易发现这两种结构适应于不同需求条件在具体的系统__过程中,可以有针对性的选择某种结构,以适应程序在安全性易用性及维护成本扩展性等方面的要求本文研究的图书信息管理系统选择B/S结构,因为且安全性要求并不高,但需要考虑到其应用范围大和易于扩展的特点
4.2数据库设计本系统采用MySQL作为后台数据库数据库中的表结构1用户数据管理为了方便用户的管理,建立了两张表,一个存储普通用户的数据,另外一个用来存在系统___的数据对于普通用户存储的数据项和系统___的数据项不同,但是,系统___也可以是普通用户,可以借阅图书,__相关业务,这是,需要新创建一个普通用户帐号,__相关证据
(1)普通用户相关的数据表的E-R如图
4.1,
4.2所示其中普通用户基本信息以用户编号为主键,借阅等级表以借阅等级编号为主键为了安全起见,__是以密文形式存储的图
4.1普通用户基本信息E-R图图
4.2普通用户借阅等级E-R图
(2)系统___基本信息数据表的E-R图如图
4.3所示其中用户编号为主键,对于系统___帐号来说,主要存储用户登录信息和权限信息,权限由数据库___分配,系统___没有权限直接操作权限相关数据项同上,为了安全起见,__是以密文形式存储的图
4.3系统___基本信息E-R图2图书相关数据管理作为图书馆中的主要对象,图书涉及的业务比较多,为了访问查询快,减少冗余,设计了比较多的数据表,主要有图书基本信息表、借阅记录表、丢书图书记录表、下架图书信息表
(1)图书总体信息表的E-R图如图
4.4所示,以类别编号(多本一样的书只产生一条记录,它们的类别编号一样,但是图书编号不同)为主键当图书馆运行一段__后,开始__的书籍书不等于现存的数量,所以用两个字段存储可借数等于现有数减去只阅不借数位置为图书的大概书架位置,可能不准确图书类别记录的是图书的性质,如属于参考书还是课本或是计算机专业书籍还是__图
4.4图书总体信息E-R图
(2)每本图书都有自己唯一的一条图书记录,该条记录是图书总体信息的补充类别编号主要说明每种书的公共属性,而图书补充信息说明的是每本书的独有属性,例如,某某某出版的名为XX的第Y版书,图书馆__了10本,则这是一种书,构成一条图书总体信息记录,相应的存在10图书个体信息记录其E-R图如
4.5所示图
4.5图书补充信息E-R图
(3)借阅记录表E-R图如图
4.5所示,以记录编号为主键借阅记录只记录简单的信息,如果要查看用户名、图书名等都需要连表查询当用户还书时,系统首先查看当前日期是否超过应还日期,如果是,则生成一条逾期扣费记录,同时对普通用户的帐号扣除相应的金额,最后删除该条借阅记录图
4.6借阅记录E-R图
(4)还书记录表E-R图如图
4.7所示,以记录编号为主键当用户__还书业务时,会产生一条还书图书记录,同时将图书记录中的现存量加1图
4.7借阅记录E-R图
(5)丢书图书记录表E-R图如图
4.8所示,以记录编号为主键当用户__丢书结算业务时,会产生一台丢失图书记录,同时将图书记录中的现存量减1图
4.8丢书图书记录E-R图
(6)下架图书信息E-R图如图
4.9所示,以记录编号为主键图
4.9下架图书信息E-R图3财务数据管理该系统和财务相关情况有四种,一是用户主动充值,二是用户借书逾期不还,产生扣费,三是丢失图书,__结算业务,四是用户主动注销,进行结算丢失图书结算业务归到图书管理中,下面分析充值和借书逾期扣费记录的数据表管理
(1)用户主动充值表的E-R图如图
4.10所示,以记录编号为主键用户充值时,产生一条充值记录,同时,将用户信息表中的余额加上相应数额图
4.10充值记录E-R图
(2)逾期扣费记录表E-R图如图
4.11所示,以记录编号为主键当用户还书时,系统首先查看当前日期是否超过应还日期,是,则生成一条逾期扣费记录,同时对普通用户的帐号扣除相应的金额,最后删除该条借阅记录图
4.11逾期扣费记录表E-R图
(3)销户结算E-R图如图
4.12所示,以记录编号为主键当用户丢失图书时要到___理介绍业务图
4.12销户结算记录表E-R图4日志系统数据管理本文设计的日志系统比较简单,只保护一张数据表,记录一些关键信息,为系统审计提供支持其E-R图如图
4.13所示,以记录编号为主键图
4.13销户结算记录表E-R图数据库中相关的其他结构为了让应用程序简单,同时提高效率,在数据库中设计相关的触发器和存储过程是非常重要的下面主要讲针对图书管理系统设计的触发器和存储过程1存储过程通用的操作数据库语言SQL语句在执行时需要编译,而存储过程是一组相关的SQL语言集,编译一次后就存储在数据库服务器中,应用程序在需要使用时,直接调用即可
[12]存储过程与存储函数的优点是
(1)存储过程在服务器端运行,执行速度快
(2)可重用性一经测试成功,便可在任意多个应用中调用该存储过程
(3)易维护性存储过程的修改,不会影响到调用该程序的应用
(4)抽象性将存储过程作为应用程序中的一个部分,而无需关心存储过程内部的逻辑关系
(5)提高操作性能过程执行一次后代码就驻留在高速缓冲存储器,在以后的操作中,只需从高速缓冲存储器中调用已编译代码执行,当多个用户调用同一个存储过程时,而不必重新对该存储过程进行语法分析,提高了系统性能
(6)数据完整性在相同的存储过程中,同时完成相关的操作
(7)数据安全性控制未授权用户的间接存取数据,使之可以直接从存储过程而不是数据库实体中存取数据本系统设计的存储过程是还书处理的还书时逾期扣费处理存储过程存储过程逻辑为首先产生一条还书记录(通过查阅数据库中借书记录,获取应还时间),然后判断当前还书时间是否大于借阅时的应还时间,如果是,则产生一条逾期扣费记录,同时,在用户的帐号余额中减去相应的扣费,最后将该条借书记录删除输入参数___编号,用户编号,图书编号,当前日期,扣费幅度(指每逾期一天,扣费金额)输出参数是否逾期该存储过程代码为DROPPRO__DURE`check_delay`;CREATEDEFINER=`root`@`localhost`PRO__DURE`check_delay`IN`operatorid`INTIN`userid`INTIN`bookid`INTIN`returntime`DATEINaddmoneyFLOATNOTDETERMINISTICMODIFIESSQLDATASQLSECURITYINVOKERbegindeclareduetimeDATE;declareoffINT;DeclareisdelayBOOLEAN;Setisdelay=0;selecttimeintoduetimefromlendwherelend.userid=useridandlend.bookid=bookid;insertintoreturnoperatoruseridbookidduetimereturntimevaluesoperatoruseridbookidduetimereturntime;ifyearduetimeyearreturntime||DAYOFYEARduetimeDAYOFYEARreturntimethenSetoff=yearreturntime-duetime*365+DAYOFYEARreturntime-DAYOFYEARduetime;Setisdelay=1;Insertintodeductionoperatoruseridbookidreturntimemoneyvaluesoperatoruseridbookidreturntimeoff*addmoney;updateusersetuser.money=user.money-off*addmoneywhereuser.id=userid;endif;Deletefromlendwherelend.userid=useridandlend.bookid=bookidend调用存储过程的语法为过程名参数l,参数2,·..;2触发器触发器是由于特定__发生所触发的动作它和存储过程的区别有
(1)触发器是在表修改时隐私执行,与使用表的用户或者是应用无关
(2)触发器不接受任务参数,同时不能给程序返回执行结果触发器具有许多优点
(1)防止无效数据事务
(2)实现复杂的安全性
(3)保证在分布式数据库中跨结点地引用完整性
(4)创建策略和复杂事务规则
(5)提供透明日志功能
(6)提供审计功能
(7)维护同步表对经常修改的表收集统计数据本系统设计的触发器有1借书处理相关的触发器该触发器逻辑为在产生一条借书记录时,就将该借阅读者信息表中的已借阅数加1同时,在该书的可借数上减
1.该update_lendnum触发器代码如下DROPTRIGGERIFEXISTS`update_lendnum`;CREATEDEFINER=`root`@`localhost`TRIGGER`update_lendnum`BEFOREINSERTON`lendinfo`FOREACHROWupdateusersetuser.lendnum=user.lendnum+1whereuser.id=new.userid该update_lendablenum触发器代码如下DROPTRIGGERIFEXISTS`update_lendablenum`;CREATEDEFINER=`root`@`localhost`TRIGGER`update_lendablenum`AFTERINSERTON`lendinfo`FOREACHROWupdatebooksetbook.lendablenum=book.lendablenum-1wherebook.id=new.bookkindid2还书处理相关的触发器该触发器逻辑为在产生一条还书记录时,就将该借阅读者信息表中的已借阅数减1同时,在该书的可借数上加
1.该update_lendnum4return触发器代码如下DROPTRIGGERIFEXISTS`update_lendnum4return`;CREATEDEFINER=`root`@`localhost`TRIGGER`update_lendnum4return`BEFOREINSERTON`return`FOREACHROWupdateusersetuser.lendnum=user.lendnum-1whereuser.id=new.userid该update_lendablenum4return触发器代码如下DROPTRIGGERIFEXISTS`update_lendablenum4return`;CREATEDEFINER=`root`@`localhost`TRIGGER`update_lendablenum4return`AFTERINSERTON`return`FOREACHROWupdatebooksetbook.lendablenum=book.lendablenum+1wherebook.id=new.bookkindid3图书丢失结算该触发器逻辑为当产生一条丢失图书结算业务时,在相应的图书的剩余量上减1该update_lost触发器代码如下CREATETRIGGER`update_lost`AFTERINSERTON`lost`FOREACHROWupdatebooksetbook.leftnum=book.leftnum-1wherebook.id=new.bookkindid4充值触发器该触发器逻辑为在插入一条充值记录后,在对应用户的帐号余额中加上相应的值该update_money触发器代码如下CREATETRIGGER`update_money`AFTERINSERTON`charge`FOREACHROWupdateusersetuser.money=user.money+new.amountwhereuser.id=new.userid5销户处理触发器该触发器逻辑为在插入一条销户记录后,删除该用户记录该update_money触发器代码如下CREATETRIGGER`delete_user`AFTERINSERTON`logoff`FOREACHROWdeletefromuserwhereuser.id=new.userid关于触发器,由于MySQL数据库的总体配置部署1字符编码为了避免中文乱码情况,把数据库,数据表,数据表的某些字段都改为了UTF8的编码格式另外,把其他相关的编码也做了相应的设置(查看数据库编码的命令showvariableslikecharacter%;)图
4.13数据库编码配置2其他数据库部署配置没有特殊要求,本系统__时,使用的是XAPP系统系统__环境,__该软件后,则配套的MySQL数据库就__好了,不需要做其他特殊的配置不过,为了提高效率,数据库库___可以做一些优化配置第五章系统实现、测试与分析
5.1系统__环境本系统采用的__环境为
(1)服务器Apache
(2)数据库MySQL
(3)__语言PHP在环境搭建时,使用了XAPP软件,直接完成了Apache和MySQL服务器的__配置在项目__时,只需要将项目文件夹放置在XA_____目录下的htdocs文件夹中即可
5.2系统实现该系统实现分为两部分,一部分是面向系统___操作的管理部分,一部分是面向普通用户的客户端部分下面就这两个部分分别讲述面向系统___操作的管理部1登录在响应用户登录时,需要开启session如果登录成功,需要将该用户的信息保存在session中并且,需要做是否登录检查另外,由于用户__是以密文形式存储的,所以,在验证用户信息时,需要做相应转换同时,需要注意的是___登录的网址为http://localhost/mylib/admin用户/___登录界面如图
5.1所示图
5.1用户/___登录界面部分代码如下session_start;if!isset$_POST[submit]{echoscriptalert请登录;/script;HeaderLocation:index.html;//重定向exit;}$username=htmlspecialchars$_POST[username];$password=MD5$_POST[password];$conn=@mysql_connectlocalhostroot;if!$conn{___连接数据库失败.mysql_error;}mysql_select_dbmylib$conn;//字符转换,读库mysql_querysetcharactersetUTF8;mysql_querysetnamesUTF8;2操作总体界面总体风格是简单友好,当用户登录验证成功后,就会跳转到主管理页面所有系统___看到的主页面都是一致的,但是具体能否操作要看帐号权限例如,如果该登录帐号无用户管理权限,则就不能__用户注册、批量导入、用户延期业务,当__这些选项卡时,就会提示“对不起,您没有该项权限,请用具有该权限的帐号登录在进行该项操作”的提示(___的权限信息在登录验证时,就放入了session中,只需要使用就行)总体操作界面如图
5.2所示图
5.2系统___登录后主界面3书籍管理书籍管理分为借阅管理、归还管理、新书录入、丢失图书结算管理在借阅管理中,在获得了读者编号后,需要做两件事,一是获取用户基本信息,如读者姓名、帐号余额、当前借阅量等并显示出来二是查询该用户的当前借阅记录,并显示出来对于读者信息,显示读者姓名、读者编号、当前已借阅数、最大借阅数、帐号余额、帐号有效期和借阅等级及__方式对于图书信息,需要显示图书编号,图书名称、借书日期和应还日期目前还只实现了手动的输入读者编号、图书编号进行借阅在后台处理中,只需要插入一条借书记录就可,对用户的已借阅数的自增一和该种图书可借数的自减一操作是由数据库中的触发器自动完成的对于链接条码扫描仪或是RFID阅读器读取的功能还没有实现其显示已借阅记录的主要代码如下for$i=0;$i$item[lens];$i++{printtr;printtd.$item[$i][bookid]./td;printtd.$item[$i][bookname]./td;printtd.$item[$i][booklenddate]./td;printtd.$item[$i][bookduedate]./td;print/tr;}在还书管理中,首先获取归还的图书信息,根据该条图书信息,获取该读者的信息,主要是个人信息和当前还未还的书籍信息在还书处理时,应当考虑归还的书籍逾期的情况,这是需要对用户进行扣费处理在数据库设计时,因为加入了针对该情况的存储过程,因此,在还书的后台处理时,直接调用该存储过程即可对该存储过程的调用为$isdelay=check_delayadminno,userno,bookno,date,addmoney;在新书录入时,需要录入的数据比较多,同时还需要上传图书的封面__,供用户在查阅图书时使用在处理时,首先需要___录入种类编号,根据该编号判断图书馆中是否有该本图书,如果有,则不需要录入大部分数据了,只需要录入新书的具体的图书编号和是否可借阅这两个属性了如果没有的话,就需要___一一输入在对上传的__处理时,并不将__存入数据库中,因为__数据存入数据库效率不高,且读取不是很方便,而是直接将__按照一定的规则重命名后存放在服务器中__重名为图书类别编号.png,因为对于每种书来说,图书类别编号是唯一的,保证没有重名__文件在新书录入时,需要做两步,首先信息的获取,然后之间插入相应的记录新插入的记录分为两种,一是一条图书基本信息记录,二是插入相应数目的图书信息记录录入界面如图
5.3所示对于__上传处理部分的代码如下所示if$_FILES[file][type]==i__ge/gif||$_FILES[file][type]==i__ge/png||$_FILES[file][type]==i__ge/jpeg||$_FILES[file][type]==i__ge/pjpeg$_FILES[file][size]200000{if$_FILES[file][error]0{echoscripthistory.go-1;alert上传文件错误码:.$_FILES[file][error].!;/script;exit;}else{//保存文件到指定文件位置,文件名为本来的文件名+时间date_default_timezone_setPRC;$time=dateY-m-dH:i:s;$trimtime=str_repla__array-:$time;$filename=$trimtime;$video=$_FILES[file][name];move_uploaded_file$_FILES[file][tmp_name]bookpic/.$_FILES[file][name].$trimtime;对丢失图书进行结算管理时,用户不记得图书编号,不能输入图书编号,只能从用户证件中读取用户信息,查到相关的借阅记录,由用户确认具体丢失图书,用户确认之后,__结算业务,交结算费用后台处理时,只需要插入一条丢失图书记录就可见图
5.4图
5.3图书录入界面图图
5.4丢失图书介绍业务操作界面图4用户管理对用户管理分为用户注册、用户充值、用户延期、用户销户和批量用户导入对于用户注册,只需要获取相应信息后插入一条用户记录就可对于用户充值,在获取用户编号后,查询用户数据,然后显示出来,然后输入充值金额,确定充值,插入一条充值记录就可,对于用户帐号余额的处理是由对于的触发器完成的,不需要后台处理对于用户延期处理,直接发出一条update命令就行对于用户销户处理,首先需要查出用户个人信息和借阅信息,在确认没有借书没还记录后,然后才给__销户业务在__销户业务时,插入一条销户记录就行,对用户信息的删除由触发器完成对于批量用户注册,主要是读入ex__l数据文件,然后根据读入的数据,插入相应的记录就行实现时,先让___上传Ex__l文件,然后,用phpex__l处理ex__l文件内容,获得相应的数据,然后插入相应的sql语句完成用户的注册部分代码如下if$_FILES[file][type]==xlsx||$_FILES[file][type]==l==xls{if$_FILES[file][error]0{echoscripthistory.go-1;alert上传文件错误码:.$_FILES[file][error].!;/script;exit;}else{require_on__PHPEx__l.php;$o__Reader=PHPEx__l_IOFactory::createReaderForFile$_FILES[file][tmp_name];$o__PHPEx__l=$o__Reader-load$_FILES[file][tmp_name];$o__PHPEx__l-setActiveSheetIndex1;$o__Worksheet=$o__PHPEx__l-getActiveSheet;//循环读取数据$allRow=$o__Worksheet-getHighestRow;//从第二行开始输出,ex__l表中第一行为列名for$currentRow=2;$currentRow=$allRow;$currentRow++{$name=$o__Worksheet-get__llByColumnAndRow0$currentRow-getValue;$no=$o__Worksheet-get__llByColumnAndRow1$currentRow-getValue;$degree=$o__Worksheet-get__llByColumnAndRow2$currentRow-getValue;$contact=$o__Worksheet-get__llByColumnAndRow3$currentRow-getValue;$date=$o__Worksheet-get__llByColumnAndRow4$currentRow-getValue;$date=dateY-m-d PHPEx__l_Shared_Date::Ex__lToPHP$date;$plus=$o__Worksheet-get__llByColumnAndRow5$currentRow-getValue;insertintousernonamedegreecontactdateplusvalues$no$name$degree$contact$date$plus;}}Ex__l文件的数据列应按如下顺序排列,当前借阅量、帐号__、帐号余额都使用默认值第一行为表头,其它行为数据行表
5.1Ex__l文件列数据项排列顺序姓名用户编号借阅等级__方式证件有效期备注5公告管理公告管理分为新建公告、编辑公告、删除公告对于新建公告,输入公告标题、公告内容后__提交就行对于编辑公告和删除公告而言,首先需要将公告展示出来,为了方便___方便查找需要编辑或者是删除的公告,还设置了公告查询公告,可分为按日期查询和标题查询图
5.5公告管理操作界面图6报表统计报表统计分为用户统计、书籍统计、充值统计、借阅统计、账目统计,这些统计功能在实现上都比较简单,主要是只执行相应的SQL,然后,将相应的数据显示出来就行,这里就不多说了7安全退出用户退出时,主要是销毁session,并跳转到登录页面其主要代码如下:phpsession_start;session_destroy;echoscriptalert退出成功!/script;$url=index.html;HeaderLocation:$url;//重定向Exit;面向普通用户的客户端部分1用户登录普通用户登录客户端和___登录的主要代码相同,这是访问网址是http://localhost/mylib/,这里就不重复说了用户登录后,就直接进入主页面,在展示主页面之前,首先需要查询用户是否有逾期没还的书籍,如果有,则弹出一个页面,提示用户及时还书,防止不必要的损失2公告展示__公告展示菜单,进行菜单展示,公告展示按____展示实现时,只需要按时间排序搜索出相应的记录,进行显示在显示时,只显示标题及____,用户感兴趣可以__进入公告详情页,查阅公告其公告展示页如下图
5.6所示图
5.6公告展示页3用户个人信息管理对个人信息的管理分为两块,一是借阅记录查看,而是个人信息的编辑,如登录__、__邮箱等图
5.7修改登录__界面图对于个人信息的编辑,在提交修改时,需要输入__在确认一次用户身份,防止用户登录后,离开没有安全退出而让别人使用修改__其操作界面图
5.7所示对于借阅记录展示,没什么特殊功能,只是数据查询然后展示,功能实现和前面的比较类似,就不多说了4图书查询在书籍菜单栏下,有两个大功能,分为图书查询和新书推荐对于图书查询,可按书名、出版社、__、译者查询在按书名查询时,可进行模糊查询SQL语句对模糊查询提供了一定的支持一般的模糊查询语句语法类似与Select字段A,字段B...From表一,表二..Where某表某字段Like条件其中对于条件,SQL提供了4种匹配模式
(1)基于百分号(%)的表示任意多个字符,即可匹配任意昌都或是类型的字符对于某些情况下,需要用两个百分号表示中文匹配,这和具体数据库实现有关
(2)基于下划线(__的表示任意某个字符匹配任意单个字符,通常用来限制表达式长度或是字符顺序
(3)基于中括号的([]的表示括号内所列字符中的某一个通常用来指定一个字符、字符串的范围,要求匹配它们中的某一个
(4)基于取反符号和括号([^]的表示需要匹配的符号不在括号内列举之间的,表示取反之意所述的这些通配符的具体使用规则都和具体的数据库系统有关,具体使用时,需要注意细节问题如果只依靠SQL语言的支持,采用通配符的形式进行模糊查询的话,查询出的结果显示可能不太友好,即不能按照查询相关度进行排序如果在匹配结果不是很多的情况在,这样对用户也没有什么影响,但是如果匹配结果非常多的话,用户需要翻阅许多数据采用获取到想要的信息,同时也耗费了许多的带宽,所以这里需要改进本文采用的相关度排序策略比较简单,主要给不同的字段分配不同的权值,如在书名完全匹配则给予权值10,书名部分匹配给予权值8,关键字匹配给予权值5,这样在中间表中给予排序,达到按相关度排序的目标但是,考虑到本文设计的系统所针对的目标是小型的图书馆,为了降低系统的复杂性,主要是对书名查询提供模糊查询设置,只需要按照书名的匹配度排序即可,这可在以后进行改善5新书推荐对于新书推荐功能,最理想的是能像商务__上的,推荐用户感兴趣的相关的新的书籍,做好数据挖掘的工作从读者的借阅记录、个人信息、查询记录中归纳出用户的兴趣点,提高推荐的可用性就目前来说,数据挖掘有多种解决技术,包括统计学习、决策树、关联规则、模糊集、神经网络、粗糙集和遗传算法等1决策树决策树是一个预测模型,其主要思想是分类
[13]决策树算法利用书的分支结构实现分类,树的节点代表对属性的判断,分支表示判断结果决策树的一个好处就是它可以产生人能够直接理解的规则,准确率也比较高它的算法有许多变种,包括ID3算法、CLS算法、CART算法和SPRINT算法2关联规则关联规则是发现数据之间的未知的相互依赖的关系,其主要思想是通过给定的事物集、最小支持度和最小可行度,根据选定的关联规则,发现数据间的用户感兴趣的__,所有生成规则都满足支持度和置信度分别高于用户设定的最小置信度和最小支持度的关联规则
[13]3神经网络神经网络是模仿生物神经网络的,是以MP模型及Hebb学习规划为理论基础,模仿人脑的神经元的工作(实际实现是通过矩阵的迭代变换实现的),进过输出层、隐藏层及输出层等,最后得到结果神经网络的学习过程就是神经元连接权值的调整过程,具体的实现是通过一定的规则迭代的改变权值矩阵的值但是,由于该系统主要是针对小型的图书馆,设计时数据存储的数据不是很大,做数据挖掘的准确率也不是很高,所以,没有采用上述的模型方法,而是直接通过查找__时间比较近的书籍,这点可以以后优化系统中的安全考虑由于采用B/C模式,对用户的控制比较弱,且是基于广域网的,所以安全问题不容忽视1关于SQL注入攻击SQL注入攻击是黑客对数据库系统进行攻击的常用手段之一由于程序员在编写程序的时候,没有对用户输入数据的合法性、合理性进行判断,使应用程序存在的一类安全隐患用户可以提交一段数据库查询代码,混入正常的查询条件输入中,在程序中返回的超越权限的查询结果,获得某些他想得知的数据,这就是所谓的SQLInjection,即SQL注入攻击一般来说,SQL注入是从正常的___端口访问,而且表面上看起来跟一般的Web页面访问没有什么不同,所以一般的防火墙都不会对SQL注入攻击发出警报信息因此,如果___没查看数据库日志的习惯,可能被攻击很长时间都不会发觉但是,SQL注入攻击的手法也相当灵活,在注入的时候也会碰到很多意外的情况,因此需要构造巧妙的SQL语句,填入的输入字段中从而成功的获取想要的数据为了防止SQL注入攻击,在涉及的用户输入,并且该输入组成sql语句中,就需要对该输入进行适当的处理,这包括长度检查、特殊字符的屏蔽转码等在本系统设计时,采用的防御代码框架如下trim$var;//去除字符串两端的空白Ifstrlen$var=$__XLEN{echoscriptalert输入长度超过最大数限制$__XLEN;/script;HeaderLocation:destination.html;//重定向exit;}$pattern=‘/’|delete|select|update/’;//定义匹配模式,匹配单引号,delete关键字、select关键字、update关键字$repla__=‘‘;//定义匹配之后替换掉的字符,替换成NULL字符,即删除掉单引号$newvar=preg_repla__$pattern$repla__$var[-1]2其他在互联网环境中,网页传输的信息容易被嗅探,为了保证帐号的安全,在__所用的请求都是通过post方式发送,且采用了加密的方式传送,防止帐号__被嗅探日志系统为了防止外来攻击、及时发现外来攻击,系统审计是非常有必要的一般,审计主要是通过在数据库系统中记录重要操作的一些重要信息,如操作帐号、操作时间、操作IP地址等,可以给以后的管理工作提供方便为了减少数据库系统的大小,同时提高事务处理的能力,在文本设计的系统中的日志系统中,记录所有的数据库的操作,包括删除、插入、更新和查询操作为了对于重要数据表的提供更高级别的保护,还给数据表添加权限,如普通用户对___数据表没有操作权限等第六章总结与展望
6.1总结本论文所__的管理系统主要针对小型的图书馆,充分的考虑了小型图书馆的日常需求及业务特点,能显著的提高图书馆管理的效率,方便管理人员使用在节省管理时间,人力物力的同时,方面用户使用系统中主要的管理对象有读者管理、图书管理本系统应用PHP程序__语言,采用MySQL作为服务器端数据库,实现的整个软件系统,并部署到Apache服务器上论文重点分析了小型图书馆信息管理系统需求及设计思路,并讨论了数据库的数据表的设计、一些重要的提高系统性能的触发器、存储过程的设计,最后使用PHP语言测试实现本文很好的考虑了事务处理的一致性,采用触发器及存储过程,保证了事务的完整性在本文中讨论的功能需求基本上都已实现,并提供了一个简单、友好的操作接口,当然,系统还有许多地方需要进一步的优化处理,关于本系统的不足在下一节中讲到通过这次的系统__,我掌握了PHP的基本使用方法,加深了对数据库理论的认识,并能熟练的设计使用触发器、存储过程了,同时也对一个基于B/S模式的管理系统的设计、实施、搭建过程有了更深层次的了解另一方面,也对图书馆信息管理系统方面的知识更加的了解,比如自助借还机的原理等
6.2后续的工作虽然本系统基本上实现了图书馆管理的基本需求,但是由于时间仓促和个人能力的限制,该系统还有许多地方需要优化与完善1数据库配置的优化:对数据库没有进行太多的优化配置,如果访问量较大时,可能会影响系统性能2安全方面一方面,对数据库的日志记录不够完善,目前还只记录了一些简单信息,导致系统对外部的操作审计力度不够另一方面,程序设计时,没有考虑太多的安全问题,如在用户输入时,有些地方并没有做太多的输入检查过滤,易于遭受SQL注入攻击,这需要进一步优化3界面问题总体来说,界面简单,不够美观4程序的优化在实现时,代码有的地方冗余,代码重用性不高,可能导致系统比较大,响应用户需求时比较慢,这需要进一步优化5功能方面该系统只是实现了一些基本的功能,满足了普通的日常需求但是,在现在的图书馆的管理中,又有了许多新的问题,如图书的准确定位、书架的导航等,这些功能还有待实现____
[1]周庆伟.基于SQL小型图书馆管理信息系统设计与实现[D].四川电子科技大学,2008.
[2]风尘叹.mySQL(关系型数据库管理系统)[EB/OL].百度百科.AQoD7__VR41lIhLZB1EuyDJNApcLCC-kqfjRQi303H1UvbltsHP4lA5dD-tSFi
[3]_迪.PHP(超文本预处理器)[EB/OL].百度百科.
[4]看海的人.面向对象.[EB/OL].百度百科.[
2015.
01.15].y09279TVM3ZkEL2QjCFtvhM-94PlqCi0XKk_z__4q
[5]ljpbxh
027.apache(Web服务器).[EB/OL].百度百科.[
2015.
01.15].Qk1yoYGQJtgtqDnKUBmBWP8KDWqLgt234_4yJfokaRRolvXnGSEDBmcNxk0G
[6]soxiu.条形码.[EB/OL].百度百科.[
2015.
01.15].o-9V5XG6st-ioQ2EBA_3FjTLFkEoK-x074m6Fca
[7]chinael.射频识别技术(通信技术术语).[EB/OL].百度百科.[
2015.
01.15].hV0r2ItXEIwxEg7Uyzzd7a2O_-tLpLeHKxblAdaPTpU-__YZLHUktR7NxSAuf8pdEI7EXSEIDR2h5IABPJkmvnlIpcZjTOt1U7vJRzK
[8]沈晨.自助化图书管理系统的设计与实现[D].四川电子科技大学2013
[9]曹丽冰.RFID技术在图书馆流通管理中的应用[J].科技信息,20114:365-
365.
[10]周宗强.图书信息管理系统的设计与实现[J].吉林吉林大学,2014
[11]hellring
229.B/S结构.[EB/OL].百度百科.BpoqYqRdcJYqJowAbIW1fR9V-8aU6bhlBgRZZiXJwL___pl66iq
[12]ws
198152.存储过程..[EB/OL].百度百科.vJt8cVC2QRP_2yrj96g77MwIVp6uqT6PQ1E1tOcS2Mg5qOR_
[13]李湘穗.数据挖掘技术在图书馆管理信息系统中的应用[D].吉林吉林大学2014.致谢本论文是在老师的悉心指导下完成的,在此谨向老师表示衷心的感谢论文的完成得益于老师的正确指导和严格要求,老师对课题的研究方向给予了高度的重视并倾注了大量的心血,高度__工程的进展,给予了我很多的指导老师渊博的学识、严谨的治学态度、对科学研究的高度热情是对我永远的鞭策,老师的精心培养将使我受益终身谢谢老师二零一五年月在学期间发表的学术论文西北工业大学学位论文知识产权声明书本人完全了解学校有关保护知识产权的规定,即研究生在校攻读学位期间论文工作的知识产权单位属于西北工业大学学校有权保留并向国家有关部门或机构送交论文的复印件和电子版本人允许论文被查阅和借阅学校可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等__手段保存和汇编本学位论文同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律注明__单位为西北工业大学保密论文待解密后适用本声明学位论文__签名指导教师签名年月日年月日—————————————————————————————————————西北工业大学学位论文原创性声明秉承学校严谨的学风和优良的科学道德,本人郑重声明所呈交的学位论文,是本人在导师的指导下进行研究工作所取得的成果尽我所知,除文中已经注明引用的内容和致谢的地方外,本论文不包含任何其他个人或__已经公__表或撰写过的研究成果,不包含本人或其他已申请学位或其他用途使用过的成果对本文的研究做出重要贡献的个人和__,均已在文中以明确方式表明本人学位论文与资料若有不实,愿意承担一切相关的法律责任学位论文__签名年月日数据库___数据库系统___用户管理普通用户图书借阅图书归还用户注册图书丢失结算用户延期用户充值用户注销客户端用户登录公告显示个人信息管理书目查询新书推荐报表统计公告管理发布公告删除公告书籍管理新书录入旧书下架普通用户系统___借阅请求交与卡证、书籍信息要求用户、书籍信息信息确认,完成借阅普通用户系统___还书请求交与书籍信息要求书籍信息确认,完成还书普通用户充值请求用户注册请求延长有效期交与钱币帐号注销请求信息确认系统___信息确认,完成注册信息确认,完成延期要求金额信息确认,完成充值信息确认,完成注销帐号财务结算普通用户系统___读取用户当前借阅图书信息,确认丢失图书告知结算金额信息确认,完成结算结算请求确认丢失的图书付清结算金额普通用户登录公告查看书籍查询新书推荐信息查看管理个人信息系统返回用户操作结果验证用户__返回用户操作结果返回用户操作结果返回用户操作结果系统___相关信息统计,找到相关需要下架的图书信息确认,数据转存录入新进图书信息,完成录入相关信息统计,报表打印图书信息管理系统普通用户客户端用户个人信息管理公告展示图书查询、新书推荐数据备份数据库___系统___管理系统___报表统计、打印图书借阅管理图书归还管理图书丢失结算旧书转存新书录入书籍管理发布公告删除公告公告管理普通用户管理用户注册用户充值用户注销用户延期普通用户__方式备注证件有效期用户编号__借阅等级当前借阅量账户余额姓名借阅等级编号最大借阅量最长借阅时间借阅等级系统___姓名用户编号__登记时间是否有借书业务权限是否有充值业务权限是否有下架业务权限是否有用户管理权限是否有图书入库权限是否有丢失图书结算业务权限图书总体信息表__数出版社__I__N__时间位置简介现有数可借数译者书名____数出版社__I__N__时间位置简介现有数可借数条形码类别编号图书类别备注1备注2图书编号是否可借类别编号借阅记录用户编号图书编号借阅日期应还日期记录编号备注操作人员借阅记录用户编号图书编号归还日期应还日期记录编号备注操作人员借阅记录丢书图书记录操作人员结算金额操作日期记录编号备注图书编号用户编号书名操作人员条形码操作日期记录编号数量备注下架图书记录用户编号操作人员充值金额操作日期记录编号备注充值记录书籍编号用户编号累计金额操作日期记录编号操作人员逾期扣费记录账户余额用户编号操作日期操作人员记录编号备注销户结算记录操作类型用户编号操作日期IP记录编号备注销户结算记录。