当前位置:文档之家› Sql_server数据库课程设计_图书馆管理系统

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

序言 0一、图书馆管理系统E-R 图 (1)二、图书馆管理系统功能实现示意图 (2)三、图书馆管理系统功能图例 (3)3.1 读者借阅图书 (3)3.2 读者归还图书 (3)3.3 读者续借图书 (4)3.4 读者查询借阅图书情况 (4)3.5 读者检索图书信息 (5)四、图书馆管理系统附加功能 (6)4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值 (6)4.2 查询每个学生对书本的借阅数量 (8)4.3 查询各个专业的学生借阅书本的数量 (10)序言本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。

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

如读者借阅图书功能(Execute RBorrowBook '读者号','图书分类号'),读者归还图书功能(Execute RReturnBook '读者号','图书分类号'),读者续借图书功能(Execute RRenewBook '读者号','图书分类号'),读者查询图书借阅情况功能(Execute RQueryBook '读者号'),读者检索的图书信息功能(Execute RIndexBook '关键字')等。

具体的功能表现皆在“第二章:图书馆管理系统功能”中有详细的图例说明。

本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明: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 图教师借阅图书期限较长,并且允许借阅的书本量较大。

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

二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:tri_Book图书库tri_SreturnBook三、图书馆管理系统功能图例3.1 读者借阅图书Execute RBorrowBook '读者号','图书分类号'--------------读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,'D630.3 L836'--其中T006324以T为标识,代表教师编号exec RBorrowBook S070407101,'D630.3 L836'---其中S070407101以S为标识,代表学生学号go -----结果如下:3.2 读者归还图书Execute RReturnBook '读者号','图书分类号'----------------读者归还图书实例use LibrarySystemgoexec RReturnBook T006324,'D630.3 L836'exec RReturnBook S070407101,'D630.3 L836'go -----结果如下:3.3 读者续借图书Execute RRenewBook '读者号','图书分类号' --------------读者续借图书实例use LibrarySystemgo-------读者借阅图书exec RBorrowBook T006324,'D630.3 L836' exec RBorrowBook S070407101,'D630.3 L836' gowaitfor delay '0:0:5'--------读者续借图书exec RRenewBook T006324,'D630.3 L836' exec RRenewBook S070407101,'D630.3 L836' go-----结果如下:3.4 读者查询借阅图书情况Execute RQueryBook '读者号'------------读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook S070407101go-----结果如下:3.5 读者检索图书信息Execute RIndexBook '关键词' ------------读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-------结果如下:四、图书馆管理系统附加功能4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值---------------往学生表S中插入一列"系部",其值等于学号中代表系部的位的值use LibrarySystemgoalter table Studentadd SdeptNo char(2)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SDeptNo=substring(@sno,4,2)where Sno=@snoset @i=@i+1endselect*from Studentgo-----------结果如下:-------------往学生表S中插入一列"专业号",其值等于学号中代表专业的位的值use LibrarySystemgoalter table Studentadd SMajorNo varchar(50)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SMajorNo=substring(@sno,4,4)where Sno=@snoset @i=@i+1endgo-----------结果如下:4.2 查询每个学生对书本的借阅数量--查询每个学生对书本的借阅数量use LibrarySystemgoselect Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名from StudentBook,Student,Bookwhere Student.Sno=StudentBook.Sno andStudentBook.ClassifyNo=Book.ClassifyNoorder by Student.Snocompute count(Student.Sno)by Student.Snogo-----------结果如下:4.3 查询各个专业的学生借阅书本的数量use LibrarySystemgodeclare @tempDept table(专业编号char(4)primary key,专业varchar(30)not null,学生借阅书本数量int default 0)Insert into @tempDept(专业编号,专业) select Mno,Mname from Majordeclare @i int,@total int,@no char(10)select @total=count(*),@i=1 from StudentBookwhile(@i<@total) beginselect top1 @no=Sno from StudentBook where Sno not in(select top(@i-1) Sno from StudentBook)update @tempDeptset学生借阅书本数量=学生借阅书本数量+1where专业编号=substring(@no,4,4)set @i=@i+1endselect*from @tempDeptselect @total as学生借阅书本总量go -----------结果如下:。

相关主题