数据库课程设计报告图书借阅管理系统Word文件下载.docx
《数据库课程设计报告图书借阅管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告图书借阅管理系统Word文件下载.docx(16页珍藏版)》请在冰点文库上搜索。
(2)、对数据库代码设计的方法
根据表提供的数据建立数据库的基本表
对基本表插入数据,完成对基本表的完善
根据基本表建立视图(我省略了)、索引(我省略了)、存储过程、触发器
调试并修改,最终完成数据库代码设计
4、参考资料:
(1)、《数据库原理及应用教程(第二版)》陈志泊主编,陈志泊王春玲编著
(2)、《SQLServer2000开发与管理应用实例(中文版)》邹建编著
2、设计与实现过程
1、系统需求分析:
对于图书借阅管理系统的借阅问题,出于对整体数据库建立的需要,我先做了一个
需求分析。
该分析中,我以至上而下的模式展开,将需求分成若干个子模块,并对每个进行属性分析。
与此同时,考虑到问题的实际操作性,又将部分模块合并到某些具体的模块中,比如图书管理模块,我直接将其放入借书信息和借书管理两模块中考虑,而不对图书管理这一模块直接考虑。
但是,由于时间有限,所以我干脆忽略在实际操作中需要考虑的续借模块,而将续借模块简化后放入借书信息模块中,这是我设计中的一个瑕疵。
2、E-R图设计
我分两个步骤完成E-R图设计
首先完成局部E-R图,然后完成整体E-R图设计
<
1>
、局部E-R图设计
(1)、图书信息E-R图设计:
(2)、借书信息E-R图设计:
(3)、借者信息E-R图设计(4)、还书信息E-R图设计
2>
、整体E-R图设计
实体为:
图书信息、借书信息、借者信息、还书信息
联系为:
图书信息---借书数量---借书信息、图书信息---还书数量---还书信息
借书信息---借阅资格---借者信息、借书信息---是否逾期---还书信息
借者信息---还书日期---还书信息
3、基本表的设计
代码如下:
、图书信息表:
createtableB_I--------------B_I全称BookInformation,即图书信息
(
书名char(30),
书编号char(10),
价格numeric(5,2),
作者char(10),
出版社char(30),
库存量int,
借出量int
)
、借书信息表:
createtableB_B_I-------------B_B_I全称Borrowbooksinformation,即借书信息
借者姓名char(10),
借书日期datetime,
借书期限datetime,
借书数量smallint,
续借日期datetime,
续借数量smallint
)
3>
、还书信息表:
createtableA_B_I----------------B_A_I全称Alsobooksinformation,即还书信息
还书日期datetime,
借者姓名char(10)
4>
、借者信息表:
createtableB_B_P-------------B_B_P全称Borrowbookspeople,即借书人
系别char(30),
性别char
(2)default'
女'
4、存储过程及触发器的建立
、存储过程的建立:
/*..........将新信息系插入图书信息表.................*/
createprocedureB_I_insert(
@书名char(30),
@书编号char(10),
@价格numeric(5,2),
@作者char(10),
@出版社char(30),
@库存量int,
@借出量int)
as
insertintoB_Ivalues(@书名,@书编号,@价格,@作者,@出版社,@库存量,@借出量)
execB_I_insert'
WindonsCE嵌入式系统'
'
000009'
34.5'
何倧键'
北京航空航天大学出版社'
27'
12'
select*fromB_I
/*..........对图书信息表进行必要的修改...............*/
createprocedureB_I_update(
as
updateB_I
set价格=@价格,库存量=@库存量,借出量=@借出量
where书编号=@书编号
execB_I_update'
000008'
51.5'
2'
11'
/*...........删除图书信息表的信息.....................*/
createprocedureB_I_delete(
@书编号char(10))
delete
fromB_I
execB_I_delete'
000001'
/*..........将新信息系插入借书信息表.................*/
createprocedureB_B_I_insert(
@借者姓名char(10),
@借书日期datetime,
@还书日期datetime,
@借书数量smallint)
declare@timedatetime
set@time=getdate()
set@借书日期=@time
set@还书日期=@借书日期+90
insertintoB_B_Ivalues('
@书编号'
@借者姓名'
@借书日期'
@还书日期'
@借书数量'
execB_B_I_insert'
叶忠雪'
'
1'
select*fromB_B_I
/*..........对借书信息表进行必要的修改...............*/
createprocedureB_B_I_update(
updateB_B_I
set借者姓名=@借者姓名,借书数量=@借书数量
execB_B_I_update'
000003'
周宇珑'
3'
createprocedureB_B_I_delete(
delete
fromB_B_I
execB_B_I_delete'
000004'
/*..........将新信息系插入还书信息表.................*/
createprocedureA_B_I_insert(
@借者姓名char(10))
insertintoA_B_Ivalues('
execA_B_I_insert'
000005'
2012-1-6'
杨鸿文'
select*fromA_B_I
/*..........将新信息系插入借者信息表.................*/
createprocedureB_B_P_insert(
@系别char(30),
@性别char(4))
insertintoB_B_Pvalues('
@借者'
@系别'
@性别'
*........建立触发器,对图书信息表进行修改...........*/
createtriggerB_I_trigger_update
onB_I
forupdate
asdeclare@old_书编号char(10)
declare@new_书编号char(10)
set@old_书编号=(select书编号fromdeleted)
set@new_书编号=(select书编号frominserted)
set书编号=@new_书编号
where书编号=@old_书编号
set书编号='
000000'
where书编号='
/*........建立触发器,对借者信息表进行修改...........*/
createtriggerB_B_I_trigger_update
onB_B_I
asdeclare@old_借书数量char(10)
declare@new_借书数量char(10)
set@old_借书数量=(select借书数量fromdeleted)
set@new_借书数量=(select借书数量frominserted)
set借书数量=@new_借书数量
where借书数量=@old_借书数量
/*........建立触发器,对图书信息表进行删除以及插入...........*/
createtriggerB_I_too
forinsert,delete
begin
updateB_I
set库存量=库存量+1where书编号in(select书编号fromdeleted)
set库存量=库存量-1where书编号in(select书编号frominserted)
End
5、插入具体数据
insertintoB_Ivalues('
数据库原理'
28'
赵枫'
人民邮电出版社'
20'
C++编程原理'
000002'
31'
钱德'
新思维出版社'
90'
8'
计算机程序解读'
32'
孙俪'
好书出版社'
几何学'
57'
李楠'
数学家协会出版社'
87'
73'
历史断代'
曾祥威'
清华大学出版社'
23'
789'
编译原理与实现'
000006'
50'
Kenneth'
中信出版社'
45'
9'
黑客攻略必杀技'
000007'
34'
某某人'
人民交通出版社'
百年孤独'
49.8'
马尔克斯'
北京燕山出版社'
insertintoB_B_Ivalues('
夏号'
2011-8-900:
00:
00'
2011-12-1000:
5'
50:
40:
张小龙'
李安安'
2011-8-910:
2011-8-920:
2011-8-901:
6'
2011-11-2400:
2011-11-2401:
02:
03'
软件工程'
曾丹'
外国语学院'
刘小强'
机电学院'
男'
经管学院'
陈莎莎'
黄隽'
水利水电学院'
软件学院'
6、调试结果
、建表:
、存储过程与触发器:
7、结论
此系统主要完成对图书借阅信息的一系列设计,包括对借出、归还以及借阅人的管理设计。
我在采用数据库SQLserver2000来完成整个系统的设计。
在书籍的借出、归还两者之间建立了良好的链接关系,某一部分地修改均会引发系统对与其相关的部分进行连锁修改。
我采用的语言包括DDL、DML、squal查询语言。
当然的,在系统的设计过程中不可避免地遇到了各种各样的问题。
由于整个系统是由我单独设计的,鉴于自身水平限制,并没有完全发挥SQL的功能,代码还存在着一些不完美之处。
通过本次设计我真正掌握了不少以前印象不是很深刻的东西,发现并解决了大量的问题。
本次设计碰到许多的难点,但也有不少的收获。