数据库课程设计报告图书借阅管理系统.docx

上传人:b****1 文档编号:2067442 上传时间:2023-05-02 格式:DOCX 页数:16 大小:436.67KB
下载 相关 举报
数据库课程设计报告图书借阅管理系统.docx_第1页
第1页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第2页
第2页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第3页
第3页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第4页
第4页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第5页
第5页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第6页
第6页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第7页
第7页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第8页
第8页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第9页
第9页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第10页
第10页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第11页
第11页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第12页
第12页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第13页
第13页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第14页
第14页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第15页
第15页 / 共16页
数据库课程设计报告图书借阅管理系统.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计报告图书借阅管理系统.docx

《数据库课程设计报告图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告图书借阅管理系统.docx(16页珍藏版)》请在冰点文库上搜索。

数据库课程设计报告图书借阅管理系统.docx

数据库课程设计报告图书借阅管理系统

课程设计题目:

图书借阅管理系统

一、课题介绍与思路分析

1、实验目的:

通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

2、课题描述:

描述:

设计一个图书借阅管理系统,实现下列功能:

1.图书信息的维护(包括录入,修改和删除);

2.读者信息的维护(包括录入,修改和删除);

3.借阅(借,还)信息的维护(包括借,还信息录入,修改和删除);

3、实现思路:

由于我所做的是关于图书借阅的一个管理系统,

所以我打算从以下几个方面着手解决这个实验课题:

(1)、确定表的方法

首先:

简单分析图书借阅的基本情况

其次:

由至上而下的模式简略地画出系统需求分析图

再次:

根据系统需求分析逐个画出局部E-R图

接着:

分析各个局部E-R图之间的潜在冲突

然后:

整合调节E-R图,画出全局E-R图

紧接着:

大致列出表,并利用第三范式分析表之间的函数依赖关系

最后:

最终确定表

(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、基本表的设计

代码如下:

<1>、图书信息表:

createtableB_I--------------B_I全称BookInformation,即图书信息

书名char(30),

书编号char(10),

价格numeric(5,2),

作者char(10),

出版社char(30),

库存量int,

借出量int

<2>、借书信息表:

createtableB_B_I-------------B_B_I全称Borrowbooksinformation,即借书信息

书编号char(10),

借者姓名char(10),

借书日期datetime,

借书期限datetime,

借书数量smallint,

续借日期datetime,

续借数量smallint

<3>、还书信息表:

createtableA_B_I----------------B_A_I全称Alsobooksinformation,即还书信息

书编号char(10),

还书日期datetime,

借者姓名char(10)

<4>、借者信息表:

createtableB_B_P-------------B_B_P全称Borrowbookspeople,即借书人

借者姓名char(10),

系别char(30),

性别char

(2)default'女'

4、存储过程及触发器的建立

<1>、存储过程的建立:

/*..........将新信息系插入图书信息表.................*/

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(

@书编号char(10),

@价格numeric(5,2),

@库存量int,

@借出量int)

as

updateB_I

set价格=@价格,库存量=@库存量,借出量=@借出量

where书编号=@书编号

execB_I_update'000008','51.5','2','11'

select*fromB_I

/*...........删除图书信息表的信息.....................*/

createprocedureB_I_delete(

@书编号char(10))

as

delete

fromB_I

where书编号=@书编号

execB_I_delete'000001'

select*fromB_I

 

/*..........将新信息系插入借书信息表.................*/

createprocedureB_B_I_insert(

@书编号char(10),

@借者姓名char(10),

@借书日期datetime,

@还书日期datetime,

@借书数量smallint)

as

declare@timedatetime

set@time=getdate()

set@借书日期=@time

set@还书日期=@借书日期+90

insertintoB_B_Ivalues('@书编号','@借者姓名','@借书日期','@还书日期','@借书数量')

execB_B_I_insert'000001','叶忠雪','','','1'

select*fromB_B_I

/*..........对借书信息表进行必要的修改...............*/

createprocedureB_B_I_update(

@书编号char(10),

@借者姓名char(10),

@借书数量smallint)

as

updateB_B_I

set借者姓名=@借者姓名,借书数量=@借书数量

where书编号=@书编号

execB_B_I_update'000003','周宇珑','3'

select*fromB_B_I

/*...........删除图书信息表的信息.....................*/

createprocedureB_B_I_delete(

@书编号char(10))

as

delete

fromB_B_I

where书编号=@书编号

execB_B_I_delete'000004'

select*fromB_B_I

 

/*..........将新信息系插入还书信息表.................*/

createprocedureA_B_I_insert(

@书编号char(10),

@还书日期datetime,

@借者姓名char(10))

as

insertintoA_B_Ivalues('@书编号','@还书日期','@借者姓名')

execA_B_I_insert'000005','2012-1-6','杨鸿文'

select*fromA_B_I

/*..........将新信息系插入借者信息表.................*/

createprocedureB_B_P_insert(

@借者姓名char(10),

@系别char(30),

@性别char(4))

as

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)

updateB_I

set书编号=@new_书编号

where书编号=@old_书编号

updateB_I

set书编号='000000'

where书编号='000001'

select*fromB_I

select*fromB_B_I

select*fromA_B_I

/*........建立触发器,对借者信息表进行修改...........*/

createtriggerB_B_I_trigger_update

onB_B_I

forupdate

asdeclare@old_借书数量char(10)

declare@new_借书数量char(10)

set@old_借书数量=(select借书数量fromdeleted)

set@new_借书数量=(select借书数量frominserted)

updateB_B_I

set借书数量=@new_借书数量

where借书数量=@old_借书数量

 

/*........建立触发器,对图书信息表进行删除以及插入...........*/

createtriggerB_I_too

onB_B_I

forinsert,delete

as

begin

updateB_I

set库存量=库存量+1where书编号in(select书编号fromdeleted)

updateB_I

set库存量=库存量-1where书编号in(select书编号frominserted)

End

5、插入具体数据

insertintoB_Ivalues('数据库原理','000001','28','赵枫','人民邮电出版社','20','1')

insertintoB_Ivalues('C++编程原理','000002','31','钱德','新思维出版社','90','8')

insertintoB_Ivalues('计算机程序解读','000003','32','孙俪','好书出版社','32','1')

insertintoB_Ivalues('几何学','000004','57','李楠','数学家协会出版社','87','73')

insertintoB_Ivalues('历史断代','000005','32','曾祥威','清华大学出版社','23','789')

insertintoB_Ivalues('编译原理与实现','000006','50','Kenneth','中信出版社','45','9')

insertintoB_Ivalues('黑客攻略必杀技','000007','34','某某人','人民交通出版社','23','')

insertintoB_Ivalues('百年孤独','000008','49.8','马尔克斯','北京燕山出版社','12','1')

insertintoB_B_Ivalues('000008','夏号','2011-8-900:

00:

00','2011-12-1000:

00:

00','5')

insertintoB_B_Ivalues('000005','曾祥威','2011-8-900:

50:

00','2011-12-1000:

00:

00','2')

insertintoB_B_Ivalues('000006','曾祥威','2011-8-900:

40:

00','2011-12-1000:

00:

00','1')

insertintoB_B_Ivalues('000007','曾祥威','2011-8-900:

00:

00','2011-12-1000:

00:

00','1')

insertintoB_B_Ivalues('000005','张小龙','2011-8-900:

40:

00','2011-12-1000:

00:

00','1')

insertintoB_B_Ivalues('000006','李安安','2011-8-910:

00:

00','2011-12-1000:

00:

00','2')

insertintoB_B_Ivalues('000006','张小龙','2011-8-920:

00:

00','2011-12-1000:

00:

00','2')

insertintoB_B_Ivalues('000008','夏号','2011-8-901:

00:

00','2011-12-1000:

00:

00','5')

insertintoB_B_Ivalues('000008','夏号','2011-8-900:

00:

00','2011-12-1000:

00:

00','2')

insertintoB_B_Ivalues('000008','夏号','2011-8-900:

00:

00','2011-12-1000:

00:

00','5')

insertintoB_B_Ivalues('000008','夏号','2011-8-900:

00:

00','2011-12-1000:

00:

00','3')

insertintoB_B_Ivalues('000008','夏号','2011-8-900:

00:

00','2011-12-1000:

00:

00','6')

insertintoA_B_Ivalues('000005','2011-11-2400:

00:

00','曾祥威')

insertintoA_B_Ivalues('000006','2011-11-2401:

02:

03','曾祥威')

insertintoA_B_Ivalues('000007','2011-11-2401:

02:

03','曾祥威')

insertintoA_B_Ivalues('000005','2011-11-2401:

02:

03','张小龙')

insertintoA_B_Ivalues('000006','2011-11-2401:

02:

03','李安安')

insertintoA_B_Ivalues('000006','2011-11-2401:

02:

03','张小龙')

insertintoB_B_Pvalues('夏号','软件工程','')

insertintoB_B_Pvalues('曾丹','外国语学院','')

insertintoB_B_Pvalues('叶忠雪','外国语学院','')

insertintoB_B_Pvalues('刘小强','机电学院','男')

insertintoB_B_Pvalues('李安安','经管学院','男')

insertintoB_B_Pvalues('陈莎莎','经管学院','')

insertintoB_B_Pvalues('杨鸿文','经管学院','男')

insertintoB_B_Pvalues('黄隽','水利水电学院','男')

insertintoB_B_Pvalues('周宇珑','经管学院','')

insertintoB_B_Pvalues('张小龙','经管学院','男')

insertintoB_B_Pvalues('曾祥威','软件学院','男')

6、调试结果

<1>、建表:

<2>、存储过程与触发器:

7、结论

此系统主要完成对图书借阅信息的一系列设计,包括对借出、归还以及借阅人的管理设计。

我在采用数据库SQLserver2000来完成整个系统的设计。

在书籍的借出、归还两者之间建立了良好的链接关系,某一部分地修改均会引发系统对与其相关的部分进行连锁修改。

我采用的语言包括DDL、DML、squal查询语言。

当然的,在系统的设计过程中不可避免地遇到了各种各样的问题。

由于整个系统是由我单独设计的,鉴于自身水平限制,并没有完全发挥SQL的功能,代码还存在着一些不完美之处。

通过本次设计我真正掌握了不少以前印象不是很深刻的东西,发现并解决了大量的问题。

本次设计碰到许多的难点,但也有不少的收获。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2