数据库系统概论课程设计图书馆数据库管理系统小组成员:**********II*目录序言...............................................................................................................1一、图书馆管理系统E-R图....................................................................2二、图书馆管理系统功能实现示意图.......................................................3三、图书馆管理系统功能图例...................................................................43.1读者借阅图书..................................................................................43.2读者归还图书..................................................................................43.3读者续借图书..................................................................................53.4读者查询借阅图书情况..................................................................53.5读者检索图书信息..........................................................................6四、图书馆管理系统附加功能...................................................................74.1往学生表中插入列系部,其值等于学号中代表系部的位的值,再插入列专业号,其值等于学号中代表专业的位的值.........74.2查询每个学生对书本的借阅数量..................................................94.3查询各个专业的学生借阅书本的数量........................................11五、图书馆管理系统数据库、数据表源代码...........错误!未定义书签。5.1图书馆管理系统数据库源代码..................错误!未定义书签。5.2图书馆管理系统数据表源代码..................错误!未定义书签。六、图书馆管理系统存储过程源代码.......................错误!未定义书签。6.1读者借阅图书存储过程..................................错误!未定义书签。6.2读者还书存储过程..........................................错误!未定义书签。6.3读者续借图书存储过程...................................错误!未定义书签。6.4读者查询借阅图书情况存储过程..................错误!未定义书签。6.5读者检索的图书信息存储过程......................错误!未定义书签。七、图书馆管理系统触发器源代码...........................错误!未定义书签。7.1借书要求(书本没有库存,则无法进行借书操作)错误!未定义书签。7.2借书要求(读者最多借阅量)......................错误!未定义书签。7.3续借次数要求..................................................错误!未定义书签。7.4读者还书信息插入RDeleted表.....................错误!未定义书签。*1*序言本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。如读者借阅图书功能(ExecuteRBorrowBook'读者号','图书分类号'),读者归还图书功能(ExecuteRReturnBook'读者号','图书分类号'),读者续借图书功能(ExecuteRRenewBook'读者号','图书分类号'),读者查询图书借阅情况功能(ExecuteRQueryBook'读者号'),读者检索的图书信息功能(ExecuteRIndexBook'关键字')等。具体的功能表现皆在“第二章:图书馆管理系统功能”中有详细的图例说明。本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明: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源代码文件!*2*一、图书馆管理系统E-R图教师借阅图书期限较长,并且允许借阅的书本量较大。因此,将教师借阅关系与学生借阅关系分开较为适宜。分类号书名作者出版社类别出版日期ISBN价格总量借出量年龄电话性别姓名学号系部编号系部名称专业编号专业名称归属归属系部专业归属学生学号与专业编号的联系学生学号与系部编号的联系系部编号与专业编号的联系借阅日期续借次数借阅日期续借次数学生图书学生借阅教师借阅教师工号姓名性别年龄职称电话*3*二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:相关信息写入借阅图书RBorrowBook图书信息表Book学生借阅图书信息表StudentBooktri_Book图书库存量减1tri_SborrowNum借阅量未超5本学生借阅图书信息表StudentBook相关信息写入归还图书RReturnBook读者还书信息表RDeleted图书信息表Book学生借阅图书信息表StudentBooktri_SreturnBook图书库存量加1tri_SborrowNum删除借阅记录续借图书RRenewBooktri_SrenewBook续借次数不超三次,则将续借次数加1相关信息写入学生借阅图书信息表StudentBook学生借阅图书信息表StudentBook专业信息表Major学生信息表Student系部信息表Dept图书信息表Book查询图书借阅情况RQueryBook获取图书相关信息计算学生专业信息计算学生系部信息获取学生相关信息综合信息输出图书信息表Book由存储过程RindexBook查找匹配图书信息综合信息输出给读者读者检索图书RIndexBook*4*三、图书馆管理系统功能图例3.1读者借阅图书ExecuteRBorrowBook'读者号','图书分类号'--------------读者借阅图书实例useLibrarySystemgoexecRBorrowBookT006324,'D630.3L836'--其中T006324以T为标识,代表教师编号execRBorrowBookS070407101,'D630.3L836'---其中S070407101以S为标识,代表学生学号go-----结果如下:3.2读者归还图书ExecuteRReturnBook'读者号','图书分类号'----------------读者归还图书实例useLibrarySystemgoexecRReturnBookT006324,'D630.3L836'execRReturnBookS070407101,'D630.3L836'go-----结果如下:*5*3.3读者续借图书ExecuteRRenewBook'读者号','图书分类号'--------------读者续借图书实例useLibrarySystemgo-------读者借阅图书execRBorrowBookT006324,'D630.3L836'execRBorrowBookS070407101,'D630.3L836'gowaitfordelay'0:0:5'--------读者续借图书execRRenewBookT006324,'D630.3L836'execRRenewBookS070407101,'D630.3L836'go-----结果如下:3.4读者查询借阅图书情况ExecuteRQueryBook'读者号'------------读者查询图书借阅情况实例useLibrarySystemgoexecRQueryBookT006432*6*execRQueryBookS070407101go-----结果如下:3.5读者检索图书信息ExecuteRIndexBook'关键词'------------读者检索图书信息实例useLibrarySystemgoexecRIndexBook数据库go-------结果如下:*7*四、图书馆管理系统附加功能4.1往学生表中插入一列系部,其值等于学号中代表系部的位的值,再插入一列专业号,其值等于学号中代表专业的位的值---------------往学生表S中插入一列系部,其值等于学号中代表系部的位的值useLibrarySystemgoaltertableStudentaddSdeptNochar(2)godeclare@snochar(10),@totalint,@iintselect@total=count(*),@i=1fromStudentwhile(@i=@total)begin------------查询数据表第@i行数据的SQL语句selecttop1@sno=SnofromStudentwhereSnonotin(selecttop(@i-1)SnofromStudent)updateStudentsetSDeptNo=substring(@sno,4,2)whereSno=@snoset@i=@i+1endselect*fromStudentgo-----------结果如下:*8*-------------往学生表S中插入一列专业号,其值等于学号中代表专业的位的值useLibrarySystemgoaltertableStudentaddSMajorNovarchar(50)godeclare@snochar(10),@totalint,@iintselec