毕业设计(论文)-图书查询系统的设计与实现_第1页
毕业设计(论文)-图书查询系统的设计与实现_第2页
毕业设计(论文)-图书查询系统的设计与实现_第3页
毕业设计(论文)-图书查询系统的设计与实现_第4页
毕业设计(论文)-图书查询系统的设计与实现_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

太原理工大学毕业设计(论文)用纸 分类号_ 密级_ UDC _ 学号_ _毕业设计(论文)论文题目图书查询系统的设计与实现thesis TopicThe design and implementation of books query system学生姓名学 号所 在 院 系专 业 班 级导师姓名职称完成日期2015年5月18日2015年 5 月 18 日 太原理工大学第 1 页太原理工大学毕业设计(论文)任务书毕业设计(论文)题目:图书查询系统的设计与实现毕业设计(论文)要求及原始数据(资料):1阐述对图书查询系统的认识;2了解图书查询系统的功能和相关技术;3熟练掌握图书查询系统的分析,提高编写程序的能力;4设计图书查询系统对图书的查询功能;5深入分析图书查询系统的关键技术与编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。1毕业设计(论文)主要内容:1阐述对图书查询系统的认识与相关应用;2了解图书查询系统的功能,并作出相应的分析;3确定图书查询系统中所需要的模块与分析; 4设计图书查询系统对图书的查询功能;5. 深入分析图书查询系统的关键技术与编写语言;6设计与实现图书查询功能并做相应的测试;7思考在设计过程中所遇到的问题。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 2主要参考文献(资料):1 王占中. JAVA程序设计-基础教程与实验指导. 清华大学出版社. 2008.112 Bruce Eckel. Thinking in JavaM. Upper Saddle River, New Jersey, USA:Prentice Hall, 2006 3 王要武. 管理信息系统M. 电子工业出版社, 2010.84 张海藩. 软件工程导论M. 北京:清华大学出版社, 2011.35 R B.Buiendijk Logical errors in the database SQL retrieval queries. Computer Science in Economics and Management, 19886 杨学瑜,高立军.软件开发过程与项目管理.北京:电子工业出版社. 20087 王晓敏. 信息系统分析与设计 第3版. 清华大学出版社. 2006.68 Brian D. Hahn and Katherine M. Malan. Essential Java for Scientists and Engineers9 孙卫琴.java面向对象编程.北京:电子工业出版社.201210 张海藩. 软件工程导论M. 北京:清华大学出版社, 2011.3 3图书查询系统的设计与实现摘 要随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,学校要生存要发展,要高效率地把学校活动有机地组织起来,就必须加强学校资源管理,即加强对学校内部的各种资源(人、财、物等)的有效管理,建立与自身特点相适应的管理信息系统。本文介绍了在eclipse环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析传统的人工管理图书馆的不足,创建了一套行之有效的计算机管理图书馆的方案。文章详细介绍了图书管理信息系统的系统分析部分,包括可行性分析、系统需求、业务流程分析、数据流程分析、数据字典、处理描述等等;系统设计部分主要介绍了系统功能设计和数据库设计;系统实现部分列出了几个主要的程序框图,并附带了一些主要的窗口和程序。本系统界面友好,操作简单,比较实用。关键字:管理信息系统、图书管理、数据库全套图纸加扣 3012250582The design and implementation of books query systemAbstractWith more and more widespread and profound application of information technology in management, the implement of management information system has become mature in technology step by step。 Managing information system is a new subject。 Enterprise needs existence and development, so enterprise activities should be organized efficiently and organically, which means tightening up the enterprise management and strengthening effective management of any resource (staff, finance, property, etc。) internal the enterprise, and also establishing a management information system fitting in with its own characteristics。This article introduces the detailed process of exploring a management information system under the environment of eclipse, utilizing “Top-Bottom” overall plan and a strategy according to “Bottom-Top” application and exploitation。 That is to establish a set of effective scheme for library management by computer, through analyzing disadvantages of traditional library management by human resources。 This article emphasizes on three sections。 The system analysis section of library management information includes feasible analysis, organizing organs analysis, management function analysis, technological process of business analysis, technological process of data analysis, data dictionary, disposal description and the like。 The system design section mainly focuses on system function design and data base design。 And the system realization section has provided several major program charts, together with the main windows and programs。This economical and pragmatic system has explicit interface, with simple operation。Keywords:MIS、library management、database III目 录第一章 前言11.1 系统开发方法11.2 MIS系统开发过程2第二章 可行性研究分析32.1系统开发背景32.2 系统开发的重点与难点42.3 系统目标42.4可行性分析42.5结论5第三章 系统需求分析63.1 现行业务描述63.2存在问题的分析73.3解决方案73.4 功能需求定义83.5系统功能分析及说明83.5.1 系统功能分析93.5.2 系统数据分析93.6 性能需求103.7系统业务流程图10第四章 系统设计134.1系统架构134.2 数据库设计144.2.1 数据库需求分析144.2.2 数据库概念结构设计154.2.3 数据库逻辑结构设计16注:(各数据表中的字段说明是相应的名称在数据库中的属性的补充说明)184.3 系统功能模块设计194.3.1 系统总体功能模块194.3.2 用例分析20第五章 系统实现225.1 数据库连接池的实现225.1.1 连接池配置225.1.2 连接池具体实现235.2 系统实现模式245.2.1经典的MVC模式245.3 展现层实现方式255.4 系统业务逻辑实现26第六章 总结35参考文献36致 谢37V第一章 前言伴随着人类社会的发展,人对科技的渴望也不断的增长。在这种情况下,图书就成为人们获取知识的主要方式,而图书就顺其自然地在人们的生活中占据了重要的角色,如何管理图书馆关系到普通人对知识探求的方便程度,也关系到图书馆的发展,因此,研发完善的图书馆管理系统就必不可少。图书馆查询系统是典型的信息查询系统,他的开发包括后台数据库的设立和维护以及前台的应用程序的研发两个方面。前者要求创立数据的一致性和完整性,后者则要求应用程序功能的完整,简单等的特点。基于上述条件本系统主要用eclipse作前台的应用开发工具 ,利用Mysql作为后台的数据库,利用jsp作为系统平台开发的图书查询系统。另外本图书馆查询系统利用软件工程化思想和方法,总体上是采用结构化生命法对系统进行分析和设计的,而系统实现采用了原型法和面向对象的方法。1.1 系统开发方法管理信息系统的开发方法有生命周期法、原型法和面向对象的开发方法等:生命周期法(Life Cycle Method)是20世纪60年代发展起来的一种应用广泛且比较成熟的管理系统开发方法,它的基本思想是将系统的开发工作从开始到结束划分为若干个阶段,每个阶段都有明确的任务,而系统开发出来后,并不意味着生命周期的结束,而意味着根据组织的需要对系统的修改和重建的开始。原型法(Prototyping Method)是20世纪80年代发展起来的,旨在改变生命周期法的缺点的一种系统开发方法,该法的开发思路是首先根据用户的要求,由用户和开发者共同确定系统的基本要求和主要功能,利用系统快速生成工具,建立一个系统模型,再在此基础上与用户交流,将模型不断补充、修改、完善,如此反复,最终直至用户和开发者都比较满意为止,从而形成一个相对稳定、较为理想的管理信息系统。面向对象(Object Oriented)的开发方法于20世纪80年代开始兴起的,是一种基于对象的自底向上的一种系统开发方法,这种方法的特点是以对象为基础,对象是分析问题和解决问题的核心。1.2 MIS系统开发过程一个MIS系统的开发过程一般包括如下几个步骤:(1)需求分析:需求分析主要是为了了解用户的要求。需求了解得越透彻,程序的后期研发与维护所要花的费用就越少。普通的开发团队中,需求分析都是由经验较多的系统分析员或项目经理担任,可见其重要性。需求分析做好后,需要多次修改。将结果交给用户审核,确认好后,由系统分析员完成需求分析文档,再进行下一步。(2)概要设计:概要设计在需求分析之后。用户需求确定后,将数据分析后,开始创建数据库的结构。此时,数据库中的表格没完成,通过各种工具(如PowerDesigner等)画出数据流图,然后就可抽象出数据库的表结构。这时由系统分析人员多次审核。确认需求都考虑在其中,没有剩下后,就可以开始写概要设计的文档。概要设计的文档写好后,程序的逻辑的框架也就完成。(3)详细设计:在概要设计完成之后,根据设计中创建的模块,就可以进行详细分析的设计。详细设计是将模块的窗口全部完成,窗口的控件的代码都用程序语言表达出来。详细设计完成之后,程序基本上确立,再由编程者通过详细设计文档将代码完成。开发工作结束。1) 程序编码:程序编码比较简单,程序员根据详细分析文档编写程序编码,代码没有错误就行。程序编码需要注意整个程序书写中的规范化,需要很长一段时间的培养才可以形成这样的良好习惯,需要在实践中建立独特的风格。总体上,不要刻意地追求难的算法,那可能会影响后期维护人员无法看清你的代码而造成维护的不便。(4)测试:程序编码完成后,就得测试。测试有许多类型,主要测试代码有没有逻辑上的错误和在加载数据的运行环境下编写好的程序的稳定性等多方面的问题。测试发现的错误应马上纠正,然后记录在测试文档上。(5)打包:测试完毕,确认没有错误以后,程序就可以打包了。打包用工具ANT等就可以。这就是完整的MIS系统开发过程,不仅MIS系统,别的程序开发也大致相同。第二章 可行性研究分析2.1系统开发背景近年来,图书馆不断增多,图书也都增加,关于图书的信息量也增加不少,对于巨大的信息量,普通的方式管理会使图书馆管理混乱,导致资源过度浪费,加重了图书馆的任务,图书馆的运作变得复杂起来,所以,就需要一套合理、高效的系统,将图书资料统一管理起来。从别的角度来讲,IT产业和Internet的飞速发展,使得计算机应用已延伸到了各个范围,导致信息管理的发展,导致了信息的非人工化处理,加强了处理的及时性和完整性。图书查询系统在大量的可模块化处理的信息的处理当中是当今信息发展的一个重要位置。开发图书信息系统就是使用现代化的信息管理手段代替人工管理手段,加强图书管理工作成效,做到信息的规范化,合理的统计和方便的查询,让图书馆更好提供其所能提供的服务。其中有这样的问题:1。检索慢、效率低因为图书馆的图书种类繁杂、数量庞大,将图书准确地按种类区分,更快的查询,人工进行是非常困难的,老是好不容易找到了图书的信息,但图书馆中没有这种书或这被别人借走。规模越大,问题越严重。2。借书、还书难借书、还书次数越多,证明图书馆的使用率越大,所以借书、 还书登记、存放图书的更新以及借书超期、遗失等的处理上,工作量是人工所不能完成的,还经常会出现许多的差错。3。图书统计工作任务艰巨、藏书更新频率慢。图书馆的图书需要根据时代的发展及时增加和更新,但是因为图书数量和图书种类繁多,还有自然损耗,人为的破坏,致使图书的统计难以完成,图书的更新很难进行,图书的结构不能很好地控制。2.2 系统开发的重点与难点 系统出现了一些技术难点大致如下:1、合理的表结构,防止数据繁杂各表之间经过指定字段完成不同表的数据的连接,防止数据冗余,应该设计高效的表结构。2、创立一定的系统方面的安全性登录用户时对于身份的验证所设计的机制、操作系统页面的各种权限的维护。3、要创立详细的数据表操作的机制每个相同的表都有可能在好几个模块中被修改,因此建立详细的数据表操作机制是特别困难的,但同时也是必须的。此外,设计时必须考虑周密,在编写程序时更应强化程序的全面性。2.3 系统目标专为小型图书馆设计的系统。可以完成的功能有图书信息的查询、用户信息的增删改查、借阅归还图书的功能,适用于系统管理人员较少,图书数量小的单位。所有模块都在一个界面上,工作流程非常清楚,利于工作人员操作。2.4可行性分析1.技术可行性建立相应的系统开发环境,主要是进行安装数据库工具(Mysql),应用程序开发工具(eclipse),Office程序组以及网络数据传输工具。技术力量方面,开发过程中会发现许多问题,有我们可以猜到的,也有一些猜不到的,可是有信心克服所有的困难。在此期间我学习了Mysql,对网络技术和操作系统也有了系统的了解,熟悉了计算机原理,能解决一般的硬件故障。当前条件下,图书管理信息系统已得到了广泛的应用,有许多可以参考的系统,并且,网上有大量关于jsp编程的资料和eclipse的资料。因此信息系统开发可行。2.经济可行性因为目标系统的开发的需求较低,再加上成熟的软硬件环境,因此在软硬件的支出上很少。而且,目标系统不是十分的复杂,开发的时间较短。在系统开发完运行的过程中,对于提高计算机的功能有很大的帮助,在为使用者提供便利的操作的同时,也为系统的推广创造了条件。最重要的是此软件的开发会给我们对系统的开发带来一个全面的认识。因此信息系统开发可行。3.法律上可行由于在开发的过程中是自行开发,并且也是自行使用,因此系统本身不存在法律上的争议。服务器软件方面,使用正版软件,虽然整个系统的开发是作为毕业设计,但很多部分还是需要Internet的。2.5结论根据以上的可行性研究,对于此系统的开发条件已经具备,可以进行开发。第三章 系统需求分析在软件生命周期中,开发所占的比重都很小,维护工作要占整个生命周期的80% 以上。因此系统分析是十分重要的,好的系统分析会让后期的维护工作减轻不少。3.1 现行业务描述本次课题以某一所学校的图书馆为例子进行分析,画出图书馆的组织结构图如下: 图3.1 现在图书馆业务模型图该图书馆各个部门负责的主要业务如下:(1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。(2)目录厅负责读者查询方面的工作,包括可借图书(按图书类别、图书名称或图书作者查询);新书目录(按图书类别、日期查询)。 (3)借阅组负责图书借阅的流程、统计查询次数、借阅次数的查询等工作。(4)阅览室、工具书室负责用户阅览方面的工作,包括:阅览杂志、报纸、工具书。下面给出图书馆业务中借书操作的流程图:(1)用户在目录厅查阅索引卡;(2)用户写出要借图书的分类编号、种次编号、交给图书管理员,出示用户的借书证;(3)图书管理员根据图书的分类编号、种次编号到仓库找书;(4)将书籍交给用户,并由用户填写借书卡。(5)图书管理员将借书卡放在相应的保存位置上。得出该图书馆业务流程图如下所示:图3.2图书馆业务流程图3.2存在问题的分析这个图书馆许多还是用人工管理,工作效率低,一些不可避免的人为因素,可能造成数据的缺漏和误报。电脑的信息化管理特点有储存信息量大、速度快等,给我们提供了快捷的处理方式,也加强了工作人员的素质。3.3解决方案以上对问题的分析,利用计算机给我们提供信息,及时地调整学校图书馆图书结构,并且对学生们的借阅过程形成一整套动态的管理就十分必要了。图书馆信息系统的建立,需要进行用户的需求调查与分析,以确定系统目标,提出解决问题的详细方案,这是系统建设的重要环节。学校图书馆相对于商业图书馆小,但图书信息必须是完整的,每一本书的记录信息都必须十分详细,对系统功能上的需求必须是全面的。所以对用户的需求有四个方面:第一方面是工作人员通过电脑来控制各类图书,管理分类编号,调整图书的结构,图书库存数量的变化,学生的需求的满足;第二方面是学生们可以通过电脑来查询图书,确定自己的需要,方便借阅;第三方面是工作人员对学生借书证的发放;第四方面是对图书的借阅管理。这些方面就是学校图书馆工作的整体,利用计算机自动化的信息处理方式,就可以快捷地共享信息、交流信息,使协同工作更加高效。软件要求不要太难,界面简洁整齐,易掌握,可以方便的查看各种图书信息。对于硬件配置方面的要求不能太高。开发形式对系统的需求不能太高,因为学校图书馆是无商业利益的机构,因此系统开发的周期不能太长,需要在短时间内完成,降低开发成本,提高开发效率,方便、简洁、易操作作为系统开发的主要思想。3.4 功能需求定义A、作为读者对图书管理系统的要求有:1. 能按各种方式(比如书名、编号、作者)查询图书馆的藏书情况。2. 能够方便地续借图书。3. 能够查询自己的基本资料。4. 能够熟悉图书管理系统的使用。B、作为操作员对图书管理系统的要求有:1、能够对读者续借许可。2、能够对读者信息维护。3、能够管理图书信息。C、作为图书管理员,他们对图书管理系统的要求有:1. 能够方便的日志维护。 2. 能够方便进行数据维护。3. 能够维护整个系统的权限操作。3.5系统功能分析及说明3.5.1 系统功能分析系统功能分析就是系统开发的总体任务作为基础,完成程序的设计。需要完成的功能如下:A图书基本信息的登记,修改,删除等操作。1图书分类标准的制定,种类信息的登记,其中包含种类编号,种类名称,关键词,备注信息等。2图书种类信息的查询,修改,其中包含种类编号,种类名称,关键词,备注信息等。3图书信息的登记,其中包含图书编号,图书名称,图书种类,作者姓名,出版社名称,出版日期,图书页数,关键词,登记日期,备注信息等。B个人信息模块。1增加,修改读者信息。2修改用户密码。C借阅图书功能。1借书信息的登记,其中包含借书信息编号,图书编号,读者姓名,图书编号,图书名称,借书日期,备注信息等。2查询借书信息,修改,其中包含借书信息编号,读者编号,读者姓名,图书编号,图书名称,借书日期,备注信息等。D实现还书功能。1还书信息的登记,其中包含还书信息编号,读者编号,读者姓名,图书编号,图书名称,借书日期,还书日期,备注信息等。2还书信息的查询和修改,其中包含还书信息编号,读书编号,读者姓名,图书编号,图书名称,借书日期,还书日期,备注信息等。E能方便的对图书进行查询。对超期的情况能给出信息统计。3.5.2 系统数据分析根据以上功能,将图书管理系统的数据分为:数据输入部分:主要包括图书基本信息的录入、借阅人基本信息的录入、用户基本信息的录入。数据输出部分:主要是各种统计查询,包括:根据图书信息(如书名、作者、出版社等)查阅图书及其借阅信息、统计输出图书类型比例等。数据处理部分:主要涉及借阅和归还的处理,如一本书借出后,必须在数据库中将该书标记为已借出,以防出现数据库中有书但图书馆无书的情况;一本书归还后,同样必须在数据库中将其标记为已经归还,以便再次借出。3.6 性能需求该查询子系统系统主要实现的是基础数据的录入,发布,更新,因此,不管对图书查询的需要或是学生借书信息的需要以及与系统前台(读者子系统、管理子系统)的紧密衔接关系,网上的数据必须具有高度的准确性,要求系统具有高度的安全性,便于维护,功能可靠及灵活性。例如图书基础类型管理,图书管理员在录入图书信息时或是数据库异常产生差错时,也许会影响学生借阅图书出现差错的时候,这就要求系统具有高度的安全性,便于维护且功能可靠;其中灵活性所代表的意思是系统要具备强大的功能以应对不同层次的用户的需求。另外,系统的操作界面要求简便,通俗,以便于操作。3.7系统业务流程图图3.3系统业务流程图图3.4系统业务流程图第四章 系统设计4.1系统架构A、本系统采用B/S模式。B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。B、采用B/S模式的优势1)维护和升级方式简单目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性.对一个稍微大一点的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护.无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享.所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向.今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。2)成本降低,选择更多大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位.现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高.所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。比如说很多人每天上“网易”网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。C、开发环境HP6460b笔记本电脑操作系统:Windows8开发工具:eclipse、Myspl相关技术:jsp、hibernate、数据库的连接等4.2 数据库设计4.2.1 数据库需求分析A、需求分析数据库设计有几个范式,一般我们要做到的是第三范式,就是数据表中无冗余字段和在一个表中的字段没相应的函数依赖关系,冗余字段就是表中已经保存过的信息,在另一个表中又出现了一次,如果必须的话,可以由表间的关联得到,函数依赖关系既表中的字段间不应该有计算关系,如表中有单价字段、数量字段,那么总金额字段就不应该出现。假如程序运行时需要总金额,可以当下计算。但是在常用的表中,可以适当地留下冗余字段,这样就可以在程序运行过程中减少表间互相关联而导致运行速度降低的问题。这就是第四范式。设计数据表的时候,不要将主键设为用户输入的信息,一个数据表定义一个自己的主键,添加信息的任务是由程序自动完成,这样可以将数据更新时产生的错误降到最低。由程序自动生成的主键作为表间关联的外键是最好的方式,这样数据库就是一个规范的数据库了。用户的需求具体体现在信息种类的增删改查,这就要求数据库结构能绝对满足各种信息的输出和输入。针对系统的需求,通过对工作过程的内容和数据流程分析,数据项和数据结构的设计如下面所示:1、 读者种类信息,属性:种类编号,种类名称,借书数量,借书期限,有效期限,备注。主键:种类编号2、 读者信息,属性:读者编号,读者姓名,读者种类,读者性别,工作单位,家庭住址,电话号码,电子邮件地址,办证日期,备注。主键:读者编号3、 书籍类别信息,属性:类别编号,类别名称,关键词,备注信息。主键:类别编号4、 书籍信息,属性:书籍编号,书籍名称,书籍类别,作者姓名,出版社名称,出版日期,书籍页数,关键词,登记日期,备注信息。主键:书籍编号5、 借阅信息,属性:借阅信息编号,读者编号,读者姓名,书籍编号,书籍名称,借书日期,还书日期,备注信息。主键:借阅信息编号4.2.2 数据库概念结构设计本程序包括的实体有:读者类别信息实体,读者信息实体,书籍类别信息实体,书籍信息实体,借阅信息实体。4.2.3 数据库逻辑结构设计 图书基本信息表表4-1图书基本信息表字段名称数据类型字段说明bookid文本保存书号bookname文本保存书名booktype文本保存书的类型bookauthor文本保存保存书的作者bookpub文本保存书的出版社bookpubdate日期/时间保存书的出版日期bookpages数字保存书的页数bookkeyword文本关键字bookindate日期/时间入库时间putup文本是否借出bookmemo备注备注(图书基本信息在数据库中的属性)读者信息表 表4-2读者信息表字段名称数据类型字段说明readerno文本保存读者编号readername文本)保存读者姓名readersex文本)保存读者性别readertype文本保存读者类别readerdep文本保存读者所属部门address文本保存读者地址readertel文本保存读者电话email文本保存读者的电子邮件地址checkdate日期/时间借阅日期readermemo备注备注(读者信息在数据库中的属性)借阅信息表表4-3借阅信息表字段名称数据类型字段说明borrowno文本保存借阅号readerid文本保存读者IDreadername文本保存借阅者姓名borrowdate日期/时间保存借阅日期returndate日期/时间保存还书日期memo备注备注(借阅信息在数据库中的属性)(4)读者分类信息表4-4读者分类信息表字段名称数据类型字段说明typeno文本保存读者分类号typename文本保存类别名称booknumber数字保存允许借书数量bookdays数字保存允许借阅天数userfullife数字保存专业IDmemo备注备注(读者分类信息在数据库中的属性)(5)管理员信息表4-5管理员信息表字段名称数据类型字段说明user_ID文本保存用户IDuser_PWD文本保存用户密码user_Des文本User_typy文本权限(管理员信息在数据库中的属性)注:(各数据表中的字段说明是相应的名称在数据库中的属性的补充说明)相关规则说明(1)规划有效的索引a.创建索引是在组合表的列中创建的,包括主关键字和外部关键字。b.在列或类中创建唯一的索引能增强表结构的唯一性。c.浏览索引并将不使用的索引卸载掉。索引需要硬盘空间和时间来进行维护,所以有比较高的数据插入或数据查找的操作频率,因此这样的数据库最好不要有索引,而具有较高读取信息的操作频率的数据库应该有较多的索引。D.不要在簇索引中出现多余的列。在一般情况下数据类型要使用如varchar这样的小的数据类型。e.对于排序和范围化的查询使用簇索引。一般情况下为了数据的检索而进行表的优化时,簇索引必须支持数据的分组索引。为簇关键字选择列,簇关键字以经常需要的顺序排序数据或以必须被一起访问的记录而分组记录。F.对于一般查询的查找参数要创建索引。高选择性的列是最好的候选列。相反来说高密度的列是最糟糕的候选列。(2)利用约束来保证数据的完整性PRIMARY KEY在表中定义了主关键字,它是数据属性唯一的标识符,它可以保证实体的完整性。在使用PRIMARY KEY约束时需要考虑:a. 只能有一个PRIMARY KEY约束出现在表中。b. 键入必须是唯一的值。c. 不允许有空值。d. PRIMARY KEY约束必须创建唯一的索引,可以使用簇索引和非簇索引(假如之前并不存在非簇索引,那么簇索引就是默认的)。UNIQUE约束指定,在一列中不能出现有相同的值的两行。该约束用唯一的索引来保证实体的完整性。当主关键字已经存在时UNIQUE约束就有了很大的用处,例如学号,但是必须保证其他标识符(例如,身份证号)也是唯一的。在使用UNIQUE约束时,需要考虑;a. 可以存在空值。b. 一个表中可以同时存在多个UNIQUE约束。c. UNIQUE约束不能用于表的主关键字。d. 在指定的列中建立唯一的索引,可以使UNIQUE索引的作用得到充分的体现4.3 系统功能模块设计4.3.1 系统总体功能模块图书管理信息系统系统管理后台子系统管理子系统读者管理用户管理密码管理个人信息图书借续图书查询权限维护数据维护日志维护借续许可管理图书读者维护图4.1 系统总体功能模块图4.3.2 用例分析经过对于整个系统的分析,可以确定该系统的3类角色以及对应的用例。图书借阅者:可以对图书馆的图书信息进行查询、对个人借阅相关的信息查询和个人信息的修改。工作人员:对图书借阅者的借阅申请及还书申请进行相应的操作,同时将借书或还书所生成的报表反馈给借阅者查看以便确认借阅图书信息是否正确,对过期未归还图书的读者给予罚款。系统管理员:对整个系统的数据维护,以及对各个角色权限的维护。1、借阅者用例图借阅者用例可以进一步分解如图所示:图4.2 借阅者用例图从图中可以看出,图中有两种关系,分别是depend和extend,其中depend表示依赖关系,也用use来表示,extend表示扩展关系。还可以从图中看出借阅者浏览公共消息部分不需要登录系统,但在借阅图书、归还图书、查看借阅信息、预借图书和修改个人信息时都需要登录系统实现。2、工作人员用例图工作人员用例可以进一步分解如图4.3所示:图4.3工作人员用例图从图中可以看出,图中除了保护包含depend和extend外,还包含了include关系,include表示包含关系,就是表示工作人员处理借阅图书的申请时还要检查用户的合法性。该用例图中的借阅者的“修改个人信息”用例与工作人员用例图中的“修改个人信息”用例是不同的,此处有两部分内容:首先,工作人员可以修改自己的相关信息,就好像读者可以修改自己的信息;其次,工作人员也可以修改读者的相关信息(举个例子来说,读者的借阅权限)。该功能在创立用户权限时起到了很大的作用。假如借阅者的借阅权限是不变的,那么只要借阅者的借阅权限发生变化时,就必须消除他先前的账号,并重新建立帐号,这样一来,就会带来许多不便,同时也会造成系统资源的浪费。第五章 系统实现5.1 数据库连接池的实现数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费。2) 最大连接数是连接池能在数据库中申请到的最大连接数,如果数据库连接请求超过该最大连接数,那么后面的数据库连接请求就会被加入到等待队列,这将影响到之后的数据库一系列的操作。3) 假如最小连接数与最大连接数之间的差值较大,那么排在前面的连接请求将会优先进行,随后超过最小连接数的连接请求就好比是建立了一个新的数据库连接。但是这些大于最小连接数的数据库连接在用完后不会马上被释放,它将被放到连接池中等待数据库的重复使用或是空闲超时后被释放。5.1.1 连接池配置在eclipse工程中的web.xml中增加如下配置: Admin xool.admin.servlet.AdminServlet ServletConfigurator xool.configuration.ServletConfigurator propertyFile WEB-INF/classes/Pperties 1 5.1.2 连接池具体实现连接池的实现方法是在包com.core.ConnDB的类中实现的,具体实现方式如下:package com.core;import java.sql.*;public class ConnDB public Connection conn=null; public ResultSet rs=null; public Statement stmt=null; private String proxool = xool.ProxoolDriver; private String poolname = proxool.library; /说明:此处需要配置web.xml文件 public ConnDB() /构造方法 public Connection getConnection() try Class.forName(proxool); conn = DriverManager.getConnection(poolname); catch (Exception e) System.out.println(e.getMessage(); if (conn = null) System.out.println(没有获取到数据库连接); return conn; 5.2 系统实现模式本系统在实现上采用mvc模式5.2.1经典的MVC模式MVC(Model-View-Controller)模式,即模型-视图-控制器模式,其核心思想是将所有的程序代码分成独立但可以协同工作的3个组成部分。模型(Model):业务逻辑层。可以实现具体的业务逻辑。视图(View

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论