Sqlserver数据库课程设计图书馆管理系统.docx

上传人:b****5 文档编号:28195999 上传时间:2023-07-09 格式:DOCX 页数:13 大小:353.45KB
下载 相关 举报
Sqlserver数据库课程设计图书馆管理系统.docx_第1页
第1页 / 共13页
Sqlserver数据库课程设计图书馆管理系统.docx_第2页
第2页 / 共13页
Sqlserver数据库课程设计图书馆管理系统.docx_第3页
第3页 / 共13页
Sqlserver数据库课程设计图书馆管理系统.docx_第4页
第4页 / 共13页
Sqlserver数据库课程设计图书馆管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Sqlserver数据库课程设计图书馆管理系统.docx

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

Sqlserver数据库课程设计图书馆管理系统.docx

Sqlserver数据库课程设计图书馆管理系统

 

数据库系统概论课程设计

图书馆数据库管理系统

 

序言

本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:

Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。

这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。

如读者借阅图书功能(ExecuteRBorrowBook'读者号','图书分类号'),读者归还图书功能(ExecuteRReturnBook'读者号','图书分类号'),读者续借图书功能(ExecuteRRenewBook'读者号','图书分类号'),读者查询图书借阅情况功能(ExecuteRQueryBook'读者号'),读者检索的图书信息功能(ExecuteRIndexBook'关键字')等。

具体的功能表现皆在“第二章:

图书馆管理系统功能”中有详细的图例说明。

本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明:

1、tri_Book功能表现:

只有在图书馆内相关书籍尚有库存的情况下,读者才可以进行借阅操作

2、tri_SborrowNum功能表现:

控制学生的图书借阅量在5本以内(包括5本)

3、tri_SrenewBook功能表现:

控制学生续借图书次数在3次以内(包括3次)

4、tri_SreturnBook功能表现:

将学生的还书信息插入RDeleted表

5、tri_TborrowNum功能表现:

控制教师的图书借阅量在10本以内(包括10本)

6、tri_TrenewBook功能表现:

控制学生续借图书次数在4次以内(包括4次)

7、tri_TreturnBook功能表现:

将教师的还书信息插入RDeleted表

本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书馆数据库管理系统的实用功能。

初次设计数据库,其中肯定会有不足之处,还望读者谅解!

本课程设计附有“图书馆数据库管理系统的所有源代码”,您可以根据需要在“第四章节”至“第七章节”中进行查看,或查看与本课程设计处于同一目录下的*.sql源代码文件!

一、图书馆管理系统E-R图

教师借阅图书期限较长,并且允许借阅的书本量较大。

因此,将教师借阅关系与学生借阅关系分开较为适宜。

 

二、图书馆管理系统功能实现示意图

由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:

 

 

 

 

 

三、图书馆管理系统功能图例

3.1读者借阅图书

ExecuteRBorrowBook'读者号','图书分类号'

--------------读者借阅图书实例

useLibrarySystem

go

execRBorrowBookT006324,'D630.3L836'--其中T006324以T为标识,代表教师编号

execRBorrowBookS0*******1,'D630.3L836'---其中S0*******1以S为标识,代表学生学号

go

-----结果如下:

3.2读者归还图书

ExecuteRReturnBook'读者号','图书分类号'

----------------读者归还图书实例

useLibrarySystem

go

execRReturnBookT006324,'D630.3L836'

execRReturnBookS0*******1,'D630.3L836'

go

-----结果如下:

3.3读者续借图书

ExecuteRRenewBook'读者号','图书分类号'

--------------读者续借图书实例

useLibrarySystem

go

-------读者借阅图书

execRBorrowBookT006324,'D630.3L836'

execRBorrowBookS0*******1,'D630.3L836'

go

waitfordelay'0:

0:

5'

--------读者续借图书

execRRenewBookT006324,'D630.3L836'

execRRenewBookS0*******1,'D630.3L836'

go

-----结果如下:

3.4读者查询借阅图书情况

ExecuteRQueryBook'读者号'

------------读者查询图书借阅情况实例

useLibrarySystem

go

execRQueryBookT006432

execRQueryBookS0*******1

go

-----结果如下:

 

3.5读者检索图书信息

ExecuteRIndexBook'关键词'

------------读者检索图书信息实例

useLibrarySystem

go

execRIndexBook数据库

go

-------结果如下:

四、图书馆管理系统附加功能

4.1往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值

---------------往学生表S中插入一列"系部",其值等于学号中代表系部的位的值

useLibrarySystem

go

altertableStudent

addSdeptNochar

(2)

go

declare@snochar(10),@totalint,@iint

select@total=count(*),@i=1

fromStudent

while(@i<=@total)

begin

------------查询数据表第@i行数据的SQL语句

selecttop1@sno=SnofromStudentwhereSnonotin(selecttop(@i-1)SnofromStudent)

updateStudent

setSDeptNo=substring(@sno,4,2)

whereSno=@sno

set@i=@i+1

end

select*fromStudent

go

-----------结果如下:

-------------往学生表S中插入一列"专业号",其值等于学号中代表专业的位的值

useLibrarySystem

go

altertableStudent

addSMajorNovarchar(50)

go

declare@snochar(10),@totalint,@iint

select@total=count(*),@i=1

fromStudent

while(@i<=@total)

begin

------------查询数据表第@i行数据的SQL语句

selecttop1@sno=SnofromStudentwhereSnonotin(selecttop(@i-1)SnofromStudent)

updateStudent

setSMajorNo=substring(@sno,4,4)

whereSno=@sno

set@i=@i+1

end

go

-----------结果如下:

4.2查询每个学生对书本的借阅数量

--查询每个学生对书本的借阅数量

useLibrarySystem

go

selectStudent.Sno学号,Sname姓名,Book.ClassifyNo图书分类号,Bname书名

fromStudentBook,Student,Book

whereStudent.Sno=StudentBook.SnoandStudentBook.ClassifyNo=Book.ClassifyNo

orderbyStudent.Sno

computecount(Student.Sno)byStudent.Sno

go

-----------结果如下:

4.3查询各个专业的学生借阅书本的数量

useLibrarySystem

go

declare@tempDepttable(

专业编号char(4)primarykey,

专业varchar(30)notnull,

学生借阅书本数量intdefault0)

Insertinto@tempDept(专业编号,专业)selectMno,MnamefromMajor

declare@iint,@totalint,@nochar(10)

select@total=count(*),@i=1fromStudentBook

while(@i<@total)begin

selecttop1@no=SnofromStudentBookwhereSnonotin(selecttop(@i-1)SnofromStudentBook)

update@tempDept

set学生借阅书本数量=学生借阅书本数量+1

where专业编号=substring(@no,4,4)

set@i=@i+1

end

select*from@tempDept

select@totalas学生借阅书本总量

go-----------结果如下:

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

当前位置:首页 > 小学教育 > 数学

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

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