收藏 分销(赏)

SQLServer图书馆标准管理系统实例讲解.doc

上传人:天**** 文档编号:3033738 上传时间:2024-06-13 格式:DOC 页数:17 大小:1.02MB 下载积分:8 金币
下载 相关 举报
SQLServer图书馆标准管理系统实例讲解.doc_第1页
第1页 / 共17页
SQLServer图书馆标准管理系统实例讲解.doc_第2页
第2页 / 共17页


点击查看更多>>
资源描述
数据库系统概论课程设计 图书馆数据库管理系统 小组组员: *** *** *** 目录 序言 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 五、图书馆管理系统数据库、数据表源代码 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 序言 本图书馆管理系统谨依据实际需求所创建,创建有以下八个数据表: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 图 老师借阅图书期限较长,而且许可借阅书本量较大。所以,将老师借阅关系和学生借阅关系分开较为适宜。 分类号 书名 作者 出版社 类别 出版日期 ISBN 价格 总量 借出量 年纪 电话 性别 姓名 学号 系部编号 系部名称 专业编号 专业名称 归属 归属 系部 专业 归属 学生学号和专业编号联络 学生学号和系部编号联络 系部编号和专业编号联络 借阅日期 续借次数 借阅日期 续借次数 学生 图书 学生借阅 老师借阅 老师 工号 姓名 性别 年纪 职称 电话 二、图书馆管理系统功效实现示意图 相关信息写入 借阅图书 RBorrowBook 图书信息表 Book 学生借阅图书信息表 StudentBook tri_Book图书库存量减1 tri_SborrowNum借阅量未超5本 学生借阅图书信息表 StudentBook 因为老师和学生借阅图书、归还图书等等过程大致相同,在此,仅借学生相关表对象信息来对各存放过程作简明说明: 相关信息写入 归还图书 RReturnBook 读者还书信息表RDeleted 图书信息表 Book 学生借阅图书信息表 StudentBook tri_SreturnBook图书库存量加1 tri_SborrowNum删除借阅统计 续借图书 RRenewBook tri_SrenewBook续借次数不超三次,则将续借次数加1 相关信息写入 学生借阅图书信息表 StudentBook 学生借阅图书信息表 StudentBook 专业信息表 Major 学生信息表 Student 系部信息表 Dept 图书信息表 Book 查询图书借阅情况 RQueryBook 获取图书相关信息 计算学生专业信息 计算学生系部信息 获取学生相关信息 综合信息输出 图书信息表 Book 由存放过程RindexBook 查找匹配图书信息 综合信息输出给读者 读者检索图书 RIndexBook 三、图书馆管理系统功效图例 3.1 读者借阅图书 Execute RBorrowBook '读者号','图书分类号' --------------读者借阅图书实例 use LibrarySystem go exec RBorrowBook T006324,'D630.3 L836'--其中T006324以T为标识,代表老师编号 exec RBorrowBook S,'D630.3 L836'---其中S以S为标识,代表学生学号 go -----结果以下: 3.2 读者归还图书 Execute RReturnBook '读者号','图书分类号' ----------------读者归还图书实例 use LibrarySystem go exec RReturnBook T006324,'D630.3 L836' exec RReturnBook S,'D630.3 L836' go -----结果以下: 3.3 读者续借图书 Execute RRenewBook '读者号','图书分类号' --------------读者续借图书实例 use LibrarySystem go -------读者借阅图书 exec RBorrowBook T006324,'D630.3 L836' exec RBorrowBook S,'D630.3 L836' go waitfor delay '0:0:5' --------读者续借图书 exec RRenewBook T006324,'D630.3 L836' exec RRenewBook S,'D630.3 L836' go -----结果以下: 3.4 读者查询借阅图书情况 Execute RQueryBook '读者号' ------------读者查询图书借阅情况实例 use LibrarySystem go exec RQueryBook T006432 exec RQueryBook S go -----结果以下: 3.5 读者检索图书信息 Execute RIndexBook '关键词' ------------读者检索图书信息实例 use LibrarySystem go exec RIndexBook 数据库 go -------结果以下: 四、图书馆管理系统附加功效 4.1 往学生表中插入一列"系部",其值等于学号中代表系部位值,再插入一列"专业号",其值等于学号中代表专业位值 ---------------往学生表S中插入一列"系部",其值等于学号中代表系部位值 use LibrarySystem go alter table Student add SdeptNo char(2) go declare @sno char(10),@total int,@i int select @total=count(*),@i=1 from Student while(@i<=@total) begin ------------查询数据表第@i 行数据SQL语句 select top 1 @sno=Sno from Student where Sno not in(select top (@i-1) Sno from Student) update Student set SDeptNo=substring(@sno,4,2) where Sno=@sno set @i=@i+1 end select * from Student go -----------结果以下: -------------往学生表S中插入一列"专业号",其值等于学号中代表专业位值 use LibrarySystem go alter table Student add SMajorNo varchar(50) go declare @sno char(10),@total int,@i int select @total=count(*),@i=1 from Student while(@i<=@total) begin ------------查询数据表第@i 行数据SQL语句 select top 1 @sno=Sno from Student where Sno not in(select top (@i-1) Sno from Student) update Student set SMajorNo=substring(@sno,4,4) where Sno=@sno set @i=@i+1 end go -----------结果以下: 4.2 查询每个学生对书本借阅数量 --查询每个学生对书本借阅数量 use LibrarySystem go select Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名 from StudentBook,Student,Book where Student.Sno=StudentBook.Sno and StudentBook.ClassifyNo=Book.ClassifyNo order by Student.Sno compute count(Student.Sno) by Student.Sno go -----------结果以下: 4.3 查询各个专业学生借阅书本数量 use LibrarySystem go declare @tempDept table( 专业编号char(4)primary key, 专业varchar(30)not null, 学生借阅书本数量int default 0) Insert into @tempDept(专业编号,专业) select Mno,Mname from Major declare @i int,@total int,@no char(10) select @total=count(*),@i=1 from StudentBook while(@i<@total) begin select top 1 @no=Sno from StudentBook where Sno not in(select top (@i-1) Sno from StudentBook) update @tempDept set 学生借阅书本数量=学生借阅书本数量+1 where 专业编号=substring(@no,4,4) set @i=@i+1 end select * from @tempDept select @total as 学生借阅书本总量 go -----------结果以下:
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服