数据库课程设计之图书管理系统Word文档下载推荐.docx

上传人:b****7 文档编号:21791329 上传时间:2023-02-01 格式:DOCX 页数:31 大小:191.67KB
下载 相关 举报
数据库课程设计之图书管理系统Word文档下载推荐.docx_第1页
第1页 / 共31页
数据库课程设计之图书管理系统Word文档下载推荐.docx_第2页
第2页 / 共31页
数据库课程设计之图书管理系统Word文档下载推荐.docx_第3页
第3页 / 共31页
数据库课程设计之图书管理系统Word文档下载推荐.docx_第4页
第4页 / 共31页
数据库课程设计之图书管理系统Word文档下载推荐.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

数据库课程设计之图书管理系统Word文档下载推荐.docx

《数据库课程设计之图书管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之图书管理系统Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。

数据库课程设计之图书管理系统Word文档下载推荐.docx

如该读者是否有过期未还的图书,是否借阅图书已经超过五本,有上述情况之一则借阅不成功。

否则借阅成功。

读者只可在该本书尚未超期的情况下才可以进行续借,否则借阅不成功。

(4)还书操作

读者把借阅证及要还的图书交给图书管理员,由他进行审核,如该图书有逾期则通知该读者交罚款。

否则,图书交由图书管理员放回书库,并修改图书,读者借书信息表。

第二章系统功能设计

通过通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下图所示的功能模块图。

图2-1系统功能模块图

第三章数据库设计

数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统操作效率已经能否保证数据的一致性、完成性和安全性。

3.1数据库设计

根据图书管理系统的功能要求,通过分析系统要设计的相关实体一集要收集、存储和操纵数据信息,得到如下图1234所示的系统E-R图。

根据系统E-R图得到以下关系模式。

·

读者基本信息(读者号,姓名,性别,借书数量)

图书基本信息(图书号,书名,类型,作者,译者,出版社,内容,馆藏数,已借数)

还书基本信息(读者号,书号,还书数量,还书日期)

借书基本信息(读者号,书号,书名,借书数量,借书时间,应还时间)

图13-1读者E-R图

图23-1图书E-R图

图33-1还书E-R图

图43-1借书E-R图

3.2数据表设计

根据关系模式,确定要建立的数据库和表。

给表中添加说明,并建立主键和外键如下图5678所示:

“读者”表

图5“读者”表

“图书”表:

图6“图书”表

“还书”表

图7“还书”表

“借书”表:

图8“借书”表

然后给图书表中添加数据:

/*向图书表中插入数据*/

USEbookmg

GO

INSERT图书

VALUES('

540541903'

'

子不语壹'

漫画'

夏达'

NULL'

新世纪出版社'

18.00'

6'

’0’)

540541904'

子不语贰'

540541905'

子不语叁'

540541906'

子不语肆'

540541907'

子不语伍'

540541908'

子不语陆'

3.3数据库编程

以下是各个表的创建代码:

/************创建各个表*************************/

CREATETABLE读者

readeridvarchar(9)NOTNULLPRIMARYKEY,

readernamevarchar(20)NOTNULL,

readersexvarchar(10)NOTNULL,

booknumSMALLINTCHECK(borrownum>

=0ANDborrownum<

=5)

CREATETABLE图书

bookidvarchar(9)NOTNULLPRIMARYKEY,

booknamevarchar(40)NOTNULL,

booktypevarchar(20)NOTNULL,

bookauthervarchar(20)NOTNULL,

booktrslatorvarchar(20)NULL,

bookpressvarchar(20)NOTNULL,

bookcontentvarchar(50)NULL,

bookpricevarchar(10)NOTNULL,

noborrowSMALLINTCHECK(noborrow>

=0),

haveborrowSMALLINTCHECK(haveborrow>

=0)

CREATETABLE还书

readeridvarchar(9)NOTNULL,

bookidvarchar(9)NOTNULL,

booknumSMALLINTCHECK(booknum>

=0ANDbooknum<

=5),

inputdatedatetime,

FOREIGNKEY(readerid)REFERENCES读者(readerid),

FOREIGNKEY(bookid)REFERENCES图书(bookid)

CREATETABLE借书

booknamevarchar(40)NOTNULL,

outputdatedatetimeNULL,

shoulddatedatetimeNULL,

FOREIGNKEY(readerid)REFERENCES读者(readerid),

FOREIGNKEY(bookid)REFERENCES图书(bookid)

第四章功能模块的创建

4.1创建向读者表插入数据的存储过程

/*******创建存储过程向读者表中插入数据************/

GO

CREATEPROCEDUREreader_insert

@elem1varchar(9),

@elem2varchar(20),

@elem3varchar(10),

@elem4smallint

AS

BEGIN

insertinto读者(readerid,readername,readersex,borrownum)

values

@elem1,@elem2,@elem3,@elem4

END

/********读者表中插入实例**********/

EXECreader_insert'

111007131'

吴书敏'

男'

0'

图9读者表中插入实例

4.2创建向图书表中插入数据的存储过程

/***************通过存储过程向图书表中插入数据******************/

CREATEPROCEDUREbook_insert

@elem2varchar(40),

@elem3varchar(20),

@elem4varchar(20),

@elem5varchar(20),

@elem6varchar(20),

@elem7varchar(50),

@elem8varchar(10),

@elem9smallint,

@elem10smallint

insertinto图书(bookid,bookname,booktype,bookauther,booktrslator,bookpress,

bookcontent,bookprice,noborrow,haveborrow)

@elem1,@elem2,@elem3,@elem4,@elem5,@elem6,@elem7,@elem8,@elem9,@elem10

4.3创建实现还书的存储过程

/********************************创建还书存储*******************************/

CREATEPROCEDUREreturn_insert

@elem2varchar(9),

@elem3smallint

INSERTINTO还书(readerid,bookid,booknum)

@elem1,

@elem2,

@elem3

BEGIN

UPDATE还书

SETinputdate=GETDATE()

WHEREreaderid=@elem1;

UPDATE图书

SETnoborrow=noborrow+@elem3

WHEREbookid=@elem2;

SEThaveborrow=haveborrow-@elem3

UPDATE读者

SETborrownum=borrownum-@elem3

SELECT'

还书成功'

/***********还书实例*************/

EXECreturn_insert'

1

图10还书实例

4.4创建实现借书的存储过程

/**************************创建借书存储*****************/

CREATEPROCEDUREborrow_insert

insertinto借书

readerid,bookid,booknum

values

/*这里用了判定是否超期函数judgedate,将返回值赋予判断变量judgement*/

DECLARE@judgementint

SET@judgement=

(SELECTmax(overdays)

FROMjudgedate(@elem1))

/*判定该读者是否有图书超期*/

IF(@judgement<

借书成功'

UPDATE借书

SEToutputdate=GETDATE()

WHEREreaderid=@elem1ANDbookid=@elem2;

SETshoulddate=DATEADD(day,30,getdate())

/*声明一个变量bookname从图书表里读取图书名到借书表里*/

DECLARE@booknamevarchar(40)

SET@bookname=(SELECTbooknameFROM图书

WHEREbookid=@elem2

SETbookname=@bookname

SETnoborrow=noborrow-@elem3

SEThaveborrow=haveborrow+@elem3

SETborrownum=borrownum+@elem3

ELSE

SELECT'

借书失败,有超期未还图书'

/*借书实例*/

EXECborrow_insert'

2

图11借书实例

4.5建立是否超期表值函数

CREATEFUNCTIONjudgedate(@elem1asvarchar(9))

RETURNS@overdateTABLE

overdaysint

INSERT@overdate

SELECTday(GETDATE()-ISNULL(shoulddate,0))

FROM借书

WHEREreaderid=@elem1

RETURN

4.6查询模块

/*****************图书分类查询和分类统计**************/

CREATEPROCEDUREtype_select

@booktypevarchar(20)

SELECTbooktype

FROM图书

WHEREbooktype=@booktype;

DECLARE@booknumint

SET@booknum=(

selectsum(noborrow+haveborrow)

WHEREbooktype=@booktype

SELECT@booktypeAS'

类型'

@booknumAS'

本'

/****图书分类查询实例*********/

EXECtype_select'

图12图书分类查询实例

/*******************图书按书名查询和统计******************/

CREATEPROCEDUREbookname_select

@booknamevarchar(40)

SELECT*

WHEREbookname=@bookname;

WHEREbookname=@bookname

SELECT@booknameAS'

书名'

/****图书书名查询实例*********/

EXECbookname_select'

图13图书书名查询实例

/**********************按作者查询和统计**************************/

CREATEPROCEDUREbookauthor_select

@bookauthorvarchar(20)

WHEREbookauthor=@bookauthor;

WHEREbookauthor=@bookauthor

SELECT@bookauthorAS'

作者'

/***图书作者查询实例******/

EXECbookauthor_select'

图14图书作者查询实例

结束语

当初选课的时候选图书管理,目的就是更好的理解、学习和使用好SQL语言,所以我决定只做后台,这样能更好得理解和应用。

通过一个月的努力,我自主完成了课题要求的所有功能。

觉得收获很大。

很多知识,老师并没有讲过,甚至使用的教材里也没有提到。

但是在实践操作中,必须要用到的时候,自己就会去查去学,这就是所谓的实战吧。

通过,本次课程设计我收获很大,认识到当遇到困难的时候要多和人沟通,并且要冷静得去思考去分析问题出在哪了,怎样才能解决。

总之,我会吸取此次的经验并且在以后不满足所学的局限知识还要推陈创新,一步一步获得更大的收获。

参考文献

[1]数据库原理和技术(SQLServer2005)申事凯戴祖诚余玉梅主编

[2]王珊,萨师煊数据库系统概论[第四版]高等教育出版社

附录:

(附上关键的源程序,5-10页)

/*******通过存储过程向读者表中插入数据************/

/*通过存储过程向图书表中插入数据*/

CREATEPRO

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

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1