9.SQL支持集合的并运算,运算符是______________。
华北科技学院
《数据库原理与应用》
课程设计说明书
学号:
班级:
计科姓名:
设计题目:
图书管理系统
设计地点:
_________大软____________
设计时间:
2015.12.28至2016.01.08
成绩评定:
1、工作量:
A(),B(),C(),D(),F()
2、难易度:
A(),B(),C(),D(),F()
3、答辩情况:
基本操作:
A(),B(),C(),D(),F()
代码理解:
A(),B(),C(),D(),F()
4、报告规范度:
A(),B(),C(),D(),F()
5、学习态度:
A(),B(),C(),D(),F()
总评成绩:
___________________________
指导教师:
___________崔新伟__________
目 录
1引言
1.1课程设计选题
《图书管理系统》
1.2课程设计的目的
通过数据库系统课程设计,熟悉了SQLSERVER数据库管理系统的结构与组成;掌握了SQLSERVER数据库管理系统的应用技术和的使用;应用SQLserver2008和eclipse开发工具实践了《图书管理系统》的数据库应用系统的设计方法、开发过程和SQLSERVER数据库的管理与维护。
最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
1.3本选题的设计背景
数据库技术和Internet的飞速发展,使他们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于拥有庞大人员的学校的管理来讲,数据的有效使用是一个学校能否进行有效管理的一个关键。
学校作为一个学习的地方,一定会有一个图书馆。
有图书馆就必定要有管理,这样学校图书管理系统就显得更为重要。
学校图书管理系统适应于绝大多数的学校图书馆的管理。
应用此系统可以将众多的学生信息和图书信息进行有效的管理,提高学校的效率。
2系统分析与设计
2.1系统的需求分析
2.1.1功能需求
1.读者基本信息的输入,包括读者借书证号、读者姓名、读者性别、出生日期、读者系部、读者专业、借阅数量。
2.读者基本信息的查询,包括读者借书证号、读者姓名、读者性别、出生日期、读者系部、读者专业、借阅数量。
3.书籍基本信息的录入,括书籍编号、书籍名称、作者姓名、出版社名称、出版日期、单价、复本量、库存量、类别。
4.书籍信息的查询,包括书籍编号、书籍名称、作者姓名、出版社名称、出版日期、单价、复本量、库存量、类别。
5.借阅书籍信息的录入,包括读者借阅证号、书籍编号、条形码、借书日期等。
6.借阅书籍信息的查询,包括读者借阅证号、书籍编号、条形码、借书日期等。
7.历史借阅书籍的查看,查询超过期限为归还图书的人的借阅证号、图书的编号、借书日期及归还日期。
8.读者可查看个人信息以及图书信息。
9.管理可查看增加读者信息、图书信息、以及借阅信息。
2.1.2性能需求
1.性能方面:
学校的图书馆可以同时供学校的500人访问,在校的学生或老师,都可以在图书馆借阅书籍。
2.可修改性方面:
随着计算机技术的提高,图书管理系统可以根据学校的需要进行升级,从而提高它的实用性。
3.可用性方面:
如果系统出现问题,可以用最短的时间进行恢复,同时,每过一段时间,可以对系统进行故障检测。
4.安全性方面:
该系统设有一个级别最高的管理员,可以对系统进行所有的操作,然后在低一级就是读者,对个人信息和书籍信息有查阅权。
5.用户操作方面:
不同的角色有不同的权限,登陆进去过后,会有不同的界面,方面进行各种操作。
2.2系统的开发运行环境
本系统开发平台:
eclipse+sqlserver2
本系系统运行平台:
windows7
2.3系统总体设计
该系统主要是应用于学校图书馆的管理。
管理员通过不同权限的账号登陆进入不同的页面,行使不同的权力,管理员可以对读者信息的查询、添加,图书基本信息的查询、入库、更新等。
同时,使用该系统需要提供良好的用户界面,因此,还设计好了友好的用户界面。
总体结构如下图:
3数据库设计
3.1数据库概念结构
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,现设计如下面所示的数据结构:
1.读者信息
读者的借阅证号、读者姓名、读者性别、出生年月、所在系部、所在专业、借阅数量
2.图书信息
图书编号、书名、作者、出版社、单价、复本量、库存量、类别
3.借阅信息
读者的借阅证号、图书编号、条码号、借阅日期
4.历史借阅信息
读者的借阅证号、读者的借阅证号、条码号、借阅日期、归还日期
总体E-R图:
3.2数据库逻辑结构
3.2.1关系模型
根据概念模型的E-R图,适当的进行优化后,可以得到以下三个关系模式:
1.读者信息(读者借书证号,读者姓名,读者性别,出生年月,所在系部,所在专业,借阅数量)
2.图书信息(图书编号,书名,作者,出版社,单价,复本量,库存量,类别)
3.借阅信息(借阅证号,图书编号,条码号,借阅日期,归还日期)
3.2.3视图的设计
1.为了方便读者和管理员查询书籍是否可借,建立一个视图A,查询图书馆内图书的库存量,其字段信息包括:
图书编号、书籍名称、库存量。
具体实现如下:
CreateviewA(ISBN,Bname,Invnum)
AsselectISBN,Bname,Invnum
FromBook
2.为了方便管理员对于读者借书情况的查看,以及便于挺醒超期为归还同学,建立一个视图B,查看借书超过两个月为归还的读者的借阅证号,具体实现如下:
CreateviewB(Lno)
AsselectLno
FromLend
Where(GETDATE()-Bordate)>60
3.3数据库的实现
3.3.1表
1.读者信息表
包括读者的借阅证号Lno,读者的姓名Rname,读者性别Sex,出生日期Brithday,所在系部Dept,所属专业Spec以及借阅数量Bornum。
2.图书信息表
包括图书编号ISBN,图书名称Bname,作者Author,出版社Press,单价Price,复本量Copynum,库存量Invnum,类别Btype。
3.借阅信息表
包括读者的借阅证号Lno,图书的编号ISBN,图书的条码号Barno,借阅日期Bordate。
4.历史借阅信息表
包括读者的借阅证号Lno,图书的编号ISBN,图书的条码号Barno,借阅日期Bordate,归还日期Retdate。
3.3.2视图
视图A
视图B
3.3.3安全性设计
为了确保图书管理信息的安全,设置两个一个用户。
第一个为学生用户Eoot1,给予权限可以查看图书信息表。
第二个用户为管理员用户Eoot2,给予权限可以查看,修改,删除读者信息表、图书信息表、借阅表、历史借阅表。
具体实现如下:
3.3.4完整性设计
本数据库系统的基本表有读者信息表Reader,图书信息表Book,借阅表Lend,历史借阅表HistoryLend。
所以在建立表以及添加信息时须有参照完整性与用户定义完整性。
具体参照如下:
1.借阅书籍必须是图书馆已有的书籍,同时,在记录读者借阅书籍时,要是持有图书证号的才可以,所以在建立借阅信息表时必须参照书籍信息表中的书籍编号(ISBN)和读者信息中的读者图书证号(Lno)。
2.在历史借阅表中的还书记录,必须是图书馆借出去的书,而且借书者必须是在图书馆有记录的,所以,在建立还书记录时,借阅记录必须参照书籍信息表中的书籍编号(ISBN)和读者信息中的读者图书证号(Lno)。
3.在借阅表中的借阅记录,必须是从图书馆借出去的书,并且借书者必须是图书馆有记录的,所以,在建立还书记录时,借阅记录必须参照书籍信息表中的书籍编号(ISBN)和读者信息中的读者图书证号(Lno)。
4.另外,用户定义完整性需要对表有所约束。
读者信息表中的性别,只可填为男或女,不能其他内容。
5.图书馆每人最多借出5本书,所以读者信息表中的借阅数量需约束小于等于五。
部分代码如下:
参照完整性:
Check约束
3.3.5索引设计
此数据库中,除了每个表中的主键自动建立索引外,我还设计了两个索引。
1.因为读者借书有时并未归还而又想借书,图书管理员好查询记录,所以建立一个索引。
在读者表中按照读者借书数量的多少进行排序,便于管理员查看提醒。
2.便于管理员查看并给予读者挺醒图书归还,建立一个索引,在Lend表中对借阅日期进行排序,便于查看哪位读者的借书时间快要到期。
实现如下:
3.3.5触发器
建立一个触发器。
当读者借阅图书,在借阅表中添加一条信息后,读者信息表中的借阅数量加一。
具体实现如下:
createtriggerjilu
onLendafterinsert
as
begin
declare@Lnochar(12)
select@Lno=Lnofrominserted
updateReadersetBornum=Bornum+1whereLno=@Lno
print'修改成功'
end
go
3.3.6存储过程
为了方便管理员管理查询读者信息。
建立一个存储过程,通过输入读者的借书证号,显示读者的姓名与系部。
代码如下:
--存储过程
createprocedurechaxun
(@Lnochar(12),
@Rnamevarchar(8)output,
@Deptvarchar(20)output)
asselect@Rname=Rname,@Dept=Dept
fromReader
whereLno=@Lno
--验证存储过程
declare@Rnamevarchar(8)
declare@Deptvarchar(20)
execchaxun'201205033101',@Rnameoutput,@Deptoutput
select@Rnameas姓名,@Deptas系别
4主要功能的详细设计与实现
4.1登录模块
1.界面,登陆界面如下:
2.功能
本模块可以供不同用户进行登录,用户根据自己的身份选择为读者或者管理员。
然后输入用户名和密码进行登陆,进入界面,选择相关操作。
读者的用户名和密码为读者的姓名和借阅证号。
4.2读者信息模块
1.登陆学生界面
选择读者身份,输入用户名和密码后进入学生查看信息界面,显示读者本人的信息