《图书馆数据库管理系统.pdf》由会员分享,可在线阅读,更多相关《图书馆数据库管理系统.pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图书馆数据库管理系统 目录 一、图书馆管理系统 E-R 图 教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。分类号 书名 作者 出版社 类别 出 版 日ISBN 价格 总量 借出量 年电性姓学系 部 编系部名专业编专业名归属 归属 系部 专业 归属 学生学号与学生学号与系部编号与借 阅 日续 借 次借 阅 日续 借 次学生 图书 学 生 借教 师 借教师 工姓性年职电二、图书馆管理系统功能实现示意图 由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:相 关 信 息借阅图书 图书信息表 学生借
2、阅图书tri_Book 图tri_Sborro学生借阅图书相 关 信 息归还图书 读者还书信图书信息表 学生借阅图书tri_Sreturtri_Sborro续借图书 tri_SrenewBook 续借次数不超三次,则将续借次数加 1 学生借阅图书学生借阅图书专业信息学生信息系部信息图书信息查询图书借获取图书相关信计算学生专业信计算学生系部信获取学生相关信综合信息输三、图书馆管理系统功能图例 读者借阅图书 Execute RBorrowBook 读者号,图书分类号-读者借阅图书实例 use LibrarySystem go exec RBorrowBook T006324,D630.3 L836
3、-其中T006324以T为标识,代表教师编号 exec RBorrowBook S0,D630.3 L836-其中S0以S为标识,代表学生学号 go -结果如下:读者归还图书 Execute RReturnBook 读者号,图书分类号-读者归还图书实例 use LibrarySystem go exec RReturnBook T006324,D630.3 L836 exec RReturnBook S0,D630.3 L836 图书信息由存储过程 RindexBook 查找匹配图书信息 综合信读者检索go -结果如下:读者续借图书 Execute RRenewBook 读者号,图书分类号-读
4、者续借图书实例 use LibrarySystem go-读者借阅图书 exec RBorrowBook T006324,D630.3 L836 exec RBorrowBook S0,D630.3 L836 go waitfor delay 0:0:5-读者续借图书 exec RRenewBook T006324,D630.3 L836 exec RRenewBook S0,D630.3 L836 go -结果如下:读者查询借阅图书情况 Execute RQueryBook 读者号-读者查询图书借阅情况实例 use LibrarySystem go exec RQueryBook T0064
5、32 exec RQueryBook S0 go-结果如下:读者检索图书信息 Execute RIndexBook 关键词-读者检索图书信息实例 use LibrarySystem go exec RIndexBook 数据库 go-结果如下:四、图书馆管理系统附加功能 往学生表中插入一列系部,其值等于学号中代表系部的位的值,再插入一列专业号,其值等于学号中代表专业的位的值-往学生表S中插入一列系部,其值等于学号中代表系部的位的值 use LibrarySystem go alter table Student add SdeptNo char(2)go declare sno char(10
6、),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中插入一列专业号,其值等于学
7、号中代表专业的位的值 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 SMaj
8、orNo=substring(sno,4,4)where Sno=sno set i=i+1 end go-结果如下:查询每个学生对书本的借阅数量-查询每个学生对书本的借阅数量 use LibrarySystem go select 学号,Sname 姓名,图书分类号,Bname 书名 from StudentBook,Student,Book where=and=order by compute count by go-结果如下:查询各个专业的学生借阅书本的数量 use LibrarySystem go declare tempDept table(专业编号char(4)primary ke
9、y,专业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(itotal)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 -结果如下:
限制150内