资源描述
摘要随着科学技术的进步,计算机行业的迅速发展,大大提高人们的工作效率,计算机信息处理系统的引进已彻底改变了许多系统的经营管理。图书管理系统是学校管理机制中的重要组成部分,通过对图书管理系统的运行管理机制进行调查研究,开发了此图书管理系统。本系统解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含5个功能模块,分别为:系统管理、图书管理、读者管理、图书借阅管理和数据统计管理。通过以上模块,做到了对系统、图书、读者、图书借阅和归还的信息管理。本系统使用JSP进行网页界面的设计,使用Ajax做异步数据通信,采用Servlet来控制整个程序流程。它采用的虽不是当今软件设计的最新技术,但却具有开发效率高、设计灵活,生成的软件界面友好、美观等特点。本系统中通过JDBC和数据库进行无缝连接,对数据库进行一些简单的DML操作,后端的数据库是Oracle10g,该数据库具有较高的完整性,一致性和安全性。关键词 图书管理;信息管理系统;JSP;AjaxAbstractWith the progress of science and technology, the rapid development of the computer industry, improve peoples working efficiency greatly, the introduction of computer information processing system has been thoroughly changed a lot of system management.The book management system is a school management mechanism is the important part, through to the books management system management system of operation and management mechanism for investigation and research, the development of this library system. This system solves the school library management affairs in the common basic problems and related statistical work. This system contains 5 modules, respectively is: system management, books management, reader management, library management and data management.This system use JSP webpage interface design, using Ajax for asynchronous data communication, using Servlet to control the whole process of. It uses is not now the software design of the latest technology, but with the development of high efficiency, flexible design, the generated software interface is friendly, handsome features. In this system, through the JDBC and database for seamless connectivity, database to conduct some simple DML operation, a back-end database is Oracle10g, the database has a high integrity, consistency and safety.Keywordsbook managementMISJSPAjax目录摘要IAbstractII第1章 绪论11.1 课题背景11.2 目的和意义11.3 系统开发环境1第2章 可行性分析32.1 经济可行性32.2 技术可行性32.3 操作可行性42.4 业务流程图42.5 本章小结5第3章 需求分析63.1 系统概述63.1.1 系统目标63.1.2 用户类和用户特性63.2 需求分析73.2.1 功能描述73.2.2 图书管理员详细功能描述83.2.3 读者详细功能描述83.3 数据流图93.4 数据字典103.5 本章小结17第4章 总体设计184.1 系统功能设计184.1.1 图书管理系统总体结构图184.1.2 各模块功能描述194.2 数据库设计204.2.1 数据库E-R图设计204.2.2 数据库设计概述224.2.3 各表结构设计234.3 本章小结26第5章 详细设计275.1 开发平台与工具275.1.1 J2EE平台275.1.2 WEB服务器和数据库275.2 程序设计285.2.1 程序设计概述285.2.2 数据库与Web服务器的连接295.2.3 各模块程序设计295.3 本章小结42第6章 软件测试436.1 软件测试的方法与步骤436.2 测试用例设计和测试结果分析446.2.1 模块测试446.2.2 集成测试456.2.3 验收测试466.3 评价466.4 本章小结47结论48致谢49参考文献50附录1 译文51附录2 英文参考资料5456第1章 绪论1.1 课题背景随着社会的发展,人类对知识的需求也不断地增长。在当今知识大爆炸的时代,图书作为信息的一种载体,已经成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,学校作为教书育人的中坚力量,图书馆的作用更是举足轻重。学校图书馆要做到安全顺畅的运转,为广大同学提供良好的服务,就必须有一套完善健全的运行管理机制。联系实际,考虑各层次学校的情况,软件本身简单,界面友好,容易掌握,可以较简单方便的管理各种图书信息;硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。系统的总体特点应该是方便、简单、实用。1.2 目的和意义随着计算机的广泛应用,其逐步成为现代化的标志。现在我国的很多学校图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。现在图书馆在正常运行过程中总是面对大量的读者信息,书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的记录进行及时的处理,为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速的满足读者的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。1.3 系统开发环境本系统采用的是B/S结构,使用的开发工具为MyEclipse 8.5、JSP,后台数据库是Oracle 10g,服务器为Tomcat 6.0。软件要求:操作系统为Windows XP或更高,浏览器为Internet Explorer 6.0或更高版本。硬件要求:一台具备Microsoft Windows XP系统的计算机,处理器为Pentium IV以上,内存为512M以上,硬盘空间为80G或更高。第2章 可行性分析可行性研究的主要目标是进一步明确系统的目标、规模与功能,对系统开发背景、必要性和意义进行调查分析并根据需要和可能提出开发系统的初步方案与计划。实际上,在整个系统的开发过程中,对系统的可行性将越来越清楚。因此,在系统的开发过程中,仍然需要继续进行和修改系统的可行性分析,为用户了解项目的进展情况提供更为准确的可行性分析报告。在现代化技术飞速发展的今天,仍有许多图书馆中图书的管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。此次设计的图书馆管理系统,把图书馆内部的所有藏书、图书管理员和读者等常规操作用计算机进行统一管理,使图书馆的各项操作变得更加便捷、迅速、准确,以此提高图书馆的工作效率和管理水平。2.1 经济可行性经济可行性是对项目进行可行性分析的一个方面。经济可行性主要是从资源配置的角度衡量项目的价值,评价项目在实现区域经济发展目标、有效配置经济资源、增加供应、创造就业、改善环境、提高人民生活等方面的效益。鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样一个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此该系统在经济可行性上时可行的。2.2 技术可行性技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JSP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用Oracle 10g,它能够处理大量数据,同时保持数据的完整性、安全性,并能支持各种复杂的数据库关系。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高。2.3 操作可行性操作可行性又可称社会可行性或运行可行性,是对开发系统在一个给定的工作环境中能否运行或运行好坏程度的量度。操作可行性分析决定在当前社会条件下厂商、销售商是否认可,用户是否需求,社会是否接手,系统是否可行等。本次设计的图书馆管理系统界面友好,操作简单,便捷易懂,图书管理员和读者都可以充分利用系统的功能,提高图书管理员的工作效率,使读者更能轻松便捷的查询到自己想要借阅的书籍,节省了大量的时间。2.4 业务流程图根据本图书馆管理系统设计的具体情况将业务流程图分为两类,一类是以读者身份登陆,另一类是以管理员身份登陆。1.以读者身份登陆后的业务流程读者登陆系统后能够查询现有图书信息,图书信息中详细记录了图书类别,库存数量,所在书架等信息,使读者可以轻松找到要借阅的书籍。还可查看已借阅的书籍和个人信息,个人信息可修改。以读者身份登陆系统的业务流程,如图2-1所示。图2-1 以读者身份登陆系统的业务流程图2.以图书管理员身份登陆后的业务流程图书管理员登陆系统后可以对读者、图书、借阅和归还的各种信息进行查看,添加,修改和删除操作,可以设置读者类型和图书类型,可以查看图书库存和历史借阅数据统计信息,可以修改个人信息和密码。以图书管理员身份登陆系统的业务流程,如图2-2所示。图2-2 以管理员身份登陆系统的业务流程图2.5 本章小结本章主要对本系统分别从经济可行性、技术可行性和操作可行性三个方面进行了分析,对整个系统的核心模块和业务流程有简单的介绍,并给出相应的业务流程图做以说明,对以两个身份分别登陆系统后可执行的操作给出了介绍。通过分析说明本工程的技术成熟、完备,具有良好的市场拓展前景,因此本系统具有开发价值。第3章 需求分析软件需求分析工作也是一个不断认识和逐步细化的过程。软件需求分析是软件生存周期中重要的一步。只有通过需求分析才能把软件功能和性能的总体概念描述为具体上的软件需求规格说明,从而奠定软件开发的基础。因此如何更好地的了解、分析、明确用户需求,保证开发过程按照满足用户需求为目的正确项目开发方向进行,是每个网站开发的重要阶段。3.1 系统概述3.1.1 系统目标该系统主要建立一个基于B/S模式的图书馆管理系统,面对当起很多学校图书管理仍是人工管理带来的检索速度慢,效率低,借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对跟系统的两个用户类型的使用实现:读者和图书馆工作人员。对于读者在本系统的应用下可实现按照各种方式(如:书名关键字、图书类别)查询图书馆的藏书情况,能够方便的查询自己的借阅图书情况。对于图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。3.1.2 用户类和用户特性图书馆管理系统是一个基于B/S模式的对图书馆进行高效率管理的应用系统,它的用户主要是读者(学生)和图书管理员,学生通过该系统可以对自己所需要的图书信息进行查询,省时又省力,还可以对自己的个人信息进行修改和密码修改。图书管理员可以通过本系统实现对图书库存信息、图书借阅信息、归还信息、续借操作以及读者信息的高效管理,并可以对自己的信息进行修改和修改密码。两类用户的具体描述如表3-1所示:表3-1用户描述表用户类型描述读者读者是该系统的重要的使用角色,他们通过该系统可以查询自己需要的图书信息,可以对自己借阅、归还情况进行查询,还可以修改个人信息。图书管理员图书管理员是该系统的另一个重要使用者,图书管理员通过该系统进行图书的查找、增加、修改、删除和分类管理等操作,实现对读者借阅、归还和续借图书的操作,实现对系统中图书,读者,读者借阅情况的查询,信息更改维护等操作,管理读者类型,对不同类型读者可借阅的图书数量、借书天数和续借天数进行设置等图书馆的基本操作。3.2 需求分析3.2.1 功能描述图书馆管理系统的主要任务是实现读者迅速检索查询,方便借阅、续借和归还图书;图书管理员高效的完成系统的各项基本操作,包括信息的查询和管理,图书馆管理系统要完成以下功能:系统登录。只有经过身份认证的用户才能登录本系统,并且针对不同的用户类型有不同的系统权限,他们所看到的系统菜单也是不同的。系统管理。系统管理包括用户设置,图书类别设置,读者类型设置。用户设置包括用户信息设置和用户密码设置。图书类别设置包括图书类别的新增、修改和删除。读者类型设置包括读者类型的新增、修改和删除,读者类型信息包含本类读者可借阅图书的数量、借阅天数和续借天数。图书管理。图书管理包括图书信息管理,图书信息的查询。图书信息查询可以方便用户查找图书信息,减轻借阅负担。图书信息管理是针对图书管理员开发的功能,用于图书入库、图书下架管理。图书管理是本系统的重要组成部分,其它多个功能依赖本模块的图书数据。读者管理。读者管理包括读者信息管理,读者信息的查询。读者信息查询可以根据读者编号和读者姓名查询读者信息,方便图书管理员在海量读者数据中查找符合特定条件的读者。找到读者后,管理员可以修改或删除读者信息。如果有新读者,管理员还可以使用“添加读者”功能添加新的读者。图书借阅管理。图书借阅管理包括图书的借阅、归还和续借。其中,只有续借是读者登录系统就可以使用的功能,在续借期内,读者不用到图书馆,就可以通过系统网上办理图书续借。读者到图书馆办理借阅、归还和续借时,需要图书管理员登录系统操作相关功能。数据统计管理。统计管理包括图书库存量的统计,借阅数量的统计等。图书库存量的统计展示了当前图书馆中在库未供出的图书信息,包括图书在库数量。借阅数量的统计展示了当前已经借出的图书信息,包括图书已经借出的数量。统计管理为管理员对图书的全局情况的掌握提供了可靠的依据。3.2.2 图书管理员详细功能描述读者管理功能。对读者类型和读者档案进行管理。读者类型管理包括添加、修改、删除读者类型。其中,读者类型决定着不同类型读者借阅图书的数量、最大借书天数和最大续借天数。读者档案管理包括添加、修改、删除读者档案。添加读者的同时,系统会默认生成一个用户,用户名就是读者编号,初始密码也是读者编号,读者可以在登录系统后修改初始密码。图书管理功能。对图书类型和具体图书信息的管理。图书类型管理包括增加、修改、删除图书类别,本功能采用树状结构实现,使图书类别的划分更合理,类别之间的关系一目了然。图书信息管理包括增加、修改、删除图书信息。图书借阅功能。读者到图书馆办理图书借阅、续借和归还时,管理员登录系统进行相关操作。如果读者借书超过最大借阅数量,系统提示管理员读者无法借书。如果读者借阅的图书不在续借期内,系统提示管理员读者无法续借。读者归还图书时,如果超期,管理员负责罚款的收取工作。查询功能。管理员可以查看系统的所有相关信息,包括图书信息、图书类别信息、读者信息、读者类别信息、借阅信息、归还信息,图书库存量统计信息和图书借阅数量统计信息等。修改密码功能。管理员登录系统后,可以切换到系统管理模块,执行用户设置中的密码修改功能,修改自己的登录密码,从而保证自身信息安全。3.2.3 读者详细功能描述修改密码功能。读者登录本系统后,可以切换到系统管理模块,执行用户设置中的密码修改功能,修改自己的登录密码,从而保证自身信息安全。查询功能。读者借阅图书前可以通过图书查询功能对图书信息进行查询,确定要借阅的图书是否在库。读者可以对对自己当前借阅书籍进行查询,查看图书是否到期,是否需要续借。读者还可以查看自己以往的借阅记录。续借功能。读者查询自己在借图书在续借期内时,如果需要续借,则可以直接在借阅管理模块中,选择要续借的图书,执行续借操作,不必到图书馆进行续借。3.3 数据流图根据系统用户类别的不同,本系统数据流图分为两种。读者可以查看图书信息、查看自己的借阅信息、查看自己的归还记录、续借图书、设置个人信息。读者数据流程图如图3-1所示。图3-1 读者数据流程图图书管理员可以管理图书信息、管理读者信息、管理借阅、归还、续借图书、设置个人信息、数据统计。图书管理员数据流程图如图3-2所示。图3-2 图书管理员数据流程图3.4 数据字典数据字典是对描述数据流程图中的数据项、数据流、数据存储、加工处理逻辑等组成部分的严格定义,下面是本系统的数据字典。数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述。1、数据项的定义编号:1-01 字段:BOOK_ID 简述:图书编号 类型:字符型 长度:32字节 编号:1-02 字段:BOOK_NAME 简述:图书名称类型:字符型 长度:100字节 编号:1-03字段:BOOK_AUTHOR简述:图书作者类型:字符型 长度:100字节 编号:1-04 字段:BOOK_PRICE简述:图书价格类型:数字型 长度:4 编号:1-05 字段:BOOK_MESS 简述:图书简介类型:字符型 长度:500字节 编号:1-06字段:BOOK_CBS 简述:出版社类型:字符型 长度:32字节 编号:1-07字段:BOOK_SL 简述:图书数量类型:数字型 长度:3编号:1-08字段:OP_RQ 简述:操作日期类型:日期型 编号:1-09字段:BOOKCATEGORY_ID简述:图书类别编号类型:字符型 长度:100字节 编号:1-10字段:BOOK_SHELF简述:书架类型:字符型 长度:32字节 编号:2-01 字段:READER_ID 简述:读者编号 类型:字符型 长度:32字节 编号:2-02 字段:READER_NAME 简述:读者姓名类型:字符型 长度:20字节 编号:2-03字段:READER_BIRTH简述:读者生日 类型:日期型编号:2-04 字段:DEPART_ID简述:部门编号类型:字符型 长度:32字节 编号:2-05 字段:OP_NAME简述:操作人信息类型:字符型 长度:20字节 编号:2-06字段:CITY_ID简述:所属城市编号类型:字符型 长度:32字节 编号:2-07字段:XL_ID简述:学历编号类型:字符型 长度:32字节 编号:2-08字段:OP_RQ 简述:操作日期类型:日期型 编号:2-09字段:READERCATEGORY_ID简述:读者类型编号类型:字符型 长度:32字节 编号:3-01 字段:JYMX_ID 简述:借阅明细编号类型:字符型 长度:32字节 编号:3-02 字段:READER_ID 简述:借阅人编号类型:字符型 长度:32字节 编号:3-03字段:BOOK_ID简述:图书编号类型:字符型 长度:32字节 编号:3-04 字段:JY_SL简述:借阅数量类型:数字型 长度:2 编号:3-05 字段:GD_TIME简述:规定还书时间类型:日期编号:3-06字段:JY_TIME简述:借阅时间类型:日期编号:4-01 字段:GH_ID简述:归还信息编号类型:字符型 长度:32字节 编号:4-02 字段:GH_READERID简述:读者编号类型:字符型 长度:32字节 编号:4-03字段:JY_TIME简述:借阅时间类型:日期编号:4-04 字段:JY_NUM简述:借阅数量类型:数字型 长度:2 编号:4-05 字段:GH_BOOKID简述:归还书编号类型:字符型 长度:32字节 编号:4-06字段:GD_TIME简述:规定还书时间类型:日期编号:4-07字段:SJ_TIME简述:实际还书时间类型:日期2、数据流的定义数据流编号:F1数据流名称:图书信息数据流简述:管理员填写图书信息数据流来源:管理员 数据流去向:图书信息表 数据流组成:1-01+1-02+1-03+1-04+1-05+1-06+1-07+1-08+1-09+1-10数据流编号:F2数据流名称:读者信息数据流简述:管理员填写读者信息数据流来源:管理员数据流去向:读者信息表数据流组成:2-01+2-02+2-03+2-04+2-05+2-06+2-07+2-08+2-09数据流编号:F3数据流名称:借阅信息数据流简述:读者借阅图书,管理员填写借阅信息数据流来源:读者,管理员数据流去向:借阅信息表数据流组成:3-01+3-02+3-03+3-04+3-05+3-06数据流编号:F4数据流名称:归还信息数据流简述:读者归还图书,管理员填写归还信息数据流来源:读者,管理员数据流去向:归还信息表数据流组成:4-01+4-02+4-03+4-04+4-05+4-06+4-073.5 本章小结本章对图书馆管理系统的在可行性分析的基础上根据用户需求进行需求分析,本章确定了软件系统各模块间的关系及模块功能,根据数据之间的关系绘制了本系统的数据流图,并描述了数据字典,通过本章的论述对整个系统的设计有更加详细的了解,为以后的程序设计奠定了基础。第4章 总体设计总体设计主要是指在系统分析的基础上,对整个系统模块的划分、数据的设计以及整个系统结构规划等方面进行合理的安排。主要目标是将系统分析阶段所提出的反映了信息需求的系统逻辑方案转换成可以实施的基于计算机与通信系统的物理方案。4.1 系统功能设计该系统在Windows XP环境下,主要采用MyEclipse 8.5开发工具,Oracle 10g数据库来设计,开发过程与成果应符合GB/T 11457-1995软件工程术语,GB/T 8567-1988计算机软件产品开发文件编制指南等。4.1.1 图书管理系统总体结构图绘制系统结构图的过程,实际上就是对系统功能模块进行分解设计的过程,即合理地将数据流程图转变为所需要的系统结构图。系统结构图将会使读者和用户能直观的了解系统的结构模式,理解系统的各个功能的结构,能很好地方便用户使用和理解整个系统。本系统的结构图如图4-1所示:图4-1 系统结构图4.1.2 各模块功能描述1、 系统管理。该模块主要包括图书类别设置、用户设置和读者类别设置三个子模块:图书类别设置。该功能选项用于系统管理员对每本图书的类别进行设置。该功能是对db_bookcategory表进行维护修改等操作,修改后的信息将被保存在该表中。用户设置。该功能子模块主要是系统管理员对系统用户信息的管理,通常每一个用户都有详细信息,产生用户时未必要填写完整,可通过此子模块的功能实现对用户信息的补充、修改、删除和修改密码等操作,该操作是对db_user表进行操作,在对用户进行了相关的操作后把操作后的最新信息存放在该表中。读者类别设置。该功能选项用于系统管理员根据每个学生的学历不同对读者的类别进行设置,不同学历的读者的允许借书数量和图书可持有天数是不同的。该功能是对db_readercategory表进行维护修改等操作,修改后的信息将被保存在该表中。2、 读者管理。该模块主要包含读者类型管理和读者信息管理两个子模块:读者信息查询。该子模块是对图书馆系统用户读者的信息进行查询,该操作是对于db_reader表进行。读者信息管理。该子模块是对读者的基本信息进行管理,可以对读者的基本信息进行添加,修改,删除操作,这下操作均是对db_reader表进行的,并将操作后的结果保存在该表中。3、 图书管理。图书管理功能模块可分为图书信息查询和图书信息管理两个子模块:图书信息查询。该子模块是对图书馆系统库存图书的信息进行查询,该操作是对于db_book表进行。图书信息管理。该子模块是对图书的基本信息进行管理,可以对图书的基本信息进行添加,修改,删除操作,这下操作均是对db_book表进行的,并将操作后的结果保存在该表中。4、 借阅管理。图书借阅管理功能模块可分为图书借阅信息的维护、图书归还信息的维护和图书续借信息的维护三个子模块:图书借阅信息的维护。该功能选项用于系统管理员对每本图书的借阅情况产生的明细表,详细记录着每本书的借阅情况以及读者的详细信息以便联系。该功能是对db_jymx表进行维护修改等操作,修改后的信息将被保存在该表中。图书归还信息的维护。该功能选项用于系统管理员对每本图书的归还情况产生的明细表,借出的书籍归还后,借阅明细以历史记录的形式被存放在归还明细表中。该功能是对db_bookgh表进行维护修改等操作,修改后的信息将被保存在该表中。图书续借信息。该功能选项针对借出图书后并没有在规定还书日期内读完书籍的读者需求,对图书的归还日期进行延期操作。该功能是对db_jymx表进行维护修改等操作,修改后的信息将被保存在该表中。5、 数据统计。数据统计模块主要是根据借阅明细表中的借书数量的记录和图书信息表中库存数量的记录进行的数据统计显示功能,没有单独用表维护。4.2 数据库设计数据库是整个系统的基石,数据库的设计优劣直接影响到整个系统的设计成败,本节对数据库的设计进行专门阐述。数据库是数据管理的最新技术,十多年来数据库管理系统已从专用的应用程序发展成为通用的系统软件。由于数据库具有数据结构化,最低冗余度,较高的程序与数据独立性,易于扩充,易于编制应用程序等优点,较大的信息系统都是建立在数据库设计之上的,因此不仅大型计算机及中小型计算机,甚至微型机都配有数据库管理系统。4.2.1 数据库E-R图设计E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。本系统的E-R图如图4-2所示:图4-2 系统E-R图4.2.2 数据库设计概述数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。这样既便于数据的集中管理,又有利于应用程序的研制和维护,提高了数据的利用性和相容性,提高了决策的可靠性。目前,数据库已经成为现代信息系统不可分割的重要组成部分。数据库技术也是计算机领域中发展最快的技术之一。数据库设计是把现实世界的实体模型与需求转换成数据库的模型的过程,它是建立数据库应用系统的核心问题。数据库及其应用的性能都建立在良好的数据库设计的基础之上,数据库的数据是一切操作的基础,如果数据库设计不好,那么其它一切用于提高数据库性能的方法收效都是有限的。数据库设计的关键是如何使设计的数据库能合理地存储用户的数据,方便用户进行数据处理。设计数据库必须遵循一定的规则,在关系型数据库中,这种规则就是范式,范式是符合某一种级别的关系模式的集合。一般人们设计数据库遵循第三范式。即:数据库表中不包含已在其他表中包含的非主关键字信息。采用范式减少了数据冗余,节约了存储空间,同时加快了增加、删除、修改和查询的速度。整个系统所包括的信息有图书信息、读者信息、图书借阅信息、图书归还信息、系统用户信息、读者类型和一些码表。可将这些信息抽象为下列系统所需要的数据项和数据结构:1.图书信息表(图书编号,图书名称,作者,价格,图书简介,出版社,库存数量,图书类别,所在书架,操作时间)2.图书类别表(图书类别编号,类别名称,父类别编号)3.读者信息表(读者编号,读者姓名,出生日期,部门编号,操作人,所属城市编号,学历编号,读者类型,操作时间)4.读者类别表(读者类别编号,类别名称,父类别编号,允许借书数量,允许借书天数,允许续借天数)5.借阅信息表(借阅明细编号,借阅人编号,图书编号,借阅数量,应还时间,借出时间)6.归还信息表(归还明细编号,借阅人编号,借出时间,借出数量,图书编号,应归还时间,实际归还时间)7.用户信息表(用户名,密码,姓名,职位,性别,联系电话,出生日期,QQ,邮箱,自我简介)注:带下划线表示主键。4.2.3 各表结构设计1.图书信息表。此表主要用于存储图书馆中所藏图书的相关信息,其中的相关信息是在图书入库时由操作员进行添加完善,此表主要用于读者和图书管理员对馆中图书的查询,系统用户根据图书的某个属性进行查询,便可得知图书的其他相关信息,其中图书所在书架属性是便于读者借阅时对图书的寻找,图书价格是在读者不慎将图书遗失或损坏时对图书进行赔偿的依据。表的具体结构如表4-1所示。表4-1 图书信息表序号英文名中文名类型长度(字符)1BOOK_ID图书编号varchar2322BOOK_NAME图书名称varchar21003BOOK_AUTHOR作者varchar21004BOOK_PRICE价格number4,15BOOK_MESS图书简介varchar25006BOOK_CBS出版社varchar2327BOOK_SL库存数量number38OP_RQ操作日期date9BOOKSTYLE_ID图书类别varchar22010BOOK_SHELF所在书架varchar2322.图书类别表。该表的设计主要是方便对图书的分类,和对图书的查询,在实际应用中图书管理员就是根据图书类型的不同将之分列在不同的书架,以方便读者的借阅寻找,可根据图书的具体情况进行不同的维护管理,表的具体结构设计如表4-2所示。表4-2 图书类别表序号英文名中文名类型长度(字符)1BOOKSTYLE_ID类别编号varchar2322BOOKSTYLE_NAME类别名称varchar2503PARENT_ID父类别编号varchar2323.读者信息表。读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID即为学生学号,是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,读者邮件电话等信息是为了与读者进行联系,读者类型信息决定了读者一次性可借阅的图书的数量。表的具体结构设计如表4-3所示。表4-3 读者信息表序号英文名中文名类型长度(字符)1READER_ID读者编号varchar2322READER_NAME读者姓名varchar2203READER_BIRTH出生日期date4DEPART_ID部门编号varchar2325OP_NAME操作人varchar2206CITY_ID所属城市varchar2327XL_ID学历编号varchar2328OP_RQ操作日期date9READERSTYLE_ID读者类别编号varchar2324.读者类别表。此表的设计是为了对不同身份的读者进行分类方便管理员对读者的管理,其中可借阅图书数量的属性设定,是根据读者学历的不同对其权限进行的设置,用于规定不同类型读者一次可借阅的图书数量,表的具体结构设计如表4-4所示。表4-4 读者类别表序号英文名中文名类型长度(字符)1READERSTYLE_ID读者类别编号varchar2322READERSTYLE_NAME读者类别名称varchar2203PARENT_ID父类别编号varchar2324BOOK_SL允许借书数量number25BOOK_TS允许借书天数number26BOOK_TS_RENEW允许续借天数number25.借阅明细表。该表的设计是用于对读者借阅图书进行管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者,借出时间记录了相应的应归还时间,借书数量记录了本条借阅记录产生时借出的图书数量,表的具体结构设计如表4-5所示。表4-5 借阅明细表序号英文名中文名类型长度(字符)1JYMX_ID借阅明细编号varchar2322READER_ID借阅者编号varchar2323BOOK_ID图书编号varchar2324JY_SL借阅数量number25GD_TIME规定还书时间date6JY_TIME借阅时间date6.归还明细表。此表是与借阅明细表形成对照,该表的设计类似于借阅明细表,除了像借阅明细表一样把借阅的图书与相应的借阅者进行对应的联系以外,还记录了读者规定归还图书的时间和实际还书时间,用这两个信息来判断读者的借阅是否超时,如果超时,将按照图书馆的相关管理规定进行惩罚,如果没超时,则收回图书,作为历史记录存放在归还明细表中。表的具体结构设计如表4-6所示。表4-6 归还明细表序号英文名中文名类型长度(字符)1GH_ID归还信息编号varchar2322GH_READERID借阅者编号varchar2323JY_TIME借阅时间date4JY_NUM借阅数量number25GH_BOOKID归还图书编号varchar2326GD_TIME规定还书时间date7SJ_TIME实际还书时间date7.用户信息表。该表的设计用于记录图书馆管理系统用户的信息,方便对用户的管理,表中包括用户编号和用户的登录密码,表的具体结构设计如表4-7所示。表4-7 用户信息表序号英文名中文名类型长度(字符)1USERID用户名varchar2322USERPASS密码varchar2323USERNAME用户姓名varchar220 续表4-74USERCH职位(角色)varchar2205USERSEX性别char26PHONE联系电话number117USERBIRTH出生日期varchar2108QQQQnumber129EMAIL邮箱varchar25010MESS简介varchar22004.3 本章小结本章是对本系统的总体设计,主要对数据库设计和系统功能进行详细描述。在数据库设计中对各表结构进行说明,并在本章最后绘制E-R图用来描述各表之间的关系。在系统功能设计中描述了本系统的各个功能模块并绘制了系统功能结构图。第5章 详细设计5.1 开发平台与工具5.1.1 J2EE平台J2EE即是Java2平台企业版(Java 2 Platform Enterprise Edition),是原Sun公司(现已被甲骨文公司收购)为企业级应用推出的标准平台。它简化了企业解决方案的开发、部署和管理相关复杂问题的体系结构,J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如编写一次、随处运行的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。在开发图书馆管理系统的过程中,应用MyEclipse 8.5,它可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。MyEclipse 8.5是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Ajax、CSS和JavaScript。5.1.2 WEB服务器和数据库在系统的开发过程中使用的Web应用服务器是Tomcat 6.0,是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和JSP规范总是能在Tomcat 6.0中得到体现。Tomcat 6.0是一个小型的轻量级应用服务器,它运行时占用的系统资源小、扩展性好、支持负载平衡和邮件服务等开发应用系统常用的功能,因此在中小型系统和并发访问用户不是很多的时候经常被使用。使用Oracle 10g作为数据库开发工具。Oracle是目前最流行的关系型数据库管理系统,被越来越多的用户在信息系统管理、企业数据处理、Internet、电子商务网站等领域作为应用数据的后台处理系统。此前流行的版本为Oracle 9i。Oracle公司在Oracle 9i基础上,推出了代表数据库最新技术的数据库系统Oracle 10g,本系统采用的版本就是Oracle 10g。开发系统用的系统工具如表5-1所示:表5-1 开发系统工具表工具名称用途JDK1.6.0_11Java开发工具包MyEclipse 8.5J2EE集成开发环境Oracle 10g关系数据库管理系统Tomcat 6.0Web应用服务器5.2 程序设计5.2.1 程序设计概述在设计的Web层应用了著名的MVC模式,M模型层由Service来实现,C控制层由Servlet实现,V视图层由JSP来实现,为了业务逻辑和表示的分离,它是基于Web应用系统。然后是Web层的应用,业务逻辑层(有EJB实现),资源管理层。客户请求浏览页面,一般Web层的View由JSP组成,并且使用了大量Taglib。把每个请求映射到某个HTTP Servlet类来响应它。HTTP Servlet类是一个标准的类,通过web.xml文件中的映射与实际的类链接起来进行调用。使用MVC模式减少了重复性代码的编写,即减少了代码的维护,由于模型返回的格式不带任何显示格式,因而模型可以直接应用于接口的使用,还因为MVC模型把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说包含了用户请求权限的概念。本系统采用Servlet控制系统的整个流程,Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应的中间层。5.2.2 数据库与Web服务器的连接本系统通过JDBC和数据库进行无缝连接,对数据库进行一些简单的DML操作,实现了简单的连接池,后端的数据库是Oracle 10g,该数据库具有较高的完整性、一致性和安全性。5.2.3 各模块程序设计1.登陆模块。本模块主要是用户通过图书馆管理系统的首页登录进入该系统。用户输入正确的用户名和密码,系统验证通过后,在进入系统前,系统会根据用户的身份进行相应权限划分,并显示不同的菜单;如果登陆信息有错误,则系统提示登陆错误的信息,如密码错误等,此处使用了Ajax技术。图书馆管理系统的登录主页面如图5-1所示。图5-1 系统登陆页面用户在登录页面写好用户名和密码,选择登录,登录成功则跳转到系统的首页,否则提示错误信息。在服务器端进行用户身份验证的程序流程图如图5-2所示。图5-2 用户登陆流程图2.读者功能模块。读者管理主要实现对读者的类型管理和信息管理两个功能子模块,其中读者类型管理中需要设置不同类型读者一次性可借阅的图书数量,读者信息管理则主要管理维护读者的基本信息,其各自操作界面如下所示:读者可以查看图书库存列表信息,单击列表项中的“查看简介”链接可以查看图书简介信息,单击列表项中的“查询明细”可以查看图书数量及借阅人和借阅数量。读者查询图书库存信息界面如图5-3、5-4所示。图5-3 读者查询图书信息界面图5-4 读者查询图书信息界面读者用户设置信息界面如图5-5所示。读者用户设置界面中,读者可以查看个人信息,单击下面的修改按钮,可以进入个人信息修改界面,该功能实际上就是一个读者信息补充的过程,可修改,可补充。同时,可以点出页面左上方的“修改密码”链接,来修自身的系统登录密码,如图5-6所示。本模块的程序流程图如图5-7所示。图5-5 读者用户设置信息界面图5-6 读者修改个人信息界面图5-7 读者修改个人信息程序流程图读者借阅信息查询界面中展示了读者当前借阅的图书信息、借阅日期和应还日期等,方便读者及时归还图书和续借图书。该功能就是把登陆的读者曾借阅过的和已归还的图书详细记录显示出来。也是是历史记录查询功能。读者借阅和归还信息查询界面如图5-8、5-9所示。图5-8 读者借阅信息查询界面图5-9 读者归还记录查询界面3.管理员功能模块。管理员功能模块主要分成读者管理、图书管理、系统管理、借阅管理和数据统计几大类,下面对每一个模块详细描述:读者管理。读者管理既是管理员可以对读者的信息进行修改、添加、删除等操作,读者管理界面中显示了读者的详细信息,并设置了两个模糊查询条件方便管理员查找读者。删除读者勾选前方的复选框,点击删除按钮即可。并可修改读者信息和添加新读者。读者管理界面如图5-10、5-11所示。图5-10 读者管理界面图5-11 读者信息修改界面图书管理。图书管理分为图书库存管理和新书入库两个子模块,图书库存管理列出了所有图书的详细信息,新书入库既是图书馆引进新书时管理员对图书信息进行记录。图书信息列表页展示了全部图书的详细信息,可以根据价格排序,图书简介由于字数太多不适合显示在表格中,所以我用模式对话框来做,图书数量不是单纯的显示当前库存数量,是把当前库存数量、是否有人借阅、借阅人和借阅数量都显示出来,这样数据量就比较大,所以也是用模式对话框来做。新书入库即是添加一条新书的记录,为详细记录下新书的信息,以便日后再想进此书。此处做了“保存继续”功能,因为图书馆每次进货不可能只进一本书,所以为了提高此功能的效率,也为了提高用户体验,我在此处加了这个功能,方便添加下一条,而不用重新切换到图书进货界面,等所有图书全部添加完以后,点击“返回查询”按钮即可回到查询页面。图书信息管理和新书入库功能的界面如图5-12、5-13所示。图5-12 图书信息管理界面图5-13 新书入库界面系统管理。系统管理分为图书类别设置、读者类别设置和用户设置,管理员可以方便的对图书的类别进行更改,以便于查找书籍。读者类别设置也代表着权限设置,每个类型的读者的可借书数量、可借书天数和可续借天数是不同的。用户设置既是管理员对用户信息进行补充或修改。图书类别设置和读者类别设置由于用到树的原因,如果加背景图,树的字就会看不到,所以界面简单。类别设置和用户设置界面如图5-14、5-15、5-16、5-17所示。图5-14 图书类别设置界面图5-15 读者类别设置界面图5-16 修改读者类别信息界面图5-17 用户设置界面4.借阅管理。本模块分为借阅管理和归还记录,借阅记录查询是本系统中一个重要环节,此处详细记录着被借书籍信息和借阅者的信息,并且针对无法在规定时间内归还图书的借阅者的需求增设了续借的功能,在此模块中可以查询借阅记录,也可以添加新的借阅记录。归还记录是读者借阅书籍并归还之后产生的历史记录,以便管理员查看和做日后的数据统计。在借阅明细表中
展开阅读全文