数据库课程设计SQLServer图书馆管理系统实例讲解模板.doc
数据库课程设计SQLServer图书馆管理系统实例讲解162020年4月19日文档仅供参考数据库系统概论课程设计图书馆数据库管理系统小组成员:*QQ:目录序言1b5E2RGbCAP一、图书馆管理系统 E-R 图2p1EanqFDPw二、图书馆管理系统功能实现示意图3DXDiTa9E3d三、图书馆管理系统功能图例4RTCrpUDGiT3.1 读者借阅图书45PCzVD7HxA3.2 读者归还图书4jLBHrnAILg3.3 读者续借图书5xHAQX74J0X3.4 读者查询借阅图书情况5LDAYtRyKfE3.5 读者检索图书信息6Zzz6ZB2Ltk四、图书馆管理系统附加功能7dvzfvkwMI14.1 往学生表中插入列"系部",其值等于学号中代表系部地位地值,再插入列"专业号",其值等于学号中代表专业地位地值7rqyn14ZNXI4.2 查询每个学生对书本地借阅数量9EmxvxOtOco4.3 查询各个专业地学生借阅书本地数量11SixE2yXPq5五、图书馆管理系统数据库、数据表源代码126ewMyirQFL5.1 图书馆管理系统"数据库"源代码12kavU42VRUs5.2 图书馆管理系统"数据表"源代码12y6v3ALoS89六、图书馆管理系统存储过程源代码15M2ub6vSTnP6.1 读者借阅图书存储过程150YujCfmUCw6.2 读者还书存储过程17eUts8ZQVRd6.3读者续借图书存储过程18sQsAEJkW5T6.4 读者查询借阅图书情况存储过程19GMsIasNXkA6.5 读者检索地图书信息存储过程22TIrRGchYzg七、图书馆管理系统触发器源代码237EqZcWLZNX7.1 借书要求<书本没有库存,则无法进行借书操作)23lzq7IGf02E7.2 借书要求<读者最多借阅量)24zvpgeqJ1hk7.3 续借次数要求25NrpoJac3v17.4 读者还书信息插入RDeleted表261nowfTG4KI序言本图书馆管理系统谨根据实际需求所创立,创立有如下八个数据表:Book<图书信息表),Dept<学生系部信息表),Major<学生专业信息表),Student<学生信息表),StudentBook<学生借阅图书信息表),Teacher<教师信息表),TeacherBook<教师借阅图书信息表),RDeleted<读者还书信息表)等.这些数据表结合图书馆数据库中地五个存储过程,即实现了普通图书馆地大部分功能.如读者借阅图书功能<Execute RBorrowBook '读者号','图书分类号'),读者归还图书功能<Execute RReturnBook '读者号','图书分类号'),读者续借图书功能<Execute RRenewBook '读者号','图书分类号'),读者查询图书借阅情况功能<Execute RQueryBook '读者号'),读者检索地图书信息功能<Execute RIndexBook '关键字')等.具体地功能表现皆在“第二章:图书馆管理系统功能”中有详细地图例说明.fjnFLDa5Zo本图书馆管理系统谨根据实际需要,创立了七个触发器,就此,创作者对这些触发器做如下说明: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表本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书馆数据库管理系统地实用功能.初次设计数据库,其中肯定会有不足之处,还望读者谅解!tfnNhnE6e5本课程设计附有“图书馆数据库管理系统地所有源代码”,您能够根据需要在“第四章节”至“第七章节”中进行查看,或查看与本课程设计处于同一目录下地 *.sql 源代码文件!HbmVN777sL作者:* * *一、图书馆管理系统 E-R 图教师借阅图书期限较长,而且允许借阅地书本量较大.因此,将教师借阅关系与学生借阅关系分开较为适宜.分类号书名作者出版社类别出版日期ISBN价格总量借出量年龄电话性别姓名学号系部编号系部名称专业编号专业名称归属归属系部专业归属学生学号与专业编号的联系学生学号与系部编号的联系系部编号与专业编号的联系借阅日期续借次数借阅日期续借次数学生图书学生借阅教师借阅教师工号姓名性别年龄职称电话V7l4jRB8Hs二、图书馆管理系统功能实现示意图相关信息写入借阅图书RBorrowBook图书信息表Book学生借阅图书信息表 StudentBooktri_Book图书库存量减1tri_SborrowNum借阅量未超5本学生借阅图书信息表 StudentBook由于教师与学生地借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:83lcPA59W9相关信息写入归还图书RReturnBook读者还书信息表RDeleted图书信息表Book学生借阅图书信息表 StudentBooktri_SreturnBook图书库存量加1tri_SborrowNum删除借阅记录mZkklkzaaP续借图书RRenewBooktri_SrenewBook续借次数不超三次,则将续借次数加1 相关信息写入学生借阅图书信息表 StudentBookAVktR43bpw学生借阅图书信息表 StudentBook专业信息表Major学生信息表Student系部信息表Dept图书信息表Book查询图书借阅情况 RQueryBook获取图书相关信息计算学生专业信息计算学生系部信息获取学生相关信息综合信息输出ORjBnOwcEd图书信息表Book由存储过程RindexBook 查找匹配图书信息 综合信息输出给读者读者检索图书RIndexBook2MiJTy0dTT三、图书馆管理系统功能图例3.1 读者借阅图书ExecuteRBorrowBook'读者号','图书分类号'-读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,'D630.3 L836'-其中T006324以T为标识,代表教师编号gIiSpiue7Aexec RBorrowBook S,'D630.3 L836'-其中S以S为标识,代表学生学号uEh0U1Yfmhgo-结果如下:3.2 读者归还图书ExecuteRReturnBook'读者号','图书分类号'-读者归还图书实例use LibrarySystemgoexec RReturnBook T006324,'D630.3 L836'exec RReturnBook S,'D630.3 L836'go-结果如下:3.3 读者续借图书ExecuteRRenewBook'读者号','图书分类号'-读者续借图书实例use LibrarySystemgo-读者借阅图书exec RBorrowBook T006324,'D630.3 L836'exec RBorrowBook S,'D630.3 L836'gowaitfor delay '0:0:5'-读者续借图书exec RRenewBook T006324,'D630.3 L836'exec RRenewBook S,'D630.3 L836'go-结果如下:3.4 读者查询借阅图书情况ExecuteRQueryBook'读者号'-读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook Sgo-结果如下:3.5 读者检索图书信息ExecuteRIndexBook'关键词'-读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-结果如下:四、图书馆管理系统附加功能4.1 往学生表中插入一列"系部",其值等于学号中代表系部地位地值,再插入一列"专业号",其值等于学号中代表专业地位地值IAg9qLsgBX-往学生表S中插入一列"系部",其值等于学号中代表系部地位地值use LibrarySystemgoaltertable Studentadd SdeptNochar(2>godeclare sno char(10>,total int,i intselect total=count(*>,i=1from Studentwhile(i<=total>begin-查询数据表第i 行数据地SQL语句selecttop 1 sno=Sno from Student where Sno notin(selecttop(i-1> Sno from Student>WwghWvVhPEupdate Studentset SDeptNo=substring(sno,4,2>where Sno=snoset i=i+1endselect*from Studentgo-结果如下:-往学生表S中插入一列"专业号",其值等于学号中代表专业地位地值use LibrarySystemgoaltertable Studentadd SMajorNo varchar(50>godeclare sno char(10>,total int,i intselect total=count(*>,i=1from Studentwhile(i<=total>begin-查询数据表第i 行数据地SQL语句selecttop 1 sno=Sno from Student where Sno notin(selecttop(i-1> Sno from Student>asfpsfpi4kupdate Studentset SMajorNo=substring(sno,4,4>where Sno=snoset i=i+1endgo-结果如下:4.2 查询每个学生对书本地借阅数量-查询每个学生对书本地借阅数量use LibrarySystemgoselect Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名ooeyYZTjj1from StudentBook,Student,Bookwhere Student.Sno=StudentBook.Sno and StudentBook.ClassifyNo=Book.ClassifyNoBkeGuInkxIorderby Student.Snocomputecount(Student.Sno>by Student.Snogo-结果如下:4.3查询各个专业地学生借阅书本地数量use LibrarySystemgodeclare tempDept table(专业编号char(4>primarykey,专业varchar(30>notnull,学生借阅书本数量intdefault 0>Insertinto tempDept(专业编号,专业>select Mno,Mname from MajorPgdO0sRlModeclare i int,total int,no char(10>select total=count(*>,i=1 from StudentBookwhile(i<total>beginselecttop 1 no=Sno from StudentBook where Sno notin(selecttop(i-1> Sno from StudentBook>3cdXwckm15update tempDeptset 学生借阅书本数量=学生借阅书本数量+1where 专业编号=substring(no,4,4>set i=i+1endselect*from tempDeptselect total as 学生借阅书本总量go-结果如下:后续“数据库课程设计之SQL Server图书馆管理系统源码”五、图书馆管理系统数据库、数据表源代码六、图书馆管理系统存储过程源代码七、图书馆管理系统触发器源代码QQ: