数据库图书管理系统含代码.docx
- 文档编号:10022453
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:21
- 大小:112.77KB
数据库图书管理系统含代码.docx
《数据库图书管理系统含代码.docx》由会员分享,可在线阅读,更多相关《数据库图书管理系统含代码.docx(21页珍藏版)》请在冰豆网上搜索。
数据库图书管理系统含代码
一.需求描述和系统边界2
二.需求分析3
1.业务需求3
2.功能需求及数据需求分析3
3.业务规则分析4
[
三.实体集及属性4
四.联系集及E-R图5
五.逻辑数据库设计6
六.数据库编程7
1.创建表7
2.创建触发器10
3.管理员操作10
4.读者操作11
;
5.管理员对借阅关系的操作12
七.代码实现13
1.输入数据设计13
2.完成借阅、续借、归还的操作设计15
八.模式求精17
九.小结17
(
一.需求描述和系统边界
数据库技术和Internet的飞速发展,使它们已经成为现代信息技术的重要组成部分,是现在计算机信息系统和计算机应用系统的基础和核心。
对于任何一个企业来说,数据是企业重要的资产,如何有效利用这些数据,对于企业发展起着极其重要的作用。
随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的数目逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,创建图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。
该图书管理系统支持2类用户:
管理员和读者。
读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。
二.需求分析
1.业务需求
图书管理系统的主要业务包括:
包括图书馆内书籍的信息,读者信息,以及借阅信息。
此系统功能分为面向读者和面向管理员两部分,其中读者可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和读者的增加,删除和修改以及对读者,借阅、续借、归还的确认。
2.功能需求及数据需求分析
(1)注册管理
管理员注册。
管理员注册时要求填写基本信息,包括管理员编号、姓名、性别、联系电话、家庭住址。
系统检查所有信息填写正确后管理员注册成功。
读者注册。
读者注册时要求填写基本信息,包括读者编号、姓名、性别、联系电话、学院等。
系统检查所有信息填写正确后读者注册成功。
(2)图书管理
增加图书信息。
当有新的图书入库时,管理员负责添加图书信息,包括书名、分类、图书编号、作者、出版社、出版时间、简介等。
图书信息查询。
管理系统需提供方便快捷的方式进行图书检索。
如可以输入指定的关键词进行简单查询,也可以根据书名、分类、图书编号、作者、出版社、出版时间、简介等单一或组合条件进行查询。
图书信息更新及删除。
图书信息发布后,管理员可以随时更新和删除图书信息。
(3)借阅图书
读者登入图书管理系统之后,将需要的图书的信息输入,可以借阅图书。
由管理员将图书信息修改为“不在馆”。
(4)续借图书
读者借书之后,一个月后应归还。
如有需要可以续借图书30天。
此操作由管理员完成。
…
(5)归还图书
读者将已借图书归还给图书馆时,需要管理员确认信息。
并将图书信息修改为“在馆”
3.业务规则分析
基于功能需求,通过进一步了解,图书管理业务需求如下:
(1)所有用户均可以搜索图书信息。
但只有管理员可以对图书信息进行修改。
(2)管理员由管理员编号唯一标识。
(3)每位读者由读者编号唯一标识。
(4)图书编号是图书的唯一标识。
|
(5)借阅图书后需记录图书当前状态包括在馆、不在馆、已归还、未归还、是否续借。
(6)同一图书分类中可以有多本图书,但是每本图书只能在一种个图书分类中。
三.实体集及属性
图3-1图书实体集E-R图
图3-2管理员实体集E-R图
$
…
图3-3读者实体集E-R图
图3-4图书分类实体集E-R图
]
四.联系集及E-R图
五.逻辑数据库设计
表3-1BookClass
属性名称
数据类型
》
属性描述
classNo
varchar(3)
分类编号
ClassName
varchar(20)
分类名称
{
表3-2Book
属性名称
数据类型
属性描述
bookNo
varchar(20)
图书编号
,
classNo
varchar(3)
分类编号
bookName
varchar(3)
图书名称
author
varchar(12)
/
作者
publishName
varchar(50)
出版社
publishDate
datetime
出版时间
introduction
|
varchar(200)
简介
表3-3Reader
属性名称
数据类型
属性描述
(
readerNo
varchar(12)
读者编号
readerName
varchar(10)
读者姓名
rSex
varchar
(2)
.
读者性别
rPhoneNumber
varchar(12)
联系电话
institute
varchar(20)
学院
effectDate
$
datetime
生效日期
lostEffectDate
datetime
失效日期
breakRules
char
(2)
违规情况
>
borrowAdd
int
累计借书
表3-4Admin
属性名称
数据类型
/
属性描述
adminNo
varchar(12)
管理员编号
adminName
varchar(12)
管理员姓名
aSex
、
varchar
(2)
管理员性别
aPhoneNumber
varchar(12)
联系电话
address
varchar(40)
家庭住址
】
表3-5Borrow
属性名称
数据类型
属性描述
adminNo
varchar(12)
;
管理员编号
bookNo
varchar(20)
图书编号
readerNo
varchar(12)
读者编号
borrowDate
datetime
结束日期
shouldDate
datetime
应该归还日期
renewal
char(4)
是否续借
&
表3-6Admin_Book
属性名称
数据类型
属性描述
adminNo
varchar(12)
¥
管理员编号
bookNo
varchar(20)
图书编号
shopTome
datetime
入库时间
inLibrary
!
char(4)
是否在馆
表3-7Admin_Reader
属性名称
数据类型
属性描述
!
adminNo
varchar(12)
管理员编号
readerNo
varchar(12)
读者编号
bookNo
varchar(20)
@
图书编号
brCheck
char(4)
归还确认
六.数据库编程
1.创建表
(1)创建图书分类表BookClass
`
CREATETABLEBookClass(
classNovarchar(3)notnull,
classNamevarchar(20)null,
CONSTRAINTBookClassPKPRIMARYKEY(classNo)
)
(2)创建图书表Book
CREATETABLEBook(
bookNovarchar(20)notnull,
!
classNovarchar(3)notnull,
bookNamevarchar(50)notnull,
authorvarchar(12)notnull,
publishNamevarchar(50),
publishDatedatetime,
introductionvarchar(200),
CONSTRAINTBookPKPRIMARYKEY(bookNo),
CONSTRAINTBookPK1FOREIGNKEY(classNo)REFERENCESBookClass(classNo)
|
)
(3)创建管理员表Admin
CREATETABLEAdmin(
adminNovarchar(12)notnull,
adminNamevarchar(12)notnull,
aSexvarchar
(2)notnull,
aPhoneNumbervarchar(12)null,
addressvarchar(40)null,
》
CONSTRAINTAdminPKPRIMARYKEY(adminNo)
)
(4)创建读者表Reader
CREATETABLEReader(
readerNovarchar(12)notnull,
readerNamevarchar(10)notnull,
rSexvarchar
(2)notnull,
rPhoneNumbervarchar(12)null,
,
institutevarchar(20)notnull,
effectDatedatetime,
lostEffectDatedatetime,
breakRuleschar
(2),
borrowAddint,
CONSTRAINTReaderPKPRIMARYKEY(readerNo)
)
(5)创建借阅表Borrow
(
CREATETABLEBorrow(
adminNovarchar(12)notnull,
bookNovarchar(20)notnull,
readerNovarchar(12)notnull,
borrowDatedatetimenotnull,
shouldDatedatetimenotnull,
renewalchar(4)notnull,
CONSTRAINTBorrowPKPRIMARYKEY(adminNo,readerNo,bookNo),
)
CONSTRAINTBorrowPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),
CONSTRAINTBorrowPK2FOREIGNKEY(readerNo)REFERENCESReader(readerNo),
CONSTRAINTBorrowPK3FOREIGNKEY(bookNo)REFERENCESBook(bookNo),
)
(6)创建管理员_图书表Admin_Book
CREATETABLEAdmin_Book(
adminNovarchar(12)notnull,
bookNovarchar(20)notnull,
。
shopTimedatetime,
inLibrarychar(4)
CONSTRAINTAdmin_BookPKPRIMARYKEY(adminNo,bookNo),
CONSTRAINTAdmin_BookPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),
)
(7)创建管理员_读者Admin_Reader
CREATETABLEAdmin_Reader(
adminNovarchar(12)notnull,
,
readerNovarchar(12)notnull,
bookNovarchar(20)notnull,
brCheckchar(4)notnull,
CONSTRAINTAdmin_readerPKPRIMARYKEY(adminNo,readerNo,bookNo),
CONSTRAINTAdmin_readerPK1FOREIGNKEY(adminNo)REFERENCESAdmin(adminNo),
CONSTRAINTAdmin_readerPK2FOREIGNKEY(readerNo)REFERENCESReader(readerNo),
CONSTRAINTAdmin_readerPK3FOREIGNKEY(bookNo)REFERENCESBook(bookNo)
)
#
2.创建触发器
CreateTriggerRENEW
OnBorrow
forUpdate
As
IfUpdate(renewal)
begin
UpdateBorrow
》
SetshouldDate=shouldDate+30
WhereadminNo=1001
end
3.管理员操作
(1)注册
INSERTINTOAdmin(adminNo,adminName,aSex,aPhoneNumber,address)
VALUES(#adminNo,#adminName,#aSex,#aPhoneNumber,#address)
(2)注销
`
DELETEFROM Admin
WHERE(adminNo=#adminNo);
(3)修改个人信息
UPDATEAdmin
SET(adminNo=#adminNo,adminName=#adminName,aSex=#aSex,aPhoneNumber#aPhoneNumber,address#address);
(4)增加图书
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
VALUES(#bookNo,#classNo,#bookName,#author,#publishName,#publishDate,#introduction)
(5)删除图书
!
DELETEFROMBook
WHERE(bookNo=#bookNo)
(6)修改图书信息
UPDATEBook(bookNo=#bookNo,classNo=#classNo,bookName=#bookName,author=#author,publishName=#publishName,publishDate=#publishDate,introduction=#introduction)
(7)增加图书分类
INSERTINTOBookClass(classNo,className)
VALUES(#classNo,#className)
(8)删除图书分类
!
DELETEFROMBookClass
WHERE(classNo=#classNo)
(9)更新图书分类
UPDATEBookClass(classNo=#classNo,className=#className)
4.读者操作
(1)注册
INSERTINTOReader(readerNo,readerName,rSex,rPhoneNumber,institute,effectDate,lostEffectDate,breakRules,borrowAdd)
VALUES(#readerNo,#readerName,#rSex,#rPhoneNumber,#institute,#effectDate,#lostEffectDate,#breakRules,#borrowAdd)
、
(2)注销
DELETEReader
WHERE(readerNo=#readerNo)
(3)修改个人信息
UPDATEReader
SET(readerNo=#readerNo,readerName=#readerName,rSex=#rSex,rPhoneNumber=#rPhoneNumber,institute=#institute,effectDate=#effectDate,lostEffectDate=#lostEffectDate,breakRules=#breakRules,borrowAdd=#borrowAdd)
(4)查询
SELECT*FROMBook
WHEREbookNo=#bookNoORbookName=#bookName
5.管理员对借阅关系的操作
(1)插入读者的信息
INSERT INTOBorrow(adminNo,bookNo,readerNo,borrowDate,shouldDate,renewal)
VALUES(#adminNo,#bookNo,#readerNo,#borrowDate,#shouldDate,#renewal)
(2) 更新信息
①更新借出信息
UPDATEBorrow
SET(borrowDate=#borrowDate,shouldDate=shouldDate+30,renewal=’0’)
WHERE(adminNo=#adminNo AND readerNo=#readerNo AND bookNo =#bookNo)
UPDATEAdmin_Book
SET(inLibrary=’0’)
WHERE(bookNo=#bookNo)
UPDATA Reader
SET (borrowAdd=borrowAdd+1)
WHERE(readerNo=#readerNo)
INSERT INTOAdmin_Reader(adminNo,readerNo,bookNo,brCheck)
VALUES(#adminNo,#readerNo,#bookNo,#brCheck)
②更新续借信息
~
UPDATE Borrow
SET(renewal=#renewal)
WHERE(adminNo=#adminNo AND readerNo=#readerNo AND bookNo=#bookNo)
③更新还书信息
UPDATEAdmin_Book
SET(inLibrary=1)
WHERE(bookNo=#bookNo)
UPDATEAdmin_Reader
SET(brCheck=’1’)
WHERE(adminNo=#adminNo AND readerNo=#readerNo AND bookNo=#bookNo)
七.代码实现
1.输入数据设计
(1)插入图书分类
INSERTINTOBookClass(classNo,className)
VALUES('C01','信息技术教材')
:
INSERTINTOBookClass(classNo,className)
VALUES('C02','小说')
INSERTINTOBookClass(classNo,className)
VALUES('C03','外语')
INSERTINTOBookClass(classNo,className)
;
VALUES('C04','漫画')
(2)插入管理员
INSERTINTOAdmin(adminNo,adminName,aSex,aPhoneNumber,address)
VALUES('1001','王子','女','0','北京')
(3)插入读者
INSERTINTOReader(readerNo,readerName,rSex,rPhoneNumber,institute,
!
effectDate,lostEffectDate,breakRules,borrowAdd)
VALUES('11111','李瑞','男','9','软件','2010-09-02','2014-06-30','1','10')
(4)插入图书
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
VALUES('S1234','C01','数据库系统原理与设计','万常选','清华大学出版社','2009-03-05','数据库教程')
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
《
VALUES('S1235','C01','JAVA','吴京','清华大学出版社','2007-05-07','JAVA基础教程')
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
VALUES('S1236','C02','红楼梦','曹雪芹','清华大学出版社','2009-09-04','中国四大名著之一')
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
VALUES('S1237','C03','英语写作','刘平惠','浙江大学出版社','2006-10-21','基础英语写作教程')
【
INSERTINTOBook(bookNo,classNo,bookName,author,publishName,publishDate,introduction)
VALUES('S1238','C04','最漫画','郭敬明','长江出版社','2011-03-17','漫画连载')
(5)插入管理员_书籍表
INSERTINTOAdmin_Book(adminNo,bookNo,shopTime,inLibrary)
VALUES('1001','S1234','2010-7-7','0')
INSERTINTOAdmin_Book(adminNo,bookNo,shopTime,inLibrary)
VALUES('1001','S1235','2008-7-8','1')
(6)插入借阅信息
INSERTINTOBorrow(adminNo,bookNo,readerNo,borrowDate,shouldDate,renewal)
VALUES('1001','S1234','11111','2012-6-1','2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 图书 管理 系统 代码