




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档?数据库类课程设计?系统开发报告学 号: 111007131 姓 名: 吴书敏 题 目: 图书借阅管理 指导教师: 高洁 提交时间: 2013年6月1日 计算机科学与应用系目 录第一章 需求分析1第二章 系统功能设计22.1系统功能模块图第三章 数据库设计33.1 数据库设计33.2数据表设计53.3 数据库编程7第四章 功能模块的创立84.1创立向读者表插入数据的存储过程84.2创立向图书表中插入数据的存储过程94.3创立实现还书的存储过程104.4创立实现借书的存储过程114.5建立是否超期表值函数134.6查询模块14结束语18参考文献19欢迎下载精品文档第一章 需求分析系统功能
2、分析阶段的任务就是确定该系统要解决的问题及其具体要求。需要通过与用户的交流和沟通明确对系统的功能要求,最终列出系统可以实现的功能由用户确认。1.总体方案(1) 图书资料的管理 图书管理员将采购的图书入库分类处理,同时建立相关的图书资料信息,如果该书已有,那么修改现有书本等于原有书本数加上新增书本数。如果图书损坏也修改图书资料信息。如果图书出馆,那么删除相关的图书资料信息。 (2) 读者资料管理 系统管理员要为读者办理相应的图书证,读者填写登记表包括学号、姓名、性别根本信息。读者申请退证时,可以删除改读者的根本信息。 (3) 借书操作 读者把借阅证和想借阅的图书交给图书管理员,管理员进行审核。如
3、该读者是否有过期未还的图书,是否借阅图书已经超过五本,有上述情况之一那么借阅不成功。否那么借阅成功。读者只可在该本书尚未超期的情况下才可以进行续借,否那么借阅不成功。 (4) 还书操作 读者把借阅证及要还的图书交给图书管理员,由他进行审核,如该图书有逾期那么通知该读者交罚款。否那么,图书交由图书管理员放回书库,并修改图书,读者借书信息表。第二章 系统功能设计通过通过对上述各项功能的分析、分类、综合,按照模块化程序设计的要求,得到如下列图所示的功能模块图。借书处理还书处理超期处理图书资料维护读者资料维护图书资料查询读者资料查询借阅历史查询查询日常工作图书管理系统资料维护图 2-1系统功能模块图第
4、三章 数据库设计数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统操作效率已经能否保证数据的一致性、完成性和平安性。3.1 数据库设计 根据图书管理系统的功能要求,通过分析系统要设计的相关实体一集要收集、存储和操纵数据信息,得到如下列图1234所示的系统E-R图。根据系统E-R图得到以下关系模式。读者根本信息读者号,姓名,性别,借书数量图书根本信息图书号,书名,类型,作者,译者,出版社,内容,馆藏数,已借数还书根本信息读者号,书号,还书数量,还书日期借书根本信息读者号,书号,书名,借书数量,借书时间,应还时间 姓名读者性别读者号借书数量 图1 3-1 读者E-R
5、图书名图书类型编号作者被借数馆藏数价格译者内容出版社图2 3-1图书 E-R图图书还书还书数量读者还书日期图3 3-1 还书E-R图 图书借书书名读者借书数量应还日期借书日期图4 3-1 借书E-R图3.2数据表设计根据关系模式,确定要建立的数据库和表。给表中添加说明,并建立主键和外键如下列图5678所示:“读者表图5 “读者表 “图书表:图 6“图书表 “还书表图 7“还书表“借书表:图 8“借书表然后给图书表中添加数据:/*向图书表中插入数据*/USE bookmgGOINSERT 图书VALUES (540541903,子不语壹,漫画,夏达,NULL,新世纪出版社,NULL,18.00,
6、6,0)GOINSERT 图书VALUES (540541904,子不语贰,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541905,子不语叁,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541906,子不语肆,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541907,子不语伍,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541908
7、,子不语陆,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)3.3 数据库编程 以下是各个表的创立代码:/*创立各个表*/CREATE TABLE 读者(readerid varchar(9) NOT NULL PRIMARY KEY,readername varchar(20) NOT NULL,readersex varchar(10) NOT NULL,booknum SMALLINT CHECK(borrownum=0 AND borrownum=0),haveborrow SMALLINT CHECK(haveborrow=0)CREATE TABLE 还书(rea
8、derid varchar(9) NOT NULL,bookid varchar(9) NOT NULL,booknum SMALLINT CHECK(booknum=0 AND booknum=0 AND booknum=5),outputdate datetime NULL,shoulddate datetime NULL,FOREIGN KEY(readerid) REFERENCES 读者(readerid),FOREIGN KEY(bookid) REFERENCES 图书(bookid)第四章 功能模块的创立4.1 创立向读者表插入数据的存储过程/*创立存储过程向读者表中插入数据*
9、/USE bookmgGO CREATE PROCEDURE reader_insertelem1 varchar(9),elem2 varchar(20),elem3 varchar(10),elem4 smallintASBEGIN insert into 读者(readerid,readername,readersex,borrownum)values (elem1,elem2,elem3,elem4)END/*读者表中插入实例*/USE bookmgGOEXEC reader_insert 111007131,吴书敏,男,0图9读者表中插入实例4.2 创立向图书表中插入数据的存储过程/
10、*通过存储过程向图书表中插入数据*/USE bookmgGO CREATE PROCEDURE book_insertelem1 varchar(9),elem2 varchar(40),elem3 varchar(20),elem4 varchar(20),elem5 varchar(20),elem6 varchar(20),elem7 varchar(50),elem8 varchar(10),elem9 smallint,elem10 smallintASBEGIN insert into 图书(bookid,bookname,booktype,bookauther,booktrsla
11、tor,bookpress,bookcontent,bookprice,noborrow,haveborrow)values (elem1,elem2,elem3,elem4,elem5,elem6,elem7,elem8,elem9,elem10)END4.3 创立实现还书的存储过程/*创立还书存储*/USE bookmgGOCREATE PROCEDURE return_insertelem1 varchar(9),elem2 varchar(9),elem3 smallintASINSERT INTO 还书(readerid,bookid,booknum)values (elem1,el
12、em2,elem3)BEGINUPDATE 还书SET inputdate=GETDATE()WHERE readerid=elem1;UPDATE 图书SET noborrow=noborrow+elem3WHERE bookid=elem2;UPDATE 图书SET haveborrow=haveborrow-elem3WHERE bookid=elem2;UPDATE 读者SET borrownum=borrownum-elem3SELECT 还书成功ENDGO/*还书实例*/USE bookmgGOEXEC return_insert 111007131,540541903,1GO图
13、10还书实例4.4 创立实现借书的存储过程/*创立借书存储*/USE bookmgGOCREATE PROCEDURE borrow_insertelem1 varchar(9),elem2 varchar(9),elem3 smallintASinsert into 借书(readerid,bookid,booknum)values(elem1,elem2,elem3)BEGIN/*这里用了判定是否超期函数judgedate,将返回值赋予判断变量judgement*/DECLARE judgement intSET judgement=(SELECT max(overdays)FROM ju
14、dgedate(elem1) /*判定该读者是否有图书超期*/IF (judgement=0 AND borrownum=0),haveborrow SMALLINT CHECK(haveborrow=0)CREATE TABLE 还书(readerid varchar(9) NOT NULL,bookid varchar(9) NOT NULL,booknum SMALLINT CHECK(booknum=0 AND booknum=0 AND booknum=5),outputdate datetime NULL,shoulddate datetime NULL,FOREIGN KEY(r
15、eaderid) REFERENCES 读者(readerid),FOREIGN KEY(bookid) REFERENCES 图书(bookid)/*通过存储过程向读者表中插入数据*/USE bookmgGO CREATE PROCEDURE reader_insertelem1 varchar(9),elem2 varchar(20),elem3 varchar(10),elem4 smallintASBEGIN insert into 读者(readerid,readername,readersex,borrownum)values (elem1,elem2,elem3,elem4)EN
16、D/*读者表中插入实例*/USE bookmgGOEXEC reader_insert 111007131,吴书敏,男,0/*向图书表中插入数据*/USE bookmgGOINSERT 图书VALUES (540541903,子不语壹,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541904,子不语贰,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541905,子不语叁,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALU
17、ES (540541906,子不语肆,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541907,子不语伍,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)GOINSERT 图书VALUES (540541908,子不语陆,漫画,夏达,NULL,新世纪出版社,NULL,18.00,6,0)/*通过存储过程向图书表中插入数据*/USE bookmgGO CREATE PROCEDURE book_insertelem1 varchar(9),elem2 varchar(40),elem3 varchar(20),e
18、lem4 varchar(20),elem5 varchar(20),elem6 varchar(20),elem7 varchar(50),elem8 varchar(10),elem9 smallint,elem10 smallintASBEGIN insert into 图书(bookid,bookname,booktype,bookauther,booktrslator,bookpress,bookcontent,bookprice,noborrow,haveborrow)values (elem1,elem2,elem3,elem4,elem5,elem6,elem7,elem8,e
19、lem9,elem10)END/*创立还书存储*/USE bookmgGOCREATE PROCEDURE return_insertelem1 varchar(9),elem2 varchar(9),elem3 smallintASINSERT INTO 还书(readerid,bookid,booknum)values (elem1,elem2,elem3)BEGINUPDATE 还书SET inputdate=GETDATE()WHERE readerid=elem1;UPDATE 图书SET noborrow=noborrow+elem3WHERE bookid=elem2;UPDAT
20、E 图书SET haveborrow=haveborrow-elem3WHERE bookid=elem2;UPDATE 读者SET borrownum=borrownum-elem3SELECT 还书成功ENDGO/*还书实例*/USE bookmgGOEXEC return_insert 111007131,540541903,1GO/*创立借书存储*/USE bookmgGOCREATE PROCEDURE borrow_insertelem1 varchar(9),elem2 varchar(9),elem3 smallintASinsert into 借书(readerid,book
21、id,booknum)values(elem1,elem2,elem3)BEGIN/*这里用了判定是否超期函数judgedate,将返回值赋予判断变量judgement*/DECLARE judgement intSET judgement=(SELECT max(overdays)FROM judgedate(elem1) /*判定该读者是否有图书超期*/IF (judgement=0)BEGINSELECT 借书成功UPDATE 借书SET outputdate=GETDATE()WHERE readerid=elem1 AND bookid=elem2;UPDATE 借书SET shou
22、lddate=DATEADD(day,30,getdate()WHERE readerid=elem1 AND bookid=elem2;/*声明一个变量bookname从图书表里读取图书名到借书表里*/DECLARE bookname varchar(40)SET bookname=(SELECT bookname FROM 图书WHERE bookid=elem2)UPDATE 借书SET bookname=booknameWHERE readerid=elem1 AND bookid=elem2;UPDATE 图书SET noborrow=noborrow-elem3WHERE book
23、id=elem2;UPDATE 图书SET haveborrow=haveborrow+elem3WHERE bookid=elem2;UPDATE 读者SET borrownum=borrownum+elem3WHERE readerid=elem1;ENDELSEBEGIN SELECT 借书失败,有超期未还图书ENDEND/*判断是否超期表值函数*/USE bookmgGOCREATE FUNCTION judgedate(elem1 as varchar(9)RETURNS overdate TABLE(overdays int)ASBEGININSERT overdateSELECT day(GETDATE()-ISNULL(shoulddate,0)FROM 借书WHERE readerid=elem1RETURNEND/*借书实例*/USE bookmgGOEXEC borrow_insert 111007131,540541903,2GO/*图书分类查询和分类统计*/USE bookmgGOCREATE PROCEDURE type_selectbooktype varchar(20)ASBEGINSELECT booktypeFROM 图书WHERE booktype=booktype;DECLARE booknum
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗安全与风险管理的法规遵循与执行
- 复杂性区域疼痛综合征的临床护理
- 兴唐镇中心小学2025年教科研工作总结模版
- 实习总结模版
- 医疗大数据挖掘与健康教育新模式
- 2025年会计基础知识点总结模版
- 医技新风医疗技术与健康科学的深度融合发展探讨
- 区块链教育培养未来技术领导者
- 中药材产业中质量追溯体系的构建与优化-基于区块链技术的研究
- 医疗信息安全的国际比较与借鉴
- 预防性侵害安全教育
- MOOC 大学英语听说译-河南理工大学 中国大学慕课答案
- 受托支付合同
- 一文看懂友宝在线招股书
- 医院传染病知识培训PPT课件
- KYN28A-12高压开关柜使用说明书
- 芳构化装置改造项目资金申请报告写作模板
- pvc管采购合同
- DL/T 5203-2005《火力发电厂煤和制粉系统防爆设计技术规程》简介
- 禁化武自查报告
- 【护理讲课】肺炎病人的护理PPT
评论
0/150
提交评论