设计并实现一个简单的学校图书馆数据库系统.pdf
《设计并实现一个简单的学校图书馆数据库系统.pdf》由会员分享,可在线阅读,更多相关《设计并实现一个简单的学校图书馆数据库系统.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验题目:设计并实现一个简单的学校图书馆数据库系统实验题目:设计并实现一个简单的学校图书馆数据库系统实验报告:实验报告:一、需求分析一、需求分析1、E-R 图2、建立基本表1图书书号,书名,作者,出版社,定价,类别,借阅次数,总借阅时间,总册数,剩余册书2学生读者学号,所在系,性别,可借书量,是否有书逾期3学生借阅书号,学号,书名,借书日期,应还日期,实还日期4教师读者教师号,单位,性别,可借书量,是否有书逾期5教师借阅书号,教师号,书名,借书日期,应还日期,实还日期,是否续借2、关系图二、查询功能的实现二、查询功能的实现1、判断某位读者是否有逾期的图书以学生读者为例CREATE PROCED
2、URE 判断某位学生读者是否有逾期的图书(学号_1char(5)ASIF(SELECT COUNT(书号)FROM 学生借阅WHERE(DATEDIFF(day,(SELECT 应还日期FROM 学生借阅WHERE 学号=学号_1),getdate()0)AND(学号=学号_1)=0)/*计算是否逾期*/BEGINprint该读者无逾期的书UPDATE 学生读者SET 是否有书逾期=1WHERE 学号=学号_1ENDELSEprint该读者有逾期的书GO功能:该存储过程通过对输入的读者号所对应的预期借阅信息进行统计,假设结果集非空则通知逾期,同时将是否有书逾期置为1,否则通知逾期。教师读者查询
3、同理,此处不再赘述2、图书按借阅量排序CREATE PROCEDURE 图书按借阅量排序 ASSELECT 图书.书号,图书.书名,(图书.总册数-图书.剩余册数)as 借出量FROM 图书ORDER BY 图书.借出量 ASC/*按借出量升序排序*/GO功能:该存储过程通过图书属性中总册数与剩余册数作差作为借出量,并在结果集中按升序排列。3、查询已全部借出的书CREATE PROCEDURE 查询已全部借出的书 ASFROM 图书WHERE 图书.剩余册数=0GO功能:该存储过程通过对剩余册书是否为零的判断实现对是否全部借出的判断。4、查询未借出的书CREATE PROCEDURE 查询未借
4、出的书 ASFROM 图书GO功能:该存储过程通过对总册数与剩余册数的比较实现对未借出的图书的判断。5 图书按类统计CREATE PROCEDURE 图书按类统计ASSELECT 类别,sum(剩余册数)as 馆藏册数,(sum(总册数)-sum(剩余 册数)as 借出册数,(sum(总借阅时间)as 总借阅时间FROM 图书GROUP BY 类别GO功能:该存储过程通过分组统计函数实现对基本属性的运算,并在结果集中以新属性名列出。三、存储过程和触发器三、存储过程和触发器1、存储过程1新增图书信息CREATE PROCEDURE 新增图书信息(书号_1char(10),书名_2varchar(
5、50),作者_3varchar(50),出版社_4 varchar(50),定价_5float,类别_6varchar(50),借阅次数_7int,总借阅时间_8 int,总册数_9 int,剩余册数_10int)AS INSERT INTO PB08210172 宫永超.dbo.图书(书号,书名,作者,出版社,定价,类别,借阅次数,总借阅时间,总册数,剩余册数)VALUES(书号_1,书名_2,作者_3,出版社_4,定价_5,类别_6,借阅次数_7,总借阅时间_8,总册数_9,剩余册数_10)GO说明:该存储过程实现新图书信息向图书表中的添加,每次只能添加一个元组。2新增学生读者信息CREA
6、TE PROCEDURE 新增学生读者信息(学号_1char(10),_2varchar(10),所在系_3 char(3),性别_4char(2),可借书量_5int,是否有书逾期_6bit)AS INSERT INTO 学生读者(学号,所在系,性别,可借书量,是否有书逾期)VALUES(学号_1,_2,所在系_3,性别_4,可借书量_5,是否有书逾期_6)GO说明:该存储过程实现新学生读者信息向学生读者表中的添加,每次只能添加一个元组。3新增教师读者信息CREATE PROCEDURE 新增教师读者信息(教师号_1 char(10),_2varchar(50),单位_3varchar(50
7、),性别_4char(2),可借书量_5int,是否有书逾期_6bit)AS INSERT INTO PB08210172 宫永超.dbo.教师读者(教师号,单位,性别,可借书量,是否有书逾期)VALUES(教师号_1,_2,单位_3,性别_4,可借书量_5,是否有书逾期_6)GO说明:该存储过程实现新教师读者信息向教师读者表中的添加,每次只能添加一个元组。4插入学生借阅信息CREATE PROCEDURE 插入学生借阅信息(书号_1char(10),学号_2char(5),_3varchar(10),书名_4varchar(10),借书日期_5datetime)AS INSERT INTO
8、学生借阅(书号,学号,书名,借书日期)VALUES(书号_1,学号_2,_3,书名_4,借书日期_5)GO说明:该存储过程将输入信息在教师借阅表中产生一个新的元组,即插入新的借阅信息,从而实现借书功能。5插入教师借阅信息CREATE PROCEDURE 插入教师借阅信息(书号_1char(10),教师号_2 char(4),_3varchar(10),书名_4varchar(10),借书日期_5datetime)AS INSERT INTO PB08210172 宫永超.dbo.教师借阅(书号,教师号,书名,借书日期)VALUES(书号_1,教师号_2,_3,书名_4,借书日期_5)GO说明:
9、该存储过程将输入信息在教师借阅表中产生一个新的元组,即插入新的借阅信息,从而实现借书功能。6)教师借阅数据更新CREATE PROCEDURE 教师借阅数据更新(书号_1char,教师号_2 char,是否续借_6int)ASUPDATE教师借阅SET 是否续借=是否续借_6/*“是否续借”置为“1”*/WHERE(书号=书号_1 AND 教师号=教师号_2)IF(是否续借_6=1)UPDATE 教师借阅 SET应还日期=DATEADD(day,30,教师借阅.应还日期)/*将应还日期推迟一个月*/FROM 教师借阅GO说明:该存储过程通过输入的教师号和书号找到对应的借阅信息后对其进行更新,将
10、标记信息“是否续借”置为“1”,并将应还日期推迟一个月,从而实现续借功能。7学生还书CREATE PROCEDURE 学生还书学号_1char(5),书号_1char(5),实还日期_1 datetime,是否丧失 intASDECLARE 罚金 floatDECLARE 借期_1intDECLARE 超期_2intBEGINSET 借期_1=DATEDIFF(day,/*计算借期并用变量借期_1 表示*/(SELECT借书日期 FROM学生借阅 WHERE 学号=学号_1 AND 书号=书号_1),实还日期_1)SET 超期_2=DATEDIFF(day,/*计算超期并用变量超期_2 表示*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 实现 一个 简单 学校图书馆 数据库 系统
限制150内