《SQLServer图书馆管理系统》实例讲解_第1页
《SQLServer图书馆管理系统》实例讲解_第2页
《SQLServer图书馆管理系统》实例讲解_第3页
《SQLServer图书馆管理系统》实例讲解_第4页
《SQLServer图书馆管理系统》实例讲解_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库系统概论课程设计 图书馆数据库管理系统 小组成员: * * * 目录 序言1 一、图书馆管理系统 E-R 图2 二、图书馆管理系统功能实现示意图3 三、图书馆管理系统功能图例4 3.1 读者借阅图书4 3.2 读者归还图书4 3.3 读者续借图书5 3.4 读者查询借阅图书情况5 3.5 读者检索图书信息6 四、图书馆管理系统附加功能7 4.1 往学生表中插入列"系部",其值等于学号中代表系部的位的值,再插入列"专业号",其值等于学号中代表专业的位的值7 4.2 查询每个学生对书本的借阅数量9 4.3 查询各个专业的学生借阅书本的数量11 五、图书

2、馆管理系统数据库、数据表源代码12 5.1 图书馆管理系统"数据库"源代码12 5.2 图书馆管理系统"数据表"源代码12 六、图书馆管理系统存储过程源代码15 6.1 读者借阅图书存储过程15 6.2 读者还书存储过程17 6.3读者续借图书存储过程18 6.4 读者查询借阅图书情况存储过程19 6.5 读者检索的图书信息存储过程22 七、图书馆管理系统触发器源代码23 7.1 借书要求(书本没有库存,则无法进行借书操作)23 7.2 借书要求(读者最多借阅量)24 7.3 续借次数要求25 7.4 读者还书信息插入RDeleted表26 * 11 *

3、 序言 本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。如读者借阅图书功能(Execute RBorrowBook '读者号','图书分类号'),读者归还图书功能(Execute RReturnBook &#

4、39;读者号','图书分类号'),读者续借图书功能(Execute RRenewBook '读者号','图书分类号'),读者查询图书借阅情况功能(Execute RQueryBook '读者号'),读者检索的图书信息功能(Execute RIndexBook '关键字')等。具体的功能表现皆在“第二章:图书馆管理系统功能”中有详细的图例说明。本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明:1、 tri_Book 功能表现:只有在图书馆内相关书籍尚有库存的情况下,读者才可

5、以进行借阅操作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表本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书

6、馆数据库管理系统的实用功能。初次设计数据库,其中肯定会有不足之处,还望读者谅解!本课程设计附有“图书馆数据库管理系统的所有源代码”,您可以根据需要在“第四章节”至“第七章节”中进行查看,或查看与本课程设计处于同一目录下的 *.sql 源代码文件! 一、图书馆管理系统 E-R 图教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。分类号书名作者出版社类别出版日期ISBN价格总量借出量年龄电话性别姓名学号系部编号系部名称专业编号专业名称归属归属系部专业归属学生学号与专业编号的联系学生学号与系部编号的联系系部编号与专业编号的联系借阅日期续借次数借阅日期续借

7、次数学生图书学生借阅教师借阅教师工号姓名性别年龄职称电话二、图书馆管理系统功能实现示意图相关信息写入借阅图书RBorrowBook图书信息表Book学生借阅图书信息表 StudentBooktri_Book图书库存量减1tri_SborrowNum借阅量未超5本学生借阅图书信息表 StudentBook由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明: 相关信息写入归还图书RReturnBook读者还书信息表RDeleted图书信息表Book学生借阅图书信息表 StudentBooktri_SreturnBook图书库存量加1tri_Sb

8、orrowNum删除借阅记录续借图书RRenewBooktri_SrenewBook续借次数不超三次,则将续借次数加1 相关信息写入学生借阅图书信息表 StudentBook学生借阅图书信息表 StudentBook专业信息表Major学生信息表Student系部信息表Dept图书信息表Book查询图书借阅情况 RQueryBook获取图书相关信息计算学生专业信息计算学生系部信息获取学生相关信息综合信息输出图书信息表Book由存储过程RindexBook 查找匹配图书信息 综合信息输出给读者读者检索图书RIndexBook三、图书馆管理系统功能图例3.1 读者借阅图书Execute RBorr

9、owBook '读者号','图书分类号'-读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,'D630.3 L836'-其中T006324以T为标识,代表教师编号exec RBorrowBook S070407101,'D630.3 L836'-其中S070407101以S为标识,代表学生学号go -结果如下:3.2 读者归还图书Execute RReturnBook '读者号','图书分类号'-读者归还图书实例use LibrarySystem

10、goexec 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'gowait

11、for 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

12、'关键词'-读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-结果如下:四、图书馆管理系统附加功能4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值-往学生表S中插入一列"系部",其值等于学号中代表系部的位的值use LibrarySystemgoalter table Studentadd SdeptNo char(2)godeclare sno char(10),total int,i ints

13、elect 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中插入一列"专业号",其值等于学号中代表专业

14、的位的值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=subst

15、ring(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 and StudentBook.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 Student

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论