图书借阅管理系统.docx
- 文档编号:5698574
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:27
- 大小:276.51KB
图书借阅管理系统.docx
《图书借阅管理系统.docx》由会员分享,可在线阅读,更多相关《图书借阅管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
图书借阅管理系统
图书借阅管理系统
1系统简介
1.1图书管理系统简介
一个图书借阅系统因使用对象的不同而会有所区别的,学校的图书借阅系统和外面的图书出租店的借阅系统是有很多不同的,所以这里我挑选了以学校为背景的图书借阅管理系统的设计。
一个图书管理系统应该包括图书借阅室里面拥有的全部图书的详细信息,还包括借阅者的个人身份资料的详细信息以及借阅者的借阅信息。
本系统的结构分为借阅者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块、报表显示模块和查询处理模块。
1.2数据需求
根据系统的需求,首先将要记录的信息分类,要记录的信息如下。
借阅者信息:
包括学号、姓名、系别等。
出版社信息:
包括名称、地址、网址、E-mail等。
书籍信息:
包括书号、丛书系列、作者、责任编辑、字数、定价、出版时间、主题分类、二级分类、馆内借阅分类、总册数、库存量、出版社和书名等。
借阅信息:
包括借阅日期、应归还日期、实际归还日期、能否续借、书号和证号等。
管理者信息:
包括管理者名称、对应密码和对应权限等。
根据这些需要,本系统需要“读者信息”表,“出版社信息”表,“书籍信息”表,“借阅信息”表和“管理者信息”表。
1.3事务需求
经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如1.1图。
在读者信息管理部分,要求如下。
●可以浏览读者信息。
●可以对读者信息进行维护,包括添加及删除等操作。
在出版社信息管理部分,要求如下。
●可以浏览出版社信息。
●可以对出版社信息进行维护,包括添加及删除等操作。
在书籍信息管理部分,要求如下。
●可以浏览书籍信息。
●可以对书籍信息进行维护,包括添加及删除等操作。
在借阅信息管理部分,要求如下。
●可以浏览借阅信息。
●可以对借阅信息进行维护操作。
在管理者信息管理部分,要求如下。
●显示当前数据库中管理者情况。
●对管理者信息维护操作。
图1.1系统业务逻辑关系
2需求分析
2.1系统要处理对象
读者信息:
读者编号,姓名,性别,学号,学院,专业,年级,类型,类别编号,
办证日期
管理员信息:
管理员编号,姓名,性别,权限,登录口令,住址,电话
馆藏图书信息:
图书编号,索书号,图书名称,作者,出版社,单价,摘要,关键字,副本数,分类,出版日期,状态
借阅信息:
图书编号,读者编号,图书名,作者,借阅日期,归还日期,归还日期,应还日期,罚金
借阅历史信息:
图书编号,读者编号,图书名,作者,借阅日期,还书日期
罚款信息:
读者编号,图书编号,图书名,作者,借阅日期,应还日期,归还日期,罚款金额,处理状态,管理员编号
2.2系统处理的功能及要求
2.2.1.能够存储一定数量的图书信息,并方便有效的进行相应的书籍数据操作和管理,这主要包括:
1)图书信息的录入、删除及修改。
2)图书信息的多关键字检索查询。
3)图书的出借、返还及超期罚款或丢失赔偿。
2.2.2.能够对一定数量的读者、管理员进行相应的信息存储与管理,这其中包括:
1)读者信息的登记、删除及修改。
2)管理员信息的增加、删除及修改。
3)读者资料的统计与查询。
2.2.3.能够提供一定的安全机制,提供数据信息授权访问,防止随意删改、查询。
2.2.4.对查询、统计的结果能够列表显示。
2.3安全性和完整性要求
1)安全性要求
系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。
安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。
2)完整性要求
系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。
2.4图书管理系统数据流程图
2.4.1顶层数据流图:
2.4.2第2层数据流图
2.4.3第3层数据流图:
(读者借阅)
2.4.4第3层数据流图:
(读者还书)
2.4.5第3层数据流图:
(查询图书信息,查询借阅者信息)
2.4.6第3层数据流图:
(修改图书信息)
2.4.7第3层数据流图:
(修改借阅者信息)
2.4图书借阅流程图
对于学生客管理员来单独的看时,各自对应的操作流程为:
(1)学生:
(2)管理员:
2.5数据结构:
2.5.1数据结构列表
数据结
构编号
数据结构名
数据结构
含义
组成
DS-1
Book
馆藏图书信息
BookNo,
BookName,
BookWriter,
BookPublish,
BookDate,
BookLanguage
DS-2
Reader
借阅者信息
StudentNo,
StudentName,
StudentSdept
DS-3
Borrow
借阅信息
BookNo,
BookName,
BookWriter,
Borrowdate
DS-4
Maneger
管理员信息
MID,
MName
2.5.1处理逻辑描述
处理编号
处理功能
处理过程
PR-1
判断读者查询涉及的功能模块
馆藏图书信息模块、读者信息模块、读者类别信息模块、借阅信息模块、借阅历史信息模块、罚款信息模块、管理员模块、馆室信息模块:
先确定查询所涉及的功能模块;然后,根据要查询的内容,确定查询数据流向;最后显示查询结果。
PR-2
判断图书、读者修改要涉及的模块,同时把相应的修改数据传到相应的模块之中
馆藏图书信息模块、读者信息模块、读者类别信息模块、管理员信息模块、馆室信息模块:
先确定更新所涉及的功能模块;然后,把更新信息传送到相应的模块中;最后,进行相应的更新操作。
3概念设计阶段
概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。
系统开发的总体目标是实现图书馆管理的系统化和自动化,缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书管理效率的目的。
主要任务是对借阅者信息、管理员信息、图书资料信息、借阅信息、归还图书信息的基本信息的操作及外理。
3.1分析得到模型的E-R图:
3.2各E-R图各实体的属性如下所示:
实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:
一个m:
n联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:
n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:
1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,最后转换后的关系模式如下:
(1)Book(BookID,Title,Author,Publisher,Pyear,language)
(2)Student(ID,Name,Dept)
(3)Assistent(ID,Name)
(4)BBook(BookID,StdID,BDate)
(5)RBook(BookID,StdID,RDate)
(6)Lend(StdID,AstID,BookID,LDate)
(7)Return(StdID,AstID,BookID,RDate)
说明:
(1).书号是图书的键码,每一本书有唯一的书号,一个学生可以同时借阅多本书。
一个管理员可以同时处理多个同学的借阅等事宜。
(2).一般情况下,学生、管理员和图书之间的联系为1:
1:
n,借书的关系Lend作为连接关系,其键码为n端的实体集的键码,即书号为借书关系的键码,这反映了如果还书时也把当初的借书记录删除,则书号就能唯一识别一个元祖。
(3).如果还书时不同时删除借书记录,则意味着同一本书前后可以借给不同的学生,于是学生、管理员与图书之间的联系变为m:
1:
n,这时借书关系的键码为书号和学号的组合。
(4).要知道图书的当前状态,是在图书馆存放,还是被借阅等,需要在Book的模式中增加对应用项用以表示图书当前的状态,比如。
4逻辑设计阶段
4.1数据库模式定义
馆藏图书信息表
列名
数据类型
可否为空
说明
BookID
Char
notnull
图书编号
Title
Char
notnull
图书的书名
Author
Char
notnull
图书作者
Pulisher
Char
notnull
图书出版社
Pyear
Date
图书的出版年
Language
Char
图书语种
借阅者信息表
列名
数据类型
可否为空
说明
ID
Char
notnull
读者编号
Name
Char
notnull
读者姓名
Dept
Char
读者所在系别
管理员信息表
列名
数据类型
可否为空
说明
ID
Char
notnull
管理员编号
Name
Char
notnull
管理员姓名
借阅信息表
列名
数据类型
可否为空
说明
StdID
Char
notnull
借阅者学号
AstID
Char
notnull
管理员编号
BookID
Char
notnull
图书编号
LDate
Date
notnull
借阅时间
4.2用户子模式定义
编号
用户子模式(View)
作用(共性:
提供数据保密和安全保护机制)
V-1
BookView
便于查询和修改图书的基本信息
V-2
StudentView
方便读者基本信息的查询、更新
V-3
BorrowView
用于当前借阅信息的查询
借阅者基本信息视图
列名
数据类型
可否为空
说明
ID
Char
notnull
读者编号
Name
Char
notnull
读者姓名
ReaDep
Char
读者所在系别
5物理设计
5.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
5.2数据存储方面
为提高在表中搜索元素的速度,我们可以在数据库中为各基本表实际实现的时候应该基于键码建立索引,建立的索引如下:
(1)Book(BookID)
(21)Student(ID)
5.3实现设计
5.3.1建立数据库
createdatabaseBook;
5.3.2建立数据表
(1)建立Book表
CREATETABLEBook(
BookIDvarchar(20)
PRIMARYKEY,
Titlevarchar(50)
Notnull,
Authorvarchar(50),
Publishervarchar(50),
Pyearchar(4),
Languagechar
(1)
DEFAULT‘c’,
Statechar
(1)
DEFAULT‘0’
);
(2)建立Student表
CREATETABLEStudent(
IDchar(6)
PRIMARYKEY,
Namevarchar(20)
Notnull,
Deptvarchar(20)
Notnull
);
(3)建立Assistent表
CREATETABLEAssistent(
IDchar(6)
PRIMARYKEY,
Namevarchar(20)
Notnull
);
(4)建立BBook表
CREATETABLEBBook(
BIDvarchar(20)
Notnull,
StdIDchar(6)
Notnull,
BDateDatetime
Notnull,
CONSTRAINFK_BBOOK_BID
FOREIGNKEY(BID)
REFERENCESBook(BookID)
CONSTRAINFK_BBOOK_StdID
FOREIGNKEY(StdID)
REFERENCESStudent(ID)
);
(5)建立RBook表
CREATETABLERBook(
BookIDvarchar(20)
Notnull,
StdIDchar(6)
Notnull,
RDateDatetime
Notnull,
CONSTRAINFK_RBOOK_BookID
FOREIGNKEY(BookID)
REFERENCESBook(BookID)
CONSTRAINFK_RBOOK_StdID
FOREIGNKEY(StdID)
REFERENCESStudent(ID)
);
(6)建立Lend表
CREATETABLELend(
StdIDchar(6)
Notnull,
AstIDchar(6)
Notnull,
BookIDvarchar(20)
Notnull,
LDateDatetime
Notnull,
CONSTRAINFK_LEND_StdID
FOREIGNKEY(StdID)
REFERENCESStudent(ID)
CONSTRAINFK_LEND_AstID
FOREIGNKEY(AstID)
REFERENCESAssistent(ID),
CONSTRAINFK_LEND_BookID
FOREIGNKEY(BookID)
REFERENCESBook(BookID)
);
(7)建立Return表
CREATETABLEReturn(
StdIDchar(6)
Notnull,
AstIDchar(6)
Notnull,
BookIDvarchar(20)
Notnull,
RDateDatetime
Notnull,
CONSTRAINFK_REURN_StdID
FOREIGNKEY(StdID)
REFERENCESStudent(ID)
CONSTRAINFK_RETURN_AstID
FOREIGNKEY(AstID)
REFERENCESAssistent(ID),
CONSTRAINFK_RETURN_BookID
FOREIGNKEY(BookID)
REFERENCESBook(BookID)
);
(8)管理员操作
增加学生:
INSERTINTOStudent(ID,Name,Dept)
VALUES(#StdNo,#Name,#Dept);
删除学生:
DELETEFROMStudent
WHERE(ID=#ID);
修改学生信息:
UPDATEStudent
SETName=#Name,Dept=#Dept
WHERE(ID=#ID);
增加书籍:
INSERTINTOBook(BookID,Title,Author,
Publisher,Pyear,Language)
VALUES(#BookID,#Title,#Author
#Publisher,#Pyear,#Language)
删除书籍:
DELETEFROMBook
WHERE(BookID=#BookID);
修改书籍信息:
UPDATEBook
SETTitle=#Title,Author=#Author,
Publisher=#Publisher,Pyear=#Pyear,
Language=#Language
WHERE(BookID=#BookID)
学生借阅图书:
BEGINTRANSACTION
INSERTINTOLend(StdID,AstID,BookID,LDate)
VALUES(#StdID,#AstID,#BookID,#LDate);
UPDATEBOOK
SETState=’2’
WHEREBookID=#BookID
COMMIT;
学生归还图书:
BEGINTRANSACTION
INSERTINTOReturn(StdID,AstID,BookID,RDate)
VALUES(#StdID,#AstID,#BookID,#RDate);
UPDATEBOOK
SETState=’0’
WHEREBookID=#BookID
COMMIT;
(9)学生的操作:
预订图书:
CREATEPROCBook_Book
@BookIDvarchar(20),
@StdIDchar(6),
@BDatedatetime
AS
DECLARE@TransNameVARCHAR(20)
SELECT@TransName=’Book_Book’
BEGINTRANSACTION@TransName
DECLARE@bookedint,@book_state_beforechar
(1),
@book_state_afterchar
(1)
SELECT@booked=count(*)FROMBBook
WHEREBID=@BookID
IF@booked>0
ROLLBACKTRANSACTION@TransName
ELSEBEGIN
SELECT@book_state_before=stateFROMBook
WHEREBookID=@BookID
IF@book_state_before=’0’
SELECT@book_state_after=’1’
ELSEIF@book_state_before=’2’
SELECT@book_state_after=’3’
UPDATEBook
SETstate=@book_state_after
WHEREBookID=@BookID
INSERTINTOBBook(BID,StdID,BDate)
VALUES(@BookID,@StdID,@BDate)
COMMITTRANSACTION@TransName
END
GO
续借图书:
CREATEPROCRenew_Book
@BookIDvarchar(20),
@StdIDchar(6),
@RDatedatetime
AS
DECLARE@TransNameVARCHAR(20)
SELECT@TransName=’Renew_Book’
BEGINTRANSACTION@TransName
DECLARE@bookedint
SELECT@booked=count(*)FROMBBook
WHEREBID=@BookID
IF@booked=0
INSERTINTORBook(BookID,StdID,RDate)
VALUES(@BookID,@StdID,@RDate)
COMMITTRANSACTION@TransName
GO
5.3.3建立视图
(1)用于查询图书基本信息的视图定义如下:
createviewBookview(书号,书名,作者,出版社,出版年,语种)
as
selectBookID,Title,Author,Publisher,Pyear,Language
fromBook
(2)用于借阅者基本信息查询的视图定义如下:
createviewReaderview(借阅者学号,借阅者姓名,系别)
as
selectID,Name,Dept
fromReader
(3)用于显示当前借阅基本信息的视图定义如下:
createviewLendview(读者编号,管理员编号,书号,借阅日期)
as
selectStdID,AstID,BookID,LDate
fromLend,Book
whereLend.BookID=Book.BookID
(4)用于借阅历史信息查询的视图定义如下:
createviewHistoryview(读者编号,书名,借阅日期,归还日期)
as
selectStdID,Title,Ldate
fromLend,Book
whereLend.BookID=Book.BookID
5.3.4建立索引
createclusteredindexPublisheronBook(Publisher);
createclusteredindexIDonStudent(ID);
5.3.5建立触发器
1.当删除Student表中某一读者基本信息时,触发Lend表,删除相应的记录
createtriggerStudent_delete
onStudent
fordelete
as
deleteLend
fromdeleted
whereLend.StdID=deleted.StdID
2.当在借阅表中增加一条借阅记录时,使该图书的状态由“可借”变为“不可借”
createtriggerLend_insert1
onLend
forinsert
as
declare@BookIDchar(20)
select@BookID=BookID
frominserted
updateBook
setBookState='不可借'
whereBookID=@BookID
6具体实现
向Book表中增加书籍:
IN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 借阅 管理 系统