数据库课程设计图书借阅管理.docx
《数据库课程设计图书借阅管理.docx》由会员分享,可在线阅读,更多相关《数据库课程设计图书借阅管理.docx(20页珍藏版)》请在冰豆网上搜索。
数据库课程设计图书借阅管理
数据库课程设计
课程:
数据库应用
题目:
图书借阅管理
专业:
xxxxxxxxx
班级:
xxxxxxxxxx
座号:
xxxxxxxxxxx
姓名:
xxxxxxxxxxxx
xxx年xx月xx号
目录
一、开发背景:
二、需求分析:
三、数据库概念结构设计
四、数据库逻辑结构设计
五、系统结构框图及系统流程图
六、后台源代码以及功能说明
七、课程设计总结
八、参考文献
一、开发背景:
数据库技术和internet的飞速发展,使他们已经成为现代信息技术的重要的组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于任何一个企业来说,数据是企业重要的资产,如何有效的利用这些数据,对于企业发展起着极其重要的作用。
随着我们市场经济的快速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,特别是在高校中,学生的数量较多,图书的数量也比较多,每天图书的借阅量比较大,采用手工的处理方式已经不能满足这种需要了,因此需要开发一个能够处理平时借阅管理的信息系统,这个信息系统主要负责处理图书馆日常的借书、还书和查询业务。
二、需求分析:
(1)、图书资料查询管理
读者在借书之前一般要对所需要的图书进行检索,以便查看是否存在自己所需的图书以及图书所在的区位以便能够快速找到相应的图书。
本模块主要实现读者能够
按图书的书名,
按图书的作者,
按图书的出版社
按图书名的关键字
进行检索。
2、借阅图书资料管理
(1)借书:
当读者查找到所需的图书并需要借阅时,可以向管理员联系,提供给管理员借书证以及图书编号。
管理员对读者提供的信息和借书时间进行登记(登记前对该读者和图书进行判断是否可借)
(2)还书:
当读者还书时,管理员对读者的借书证和图书号进行核对,符合的进行还书操作(管理员应检查图书是否损坏、是否超过规定的还书时间)
3、图书资料管理
管理员可以对新书进行入库和旧书下架等,其中图书的属性应包括图书编号、书名、作者、出版社、价格等;
同时,管理员要对图书进行分类,有增加分类,删除分类操作,其中图书类别应包括图书类别的编号、图书类别名称、图书所属区位。
4、读者信息管理
管理可以对读者信息进行添加,删除,修改等操作,例如修改读者密码、为读者进行充值
(2)、数据流程图
否
是
否
是
(3)数据字典
数据字典:
对数据流图中出现的对象、处理、存储、数据流进行文字说明解释。
这是后面设计工作的基础。
包括数据项,数据结构,数据流,数据存储,和处理过程。
1、数据项
编号
数据项名称
数据类型
约束条件
说明
1
SNO
CHAR(5)
UNUQUENOTNULL
学号
2
SNAME
VARCHAR(10)
NOTNULL
姓名
3
SSEX
CAHR
(2)
NOTNULL
性别
4
SDEPT
VARCHAR(20)
NOTNULL
所在系
5
SPW
CHAR(6)
NOTNULL
密码
6
RMB
SMALLMONEY
NOTNULL
余额
7
BWNUM
SMALLINT
NOTNULL
已借数量
8
MAXNUM
SMALLINT
NOTNULL
最大借阅量
9
BNO
CHAR(5)
UNIQUENOTNULL
图书编号
10
BNAME
VARCHAR(20)
NOTNULL
书名
11
WRITER
VARCHAR(20)
NOTNULL
作者
12
PRESS
VARCHAR(20)
NOTNULL
出版社
13
PRICE
SMALLMONEY
NOTNULL
价格
14
CATEGORY
VARCHAR(20)
NOTNULL
所属类别
15
AREA
CHAR
(2)
NOTNULL
所在区域
16
BNUM
TINYINT
NOTNULL
总数量
17
REMAIN
TINYINT
NOTNULL
剩余量
18
BDATE
DATE
NOTNULL
借书日期
19
LDATE
DATET
NOTNULL
归还日期
21
ODATE
SMALLINT
NOTNULL
超期时间
22
FMONEY
SMALLMONEY
NOTNULL
罚款金额
23
MNO
CHAR(5)
UNIQUENOTNULL
管理员账号
25
MPW
CHAR(6)
NOTNULL
管理员密码
26
MNAME
VARCHAR(10)
NOTNULL
管理员姓名
27
MTEL
NVARCHAR(20)
NOTNULL
管理员电话
2、数据结构
编号
数据结构名
属性
1
STUDENT
SNO,SNAME,SSEX,SDEPT,SPW,RMB,BWNUM,MAXNUM
2
BOOK
BNO,BNAME,WRITER,PRESS,PRICE,CATEGORY,AREA,BNUM,REMAIN
4
BORROW
SNO,BNO,BDATE,LDATE,ODATE,FMONEY
5
MANAGER
MNO,MPW,MNAME,TEL
3、数据流
编号
数据流名
输入
输出
1
读者信息
增加读者信息
读者信息
2
添加图书类型
图书类型信息
图书类型信息
3
添加图书
增加图书
图书信息
4
借阅图书
借阅图书信息
图书借阅信息
5
图书信息查询
查询方式
查询结果
4、数据存储
数据存储名
输入数据流
输出数据流
读者信息
读者信息
读者信息
图书类型信息
添加图书类型
图书类型信息
图书信息
图书信息
图书信息
图书借阅
借阅图书
图书信息
图书信息查询
查询方式
图书信息
5、处理过程
处理过程名
输入数据流
输出数据流
增加读者
终端
读者信息
图书类型信息
添加图书类型
图书类型信息
添加图书
终端
图书信息
借阅图书
借阅图书
图书信息
罚款
罚款金额
余额
图书信息查询
图书信息查询
图书信息
三、数据库概念结构设计
四、数据库逻辑结构设计
--读者信息表
STUDENT(SNO,SNAME,SSEX,SDEPT,SPW,RMB,BWNUM,MAXNUM)
--图书信息表
BOOK(BNO,BNAME,WRITER,PRESS,PRICE,CATEGORY,AREA,BNUM,REMAIN)
--借阅信息表
BORROW(SNO,BNO,BDATE,LDATE,ODATE,FMONEY)
--管理员信息表
MANAGER(MNO,MPW,MNAME,TEL)
五、系统结构框图及系统流程图
1、系统结构框图
2、系统流程图
六、后台源代码以及功能说明
--创建数据库
CREATEDATABASEBookDB
ONPRIMARY--默认就属于PRIMARY主文件组,可省略,ON不能省略
(
NAME='BookDB_data',--主数据文件的逻辑名
FILENAME='D:
\db\BookDB_data.mdf',--主数据文件的物理名
SIZE=5mb,--主数据文件初始大小
MAXSIZE=10Gb,--主数据文件增长的最大值
FILEGROWTH=15%--主数据文件的增长率
)
LOGON
(
NAME='BookDB_log',
FILENAME='D:
\db\BookDB_log.ldf',
SIZE=2mb,
FILEGROWTH=1MB
)
GO
--读者信息表
CREATETABLESTUDENT
(
SNOCHAR(5)PRIMARYKEY,
SNAMEVARCHAR(10),
SSEXCHAR
(2),
SDEPTVARCHAR(20),
SPWCHAR(6),
RMBSMALLMONEY,
BWNUMSMALLINT,
MAXNUMSMALLINT,
)
GO
--创建图书表
CREATETABLEBOOK
(
BNOCHAR(5)PRIMARYKEY,
BNAMEVARCHAR(30),
WRITERVARCHAR(20),
PRESSVARCHAR(30),
PRICESMALLMONEY,
CATEGORYVARCHAR(20),
AREACHAR(5),
BNUMTINYINT,
REMAINTINYINT
)
GO
--创建借阅信息表
CREATETABLEBORROW
(
SNOCHAR(5),
BNOCHAR(5),
BDATEDATETIME,
LDATEDATETIME,
ODATESMALLINT,
FMONEYSMALLMONEY,
PRIMARYKEY(SNO,BNO),
FOREIGNKEY(SNO)REFERENCESSTUDENT(SNO),
FOREIGNKEY(BNO)REFERENCESBOOK(BNO),
)
GO
--管理员信息表
CREATETABLEMANAGER
(
MNOVARCHAR(7)PRIMARYKEY,
MPWVARCHAR(6)NOTNULL,
MNAMEVARCHAR(10)NOTNULL,
TELNVARCHAR(20),
)
GO
insertintoSTUDENT
values('00001','李勇','男','计算机系','123456',130.40,0,20)
insertintoSTUDENT
values('00002','刘晨','女','数理系','123456',125.85,0,20)
insertintoSTUDENT
values('00003','王敏','女','管理学院','123456',214.55,0,20)
insertintoSTUDENT
values('00005','赵小六','男','设备系','123456',115.40,0,20)
insertintoSTUDENT
values('00006','李美丽','男','计算机系','123456',60.72,0,20)
insertintoSTUDENT
values('00007','张红','女','建筑系','123456',78.80,0,20)
insertintoSTUDENT
values('00008','胡思','男','土木系','123456',130.70,0,20)
insertintoSTUDENT
values('00009','何泽东','男','文传系','123456',15.83,0,20)
insertintoSTUDENT
values('00010','马小缪','男','电子系','123456',90.97,0,20)
GO
insertintoBOOK
values('11111','计算机组成原理','王爱英','清华大学出版社','23.5','工程技术类','A区',5,5);
insertintoBOOK
values('14512','计算机组成原理','王爱英','清华大学出版社','45.1','工程技术类','A区',4,4);
insertintoBOOK
values('75413','数据库原理','萨师煊','高等教育出版社','22.0','工程技术类','A区',5,5);
insertintoBOOK
values('75464','C程序设计','谭浩强','清华大学出版社','28.3','工程技术类','A区',6,6);
insertintoBOOK
values('57546','计算机体系结构','石教英','浙江大学出版社','59.6','工程技术类','A区',4,4);
insertintoBOOK
values('78454','数据结构(C语言版)','吴伟民,严蔚敏','清华大学出版社','38.0','工程技术类','A区',3,3);
insertintoBOOK
values('78455','中华历史年','吴强','北京大学出版社','44.2','历史类','B区',5,5);
insertintoBOOK
values('48785','古代埃及','赵文华','北京大学出版社','19.9','外国史','C区',2,2);
insertintoBOOK
values('24811','日本文化','吴小鹏','北京大学出版社','55.8','人文艺术类','D区',4,4);
insertintoBOOK
values('14476','微观经济学','李小刚','北京大学出版社','43.1','政治经济类','E区',7,7);
insertintoBOOK
values('85125','影视文学','苏庆东','北京大学出版社','31.2','图片艺术类','F区',5,5);
insertintoBOOK
values('47820','探索宇宙奥秘','苏庆东','北京大学出版社','88.7','自然科学类','G区',4,4);
insertintobook
values('10023','野草','鲁迅','人民教育出版社','12.3','人文艺术类','D区',6,6);
GO
insertintomanager
values('admin1','111111','张老师','1363636336')
insertintomanager
values('admin2','222222','李老师','1383838338')
GO
select*fromstudent
select*frombook
select*fromborrow
select*frommanager
--借书触发器
CREATETRIGGERT_BORROW
ONBORROW
forINSERT
AS
DECLARE@SNOVARCHAR(5),@BNOVARCHAR(5),@REMAINTINYINT,@BWNUMTINYINT,@MAXNUMTINYINT
SELECT@SNO=SNO,@BNO=BNOFROMINSERTED
SELECT@REMAIN=REMAINFROMBOOKWHEREBNO=@BNO
SELECT@BWNUM=BWNUM,@MAXNUM=MAXNUMFROMSTUDENTWHERESNO=@SNO
IF@REMAIN>0AND@BWNUM<@MAXNUM
BEGIN
UPDATEBOOK
SETREMAIN=REMAIN-1
WHEREBNO=@BNO;
UPDATESTUDENT
SETBWNUM=BWNUM+1
WHERESNO=@SNO;
END
--还书触发器
CREATETRIGGERT_RETURN
ONBORROW
AFTERDELETE
AS
DECLARE@SNOVARCHAR(5),@BNOVARCHAR(5),@BDATEDATETIME,@LDATEDATETIME,@DAYINT,@ODAYINT,@FMONEYINT
SELECT@SNO=SNO,@BNO=BNO,@BDATE=BDATE,@LDATE=LDATE,@ODAY=ODATE,@FMONEY=FMONEYFROMDELETED
SET@DAY=DATEDIFF(DAY,@BDATE,@LDATE)
SET@ODAY=@DAY-30
IF@ODAY<0
BEGIN
UPDATEBORROW
SETODATE=0,FMONEY=0
WHERESNO=@SNOANDBNO=@BNOANDBDATE=@BDATE;
UPDATESTUDENT
SETBWNUM=BWNUM-1
WHERESNO=@SNO;
UPDATEBOOK
SETREMAIN=REMAIN+1
WHEREBNO=@BNO;
END
ELSE
BEGIN
UPDATEBORROW
SETODATE=@ODAY,FMONEY=@ODAY*0.1
WHERESNO=@SNOANDBNO=@BNOANDBDATE=@BDATE;
UPDATESTUDENT
SETBWNUM=BWNUM-1,RMB=RMB-@ODAY*0.1
WHERESNO=@SNO;
UPDATEBOOK
SETREMAIN=REMAIN+1
WHEREBNO=@BNO
END
七、课程设计总结
经过2周的课程设计,让我对数据库和delphi有了新的认识和深刻的了解。
虽然只是短短的2周时间,但是在这2周,我们把课堂里面老师讲的只是运用到实践中去了,我们都感到非常的高兴,不仅学到了知识,还锻炼了团队合作的能力,我相信这对我们以后的工作有很大的帮助。
数据库应用系统开发的过程一般包括可行性研究、需求分析、系统设计、程序编码、程序调试和系统维护六个阶段。
我们设计的这个简单的图书馆管理系统,实现了一些图书管理和借阅功能,以及信息维护的功能。
期间,我们对应用情况做了简单的理想化处理,因而难以反映实际工作中可能遇到的实际问题,例如:
也未考虑用户操作中可能出现的错误的处理,而实际上这种错误的处理程序可能占应用系统的很大一部分,例如:
用户借阅书籍多次借阅处理。
为了解决这些不完善之处需要在今后的进一步学习中,逐步深入,不断积累经验,不断的提高。
八、主要参考文献
1.王珊萨师煊编《数据库系统概论》高等教育出版社