图书馆管理系统数据库.docx
- 文档编号:12218458
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:56
- 大小:2.29MB
图书馆管理系统数据库.docx
《图书馆管理系统数据库.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统数据库.docx(56页珍藏版)》请在冰豆网上搜索。
图书馆管理系统数据库
目录
前言―――――――――――――――――――――――― 1
系统分析―――――――――――――――――――――― 2
设计实现―――――――――――――――――――――― 8
参考文献――――――――――――――――――――― 38
数据库运行环境说明―――――――――――――― 39
设计小组简介――――――――――――――――――― 40
前言
随着科学技术、国民经济的快速发展,计算机已经进入人们生活,在工业、农业、交通运输、邮电通信、文化教育、商业、国防以及科学研究等各个领域各个行业得到越来越广泛的应用,为我们提供更多服务,提高了生活效率,使我们的生活上了一个新的台阶。
图书馆的管理方面,也已经进入新的阶段。
原始的人工操作存在很多弊端,查找很不方便,统计比较复杂而且容易出错,对书籍与用户的管理较麻烦,浪费人力资源。
对于以上的问题,数据库的对图书馆的管理完全将其解决。
查找方便、快捷,统计快速准确,能够提供高效率的查找,为使用者带来了很多方便。
在开发本系统的过程中,我们利用了实体—联系模型、规范化、结构化查询语言以及VisualFoxPro6.0进行了设计与实现。
VisualFoxPro6.0是一个具有FOX数据库系统的软件,VisualFoxPro6.0数据库是一个提供了将近500条命令,200余种标准函数,而且涉及到OOP与格式化程序设计等许多概念。
多窗口的用户界面,灵活使用的菜单生成语句,还具有开放结构SQL语言,多种开发的应用工具和超加速查询以及与C语言的接口等众多样性能,还利用了Rushmone等技术,不但使它具有管理大型数据库的能力,更使其开发的应用系统界面美观大方,方便操作,数据共享度高,运行速度快且节省了内存空间等优点。
VisualFoxPro与VisualFoxbase兼容性好,原来的VisualFoxbase及dbase的程序完全可以在VisualFoxbase中运行,且在原掌握前两种系统的用户只需学习新系统添加的内容既可以运用。
本软件针对图书馆的业务范围以及工作特点,本着方便使用者的原则,设计了用户管理,图书管理,借还书管理,管理员查询,用户查询,新书通报等六个子系统,这六个子系统包括了图书馆的主要业务,可以全面实现图书馆的管理和应用。
这将大大减轻图书管理员的工作量,为用户提供全新的服务,使图书管理工作水平跃上一个新的台阶。
由于我们能力有限,所做的数据库也只能达到目前这种水平,希望能够得到老师的指导与帮助。
系统分析与设计
一、需求分析
1、应用领域的调查分析
我们的图书馆数据库是应用于中小型图书馆,比如长安大学图书馆,西安交通大学图书馆等。
这些图书馆由以下特点:
面向对象比较单一,均为教师及大学生,管理的图书种类多样,涉及领域广泛。
对数据库的要求较为复杂,对于以上情况,我们做了认真细致的调查,抽象出了以下信息:
(1)我们数据库的服务对象分两类,即管理员与用户。
管理员需要进行一下操作:
a.书籍的管理(包括书籍的添加、删除以及修改);
b.用户信息的管理(包括用户的添加、删除以及修改);
c.借还操作(借书与还书);
d.书籍的查找;
e.系统的维护;
用户需要进行借书、还书、以及查询。
综上我们的数据库应该完成以下几个功能:
书籍的管理(包括书籍的添加、删除以及修改)、用户信息的管理(包括用户的添加、删除以及修改)、借还操作(借书与还书)、书籍的查找以及新书通报等功能。
(2)通过对组织结构、业务流程以及数据流程的调查,我们初步建立了逻辑模型。
我们又与管理员以及用户进行了面对面的交流,从而优化了我们的数据模型。
模型图如下:
图表1
表示数据的原点或终点
表示数据处理应用
表示需存储的数据
表示流动数据
我们抽象出以下信息:
a.应用领域的流动信息:
图书信息、用户信息。
b.应用领域的存储信息:
图书信息、用户信息、管理员信息
c.应用领域的流动信息的原点与终点:
管理员与用户
2、定义书库支持的信息与应用
应用定义表
编号
应用名
应用功能定义
输入信息
输出信息
1
登记用户信息
登记用户信息
用户信息
用户信息
2
登记书籍信息
登记书籍信息
图书信息
图书信息
3
借还书籍
借还书籍
借还纪录
借还纪录
4
生成新书信息
生成新书信息
无
新书信息
5
生成书籍信息
生成书籍信息
无
书籍信息
信息定义表
编号
信息集合名
内容定义
产生来源
引用者
1
图书信息
图书信息
书籍
登记图书
2
用户信息
用户的信息
用户
登记用户
3
借还信息
借还信息
借还书
借还操作
4
新书信息
新书信息
书籍信息
生成预览
(3)对每个操作任务进行定义,建立DBIPO图
任务名:
登记图书编号:
1
功能:
将书籍信息登记所属应用号:
2
输入数据项∶书籍信息(书号、书名、作者、出版社、出版日期、价格、页数、规格)
输出数据项:
书籍信息(书号、书名、作者、出版社、出版日期、价格、页数、规格)
数据库操作定义:
将书籍信息登记,从而进行管理
数据操作的选择条件:
新书入库
数据操作的连接条件:
借还书操作
读取得数据项:
书号、书名、作者、出版社、出版日期、价格、页数、规格
修改的数据项:
书记在馆数量
删除的数据项:
无
删除和修改条件:
借还书表中无此记录
任务名:
登记用户编号:
2
功能:
将用户信息登记所属应用号:
1
输入数据项∶用户信息输出数据项:
用户信息
数据库操作定义:
将用户信息登记,从而使此用户拥有借书权力
数据操作的选择条件:
用户注册
数据操作的连接条件:
借还书籍操作
读取得数据项:
用户号码、用户名、性别、地址、出生日期、电话号码
修改的数据项:
无
删除的数据项:
无
删除和修改条件:
当借还书表中无与此用户有关的记录
任务名:
借还登记编号:
3
功能:
将结束纪录一一登记所属应用号:
3
输入数据项∶用户码、书号、拷贝号、借书日期、还书日期
书号、用户码
输出数据项:
无
数据库操作定义:
登记每一条借还纪录,从而对图书和用户进行管理
数据操作的选择条件:
数据操作的连接条件:
读取得数据项:
用户码、书号、拷贝号、借书日期、还书日期
书号、用户码
修改的数据项:
书的状态与在馆数量
删除的数据项:
无
删除和修改条件:
无
任务名:
生成新书信息编号:
4
功能:
:
将新书信息生成,用来向用户通报新书所属应用号:
4
输入数据项∶新书的书号、书名、作者、出版和、出版日期、价格、页数、规格
输出数据项:
新书的书号、书名、作者、出版和、出版日期、价格、页数、规格
数据库操作定义:
经过书记表中的内容,对书籍进行统计,将新进的书列表通报
数据操作的选择条件:
点击新书通报
数据操作的连接条件:
书表中有此记录
读取得数据项:
新书的书号、书名、作者、出版和、出版日期、价格、页数、规格
修改的数据项:
无
删除的数据项:
无
删除和修改条件:
书表中有改变
任务名:
生成书籍信息编号:
5
功能:
:
将书籍信息生成,方便用户查询所属应用号:
5
输入数据项∶书的书号、书名、作者、出版和、出版日期、价格、页数、规格
输出数据项:
书的书号、书名、作者、出版和、出版日期、价格、页数、规格
数据库操作定义:
经过书记表中的内容,对书籍进行统计,将书列表通报
数据操作的选择条件:
书籍有存储纪录
数据操作的连接条件:
书表中有此记录
读取得数据项:
书的书号、书名、作者、出版和、出版日期、价格、页数、规格
修改的数据项:
无
删除的数据项:
无
删除和修改条件:
书表中有改变
(4)从DBIPO图中提取原子数据项,把关联的数据项组合成数据组,以组为单位根据用户和实际领域的信息模型补充其他数据相继定义,从而建立数据字典。
数据字典
数据项组名:
书籍信息
特征
项名
项名
项名
项名
项名
项名
项名
项名
书号
书名
作者
出版社
出版日期
价格
页数
规格
数据类型
C
C
C
C
D
N
N
C
宽度
6
45
40
45
8
6
6
2
小数位
0
0
0
0
0
2
0
0
值约束
无
无
无
无
年月日
〉0
〉0
空值否
否
否
否
否
否
是
是
是
值个数
1
1
1
1
1
1
1
1
数据项名:
用户信息
特征
项名
项名
项名
项名
项名
项名
用户码
用户名
性别
地址
出生日期
电话
数据类型
C
C
C
C
D
C
宽度
7
40
1
50
8
13
小数位
0
0
0
0
0
0
值约束
无
无
男或女
无
年月日
数字
可空值否
否
否
是
是
是
是
值个数
1
1
1
1
1
1
数据项名:
借书信息
特征
项名
项名
项名
项名
项名
用户码
书号
拷贝号
借书日期
还书日期
数据类型
C
C
C
D
D
宽度
7
6
1
8
8
小数位
0
0
0
0
0
值约束
UUCODE
BBCODE
无
年月日
年月日
可空值否
否
否
否
否
否
值个数
1
1
1
1
1
数据项名:
状态表数据
特征
项名
项名
项名
数据类型
书号
拷贝号
状态
宽度
C
C
C
小数位
0
0
0
值约束
=BBCODE
无
在馆数目
空值否
否
否
否
值个数
1
1
1
二、安全性设计
考虑到数据库的安全性问题,我们进行了如下处理:
1、防止用户直接操作数据库的方法
我们建立了图书馆管理系统1\口令.dbf,用来管理图书馆管理员的信息,完成登录的限制。
用户进入用户界面之后,仅可以进入“用户查询”和“新书通报”两个系统中,进行继续的查询,而不能进入管理员的界面。
2用户帐号密码的加密方法
管理员通过输入操作员名及口令进入管理系统,所用的口令进行加密处理,确保在任何地方都不会出现密码的明文。
3角色与权限
本系统面向两种角色,一种是管理员,另一种是借阅者。
管理员的操作权限是对整个数据库进行管理,如用户信息管理(注册,修改,删除等)、书籍信息管理(新书入库,旧书清理,信息修改等)、系统维护(数据备份,数据库恢复,注册管理员,更改密码等)。
管理员可以浏览整个系统,并在系统中履行管理员的职责。
借阅者对该系统的使用仅限于查询所需书籍、查看新书信息并最后通过管理员完成借书及还书活动。
角色
可以访问的表与列
操作权限
图书馆管理员
书库BOOK
借书库LOAN
用户库USER
状态库STATUS
用户信息管理、书籍信息管理、借还管理、系统维护等
借阅者
书库BOOK
查询所需书籍、查看新书信息
实现过程
我们的实现过程流程图如下:
图表2
一、首先建立项目管理器,并在里面建立数据库。
项目管理器具有维护、管理、整合、编译应用系统内各文件的功能,有了它的帮助,用户不再为常常忘记文件名称、不知道文件用途、找不到文件等问题而烦恼。
在管理应用系统内各文件前,用户必须先建立一项目文件,而项目管理器会将应用系统包含哪些文件的信息存放在此项目文件内,以后只要通过项目管理器就能将该项目文件打开,如此便可针对项目文件内的各类文件做维护、管理等动作。
图表3
二、建立四个相关联的表BOOK.DBF,LOAN.DBF,USER.DBF,STATUS.DBF和一个自由表(口令表)。
并将表加入到项目中。
USER.DBF是LOAN.DBF的父表,它们之间是多对一的关系。
LOAN.DBF是BOOK.DBF的父表,它们之间是一对一的关系。
BOOK.DBF是STATUS.DBF的父表。
它们之间是一对一的关系。
为了使各个数据表的指针能够一起移动,故建立以上关联,当USER.DBF表中的指针指向某条记录时,LOAN.DBF表中的记录同时指向与那一条记录有关的信息,而BOOK.DBF表中的指针同时指向与此信息有关的书籍,STATUS.DBF的指针指向该书的状态。
其参照完整性为:
如要删除子表的信息,应查看父表里有没有与此有关的信息,如果有则不能删除,没有时则能进行删除。
如删除某本书时,如果借书表中有记录,表示那本书处于外借状态,则不能删除此书的纪录:
如删除某一个用户时应查看他有没有借书,如有则不能删除;如删除某本书的状态时,应看这本书在不在书表中,若在则不能删除。
父表可以更改子表中的有关信息,而子表无法改变父表的内容。
如当有本书借出后,它的书表中的状态则发生变化。
经过规范化后得出以下四个表:
BOOK.DBF
序号
字段名
字段类型
宽度
小数位
含义
1
BBCODE
C
6
书号
2
BTITLE
C
45
书名
3
BAUTHOR
C
40
作者
4
BPUBLISH
C
45
出版社
5
BPUBDATE
D
8
出版日期
6
BPRICE
N
6
2
价格
7
BPAGE
N
4
页数
8
BSIZE
C
2
规格
LOAN.DBF
序号
字段名
字段类型
宽度
小数位
含义
1
LUCODE
C
7
用户码
2
LBCODE
C
6
书号
3
LCODE
C
1
拷贝号
4
LENDDATE
D
8
借书日期
5
LEXPDATE
D
8
还书日期
USER.DBF
序号
字段名
字段类型
宽度
小数位
含义
1
UUCODE
C
7
用户码
2
UNAME
C
40
用户名
3
USEX
C
1
性别
4
UADDRESS
C
50
地址
5
UBIRTH
D
8
出生日期
6
UPHONE
C
13
电话号码
STATUS.DBF
序号
字段名
字段类型
宽度
小数位
含义
1
SBCODE
C
6
书号
2
SCCODE
C
1
拷贝号
3
SSTATUS
C
1
状态
注:
为个数据库建立索引文件如下:
库文件名
关键字
索引文件
BOOK.DBF
BBCODE
BOOK.cdx
BOOK.DBF
BAUTHOR
BOOK.cdx
USER.DBF
UUCODE
USER.cdx
BOOK.DBF
BBCODE和BAUTHOR
BOOK.cdx
为BOOK.DBF建立一下索引。
将bbcode设为主索引,其它均为普通索引。
图表4
为LOAN.DBF建立一下索引:
lucode为普通索引,lbcode为候选索引
图表5
为USER.DBF建立一下索引:
user为主索引,uname为普通索引。
图表6
为STATUS.DBF建立一下索引:
sbcode为候选索引。
:
图表7
并给几个表建立如图所示关系:
图表8
口令表用来实现管理员的管理。
只有在口令表上有记录的人才可以进入管理系统。
所以说此表是为了维护系统安全性而建的。
序号
字段名
字段类型
宽度
小数位
含义
1
操作员
C
50
0
管理员姓名
2
口令
C
7
0
密码
三、表单的建立(包括使用说明)
(一)、欢迎窗口
(1)、使用说明。
点击欢迎表单您将进入以下窗口。
当您进入这个窗口中,您将看见三个按钮,用户进入,管理员进入,以及退出。
如果您是用户您应该点击用户进入(或是用键盘上的R),才得以进入下一级表单,如果您是管理员,那就请点击管理员进入按钮(或是用键盘上的C)。
如果您想退出那请点击退出即可(或是用键盘上的O)。
图表9
(2)、实现过程
本表单是使用表单设计器完成的。
首先点击新建,然后点击表单,建立表单。
此表单由五部分构成。
Image1,command1,command2,command3,Alable1.
a..首先为了美化界面,我们粘贴如图的图片。
b.建立用户按钮,用以下代码实现其功能。
doform关于
doform读者界面
thisform.release
建立管理员按钮,用以下代码实现其功能。
doform口令验证
thisform.release
建立退出按钮,用以下代码实现其功能。
releasethisform
(二)、不管您以何种身份进入后,您将进入以下窗口,点击确定即可进入下一级表单。
图表10
此表单上Image1,Image2,command1,Alable1,Alable2。
command1由以下代码完成其功能:
releasethisform
(三)、如果您是用户您将进入以下界面:
图表11
使用说明:
点击书目查询(或是用键盘上的F),即可查询书籍,若点击新书通报(或是用键盘上的N),则可得到新书的消息。
按退出键(或是用键盘上的E),即可退出本系统.
实现过程:
本表单包括Image1,command1,commandgroup2(command1,command2),Alable1.
command1即退出按钮由以下代码实现其功能:
releasethisform
commandgroup2(command1,command2)由以下代码实现其功能:
(四)、如果您是管理员您将进入以下界面:
图表12
使用说明:
您如果要进入主表单,您需要输入用户名和密码,经确认正确后进入。
如够您的密码错误并且连续输入三次错误密码,本窗口将自动释放。
这将对本系统有保护作用,减少不必要的侵犯。
实现过程:
本表单包括:
Image1,command1,command2,Text1,text2
command1即确认按钮由以下代码实现其功能:
setexacton
select口令
locateforthisform.text1.value=操作员andthisform.text2.value=口令
if!
eof()
messagebox("欢迎进入本系统!
",48)
doform关于.scx
doform主表单.scx
releasethisform
readevents
else
ifthisform.srcs<2
messagebox("你输入的内容有错误,请重新输入!
",48)
thisform.srcs=thisform.srcs+1
thisform.text1.value=""
thisform.text2.value=""
thisform.text1.setfocus
else
messagebox("报歉,你不是本系统的合法用户!
",48)
thisform.release()
closeall
endif
endif
command2即退除按钮由以下代码实现其功能:
thisform.release
clearevents
(五)、以下是您将看到的书籍查询和新书通报的报表:
图表13
选择查询方式,然后点击查询即可进行查询,若点击退出,则退回到用户界面。
Command1即查询按钮由以下代码实现其功能:
docase
casebo1.value="书名"
setordertobtitle
setfiltertobtitle=thisform.text1.value
thisform.grid1.refresh()
casebo1.value="作者"
setordertoauthor
setfiltertobauthor=thisform.text1.value
thisform.grid1.refresh()
casebo1.value="出版社"
setfiltertobpublish=thisform.text1.value
thisform.grid1.refresh()
endcase
command2继推出按钮有以下代码实现其功能。
Thisform..release
新书通报报表:
图表14
打印按钮由以下代码实现其功能:
setordertodd
reportform新书noconsoletoprinterprompt
退出按钮则由以下代码实现:
Thisform.release
(六)、如果您是管理员您将进入主表单,如下:
图表15
主表单由以下代码实现其整体功能;
skip-1
ifbof()
thisform.istop=.t.
gotop
else
thisform.istop=.f.
skip
endif
skip
ifeof()
thisform.isbottom=.t.
gobottom
else
thisform.isbottom=.f.
skip-1
endif
本表单由五个页面组成,由用户信息页面,借还操作页面,书籍信息页面,系统维护页面以及帮助页面。
由以下代码实现五个页面的转换:
docase
casethis.activepage=1
selectuser1
casethis.activepage=2
selectloan
casethis.activepage=3
selectbook
ifeof()
gotop
thisform.istopb=.t.
thisform.isbottomb=.f.
endif
endcase
thisform.refresh()
1、点击用户信息框或用快捷键F2时,出现如上界面.
本模块面向系统管理员。
管理员通过本模块对用户信息进行管理。
使用说明:
该模块主要是面向系统管理员的。
管理员通过本模块对借阅者的资料进行管理。
当借阅者要求注册时,管理员即通过一下界面来储存他的记录:
(1)注册部分:
在点击注册键后,在按要求输入有关信息(包括用户码、用户名、性别、出生日期、电话号码、地址)后,按储存键,可出现:
“存档成功”字样,点击确定,即存储了该借阅者的信息,该部分的信息是借阅者在图书馆借书的必要条件。
如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书馆 管理 系统 数据库