数据库原理及应用课程设计-图书馆图书借阅系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库原理及应用课程设计2013~ 2014学年第*学期
设计题目:图书馆图书借阅系统
院(系)计算机科学与信息工程学院
专业计算机科学与技术
班级学号
学生姓名
设计时间指导教师
提交日期
上海应用技术学院课程设计任务书课程名称数据库原理及应用课程代码设计题目图书馆图书借阅系统
设计时间
系(院)计算机科学与信息
工程学院
专业
计算机科学与技
术
班级
一、课程设计任务(条件)、具体技术参数(指标)
通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解。
本次课程设计包含两大部分内容:设计软件和设计报告。
其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。
二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)
1、每位同学提交设计的数据库和应用程序相关文档,并提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统E-R图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。
2、课程设计报告电子版排版顺序:任务书→正文→附录(若有)。
3、每个同学要针对自己的系统,写出对设计技术的分析、对系统的测试、在编码和调试过程中遇到的问题和解决方法等。
4、课程设计报告最后写出本次设计的心得体会。
三、课程设计工作进度计划
1、课程设计第1周第1天:布置任务、交代课题、安排设计事宜
2、第1周第2天:调研,书籍和资料的准备
3、第1周第3天-第5天:系统分析和设计
4、第2周第1天-第3天:编程和测试,撰写设计报告
5、第2周第4天-第5天:课程设计检查,交设计报告
四、主要参考资料
1.《数据库原理及应用》钱雪忠主编北京邮电大学出版社 2010.6 第三版
2.《数据库原理及技术课程设计》钱雪忠罗海驰陈国俊编著清华大学出版社 2009.2
3.《数据库原理及应用实验指导》钱学忠陈国俊等编著北京邮电大学出版社 2010.7
指导教师(签名):教研室主任(签名):
2014年月日 2014 年月日
目录
第一章综述 (1)
1.1 设计的目的及要求 (1)
1.1.1 目的 (1)
1.1.2 要求 (1)
1.2 设计内容说明 (1)
1.2.1 项目背景 (1)
1.2.2 设计目的 (1)
1.2.3 开发环境 (2)
第二章设计内容 (3)
2.1 系统需求分析 (3)
2.1.1 系统概述 (3)
2.1.2 需求分析 (3)
2.1.3 系统功能 (3)
2.2 概念结构设计 (4)
2.2.1 系统局部E-R模型设计 (4)
2.2.2 系统全局E-R模型设计 (6)
2.3 逻辑结构设计 (6)
2.4 物理结构设计 (7)
2.4.1 确定数据库的存储结构 (7)
2.4.2 存取方法和优化方法 (7)
2.5 数据库的实施 (8)
2.5.1 各个实体属性的说明 (8)
2.5.2 建表 (9)
2.5.3 数据库关系图 (11)
2.5.4 数据入库 (12)
2.6 数据库的运行与维护 (13)
2.6.1 数据库的运行 (13)
2.6.2 数据库的维护 (14)
2.7 数据库中存储过程的创建与测试 (14)
2.7.1 读者 (15)
2.7.2 人事管理员 (17)
2.7.3 图书管理员 (21)
第三章结论与总结 (25)
参考文献 (25)
附录 (25)
第一章综述
1.1 设计的目的及要求
1.1.1 目的
1.巩固加深对数据库基本知识的理解,提高综合运用课程知识的能力。
2.掌握数据库系统设计的基本内容、方法和步骤,培养规范化使用软技术设计的能力。
3.深刻领会与掌握数据库应用系统规范化设计的过程和步骤。
4.掌握使用计算机技能和相关参考资料的技能,提高综合运用多种技能的能力,以及理论与实践相结合进行数据库应用系统设计与实现的能力。
5.提高开发和设计的创新能力。
1.1.2 要求
要求加深对数据库技术相关理论的理解,掌握使用现行较为流行的数据库理论和数据库设计方法进行数据库系统设计的方法;具体应用方面:要求学生对数据库设计步骤中的需求分析、概念结构设计、逻辑结构设计有进一步的理解和应用;设计的最终结果为学生设计一个具有较完善功能和一定规模的数据库应用系统。
1.2 设计内容说明
1.2.1 项目背景
图书馆图书借阅管理系统主要为不同身份的人提供相对应的服务。
主要包含读者借书、还书服务以及个人信息与图书信息的管理几个方面的内容。
主要是为了实现图书流通的功能。
1.2.2 设计目的
方便借书者借书和还书,实现如下主要功能:
1.图书借阅:完成一次借书、还书的过程。
2.图书管理:添加新书、更新图书信息、销毁图书的过程。
3.用户管理:添加用户、更新用户信息、注销用户的过程。
1.2.3 开发环境
1.数据库管理系统:SQL Server 2005
2.运行环境:Windows XP
第二章设计内容
2.1 系统需求分析
2.1.1 系统概述
设计本系统模拟学校图书管借阅管理系统的内容,包括人事管理员对借阅读者人员的管理、图书管理员对图书及借阅记录的管理、读者查询、借阅与归还书籍等多个功能。
2.1.2 需求分析
1.读者随时可查询出可借阅图书的详细内容,如索取号,正题名,种类编号,责任者,出版社,出版日期,价格,页卷数,标准编号,是否借出等,这样便于读者借书。
2.读者可随时查出自己的借阅情况,如读者证号,索取号,借阅日期,应还日期等。
3.读者可进行借阅、归还和续借(相当于归还后重新借阅)书籍。
借阅时要带上证件(必须包含读者证号),登记借阅时间和归还时间。
3.人事管理员可随时查出读者的信息,如读者证号,姓名,性别,种类编号,单位,住址,电话,登记日期,备注等。
4.人事管理员可进行对读者信息进行操作,如添加、更新与删除等。
5.图书管理员可进行对图书信息进行操作,如添加、更新与删除等。
6.图书管理员可进行对读者借阅记录的添加与删除操作。
2.1.3 系统功能
1.系统功能说明
(1)读者:
①读者借阅:据正题名查询图书。
②读者借阅:据索取号查询图书。
③读者借阅:据责任者查询图书。
④读者借阅:据出版社查询图书。
⑤读者借阅情况:据读者证号查询。
(2)人事管理员:
①人事管理员:据姓名查询人员信息。
②人事管理员:据读者证号查询人员信息。
③人事管理员:添加人员信息。
④人事管理员:更新人员信息。
⑤人事管理员:据读者证号删除人员信息。
(3)图书管理员:
①图书管理员:添加图书信息。
②图书管理员:更新图书信息。
③图书管理员:据索取号删除图书信息。
④图书管理员:添加借阅记录。
⑤图书管理员:删除借阅记录。
2.系统功能模块图
根据系统概述和功能说明,画出该系统的功能模块图,如图6-1所示。
图书馆图书借阅系统
人事管理员—人员信息管理图书管理员—图
书与借阅管理
读者—信息查询
人员基本信息查询人员
信息
的添
加/更
新/删
除
图书
信息
的添
加/更
新/删
除
借阅
记录
的添
加/更
新/删
除
据图
书的
索取
号/正
题名/
责任
者/出
版的
信息
查询
读者
借阅
情况
的信
息查
询
图6-1 系统功能模块图
2.2 概念结构设计
2.2.1 系统局部E-R模型设计
根据系统的需求分析及系统的功能说明,设计各个实体及其属性的E-R模型(即系统总体的局部E-R模型)
1.实体Reader及其属性的E-R模型如图6-2所示。
Reader
读者证号电话住址单位备注
性别姓名登记日期图6-2 Reader 及其属性
2.实体ReaderCategory 及其属性的E-R 模型如图6-3所示。
备注
罚金公式借阅期限允借数量种类名称ReaderCategory
图6-3 ReaderCategory 及其属性
3.实体Book 及其属性的E-R 模型如图6-4所示。
Book 备注标准编码页卷数价格出版日期出版社责任者正题名索取号是否借出
图6-4 Book 及其属性
4.实体BookCategory 及其属性的E-R 模型如图6-5所示。
备注
种类名称BookCategory
图6-5 BookCategory 及其属性
5.关系Borrow 与实体间的关系及其属性的E-R 模型如图6-6所示。
Reader
Book
Borrow
备注
借阅时间应还时间
图6-6 Borrow 与实体间的关系及其属性
2.2.2 系统全局E-R 模型设计
根据系统的需求分析、系统的功能说明及各个实体及其属性的E-R(即系统总体的局部E-R ),设计系统全局的E-R 模型如图6-7所示。
Reader
Book 读者证号Borrow
电话住址单位备注
性别姓名登记日期备注
罚金公式借阅期限允借数量种类名称备注标准编码页卷数价格出版日期出版社责任者正题名索取号备注
种类名称是否借出
Correspond-1
Correspond-2
BookCategory
ReaderCategory
备注
借阅时间应还时间
图6-7 系统全局的E-R 模型
2.3 逻辑结构设计
将概念结构设计阶段设计好的系统全局的E-R模型转换为关系模型,如下所示(加粗划线为关系关键字(即主码)):
■Reader(读者证号,姓名,性别,种类编号,单位,住址,电话,登记日期,备注)
■ReaderCategory(种类编号,种类名称,允借数量,借阅期限,罚金公式,备注)
■Book(索取号,正题名,种类编号,责任者,出版社,出版日期,价格,页卷数,标准编号,是否借出,备注)
■BookCategory(种类编号,种类名称,备注)
■Borrow(读者证号,索取号,借阅日期,应还日期,备注)
2.4 物理结构设计
数据库的物理设计就是为一个给定的逻辑数据模型选取一个最适合应用要求的物理结构的过程。
物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。
因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数数据库的物理设计通常分为两步:
(1)确定数据库的物理结构,在关系数据库中主要指存取方法和存取结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
2.4.1 确定数据库的存储结构
由于本系统的数据库建立不是很大,所以数据存储采用的是一个磁盘的一个分区。
2.4.2 存取方法和优化方法
存取方法是快速存取数据库中数据的技术。
数据库管理系统一般都是提供多种存取方法。
常用的存取方法有三类。
第一类是索引方法,目前主要是B+树索引方法;第二类是聚簇方法;第三类是HASH方法。
数据库的索引类似书的目录。
在书中,目录允许用户不必浏览全书就能迅速地找到所需要的位置。
在数据库中,索引也允许应用程序迅速找到表中的数据,而不必扫描整个数据库。
在书中,目录就是内容和相应页号的清单。
在数据库中,索引就是表中数据和相应存储位置的列表。
使用索引可以大大减少数据的查询时间。
但需要注意的是索引虽然能加速查询的速度,但是为数据库中的每张表都设
置大量的索引并不是一个明智的做法。
这是因为增加索引也有其不利的一面:首先,每个索引都将占用一定的存储空间,如果建立聚簇索引(会改变数据物理存储位置的一种索引),占用需要的空间就会更大;其次,当对表中的数据进行增加、删除和修改的时候,索引也要动态地维护,这样就降低了数据的更新速度。
2.5 数据库的实施
2.5.1 各个实体属性的说明
详细说明逻辑结构设计阶段中转化好的关系模型转中每个实体属性的名称、数据类型、允许空、约束条件及关系。
1. 实体Reader及其属性的说明如表6-8所示。
表6-8 实体Reader及其属性的说明
列名数据类型允许空约束关系(外键)
读者证号char(10) 主键
姓名varchar(50)
性别char(2) 默认:('男');([性别]='男'
OR [性别]='女')
种类编号int 默认:(1) 外键
单位varchar(50) √
住址varchar(50) √
电话varchar(50)
登记日期datetime √
备注text √
2.实体ReaderCategory及其属性的说明如表6-9所示。
表6-9 实体ReaderCategory及其属性的说明
列名数据类型允许空约束关系(外键)
种类编号int 主键
种类名称varchar(50)
允借数量int
借阅期限int 默认:(30)
罚金公式real 默认:(0.1)
备注text √
3.实体Book及其属性的说明如表6-10所示。
表6-10 实体Book及其属性的说明
列名数据类型允许空约束关系(外键)
索取号varchar(20) 主键
正题名varchar(50)
种类编号int 外键
责任者varchar(50)
出版社varchar(50)
出版日期datetime √
价格real √
页卷数int √
标准编号varchar(50)
是否借出char(2) 默认:('否');([是否借出]='
是' OR [是否借出]='否')
备注text √
4.实体BookCategory及其属性的说明如表6-11所示。
表6-11 实体BookCategory及其属性
列名数据类型允许空约束关系(外键)
种类编号int 主键
种类名称varchar(50)
备注text √
5.关系Borrow及其属性的说明如表6-12所示。
表6-12 关系Borrow及其属性的说明
列名数据类型允许空约束关系(外键)
读者证号char(10) 外键
索取号varchar(20) 外键
借阅日期datetime
应还日期datetime
备注text √
2.5.2 建表
在SQL Server 2005中创建数据库“DB课程设计”,并根据各个实体属性说明的实体属性的名称、数据类型、允许空、约束条件及关系建表。
1.创建Reader表如图6-13所示。
图6-13 Reader表
2.创建ReaderCategory表如图6-14所示。
图6-14 ReaderCategory表 3.创建Book表如图6-15所示。
图6-15 Book表
4.创建BookCategory表如图6-16所示。
图6-16 BookCategory表 5.创建Borrow表如图6-17所示。
图6-17 Borrow表
2.5.3 数据库关系图
在数据库“DB课程设计”中新建数据库关系图,选中新建的五张表Reader 表ReaderCategory表、Book表、BookCategory表与Borrow表,得到五张表的关系如图6-18。
图6-18 数据库关系图
2.5.4 数据入库
建表并检查无误之后,将事先准备的好的数据直接输入到各个表中。
1.Reader表数据输入情况如图6-19所示。
图6-19 Reader表数据输入情况
2.ReaderCategory表数据输入情况如图6-20所示。
图6-20 ReaderCategory表数据输入情况
3.Book表数据输入情况如图6-21所示。
图6-21 Book表数据输入情况
4.BookCategory表数据输入情况如图6-22所示。
图6-22 BookCategory表数据输入情况
5.Borrow表数据输入情况如图6-23所示。
图6-23 Borrow表数据输入情况
2.6 数据库的运行与维护
2.6.1 数据库的运行
当一小部分数据输入数据库后,就可以开始对数据库系统进行联合调试,这一阶段要实际运行数据库应用程序,执行对数据库的各种操作,由于没有应用程序,所以只有通过SQL语言直接在数据库中执行对数据库的各种操作。
通过在SQL Server 2005的查询分析器中输入相应的SQL语句,就可以得到相应的结果,具体如下所示:
1.输入SELECT语句:
SELECT*
FROM Book
WHERE索取号='TP392/259.2'
2.对比输出结果与表中内容的一致性。
SQL查询查询的结果如图6-24所示,表中实际内容如图6-25所示。
图6-24 SQL查询查询的结果
图6-25 表中实际内容
2.6.2 数据库的维护
数据库试运行合格后,数据库开发工作就基本完成,即可投入正式运行了。
但是,由于应用环境在不断变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。
在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,包括:
1.数据库的转储和恢复——DBA要针对不同的应用要求制定不同的转储计划,一保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。
2.数据库的安全性、完整性控制——DBA根据实际情况修改原有的安全性控制和数据库的完整性约束条件,以满足用户要求。
3.数据库性能的监督、分析和改造——在数据库运行过程中,DBA必须监督系统运行,对监测数据进行分析,找出改进系统性能的方法。
4.数据库的重组织与重构造——数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织或部分重组织。
2.7 数据库中存储过程的创建与测试
由于该图书馆借阅管理系统的操作无非就是人事管理员对读者人员信息的管理、图书管理员对图书及借阅记录的管理、读者查询、借阅与归还书籍,这些操作类型都是比较固定的,因此可利用存储过程将这些固定的操作集中起来,由SQL Server数据库服务器来执行。
该图书馆管理系统创建了人事管理员、图书管理员以及读者三个单位不同类型的各个操作的存储过程,并对其进行了正确性测试。
2.7.1 读者
1.(1)读者借阅:据正题名查询图书。
/*读者借阅_据正题名查询图书*/
CREATE PROCEDURE读者借阅_据正题名查询图书@BOOK_NAME varchar(50)
AS
SELECT*
FROM Book
WHERE正题名=@BOOK_NAME
GO
(2)测试:过程据正题名查询图书测试结果如图6-26所示。
EXECUTE读者借阅_据正题名查询图书@BOOK_NAME='离散数学'
图6-26 过程据正题名查询图书测试结果
2.(1)读者借阅:据索取号查询图书。
/*读者借阅_据索取号查询图书*/
CREATE PROCEDURE读者借阅_据索取号查询图书@CALL_NUMBER varchar(20)
AS
SELECT*
FROM Book
WHERE索取号=@CALL_NUMBER
GO
(2)测试:过程据索取号查询图书测试结果如图6-27所示。
EXECUTE读者借阅_据索取号查询图书@CALL_NUMBER='O158/21'
图6-27 过程据索取号查询图书测试结果
3.(1)读者借阅:据责任者查询图书。
/*读者借阅_据责任者查询图书*/
CREATE PROCEDURE读者借阅_据责任者查询图书@AUTHOR varchar(50) AS
SELECT*
FROM Book
WHERE责任者=@AUTHOR
GO
(2)测试:过程据责任者查询图书测试结果如图6-28所示。
EXECUTE读者借阅_据责任者查询图书@AUTHOR='钱学忠'
图6-28 据责任者查询图书测试结果
4. (1)读者借阅:据出版社查询图书。
/*读者借阅_据出版社查询图书*/
CREATE PROCEDURE读者借阅_据出版社查询图书@PRESS varchar(50) AS
SELECT*
FROM Book
WHERE出版社=@PRESS
GO
(2)测试:过程据出版社查询图书测试结果如图6-29所示。
EXECUTE读者借阅_据出版社查询图书@PRESS='清华大学'
图6-29 过程据出版社查询图书测试结果
5.(1)读者借阅情况:据读者证号查询。
/*读者借阅情况_据读者证号查询*/
CREATE PROCEDURE读者借阅情况_据读者证号查询@READER_NUMBER char(10)
AS
SELECT Book.索取号,正题名,借阅日期,应还日期,标准编号
FROM Borrow,Reader,Book
WHERE Borrow.索取号=Book.索取号
AND Borrow.读者证号=Reader.读者证号
AND Borrow.读者证号=@READER_NUMBER
GO
(2)测试:过程据读者证号查询借阅情况测试结果如图6-30。
EXECUTE读者借阅情况_据读者证号查询@READER_NUMBER='1260411107'
图
6-30 过程据读者证号查询借阅情况测试结果
2.7.2 人事管理员
1.(1)人事管理员:据姓名查询人员信息。
/*人事管理员_据姓名查询人员信息*/
CREATE PROCEDURE人事管理员_据姓名查询人员信息@NAME varchar(50)
AS
SELECT*
FROM Reader
WHERE姓名=@NAME
GO
(2)测试:过程据姓名查询人员信息测试结果如图6-31所示。
EXECUTE人事管理员_据姓名查询人员信息@NAME='流浪'
图6-31 程据据姓名查询人员信息测试结果
2.(1)人事管理员:据读者证号查询人员信息。
/*人事管理员_据读者证号查询人员信息*/
CREATE PROCEDURE人事管理员_据读者证号查询人员信息@READER_NUMBER char(10)
AS
SELECT*
FROM Reader
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程据读者证号查询人员信息测试结果如图6-32所示。
EXECUTE人事管理员_据读者证号查询人员信息@READER_NUMBER='1260411107'
图6-32 过程据读者证号查询人员信息测试结果
3.(1)人事管理员:添加人员信息。
/*人事管理员_添加人员信息*/
CREATE PROCEDURE人事管理员_添加人员信息
@READER_NUMBER char(10),@NAME varchar(50),@SEX char(2),@RANGE_NUMBER int,@COMPANY varchar(50),
@ADD varchar(50),@TEL varchar(50),@DATE datetime,@REMARK text
AS
INSERT INTO Reader V ALUES(@READER_NUMBER,@NAME,@SEX,@RANGE_NUMBER ,@COMPANY,
@ADD,@TEL,@DATE,@REMARK)
GO
(2)测试:过程添加人员信息测试结果如图6-33(a)、(b)所示。
EXECUTE人事管理员_添加人员信息
@READER_NUMBER='1260411180',@NAME='翟萌',@SEX='男',@RANGE_NUMBER='4',
@COMPANY='12104111',@ADD='3#222',@TEL='',@DA TE='2014-09-14',
@REMARK=' '
6-33(a) 过程添加人员信息测试结果
图6-33(b) 过程添加人员信息测试结果
4.(1)人事管理员:更新人员信息。
/*人事管理员_更新人员信息*/
CREATE PROCEDURE人事管理员_更新人员信息@READER_NUMBER char(10),
@NAME varchar(50),@SEX char(2),@RANGE_NUMBER int,@COMPANY varchar(50),
@ADD varchar(50),@TEL varchar(50),@DATE datetime,@REMARK text
AS
UPDATE Reader
SET姓名=@NAME,性别=@SEX,种类编号=@RANGE_NUMBER,单位=@COMPANY, 住址=@ADD,电话=@TEL,登记日期=@DATE,备注=@REMARK
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程更新人员信息测试结果如图6-34(a)、(b)所示。
EXECUTE人事管理员_更新人员信息
@READER_NUMBER='1260411107',@NAME='王吉',@SEX='男',@RANGE_NUMBER='4',
@COMPANY='12104111',@ADD='3#210',@TEL='',@DA TE='2014-02-20',
@REMARK=' '
6-34(a) 过程更新人员信息测试结果
图6-34(b) 过程更新人员信息测试结果
5.(1)人事管理员:据读者证号删除人员信息。
/*人事管理员_据读者证号删除人员信息*/
CREATE PROCEDURE人事管理员_据读者证号删除人员信息@READER_NUMBER char(10)
AS
DELETE FROM Reader
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程据读者证号删除人员信息测试结果如图6-35(a)、(b)所示。
EXECUTE人事管理员_据读者证号删除人员信息@READER_NUMBER='1260411180'
6-35(a) 过程据读者证号删除人员信息测试结果
图6-35(b) 过程据读者证号删除人员信息测试结果
2.7.3 图书管理员
1.(1)人事管理员:据姓名查询人员信息。
/*人事管理员_据姓名查询人员信息*/
CREATE PROCEDURE人事管理员_据姓名查询人员信息@NAME varchar(50)
AS
SELECT*
FROM Reader
WHERE姓名=@NAME
GO
(2)测试:过程据姓名查询人员信息测试结果如图6-31所示。
EXECUTE人事管理员_据姓名查询人员信息@NAME='流浪'
图6-31 过程据姓名查询人员信息测试结果
2.(1)人事管理员:据读者证号查询人员信息。
/*人事管理员_据读者证号查询人员信息*/
CREATE PROCEDURE人事管理员_据读者证号查询人员信息@READER_NUMBER char(10)
AS
SELECT*
FROM Reader
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程据读者证号查询人员信息测试结果如图6-32所示。
EXECUTE人事管理员_据读者证号查询人员信息@READER_NUMBER='1260411107'
图6-32 过程据读者证号查询人员信息测试结果
3.(1)人事管理员:添加人员信息。
/*人事管理员_添加人员信息*/
CREATE PROCEDURE人事管理员_添加人员信息
@READER_NUMBER char(10),@NAME varchar(50),@SEX char(2),@RANGE_NUMBER int,@COMPANY varchar(50),
@ADD varchar(50),@TEL varchar(50),@DATE datetime,@REMARK text
AS
INSERT INTO Reader V ALUES(@READER_NUMBER,@NAME,@SEX,@RANGE_NUMBER ,@COMPANY,
@ADD,@TEL,@DATE,@REMARK)
GO
(2)测试:过程添加人员信息测试结果如图6-33(a)、(b)所示。
EXECUTE人事管理员_添加人员信息
@READER_NUMBER='1260411180',@NAME='翟萌',@SEX='男',@RANGE_NUMBER='4',
@COMPANY='12104111',@ADD='3#222',@TEL='',@DA TE='2014-09-14',
@REMARK=' '
6-33(a) 过程添加人员信息测试结果
图6-33(b) 过程添加人员信息测试结果
4.(1)人事管理员:更新人员信息。
/*人事管理员_更新人员信息*/
CREATE PROCEDURE人事管理员_更新人员信息@READER_NUMBER char(10),
@NAME varchar(50),@SEX char(2),@RANGE_NUMBER int,@COMPANY varchar(50),
@ADD varchar(50),@TEL varchar(50),@DATE datetime,@REMARK text
AS
UPDATE Reader
SET姓名=@NAME,性别=@SEX,种类编号=@RANGE_NUMBER,单位=@COMPANY, 住址=@ADD,电话=@TEL,登记日期=@DATE,备注=@REMARK
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程更新人员信息测试结果如图6-34(a)、(b)所示。
EXECUTE人事管理员_更新人员信息
@READER_NUMBER='1260411107',@NAME='王吉',@SEX='男',@RANGE_NUMBER='4',
@COMPANY='12104111',@ADD='3#210',@TEL='',@DA TE='2014-02-20',
@REMARK=' '
6-34(a) 过程更新人员信息测试结果
图6-34(b) 过程更新人员信息测试结果
5.(1)人事管理员:据读者证号删除人员信息。
/*人事管理员_据读者证号删除人员信息*/
CREATE PROCEDURE人事管理员_据读者证号删除人员信息@READER_NUMBER char(10)
AS
DELETE FROM Reader
WHERE读者证号=@READER_NUMBER
GO
(2)测试:过程据读者证号删除人员信息测试结果如图6-35(a)、(b)所示。
EXECUTE人事管理员_据读者证号删除人员信息@READER_NUMBER='1260411180'
6-35(a) 过程据读者证号删除人员信息测试结果
图6-35(b) 过程据读者证号删除人员信息测试结果
第三章结论与总结
通过两周的数据库课程设计,使我对数据库原理及应用这一门课程有了进一步的认识,让我把这学期所学的理论知识与实践联系起来,为我为以后的实践打下坚实的基础
在课程设计中我遇到了大大小小多种问题,例如:默认值如何设定如何检查默认值是否设置成功、创建好存储过程后如何找到自己建立的存储、为什么表中有数据但是查询不到等等。
这一方面说明自己对自己知识的掌握还不是特别牢固,另外就是自己的老毛病粗心大意;不过从另一方面这也是我学习提高的过程,发现问题、提出问题,解决问题,使我从不足之处出发,寻找新的学习方向,还有就是告诫自己粗心后果很严重,需要慢慢克服这个毛病。
由于课程设计临近期末,好多考试“齐聚一堂”,这使得本来时间就短的课程设计更加仓促了,再加上自己的实际开发经验比较少,所以许多方面做得还不是是特别完善,有些功能实现得并不理想,例如:不能自动计算出图书的限还时间并进行存储、不能自动计算出读者借阅超时所要缴纳的费用,还有就是没来得及为自己设计的图书馆借阅管理系统创建应用程序窗口等,这些都是这次课程设计中的“遗憾”!不过通过这次的课程设计对我以后进行更为复杂和更大的设计任务打下了坚实的基础,这是值得肯定的。
最后,对老师一学期的以来的教诲以及对我们的照顾表示感谢,谢谢老师!参考文献
[1]《数据库原理及应用》钱雪忠主编,北京邮电大学出版社,2010.6 第三版
[2]《数据库原理及技术课程设计》钱雪忠罗海驰陈国俊编著,清华大学出版社,2009.2
[3]《数据库原理及应用实验指导》钱学忠陈国俊等编著,北京邮电大学出版社,2010.7 附录
数据库‘DB课程设计’源文件:。