数据库图书管理系统课程设计.docx
- 文档编号:9914304
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:12
- 大小:74.80KB
数据库图书管理系统课程设计.docx
《数据库图书管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
数据库图书管理系统课程设计
课程设计报告
课程设计题目:
图书借阅管理系统数据库的设计与实现
专业:
软件工程(电子商务)
班级:
10211124
姓名:
王新民
学号:
1021112409
指导教师:
游胜玉
2011年11月31日
实验题目:
图书借阅管理系统数据库的设计与实现
实验时间:
2011.11.27-2011.12.02
实验地点:
软件楼303室
实验目的:
通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。
实验要求:
设计一个图书借阅管理系统,实现下列功能:
1.图书信息的维护(包括录入,修改和删除);
2.读者信息的维护(包括录入,修改和删除);
3.借阅(借,还)信息的维护(包括借,还信息录入,修改和删除);
实验思路:
1、录入一些图书信息、读者信息和管理员信息;
2、给定借阅信息显示借阅情况
3、按照图书馆的情况进行维护(对图书,读者的信息的修改)
关系模型:
读者(读者学号,读者姓名,读者性别,联系电话,所在系)
图书(书号,书名,作者,出版社,出版日期)
借阅(工作号,书号,读者学号,借书日期,还书日期,是否续借)
读者信息表:
读者学号
读者姓名
读者性别
联系电话
所在系
10211101
司马南
男
1234567
软件
12011102
安德森
男
1235436
软件
10211103
艾丝凡
女
5673434
电子
10211104
阿杜
男
1234127
英语
10211105
范德
男
2345678
软件
10211106
范唯
女
1234877
经管
10211107
李静
娜
9874567
外国语
图书信息表:
1001
数据库
陈城
北京大学出版社
2000-10-21
1002
数学
章年
清华大学出版社
2000-111-21
1003
英语
唐强
人民邮电出版社
2000-06-21
1004
C++
陈好
天津出版社
2002-10-21
1005
死神
唐冰
北京大学出版社
2000-10-12
1006
仙逆
唐少
河北出版社
2000-10-12
1007
大学英语
李国华
上海教育出版社
2000-10-12
借阅表:
书号
读者学号
借书日期
还书日期
是否续借
1003
10211103
2011-11-12
2011-12-21
否
1001
10211102
2011-11-15
2011-12-21
否
1002
10211103
2011-11-12
2011-12-21
否
1005
10211101
2011-10-12
2011-11-21
否
1007
10211106
2011-07-02
2011-09-21
否
E-R图
实现过程:
创建数据库:
createdatabase图书
on
(name=图书_data,
filename='d:
\teachdata.mdf',
size=10,
maxsize=50,
filegrowth=5)
logon
(name=图书_log,
filename='d:
\teachdata.ldf',
size=10,
maxsize=50,
filegrowth=5)
创建表:
/*读者表*/
createtable读者
(读者学号varchar(10)notnullprimarykey,
读者姓名varchar(10)notnull,
读者性别varchar
(2)notnull,
联系电话varchar(12),
所在系varchar(20)notnull)
/*管理员表*/
createtable管理员
(工作号varchar(10)notnullprimarykey,
姓名varchar(12)notnull,
性别varchar
(2)notnull,
电话varchar(12),
家庭住址varchar(50))
/*图书表*/
createtable图书
(书号varchar(10)notnullprimarykey,
书名varchar(50)notnull,
作者varchar(12)notnull,
出版社varchar(50),
出版日期datetime)
/*借阅表*/
createtable借阅
(工作号char(10)notnull,
书号varchar(10)notnull,
读者学号char(10)notnull,
借书日期datetimenotnull,
还书日期datetimenotnull,
是否续借char(4)notnull)
创建索引:
createuniqueindex图书索引on图书(书号)
createuniqueindex读者索引on读者(读者学号)
createuniqueindex管理员索引on管理员(工作号)
createuniqueindex借阅索引on借阅(工作号,读者学号,书号)
创建视图:
createview查询_view(读者学号,读者姓名,读者性别,所在系,书名,借书日期)
as
select借阅.读者学号,读者姓名,读者性别,所在系,书名,借书日期
from读者,图书,借阅
where读者.读者学号=借阅.读者学号and借阅.书号=图书.书号
创建触发器:
/*修改读者学号*/
createtrigger读者_修改
on读者
forupdate
asdeclare@old_读者学号varchar(10)
declare@new_读者学号varchar(10)
select@old_读者学号=读者学号fromdeleted
select@new_读者学号=读者学号frominserted
update借阅
set读者学号=@new_读者学号
where读者学号=@old_读者学号
/*删除读者*/
createtrigger读者_删除
on读者
fordelete
as
deletefrom借阅
where读者学号=(select读者学号fromdeleted)
/*修改图书编号*/
createtrigger图书_修改
on图书
forupdate
asdeclare@old_书号varchar(10)
declare@new_书号varchar(10)
select@old_书号=书号fromdeleted
select@new_书号=书号frominserted
update借阅
set书号=@new_书号
where书号=@old_书号
droptrigger图书_删除
/*删除图书*/
createtrigger图书_删除
on图书
fordelete
as
deletefrom借阅
where书号=(select书号fromdeleted)
创建借书本数存储过程:
/*借书统计*/
createprocedureproc_借书本数@读者学号varchar(10)
as
select读者学号,count(*)as借书本数
from借阅
where读者学号=@读者学号
groupby读者学号
相关数据:
insertinto读者
values('10211101','司马南','男','1234567','软件')
insertinto读者
values('10211102','安德森','男','1235436','软件')
insertinto读者
values('10211103','艾丝凡','女','5673434','电子')
insertinto读者
values('10211104','阿杜','男','1234567','英语')
insertinto读者
values('10211105','范德','男','1234567','软件')
insertinto读者
values('10211106','范唯','女','1234877','经管')
insertinto读者
values('10211107','李静','女','9874567','外国语')
insertinto管理员
values('0001','张三','男','2136932','江西')
insertinto管理员
values('0002','李四','女','2143332','上饶')
insertinto管理员
values('0003','王五','男','2133432','九江')
insertinto图书
values('1001','数据库','陈城','北京大学出版社','2000-10-21')
insertinto图书
values('1002','数学','章年','清华大学出版社','2000-11-21')
insertinto图书
values('1003','英语','唐强','人邮电民出版社','2000-06-21')
insertinto图书
values('1004','C++','陈好','天津出版社','2002-10-21')
insertinto图书
values('1005','死神','唐冰','北京大学出版社','2000-10-12')
insertinto图书
values('1006','仙逆','唐少','河北出版社','2000-10-12')
insertinto图书
values('1007','大学英语','李国华','上海教育出版社','2000-10-12')
insertinto借阅
values('0001','1003','10211103','2011-11-12','2011-12-21','否')
insertinto借阅
values('0002','1001','10211102','2011-11-15','2011-12-21','否')
insertinto借阅
values('0001','1002','10211103','2011-11-12','2011-12-21','否')
insertinto借阅
values('0001','1005','10211101','2011-10-12','2011-11-21','否')
insertinto借阅
values('0001','1007','10211107','2011-08-12','2011-10-10','否')
insertinto借阅
values('0003','1004','10211106','2011-07-02','2011-09-21','否')
程序测试:
/*查看读者信息*/
select*
from读者
/*查看图书*/
select*
from图书
/*查看借阅*/
select*
from借阅
/*查看视图*/
select*
from查询_view
/*查看10211102同学借书本书*/
execproc_借书本数@读者学号='10211102'
/*查看司马南同学借书记录*/
select*
from读者,借阅
where(读者.读者学号=借阅.读者学号)and(读者姓名='司马南')
/*图书信息的维护(录入,修改,删除)*/
insertinto图书
values('1008','工程数学','陈冰','北京大学出版社','2004-10-21')
update图书
set书号='1009'
where书名='数据库'
deletefrom图书
where书号='1007'
/*读者信息的维护(录入,修改,删除)*/
insertinto读者
values('10211108','吴德昌','男','1278943','兵器')
update读者
set读者学号='10211111'
where读者姓名='司马南'
deletefrom读者
where读者学号='10211111'
实验总结:
经过一个星期的不断编写修改,我的程序虽然还显稚嫩,但已经初具雏形。
程序已基本实现对图书和读者信息的录入,修改和删除。
期间也遇到许多问题,比如对用触发器关联多张表。
以及存储过程的问题,但都在同学的帮助下解决了。
自身也通过同学的帮助更加了解了数据库的编写。
实验心得:
有关数据库的心得体会,总的来说,受益匪浅。
在这些天中,我学到了许多关于数据库的知识,关于建库、建表、触发器、存储过程的一系列对自己来说还是新鲜的知识。
也逐渐体会到了这门学科的深奥与庞大。
并且对它产生了浓厚的兴趣,也认真去读书本的知识,并上网查阅了不少资料。
虽然现在懂的还不是很多,但起码会编写一些简单的代码。
并且感觉到创造思维在其中也起到不小的作用。
希望在今后的生活中,SQL能给我更多的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 图书 管理 系统 课程设计