SQL课程设计图书信息管理系统.docx
《SQL课程设计图书信息管理系统.docx》由会员分享,可在线阅读,更多相关《SQL课程设计图书信息管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
SQL课程设计图书信息管理系统
课程设计(论文)
课程名称_____SQLServer数据库原理____
题目名称_______图书信息管理系统_______
学生学部(系)_____信息与计算机学部_____
专业班级__________09计算机x班________
学 号__________xxxxxxxxxxxx_________
学生姓名_____________xxx_______________
指导教师_____________xxx_______________
2011年6月7日
课程设计(论文)任务书
题目名称
图书信息管理系统数据库设计
学生学部(系)
信息与计算机学部
专业班级
09级计算机x班
姓名
xxx
学号
xxxxxxxxxx
一、课程设计(论文)的内容
建立图书信息管理系统的数据库,明确图书信息管理系统数据库应提供的功能,建立各数据库对象及其关系,通过函数、存储过程和触发器应当能够实现读者信息、借阅信息、历史记录的录入、修改、删除、等功能,通过视图能够对数据进行查询,并且能够高效地完成各种数据的统计功能等。
二、课程设计(论文)的要求与数据
设计的主要内容应包括:
①总体设计(表的组成、关系图等);②详细设计(模块功能说明:
表、索引、数据完整性的实现,视图、游标功能、存储过程及参数说明,触发器的功能描述等)③调试与测试:
测试结果的分析与讨论④数据库清单和执行结果:
每个表中至少有5条记录。
三、课程设计(论文)应完成的工作
(1)根据上述要求完成一个功能完善图书信息管理系统数据库设计;
(2)采用查询分析器设计方法,语句书写符合规范,设计应完善;
(3)对数据库进行初步的错误和漏洞检测;
(4)根据设计规范撰写报告并按时提交;
(5)设计内容用A4纸打印并按要求装订。
四、课程设计(论文)进程安排
序号
设计(论文)各阶段内容
地点
起止日期
1
审题、搜集资料
综合楼609
05.10—05.15
2
数据分析与设计
综合楼609
05.16—05.26
3
数据库的实现
综合楼609
05.27—05.28
图形界面设计
综合楼609
05.29—06.05
调试分析
综合楼609
06.06—06.07
总结
综合楼609
06.07
五、应收集的资料及主要参考文献
[1]郑阿齐.SQLServer教程.北京.清华大学出版社.2005
[2](英)迪尤逊.SQLServer2005基础教程.北京.人民邮电出版社.2006
[3]李春葆.SQLServer2000学习与上机实验指导.北京.清华大学出版社.2009
[4]李志姝,李光海编著.SQL应用与开发标准教程.北京.清华大学出版社.2006
发出任务书日期:
2011年4月29日指导教师签名:
计划完成日期:
2011年6月7日教学单位责任人签章:
摘要
目前图书馆进行信息管理的主要方式是基于手工处理,最多是用计算机的文本系统打印一些清单,信息处理工作量大,容易出错,缺乏系统、规范的信息管理手段。
在电脑技术高速发展的今天,迫切需要充分利用计算机实现自动化管理。
现在准备建立的图书管理系统,要把图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。
此图书管理系统,主要是基于大学图书馆的管理业务而设计的,是基于SQLSERVER建立的,可用于各种中小型的图书馆。
关键词:
SQLServer,图书管理,设计
目录
1序言1
2系统分析与设计1
2.1系统需求分析1
2.2系统功能分析2
2.3功能模块设计2
3系统的实现5
4系统调试7
总结9
参考文献9
1序言
随着社会信息量得与日俱增,职场竞争的日趋激烈,越来越来的人更关注知识的积累、能力的培养。
图书作为信息存储的主要媒体之一,数量、规模比任何时候都大的多。
不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。
在计算机日益普及的今天,对个人而言若采用套行之有效的图书管理系统来管理自己的书籍,会方便很多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
对于日益扩大的图书馆,查找特定的数目总是借阅者或工作人员劳神费力,有时还没有结果。
因此往往是投入了大量的人力和财力却得不到高效的管理效率。
为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆管理系统将会极大地方便图书馆管理人员的劳动,使工作人员从繁忙、复杂的工作进入一个简单、有效的工作中。
本文以高校图书馆管理系统开发过程为背景,全文分为目录、需求分析功能分析、功能模块设计以及系统的实现等过程。
在程序设计与调试上采用了自上而下,逐步细化,逐步完善的原则。
采用结构化的功能模块设计系统功能,可读性好,易于扩充。
基本功能全面,系统可读性好,易于维护、更新,安全性好。
2系统分析与设计
2.1系统需求分析
本项目的名称是图书信息管理系统,主要用户是图书馆管理人员和借阅图书者,几乎所有功能操作以及对系统的维护工作都是面向图书馆管理人员和借阅图书者的。
因此设计项目的时候以管理人员、借阅人员的立场、工作重心和工作需求出发,系统的外观界面也是针对图书馆管理人员而设计。
根据要求,主要功能包括:
(1)读者信息、图书信息插入功能--输入
(2)读者信息、图书信息浏览功能--输出
(3)查询功能:
按书名查询、按作者名查询(至少一种查询方式)
(4)图书信息的删除:
按照存在状态删除,把已还的图书信息删除。
(5)图书信息的修改:
按照存在状态修改,把已借的图书信息改为已还的状态。
2.2系统功能分析
图书信息管理系统包括书籍的插入和浏览,读者信息的插入、修改和浏览,图书查询功能以及图书信息的删除和修改功能,详细的功能描述如下:
(1)书籍的插入需要用户提供所有书籍属性,有:
ISBN,书名,作者,出版社,价格,库存量。
信息必须齐全,否则无法录入,书籍的浏览则提供对book表的查看;
(2)读者信息的插入也必须用户提供所有读者信息属性,有:
借书证号,姓名,性别,专业名,出生时间,借书数。
修改及浏览即是根据借书证号进行一个记录的操作;
(3)图书查询功能提供“模糊”查询法(或者说:
关键字查询法),用户只需给出相关字眼即可查询;
(4)图书信息的删除修改功能是内部管理员特有的,在读者借书和还书是对借阅表进行插入、修改及删除。
2.3功能模块设计
图书信息管理系统可分为3个模块,如下图所示:
根据功能描述,我们设计出了如下的实体联系图:
逻辑结构设计
book表:
字段
类型
长度
必填字段
允许空值
备注
bookid
Char
16
是
否
主码
书名
char
26
是
否
作者
char
8
是
否
出版社
char
20
是
否
价格
Float
8.1
是
否
复本量
Int
是
否
库存量
Int
是
否
reader表:
字段
类型
长度
必填字段
允许空值
备注
Readerid
Char
8
是
否
主码
姓名
Char
8
是
否
专业名
Char
8
是
否
性别
Bit
是
否
0:
男
1:
女
出生时间
Datetime
是
否
借书量
Int
是
否
照片
Image
否
是
borrow表:
字段
类型
长度
必填字段
允许空值
备注
借书证号
Char
8
是
否
ISBN
Char
16
是
否
索书号
Char
10
是
否
主码
借书时间
Datetime
是
否
3系统的实现
主要功能:
对JY表的存储过程如下:
usexsbook/*对JY表中插入一条记录*/
go
createprocedurejy_insert
@jszhchar(8),@isbnchar(16),@sshchar(10),@jssjdatetime,@flagintoutput
as
set
@flag=(select库存量frombookwhereisbn=@isbn)
if@flag>0
begin
insertintojy(借书证号,ISBN,索书号,借书时间)
values(@jszh,@isbn,@ssh,@jssj)
end
else
set@flag=0
usexsbook/*对JY表中删除一条记录*/
createprocedurejy_delete@sshchar(10),@flagintoutput
as
declare@jszhchar(8),@isbnchar(16)
declare@jssjdatetime,@hssjdatetime
ifexists(select*fromjywhere索书号=@ssh)
begin
set@flag=1
select@jszh=借书证号,@isbn=ISBN,@jssj=借书时间fromjy
where索书号=@ssh
set@hssj=getdate()
insertintoJYLS
values(@jszh,@isbn,@ssh,@jssj,@hssj)
deletefromjy
where索书号=@ssh
end
else
set@flag=0
usexsbook/*对JY表进行查询的存储过程*/
go
createprocedurejy_serch
@sshchar(10)
as
selectxs.姓名,book.书名,jy.索书号
fromXS,BOOK,JY
WHEREbook.isbn=jy.isbnandxs.借书证号=jy.借书证号and索书号=@ssh
对JY表的触发器如下:
usexsbook/*对JY表定义的INSERT的触发器*/
go
createtriggertjy_insertonjy
forinsertas
beginupdatexs
set借书量=借书量+1
wherexs.借书证号in(selectinserted.借书证号
frominserted
)
updatebook
set库存量=库存量-1
wherebook.isbnin
(selectinserted.isbn
frominserted
)
end
usexsbook/*对JY表进行删除的触发器*/
go
createtriggertjy_deleteonjy
fordeleteas
begin
updatexs
set