数据库系统课程设计报告图书管理系统.docx
- 文档编号:28872460
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:22
- 大小:571.85KB
数据库系统课程设计报告图书管理系统.docx
《数据库系统课程设计报告图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库系统课程设计报告图书管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
数据库系统课程设计报告图书管理系统
1绪论
1.1项目简介
本系统利用PB处理数据库的功能,实现对图书的管理和查询,主要功能为管理有关读者、图书、管理员、借阅情况信息等。
本系统的结构分为图书信息管理模块、读者信息管理模块、管理员信息管理模块、借阅信息管理模块、管理信息模块等。
1.2设计目的
随着图书馆规模的增大,图书量的增加,有关图书的信息量也成倍增加,对于这些信息的管理逐渐成为棘手的问题,在传统的人工方式下,图书管理极容易变得混乱,对人力物力的消耗也特别大,而随着信息技术的发展,计算机已经渗透到人们生活中的各个领域,它可以实现信息的自动化处理,提高正确性实用性。
因此有效地现代化的图书管理方式可使图书馆合理高速的运转,方便老师和同学的学习,可以提高工作效率,做到规范管理、科学统计、科学查询,使图书馆更好的为我们服务。
1.3设计内容
拥有相应用户名的人员登陆系统。
读者模块可以查询个人信息,修改个人信息,查询借阅过的书籍的情况,模糊或精确查询要借阅的书籍,查询借阅是否超时或者罚款信息。
管理员模块,可以实现新进图书的录入,查询个人信息,查询被借阅的图书情况,查询借阅者的情况,按照归还日期浏览书籍情况,对相应的超时间的读者进行罚款,对有误的书籍或者借阅者的情况进行更新或删除,备份还原数据库的信息。
1.4应用范围
本系统适用于任何学校或单位对于图书的管理和查询,也可以是其他刊物的借阅管理。
所以其实用范围非常广,不受地点、环境的影响,只要是期刊、报纸、图书等的管理和查询,本系统皆能有效地使用。
2需求分析
2.1数据需求
(1)图书信息,包括书号、书名、作者、出版社、是否被借阅
(2)读者信息,包括读者编号、姓名、性别、年龄
(3)已借阅的书籍信息,包括书号、书名、作者、出版社
(4)管理员信息,管理员编号、姓名、性别、职业、家庭住址、联系电话
(5)借阅信息,包括书号和读者编号
(6)拥信息,包括读者编号,书号,归还日期,剩余时间、是否超时、应缴纳罚款
(7)管理1信息,包括管理员编号、书号
(8)管理2信息,包括管理员编号、书号
2.2事务需求
经过实际考察、咨询和分析,图书管理和查询系统主要应该具有以下功能模块:
(1)在图书信息部分,要求:
可以浏览所有图书的信息
可以插入、删除、更改图书信息
(2)在读者信息部分,要求:
可以浏览读者信息
可以更改读者个人信息
(3)在已借阅书籍部分,要求:
可以存储已经被借阅出的书籍信息
可以查询、浏览所有被借阅的书籍信息
(4)在管理员信息部分,要求:
可以浏览所有管理员的信息
可以更改管理员个人信息
(5)在借阅信息部分,要求:
可以存储、查询读者要借阅图书的信息
(6)在拥有信息部分,要求:
可以存储、查询读者已经借阅的图书信息
(7)在管理信息部分,要求:
可以存储、浏览管理员管理书籍的信息
2.3详细功能分析
图表1
登陆页面有读者和管理员登陆,读者登陆有个人信息、借阅情况、借阅书籍,读者个人信息可以显示,借阅情况有已借阅书籍、已超时书籍、罚款情况,借阅书籍有预览所有图书和借阅书籍,预览图书可以预览所有图书、未被借阅书籍、根据书名查询、书号查询、模糊查询,借阅书籍有根据书号查询借阅、模糊查询借阅、根据书名查询借阅;管理员登陆有管理员个人信息、图书管理、借阅管理、数据管理,个人信息可以显示,借阅管理有借阅者姓名、超期限书籍、超期限借阅者、总罚款量,数据管理有数据库的备份和还原,图书管理有所有图书、已被借阅书籍、录入新书、更改书籍信息、删除错误信息等。
2.4数据字典
用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。
收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后的具体设计带下基础。
针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
1.读者信息,包括的数据项有:
读者编号、姓名、性别、年龄
2.图书信息,包括的数据项有:
书号、书名、作者、出版社、是否被借阅
3.已借阅书籍信息,包括的数据项有:
书号、书名、作者、出版社
4.管理员信息,包括的数据项有:
管理员编号、姓名、性别、职业、家庭住址、联系电话
5.借阅信息,包括的数据项有:
书号、读者编号
6.拥有信息,包括的数据项有:
读者编号、书号、归还日期、剩余时间、是否被借阅、应缴纳罚款
7.管理信息,包括的数据项有:
管理员编号、书号
有了上面的数据库结构、数据项和数据流程,就可以进行下面的数据库设计了。
2.5开发运行环境
(1)前台:
<1>硬件要求:
CPU:
英特尔Corei3以上
内存:
1G以上容量
显卡:
512MB或以上独立显卡
<2>软件要求:
操作系统:
Windows7/XP系统
开发工具:
PowerBuilder
开发语言:
嵌入式SQL
(2)后台数据库:
SQLServer
(3)数据库服务器:
LENOVO-PC
2.6安全保障
1.完整性约束提供一定的安全保护机制,防止非法性错误
(1)实体完整性:
建表时,主码的设定
(2)参照完整性:
外码约束
(3)自定义完整性:
比如图书表建立时,书名、作者等都不空(notnull),是否被借阅属性只能从是或否中借阅(是否被借阅in('是','否'))
2.用户标识与鉴别,在登陆时,进行合法性检查,必须有相应的用户名和密码才能登陆,提供最外层的安全保护措施。
3.系统使用权限,只允许管理员和属主(owner)使用,防止非法使用。
4.防止随便的授权,权限相对明确。
3概念设计
3.1实体及联系抽象
1.实体
图书,读者,已借阅书籍,管理员
2.属性
图书属性有书号,书名,作者,出版社,是否被借阅
读者属性有读者编号,性名,性别,年龄
已借阅书籍属性有书号,书名,作者,出版社
管理员属性有管理员编号,姓名,性别,职业,家庭住址,联系电话
3.联系
联系有借阅,拥有,管理1,管理2
图书与读者通过借阅联系,是m:
n关系;读者与已借阅书籍通过拥有联系,是1:
n关系;管理员与图书通过管理1联系,是m:
n关系;管理员与已借阅书籍,是m:
n关系
3.2E-R图
23
45
3.3关系模式
图书(书号,书名,作者,出版社,是否被借阅)
读者(读者编号,姓名,性别,年龄)
已借阅书籍(书号,书名,作者,出版社)
管理员(管理员编号,姓名,性别,职业,家庭住址,联系电话)
借阅(书号,读者编号)
拥有(读者编号,书号,归还日期,剩余时间,是否超时,应缴纳罚款)
管理1(管理员编号,书号)
管理2(管理员编号,书号)
4逻辑设计
4.1各表功能
图书:
可以存储图书的所有信息,录入新书,查询是否被借阅信息
读者:
存储读者个人信息,查询读者个人信息
已借阅书籍:
存储被借阅者借阅出的书籍信息
管理员:
存储管理员个人信息,查询管理员信息
借阅:
读者借阅书籍情况可以从此表查阅或者显示
拥有:
存储借阅者借阅书籍情况,查询相应的信息
管理1:
管理员管理图书馆所有图书的情况,可以存储、查询
管理2:
管理员管理已经借阅的书籍情况,可以存储、查询
4.2各表结构
(1)createtable图书
(书号char(50)primarykey,
书名char(50)notnull,
作者char(50)notnull,
出版社char(50)notnull,
是否被借阅char(50)check(是否被借阅in('是','否'))
)
(2)createtable读者
(读者编号char(50)primarykey,
姓名char(50)notnull,
性别char(50)notnull,
年龄intnotnull,
)
(3)createtable已借阅书籍
(书号char(50)primarykey,
书名char(50)notnull,
作者char(50)notnull,
出版社char(50)notnull,
)
(4)createtable管理员
(管理员编号char(50)primarykey,
姓名char(50)notnull,
性别char(50)notnull,
职业char(50),
家庭住址char(50)notnull,
联系电话char(50)notnull,
)
(5)createtable借阅
(书号char(50),
读者编号char(50),
primarykey(书号,读者编号),
foreignkey(书号)references图书(书号),
foreignkey(读者编号)references读者(读者编号)
)
(6)createtable拥有
(书号char(50),
读者编号char(50),
归还日期char(50)notnull,
剩余时间char(50)notnull,
是否超时char(50)check(是否超时in('是','否')),
应缉拿罚款int,
primarykey(书号,读者编号),
foreignkey(书号)references已借阅书籍(书号),
foreignkey(读者编号)references读者(读者编号)
)
(7)createtable管理1
(管理员编号char(50),
书号char(50),
primarykey(管理员编号,书号),
foreignkey(管理员编号)references管理员(管理员编号),
foreignkey(书号)references图书(书号)
)
(8)createtable管理2
(管理员编号char(50),
书号char(50),
primarykey(管理员编号,书号),
foreignkey(管理员编号)references管理员(管理员编号),
foreignkey(书号)references已借阅书籍(书号)
)
4.3表关系图
5物理设计
5.1物理存储
数据库存储位置
MicrosoftSQLServer->企业管理器->打开MicrosoftSQLServer组->数据库->图书管理
备份
图书管理->所有任务->备份数据库->常规(选择数据库:
图书管理,选择目的)->确定
还原
图书管理->所有任务->还原数据库->常规(选择还原为数据库:
图书管理,选择要还原的数据库备份)->确定
5.2完整性约束
(1)实体完整性:
图书表中书号为主码,读者表中读者编号为主码,已借阅书籍表中书号为主码,管理员表中管理员编号为主码,借阅表中书号和读者编号共同为主码,拥有表中读者编号和书号共同为主码,管理1表中管理员编号和书号共同为主码,管理2表中管理员编号和书号共同为主码。
(2)参照完整性:
借阅表中foreignkey(书号)references图书(书号)
foreignkey(读者编号)references读者(读者编号)
拥有表中foreignkey(书号)references已借阅书籍(书号)
foreignkey(读者编号)references读者(读者编号)
管理1表中foreignkey(管理员编号)references管理员(管理员编号)
foreignkey(书号)references图书(书号)
管理2表中foreignkey(管理员编号)references管理员(管理员编号)
foreignkey(书号)references已借阅书籍(书号)
(3)自定义完整性:
所有的notnull条件
图书表中check(是否被借阅in('是','否'))
6系统实现与维护
6.1模块1
查询功能
<1>读者、管理员个人信息
读者信息管理员信息
显示读者个人信息程序如下:
stringsno,sname,ssex,sage,saddr
declareLHPcursorfor//声明游标LHP
select*
from读者
where读者编号='10061';
openLHP;//打开游标
fetchLHPinto:
sno,:
sname,:
ssex,:
sage,:
saddr;//取数据
dowhileSQLCA.SQLCODE=0
lb_1.additem(""+sno+""+sname+""+ssex+""+sage+""+saddr)
fetchLHPinto:
sno,:
sname,:
ssex,:
sage,:
saddr;
loop
closeLHP;//关闭游标
<2>书籍信息、罚款情况
读者已借阅书籍读者被罚款量
<3>模糊查询
根据书名模糊查询
stringsno,sname,ssex,saddr,sss
sss="%"+trim(sle_1.text)+"%"
declareLHPcursorfor//声明游标
select书名,书号,作者,出版社
from图书
where书名like:
sss;
lb_1.reset()//清除
openLHP;//打开游标
fetchLHPinto:
sno,:
sname,:
ssex,:
saddr;//取数据
dowhileSQLCA.SQLCODE=0
lb_1.additem(sno+""+sname+""+ssex+""+saddr)
fetchLHPinto:
sno,:
sname,:
ssex,:
saddr;
loop
closeLHP;//关闭游标
<4>借阅情况
书名查找书号查找借阅
6.2模块2
插入、更新、删除功能
录入更新删除
更新功能的程序入下:
stringsno1,sname1,writer1,saddr1,isor1,sno2,sname2,writer2,saddr2,isor2
sno1=trim(sle_1.text)
sname1=trim(sle_2.text)
writer1=trim(sle_3.text)
saddr1=trim(sle_4.text)
isor1=trim(sle_5.text)
sno2=trim(sle_6.text)
sname2=trim(sle_7.text)
writer2=trim(sle_8.text)
saddr2=trim(sle_9.text)
isor2=trim(sle_10.text)//将单行编辑框中的数据取出放于几个变量中
update图书//更新开始
set书号=:
sno1,书名=:
sname1,作者=:
writer1,出版社=:
saddr1,是否被借阅=:
isor1
where书号=:
sno2and书名=:
sname2and作者=:
writer2and出版社=:
saddr2and是否被借阅=:
isor2;
Messagebox("恭喜!
","更新成功!
");//显示成功信息
6.3模块3
数据库的备份和还原
数据库备份数据库还原
备份数据库程序如下:
stringbackup1
stringpathstring
backup1=sle_1.text
pathstring=sle_2.text
ifbackup1=''then
messagebox("提示信息","请输入备份数据库名称!
")
return
endif
ifpathstring=''then
messagebox("提示信息","请输入备份路径!
")
return
endif
disconnectusingsqlca;//断开数据库
sqlca.autocommit=true
connectusingSQLCA;
backup1="backupdatabase"+SQLCA.Database+"todisk="+"'"+pathstring+"'";//备份数据库到指定路径
messagebox(SQLCA.Database,backup1)
executeimmediate:
backup1;
ifsqlca.sqlcode=0then
messagebox("提示信息","数据库备份成功!
")
else
messagebox("提示信息","错误"+sqlca.sqlerrtext)
endif
sqlca.autocommit=false
7总结
7.1系统实现程度
预期功能如下:
1.存储一定量的信息(图书信息,读者信息,管理员信息),方便管理和数据操作,包括:
(1)原有图书的存储以及管理员对新进图书的存储。
(2)读者的个人信息以及借阅信息(借阅者个人编号,借阅的图书编号,应归还日期,剩余日期等)
(3)管理员的个人信息
2.实现数据的查询和修改,包括:
(1)图书管理员对所有图书的管理查询以及对借阅情况的查询(借阅的书的情况,借阅者的情况,归还日期的情况,超时罚款情况),同时对所有的信息可以进行备份或还原。
(2)读者对个人信息、已借书籍、要借书籍的搜索或查询。
3.提供一定的安全机制,包括:
(1)防止无授权的访问,非管理员和读者拒绝访问,管理员和读者没有相应的password拒绝访问。
(2)防止不符合约束机制的任意信息的插入、修改和删除。
例如,对于存储书籍信息的关系,插入新的图书时,要检查完整性约束条件,对于主码,外码,用户定义的约束都要检查;对于借阅关系,有相应的借阅时间和归还时间作为约束,超时需要罚款。
4.实现功能的列表显示。
最终功能全部很好的实现完成,没有遗留下过多的问题。
7.2问题及难点
(1)E-R图的设计,由于实体、属性和联系比较多,E-R图在设计过程中显得比较困难,出现的问题也较多。
(2)E-R图到关系模式的转换是难点。
(3)表创建过程中,外码约束条件设定要考虑多个表的联系,所以经常会出错。
(4)模糊查询的实现中,模糊查询的代码看似简单,但是总容易实现错误,因此在变量的声明中要这样实现,假设sss是变量,则sss="%"+trim(sle_1.text)+"%"。
(5)更新书籍信息,代码实现比较困难。
(6)数据库的备份中,要用嵌入式SQL语言来编写。
7.3收获与体会
两周的时间短暂而漫长,开始之前就已经预感到课设的困难所在,但是我还是下定决心要好好的完成课程设计。
刚开始,选择题目就是一项令人头痛的事情,面对着自己从来没有做过的题目,可能自己都感觉生疏,因此我想我还是选择图书管理,虽然大多数人不选择这个题目,但是我喜欢自己拿主意。
在经过一上午的思考和查阅资料以后,我就开始进行大体的构造,但是在建立E-R图的过程中,就遇到了相当的困难,没办法,硬着头皮往下做,终于经过很长时间的坚持,我还是完成了一份比较好的关系模式。
紧接着,程序逐渐深入,困难也越来越大,包括进入系统,读者和管理员系统,相应的设计界面虽然简单,但是要对所有的窗口用SQL语言来实现还是很困难,因为我们的动手能力还是很有限,但是我还是通过查阅书籍和上网搜资料逐渐克服一个又一个的程序问题,最终程序能大体运行了。
最后,通过老师的建议,我又对程序和界面实行了一定的修改,使其更完善,看起来跟舒服一些。
总之,经过两周的时间,课设不但锻炼了我的动手和实践能力,还让我懂得了一份坚持,一份不懈的努力,只要有这份恒心,任何困难都会被克服的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 课程设计 报告 图书 管理