设计并实现一个简单的学校图书馆数据库系统.pdf
上传人:13****51 上传时间:2024-09-12 格式:PDF 页数:11 大小:2MB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

设计并实现一个简单的学校图书馆数据库系统.pdf

设计并实现一个简单的学校图书馆数据库系统.pdf

预览

免费试读已结束,剩余 1 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验题目:设计并实现一个简单的学校图书馆数据库系统实验报告:一、需求分析1、E-R图2、建立基本表1〕图书〔书号,书名,作者,出版社,定价,类别,借阅次数,总借阅时间,总册数,剩余册书〕2〕学生读者〔学号,,所在系,性别,可借书量,是否有书逾期〕3〕学生借阅〔书号,学号,,书名,借书日期,应还日期,实还日期〕4〕教师读者〔教师号,,单位,性别,可借书量,是否有书逾期〕5〕教师借阅〔书号,教师号,,书名,借书日期,应还日期,实还日期,是否续借〕2、关系图二、查询功能的实现1、判断某位读者是否有逾期的图书〔以学生读者为例〕CREATEPROCEDURE[判断某位学生读者是否有逾期的图书](@学号_1char(5))ASIF((SELECTCOUNT(书号)FROM学生借阅WHERE((DATEDIFF(day,(SELECT应还日期FROM学生借阅WHERE学号=@学号_1),getdate()))>0)AND(学号=@学号_1))=0)/*计算是否逾期*/BEGINprint'该读者无逾期的书'UPDATE学生读者SET是否有书逾期=1WHERE学号=@学号_1ENDELSEprint'该读者有逾期的书'GO功能:该存储过程通过对输入的读者号所对应的预期借阅信息进行统计,假设结果集非空则通知逾期,同时将‘是否有书逾期’置为‘1’,否则通知逾期。〔教师读者查询同理,此处不再赘述〕2、图书按借阅量排序CREATEPROCEDURE[图书按借阅量排序]ASSELECT图书.书号,图书.书名,(图书.总册数-图书.剩余册数)as借出量FROM图书ORDERBY图书.借出量ASC/*按借出量升序排序*/GO功能:该存储过程通过图书属性中总册数与剩余册数作差作为借出量,并在结果集中按升序排列。3、查询已全部借出的书CREATEPROCEDURE[查询已全部借出的书]ASFROM图书WHERE图书.剩余册数=0GO功能:该存储过程通过对剩余册书是否为零的判断实现对是否全部借出的判断。4、查询未借出的书CREATEPROCEDURE[查询未借出的书]ASFROM图书GO功能:该存储过程通过对总册数与剩余册数的比较实现对未借出的图书的判断。5图书按类统计CREATEPROCEDURE[图书按类统计]ASSELECT类别,sum(剩余册数)as馆藏册数,(sum(总册数)-sum(剩余册数))as借出册数,(sum(总借阅时间))as总借阅时间FROM图书GROUPBY类别GO功能:该存储过程通过分组统计函数实现对基本属性的运算,并在结果集中以新属性名列出。三、存储过程和触发器1、存储过程1〕新增图书信息CREATEPROCEDURE[新增图书信息](@书号_1[char](10),@书名_2[varchar](50),@作者_3[varchar](50),@出版社_4[varchar](50),@定价_5[float],@类别_6[varchar](50),@借阅次数_7[int],@总借阅时间_8[int],@总册数_9[int],@剩余册数_10[int])ASINSERTINTO[PB08210172宫永超].[dbo].[图书](书号[],[书名],[作者],[出版社],[定价],[类别],[借阅次数],[总借阅时间],[总册数],[剩余册数])VALUES(@书号_1,@书名_2,@作者_3,@出版社_4,@定价_5,@类别_6,@借阅次数_7,@总借阅时间_8,@总册数_9,@剩余册数_10)GO说明:该存储过程实现新图书信息向图书表中的添加,每次只能添加一个元组。2〕新增学生读者信息CREATEPROCEDURE[新增学生读者信息](@学号_1[char](10),@_2[varchar](10),@所在系_3[char](3),@性别_4[char](2),@可借书量_5[int],@是否有书逾期_6[bit])ASINSERTINTO学生读者(学号[],[],[所在系],[性别],[可借书量],[是否有书逾期])VALUES(@学号_1,@_2,@所在系_3,@性别_4,@可借书量_5,@是否有书逾期_6)GO说明:该存储过程实现新学生读者信息向学生读者表中的添加,每次只能添加一个元组。3〕新增教师读者信息CREATEPROCEDURE[新增教师读者信息](@教师号_1[char](10),@_2[varc