SQL图书管理系统设计课题报告Word格式.docx

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

SQL图书管理系统设计课题报告Word格式.docx

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

SQL图书管理系统设计课题报告Word格式.docx

归还日期为空值表示该图书未归还。

(2)数据修改和删除功能

1)修改和删除图书信息。

图书被借出时,系统需要更新图书信息的可借数量,当可借数量为0时,表示该图书都已被借出。

当输入的图书信息有错误或需要进行必要更新时,可以修改图书信息;

当一种图书所有馆藏图书都已损毁或遗失并且不能重新买到时,该图书信息需要删除。

2)修改和删除读者信息。

当读者的自身信息发生变动,如部门间调动或调离本单位,或违反图书馆规定需要限制其可借阅图书数量时,需要修改读者信息。

3)还书处理。

读者归还图书时,更新图书借阅信息表中的归还日期,读者信息表中的已借数量及ISBN类别信息表中该图书的可借数量。

(3)查询和统计功能

1)图书查询功能。

根据图书的各种已知条件来查询图书的详细信息,如书名、作者、出版社、ISBN书号等支持模糊查询。

2)读者信息查询。

输入读者的借书证号、姓名、工作部门等信息,查询读者的基本信息。

对查询到的每一个读者,能够显示其未归还的图书编号和书名。

3)查询所有到期未归还的图书信息。

要求结果显示图书编号、书名、读者姓名、借书证号码、借出日期等信息。

4)统计指定读者一段时间内的某类图书或所有类别图书借阅次数及借阅总次数。

3.数据表的创建

根据功能要求的说明创建下列数据表:

(1)图书ISBN类别信息表

图书ISBN类别信息表包括以下字段:

ISBN书号、图书类别、书名、作者、出版社、出版日期、价格、馆藏数量、可借数量、图书简介。

(2)图书信息表

图书信息表包括以下字段:

(3)读者信息表

读者信息表包括以下字段:

借书证号、姓名、性别、出生年月、身份证号、职称、可借数量、已借数量、工作部门、家庭地址、联系电话。

(4)借阅信息表(图书-读者关系)

借阅信息表包括以下字段:

借书证号、借阅书号、借出日期、借阅期限、归还日期。

(5)数据表结构如下表:

读者信息表附:

红色表主键,蓝色表外键

字段名称

数据类型

字段长度

是否为空

借书证号

varchar

10

姓名

8

性别

char

2

出生年月

datetime

身份证号

18

职称

可借数量

int

已借数量

工作部门

100

家庭地址

联系电话

15

借阅表

序号

借阅书号

20

借阅日期

借阅期限

归还日期

ISBN信息表

ISBN书号

图书书号

是否可借

图书表

ISNBN书号

图书类别

书名

60

作者

出版社

出版日期

价格

money

馆藏数量

图书简介

4.数据库完整性设计

设计者应认真分析和思考各个表之间的关系,合理设计和实施数据完整性原则。

1)给每个表实施主键及外键约束。

2)设定缺省约束。

如性别。

useJDGL

go

altertabledbo.读者

addconstraintdz_xbie

default'

男'

for性别

go

3)设置非空约束如图书信息表中的书名。

useJDGL

altertabledbo.图书表

addconstrainttu_sm--约束名

defaultnotnullfor书名

4)实施CHECK约束。

如ISBN类别表中的可借数量小于馆藏数量。

altertabledbo.ISBN信息表

addconstraintdu_kj_kc

check(可借数量<

馆藏数量)

print'

可借数量要小于馆藏数量'

altertabledbo.借阅表--为借阅表里字段归还时间要大于借阅时间建立约束

addconstraintjy_jysj_ghsj

check(归还时间>

借阅时间)

altertabledbo.借阅表--为借阅期限建立约束

addconstraintjy_jyqx

check(借阅期限<

=30)

5)实施规则。

如身份证号码必须为18位。

addconstraintdz_sfz

check(len(身份证号)=18)

5.SQLServer数据库对象设计

1)设计一个存储过程,以图书ISBN编号为输入参数,返回借阅该图书但未归还的读者姓名和借书证号。

Isnull=null=’’

createprocds_ISBN

@ISBNchar(20)

as

select姓名,dbo.读者.借书证号

fromdbo.读者joindbo.借阅表ondbo.借阅表.借书证号=dbo.读者.借书证号

joindbo.图书信息表ondbo.图书信息表.图书书号=dbo.借阅表.借阅书号

joindbo.ISBN信息表ondbo.图书信息表.ISBN书号=dbo.ISBN信息表.ISBN书号

wheredbo.图书信息表.ISBN书号=@ISBNand(归还时间isnull)

execds_ISBN'

1001'

–查询ISBN编号为1001图书未还图书的读者姓名和借书证号

dropprocds_ISBN–删除此存储过程

以书名为输入参数建立图书信息的模糊查询的存储过程

createprocdu_sm

@smvarchar(40)

selectdbo.ISBN信息表.*,dbo.图书信息表.是否可借,图书书号

fromdbo.ISBN信息表joindbo.图书信息表ondbo.图书信息表.ISBN书号=dbo.ISBN信息表.ISBN书号

where书名like'

%'

+@sm+'

execdu_sm政--查询政治这本书的模糊查询

2)读者资料查询:

设计一个有多个输入参数的存储过程,返回读者的详细信息。

设计另一存储过程并以读者借书证号为输入参数,返回该读者未归还的图书名称和图书编号。

以读者姓名和借书证为例作为输入参数返回读者基本信息的存储过程

createprocdu_jszh_xm--此存储过程名称

@jszhchar(10),--借书证号

@xmchar(8)--姓名

select*

fromdbo.读者

where借书证号=@jszhand姓名=@xm

execdu_jszh_xm'

001'

'

张三'

--查询此存储过程

以借书证号作为输入参数返回该读者未归还的图书名称和书号

createprocdu_jszh

@jszhchar(10)--借书证号

selectdbo.读者.借书证号,dbo.图书信息表.图书书号,dbo.ISBN信息表.书名

fromdbo.读者joindbo.借阅表ondbo.读者.借书证号=dbo.借阅表.借书证号

joindbo.图书信息表ondbo.借阅表.借阅书号=dbo.图书信息表.图书书号

wheredbo.借阅表.归还时间isnullanddbo.读者.借书证号=@jszh;

dropprocdu_jszh--删除此存储过程

execdu_jszh'

--查询借书证号为001的读者未归还的图书信息

3)到期图书查询:

设计一个视图,返回所有逾期未归还的图书的编号、书名、读者姓名等信息。

Datepart(day,借阅日期,getdate())

createviewjybiao

selectdbo.读者.姓名,dbo.图书信息表.图书书号,dbo.ISBN信息表.书名

where(getdate()>

(借阅时间+借阅期限))and(归还时间isnull)

--建立所有逾期图书的视图

fromjybiao--查询视图表

4)统计图书借阅次数:

设计一个以两个日期作为输入参数的存储过程,计算这一段时间内各类别图书被借阅的次数,返回图书类别、借阅次数的信息。

createprocISBN_jysj--

@cssjdatetime,--初始时间

@jcsjdatetime--结束时间

selectdbo.ISBN信息表.图书类别,count(dbo.ISBN信息表.ISBN书号)as次数

where借阅时间>

=@cssjand@jcsj>

=借阅时间

groupbydbo.ISBN信息表.图书类别,dbo.ISBN信息表.ISBN书号

设以两个输入的时间参数

execISBN_jysj'

2009.4.3'

2011.4.3'

--以这两个时间参数为例查询该存储过程

5)加快数据检索速度,用图书编号为图书信息表建立索引。

createindexdsxxb_tssh_indexondbo.图书信息表(图书书号)

以图书编号为图书创建索引名为dsxxb_tssh_index

6)为读者信息表创建一个删除触发器,当一个读者调出本单位时,将此读者的资料从读者信息表中删除。

注意实施业务规则:

有借阅书的读者不得从读者信息表中删除。

createtriggerdelete_duzh--读者

ondbo.读者

fordelete

if(select已借数量fromdbo.借阅表innerjoindeleted

ondbo.借阅表.借书证号=deleted.借书证号)>

begin

print('

还有书未还不可删除该条数据'

rollbacktransaction

end

else

记录已删除'

droptriggerdelete_duzh–删除读者触发器

7)借阅处理:

为借阅信息表设计INSERT触发器,在读者借阅时更改ISBN类别信息表,且可借数量减1,图书信息表是否可借列的值变为“不可借”,读者信息表中该类读者已借阅数加1。

createtriggerinsert_crondbo.借阅表

forinsert

declare@jyshchar(20)--借阅书号

declare@jszhchar(10)--借书证号

declare@ISBNchar(20)--ISBN书号

select@jysh=inserted.借阅书号,@jszh=inserted.借书证号,@ISBN=(selectISBN书号fromdbo.图书信息表wheredbo.图书信息表.图书书号=inserted.借阅书号)

frominserted,dbo.借阅表

if@jyshnotin(select图书书号fromdbo.图书信息表)

print('

该图书书号不存在'

rollbacktransaction

elseif@jszhnotin(select借书证号fromdbo.读者)

该借书证号不存在'

elseif@ISBNnotin(selectISBN书号fromdbo.ISBN信息表)

updatedbo.读者

set已借数量=已借数量+1,可借数量=可借数量-1

wheredbo.读者.借书证号=@jszh

----

updatedbo.图书信息表

setdbo.图书信息表.是否可借='

否'

wheredbo.图书信息表.图书书号=@jysh

------

updatedbo.ISBN信息表--更改ISBN信息表中的信息

set可借数量=可借数量-1

whereISBN书号=@ISBN

8)还书处理:

为借阅信息表设计UPDATE触发器,在该表的归还日期列被更改后,将图书信息表的是否可借列的值变为“可借”,读者信息表中已借数量减1及ISBN类别信息表中可借数量加1。

建立一个还书update触发器

createtriggerupdate_jybondbo.借阅表

afterupdate

ifupdate(归还时间)

set已借数量=已借数量-1,可借数量=可借数量+1

fromdbo.读者,dbo.借阅表

wheredbo.读者.借书证号=dbo.借阅表.借书证号

是'

fromdbo.借阅表,dbo.图书信息表

wheredbo.借阅表.借阅书号=dbo.图书信息表.图书书号

updatedbo.ISBN信息表

set可借数量=可借数量+1

fromdbo.ISBN信息表,dbo.借阅表,dbo.图书信息表

wheredbo.图书信息表.图书书号=dbo.借阅表.借阅书号anddbo.图书信息表.ISBN书号=dbo.ISBN信息表.ISBN书号

--droptriggerupdate_jyb--删除触发器

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

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

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

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