数据库课程设计报告
---图书馆管理系统
学 院:计算机科学与技术 班 级: 姓 名: 学 号:
指导老师:
数据库课程设计———图书馆管理系统
目录
1 引言 .................................................. 1
1.1 编写目的 ................................................................................................................................... 1 1.2 开发背景 ................................................................................................................................... 1
2 需求描述 .............................................. 1
2.1 系统目标 ................................................................................................................................... 1 2。2用户的特点 ............................................................................................................................. 1 2。3 需求定义 ................................................................................................................................ 2 2。4 性能需求 ................................................................................................................................ 4 2。5其他需求 ................................................................................................................................. 4 2。6运行环境规定 ......................................................................................................................... 4
3 数据流图 .............................................. 4 4 概念模型设计 .......................................... 7
4。1 ................................................................................ 相关实体、主要属性以及关系说明:
7
4。2 .................................................................................................................. 局部的E—R图:
8
4。3 ................................................................................................................... 全局E—R图:
10
5 逻辑模型设计 ......................................... 10
5。1 .............................................................................................................................. 数据字典
10
5.1.1 book信息表: .......................................................................................................... 10
5.1.2 manager信息表: ................................................................................................ 11 5.1。3borrow表: 11
5.1.4 reader表: ............................................................................................................ 11
5.2 逻辑设计表 ............................................................................................................................. 11
5。2.1book 12
5。2.2manager 12 5.2。3borrow 12 5。2.4reader
图管借读
理
书
员
阅者
信
信关信
息息系息
表表表表
数据库课程设计———图书馆管理系统
13
5.3 数据表关系图 ......................................................................................................................... 13 5。4 表的实例图 ....................................................................................................................... 13
5.4。1 reader(读者)表的数据图 .............................................................................. 14 5。4.2manager(管理员)表的数据图 14 5。4。3book(图书)表的数据图 15
5.4。4 borrow(借阅)表的数据图 ................................................................................ 15
6 物理设计和实施 ....................................... 15
6.1 建立索引 ................................................................................................................................. 15 6.2 SQL语句 ................................................................................................................................. 16
7 图书馆管理系统的总体设计.............................. 17
7.1 系统模块设计 ......................................................................................................................... 17
8 图书馆管理系统的具体实现.............................. 19
8.1 登录模块 ................................................................................................................................. 21 8.2 图书馆管理系统欢迎页 ......................................................................................................... 21 8.3 添加管理员信息模块 ............................................................................................................. 22 8.4 删除管理员信息模块 ............................................................................................................. 23 8。5 读者公共查询界面 ........................................................................................................... 23 8。6 修改读者信息模块 ........................................................................................................... 24 8。7 退出系统 ........................................................................................................................... 24
9 系统的测试与分析 ..................................... 25 10 结束语 ............................................... 25 11 参考文献 ............................................. 26
数据库课程设计———图书馆管理系统
1 引言
1.1 编写目的
编写本报告的目的是明确本系统的详细需求,熟悉所要设计系统的整体架构,进一步进行细致的数据库设计,已达到本次数据库课程设计的目的。
1.2 开发背景
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用.随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作.
2 需求描述
2.1 系统目标
本系统通过强大的计算机技术给图书管理人员和读者借、还书带来便利。本系统主要是通过需求分析进而设计出一个完整的数据库,最后通过数据库的接口技术实现系统与数据库的连接,从而达到实现图书馆管理的一般功能,如图书的增加、删除、修改以及借阅者可以查询本人的借阅情况和续借等功能。
2.2用户的特点
本软件的最终用户是面向管理员(图书管理员和其它管理人员)、读者
(老师和同学等),他们都具有一定的计算机应用基础,可以比较熟练操作计算机。管理员和读者都是经常性用户.
系统维护人员为计算机专业人员,熟悉数据库、操作系统、网络维护工
作。维护人员为间隔性用户。
1
数据库课程设计———图书馆管理系统
2.3 需求定义
在图书管理系统中,管理员要为每个读者建立借阅账户,账户内存储读者的个人信息和借阅记录信息。持有一卡通(含有学号即读者编号)的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书。
借阅图书时,先输入读者的一卡通上的学号,系统验证一卡通的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。然后输入要借阅的图书编号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。最后提交借阅请求,若被系统接受则存储借阅记录,并修改可借阅图书的数量。归还图书时,输入读者一卡通上的学号和图书号,系统验证是否有此借阅记录,以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。如果有超期借阅情况,给予过期提醒。然后提交还书请求,系统接受后删除借阅记录,并登记并修改可借阅图书的数量。
图书管理员定期或不定期对图书信息进行入库、修改、删除等图书信息管理以及注销。
为系统维护人员提供权限管理、数据备份等通用功能。 其系统的功能模块图如下:
2
数据库课程设计———图书馆管理系统
图书馆管理系统信息管理模块登录查询模块管理员管理读者信息管理图书信息管理借阅情况读者基本信息当前借阅情况添加删除修改添加删修除改添删加除修改是否续借是否超期 针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面的数据项:
读者信息
属性:读者编号,读者姓名,读者密码,年龄,性别,身份证号,联系电话 主键:读者编号 书籍信息
属性:图书编号,ISBN,图书名称,图书作者,出版社,图书单价,库存总量,外借
数目
主键:图书编号
管理员信息
属性:管理员密码,管理员姓名,年龄,性别,权限,电话,是否为超级管
理员
主键:管理员密码,管理员姓名 借阅关系
属性:图书编号,读者编号,借书日期,还书日期,是否续借,是否超期 主键:图书编号,读者编号
3
数据库课程设计———图书馆管理系统
2.4 性能需求
由于此开发项目针对图书馆,使用频度较高,使用性要求比较高。为防止对信息资料和管理程序的恶意破坏,要求有较为可靠的安全性能。总之,要求稳定、安全、便捷,易于管理和操作。
WEB安全性要求:要防止SQL注入攻击等黑客攻击。 数据库安全性要求:要随时备份数据,防止数据丢失。 系统访问速度要求:满足50人同时在线。
2.5其他需求
能快速恢复系统和故障处理,方便系统升级和扩充。
2。6运行环境规定
数据库服务器端
(1) 操作系统:Microsoft Windows XP (2) 数据库管理系统:SQLServer2000
Web服务器端
(1) 操作系统:Microsoft Windows XP (2) Tomcat 6。0服务器 (3)MyEclipse编程开发环境
3 数据流图
顶层数据流图
读者信息图书查询条件借阅查询条件图书信息读者借阅情况管理员图书信息读者情况图书情况借阅信息图书馆管理系统
读者
4
数据库课程设计———图书馆管理系统
0层数据流图
图书信息 图书情况 借阅信息1图书管理图书查询条件图书信息 图书信息借阅查询条件图书信息表读者 图书信息 借阅信息表管理员 读者信息 读者情况 借阅信息 图书基本信息 图书借还信息 借阅信息 借还书信息 读者信息 2读者管理 读者信息 读者信息表3借阅管理 读者借阅情况借还书信息管理员读者基本信息
1层数据流图(2图书管理)
图书查询条件图书信息读者图书信息管理员图书情况1.2图书信息管理图书信息图书信息 图书信息表 借阅信息借阅信息表
1层数据流图(3读者管理)
5
数据库课程设计———图书馆管理系统
管理员读者信息 读者情况2.2读者信息管理 借阅信息 读者信息 读者信息借阅信息表读者信息表
1层图(4借阅管理)
3.2过期管理 续借信息过期信息过期提醒(续借) 借阅查询条件 (续借)3.3读者续借管理 借阅情况管理员借还书信息3.1借阅管理 读者基 本信息 借还信息图书借阅信息 图书基本信息 借书信息 借阅信息表读者信息表图书信息表
数据流图加工处理功能简单描述
6
数据库课程设计———图书馆管理系统
(1)图书管理
➢ 图书信息管理:增加、删除、修改等管理。新书入库,图书购入后由图
书管理人员将图书编号并将其具体信息录入图书信息表.图书信息修改由于工作人员的疏忽而出现错误时,可修改其信息。管理员按不同方式查询、统计,读者按不同方式查询。 (2)读者管理
➢ 读者信息管理:增加、删除、修改等管理.
(3)借阅管理
➢ 续借管理:提供读者在符合规定的情况下网上续借.
➢ 过期管理:根据一卡通上的学号即读者编号、图书编号等,在借阅信息
表中找到相应的记录,根据情况进行过期提醒.
➢ 借阅管理:根据读者编号和图书编号,进行借书还书信息录入.在借阅
信息表中插入一条记录,该记录包括读者编号、图书编号、借书日期、还书日期等信息,更新该记录的相应数据(图书信息表)。提供读者网上查询自己的借阅情况(包括过期提醒)。
4 概念模型设计
通过对图书管理系统需求及其数据流图的分析,可以得出该系统涉及读者、图书、借阅等数据实体。
4.1 相关实体、主要属性以及关系说明:
1。 book拥有属性book_id(图书编号),book_isbn(ISBN),book_type(图书类型),book_name(图书名称),book_author(图书作者),book_publisher(出版社),book_price(单价),book_amount(库存总量),book_how_many_borrowed(外借数目).
2. manager拥有属性manager_pwd(密码),manager_name(姓名),
7
数据库课程设计———图书馆管理系统
manager_age(年龄),manager_sex(性别),manager_permission(权限),manager_phone(电话),isAdmin(是否为超级管理员).
3。 borrow拥有属性book_id(图书编号),reader_id(读者编号),borrow_time(借书日期),return_time(还书日期),isRenew(是否续借),isOvertime(是否超期)。
4. reader拥有属性reader_id(读者编号),reader_name(姓名),reader_pwd(密码),reader_age(年龄),reader_sex(性别),reader_idcard_number(身份证号),reader_phone( 联系电话)。
4.2 局部的E-R图:
图书实体E—R图:
book_isbn book_id book_name book_author book_publisher book book_amount book_price book_type book_how_many_borrowed 管理员实体E-R图:
8
数据库课程设计———图书馆管理系统
manager_name manager_pwd manager_age manager_sex manager manager_phone isAdmin manager_permission
借阅联系E-R图:
reader_id book_id borrow_time borrow return_time isRenew isOvertime
读者实体E—R图:
reader_pwd reader_name reader_id reader_idcard_number reader_sex reader reader_phone reader_age
9
数据库课程设计———图书馆管理系统
4.3 全局E-R图:
manager_sexmanager_agemanager_namemanager_pwdmanagerisAdminmanager_permissionmanager_phonemmreader_namereader_idreader_pwdbook_idmanagemanagebook_namennbook_isbnreader_agereader_sexreader_phonereader_idcard_numberbook_idbook_pricereader_idborrow_timereturn_timebook_typebook_amountisRenewisOvertimebook_publisher
5 逻辑模型设计
5.1 数据字典
5.1.1 book信息表:
字段 book_id book_isbn book_name book_author book_type book_publisher book_price 数据类型 Int(4) Varchar(30) Varchar(20) Varchar(20) Varchar(20) Yes Varchar(30) Yes Int(4) Yes
mreaderborrownbookbook_authorbook_how_many_borrowed 全局E-R图
是否可以为空 备注 No Yes Yes Yes 主键,自增类型 图书编号 ISBN 图书名称 图书作者 图书类型 出版社 单价 10
数据库课程设计———图书馆管理系统
book_amount
Int(4) Yes Yes 库存总量 外借数目 book_how_many_borrowed Int(4) 5.1.2 manager信息表:
字段 manager_pwd manager_name manager_age manager_sex manager_phone isAdmin 数据类型 Varchar(20) Int(4) Char(10) Varchar(20) Bit(1) 是否可以为空 备注 密码,主键 姓名,主键 年龄 性别 权限 电话 默认值为false, 是否为超级管理员 Yes Yes Yes Yes No Varchar(20) Yes manager_permission Varchar(20) Yes 5.1.3 borrow表:
字段 book_id reader_id return_time isRenew isOvertime
数据类型 Int(4) Int(4) Datetime(8) Bit(1) Bit(1) 是否可以为空 备注 No No Yes Yes Yes 主键,图书编号 主键,读者编号 借书日期 还书日期 是否续借 是否超期 borrow_time Datetime(8) Yes 5.1.4 reader表:
字段 reader_id reader_name reader_pwd reader_age reader_sex reader_phone 数据类型 Int(4) Varchar(20) Varchar(20) Int(4) Char(10) Varchar(20) 是否可以为空 备注 No Yes Yes Yes Yes Yes 主键,自增类型 读者编号 姓名 密码 年龄 性别 身份证号 联系电话
reader_idcard_number Varchar(20) Yes
5.2 逻辑设计表
11
数据库课程设计———图书馆管理系统
5.2.1 book图书信息表
5.2.2 manager管理员信息表
5.2.3 borrow借阅关系表
12
数据库课程设计———图书馆管理系统
5.2.4 reader读者信息表
5.3 数据表关系图
在图书馆借阅管理系统中个数据表的关系图,如下图所示。借阅信息表中的book_id 和reader_id值分别为图书和读者信息表中的外键值,所以在对借阅信息表进行操作时,要考虑到数据表之间的数据完整性。
数据表关系图
5.4 表的实例图
13
数据库课程设计———图书馆管理系统
5.4.1 reader(读者)表的数据图
5.4.2 manager(管理员)表的数据图
14
数据库课程设计———图书馆管理系统
5.4.3 book(图书)表的数据图
5.4.4 borrow(借阅)表的数据图
6 物理设计和实施
从理论‘关系模型’到实现‘数据库建立’,物理文件的安排和建立索引
6.1 建立索引
为了提高在表中搜索元组的速度,在实际实现的时候应该基于键码建立索引是各表项中建立索引的表项:
15
数据库课程设计———图书馆管理系统
(1)读者信息(读者编号) (2)图书信息(图书编号)
(3)管理员信息(管理员密码,管理员姓名) (4)借阅(图书编号,读者编号)
6.2 SQL语句
如下所示:
16
数据库课程设计———图书馆管理系统
7 图书馆管理系统的总体设计
7.1 系统模块设计
整个图书馆分为两个大的模块:信息管理模块和登陆查询模块.其中具体
层次框图如图所示.
图书馆管理系统 信息管理模块 登陆查询模块 层次框图
其中信息管理模块主要是系统管理员对一般管理员、读者和图书信息的添加、删除、修改操作,以及借阅信息的管理操作.其模块图如下所示.
17
数据库课程设计———图书馆管理系统
信息管理模块 管理员管理 读者信息管理 图书信息管理 借阅情况 添加 删除 修改 添加 删除 修改 添加 删除 修改 是否续借 是否超期 信息管理模块图
而登陆查询模块则主要是读者登录图书馆管理系统查询自己的基本信息以及自己的图书借阅情况,只能浏览,读者不能修改随便修改自己的信息。其模块结构图如下所示。
登陆查询模块 读者基本信息 当前借阅情况 登陆查询模块图
18
数据库课程设计———图书馆管理系统
8 图书馆管理系统的具体实现
本设计采用B/S结构,综合运用以前所学的专业知识,设计开发的一个功能较完善的图书馆管理系统,具体包括以下功能:
(1)用户登录模块(验证用户登录,然后进入图书馆管理系统); (2)管理员设置模块(主要包括管理员信息的添加、删除和修改); (3)读者设置模块(主要包括读者信息的添加/删除和维护); (4)读者查询模块(主要包括读者基本信息和借阅情况的查询)。 下面就详细介绍一下每一个功能模块.
首先整个系统对数据库连接建立了一个dbconnection。java文件,它负责与数据库管理软件SQLServer2000的连接工作。关键代码为:
package DBConn;
import java。sql.Connection; import java。sql.DriverManager; import java.sql。ResultSet; import java。sql。SQLException; import java.sql。Statement;
import javax。naming。Context; import javax。naming.InitialContext; import javax.sql.DataSource;
public class dbconnection {
Connection conn; Statement stmt=null; ResultSet result=null;
String drive=\"sun.jdbc.odbc。JdbcOdbcDriver”; //驱动 String user=”sa\"; //用户名 String url=\"jdbc:odbc:database”; String pwd=”\"; int row;
public void init() { try{ }
19
Class。forName(drive);
conn=DriverManager。getConnection(url,user,pwd); //获得连接
数据库课程设计———图书馆管理系统
catch(Exception e) {
System.out。println(e+\"\"); } }
public ResultSet ExecuteQuery(String sql) {
init();
try {
stmt=conn。createStatement(); result=stmt.executeQuery(sql);
} catch (SQLException e) { // TODO Auto-generated catch block e。printStackTrace(); }
return result; }
public int ExecuteUpdate(String sql) { init(); try{
stmt=conn。createStatement();
row=stmt。executeUpdate(sql); } catch(Exception e) { }
return row; }
public void close() { try { }
}
conn。close(); //关闭连接 } catch (SQLException e) { // TODO Auto—generated catch block e.printStackTrace(); }
System.out。println(e+”\");
}
每一个需要连接数据库的页面可以直接引入DBConn包下的这个文件
20
数据库课程设计———图书馆管理系统
dbconnection.java并创建该类的对象即可。 其关键实现语句为:
import DBConn.dbconnection;
dbconnection conn=new dbconnection();
8.1 登录模块
下图登陆界面图是登录图书馆管理系统的首页.本系统只限学校的教师学生。
登陆界面
8.2 图书馆管理系统欢迎页
21
数据库课程设计———图书馆管理系统
8.3 添加管理员信息模块
22
数据库课程设计———图书馆管理系统
8.4 删除管理员信息模块
8.5 读者公共查询界面
公共查询读者登录
23
数据库课程设计———图书馆管理系统
进入公共查询主界面
8.6 修改读者信息模块
8.7 退出系统
24
数据库课程设计———图书馆管理系统
9 系统的测试与分析
本系统具有实用性和易操作性,满足当前图书馆工程数据量不断增加的
需求。系统使用SQL Server 2000 作为数据库,可以容纳巨大的数据量,能够供广大读者使用.经过多次反复的运行测试,此系统界面友好,反应出性能稳定、运行速度快、数据操作安全等特点.
10 结束语
通过这次的数据库课程设计,我认为一个健壮的系统与一个健壮的数据库是息息相关的,我不仅拓宽了自己的知识面,还在实践过程中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平也有了很大的进步.同时,在系统开发方面也累积了一点经验,特别是在对系统开发工具不是很熟悉的情况下,通过自己的学习和老师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解.
这次课程设计完成后,体会颇多,在学与做的过程中,取长补短,不断学习新的知识,吸取经验,达到进步的目的.更使我明白了自己的优缺点,知识只有在不断的使用过程中才会丰满,只有经过实践的东西才是真理,才能够被自己牢牢
25
数据库课程设计———图书馆管理系统
的掌握。培养一个好的编程习惯对于一名学计算机专业的学生来讲是非常重要的。特别是代码语句要错落有序、层次分明;函数、过程及一些复杂语句要有详细注释;复杂的问题要分而治之;要善于思考总结……
在这次课程设计及报告编写过程当中,我学到了许多不能从书本上直接获得的知识。程序开发的过程是辛苦的,我经常会因为思考一个问题,而失眠或忘了吃饭时间,花了大部分坐在电脑前,弄得疲惫不堪。但我又非常享受这种投入的状态,当一个Bug被排除,当一个技术难题被解决,当一个逻辑问题被想通时,这种喜悦是无法用言词来形容的,感觉非常的充实。而这种回报也是显而易见的,正是遇到难题迫使我变得更主动,积极的去学习,反复试验,不断的查证,最终也使我对JSP和数据库知识有了深刻的理解,并提高了分析问题,解决问题的能力。这也是我觉得收获最大的地方,对我以后走向社会,走向工作岗位都起了极为重要的作用.
11 参考文献
[1] 赵文涛主编。数据库系统原理 。中国矿业大学出版社。
[2] 曹广鑫,时强。JSP数据库项目开发宝典。北京:电子工业出版社,2006。 [3] 王立功.软件工程。中国矿业大学出版社。
26
因篇幅问题不能全部显示,请点此查看更多更全内容