图书管理系统需求分析与设计及实现.docx
《图书管理系统需求分析与设计及实现.docx》由会员分享,可在线阅读,更多相关《图书管理系统需求分析与设计及实现.docx(24页珍藏版)》请在冰豆网上搜索。
![图书管理系统需求分析与设计及实现.docx](https://file1.bdocx.com/fileroot1/2023-1/10/37762061-942e-46d2-8227-29207f92b122/37762061-942e-46d2-8227-29207f92b1221.gif)
图书管理系统需求分析与设计及实现
图书管理系统的分析与设计
1.设计内容
设计开发一个图书管理系统,主要包括如下要求:
1)对读者基本信息的管理,包括读者信息的录入、修改、删除及查询;
2)对图书信息的管理,进行新书入库、现有图书信息修改、删除以及查询;
3)图书借阅的管理;
4)图书归还的管理。
2.设计目的
数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
通过本实验达到以下目的:
1)培养具有C/S和B/S模式的数据库应用软件系统的设计和开发能力。
2)熟练掌握一种数据库系统(如SQLSERVER)的使用。
3)熟练掌握一种数据库应用软件开发工具(如ASP、VB、VC)的使用。
4)通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
要求:
要求掌握数据库的设计的每个步骤;掌握数据库设计各阶段的设计内容、设计方法和工具。
3.设计过程
3.1需求分析
3.1.1用户需求
图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。
需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。
(1)对用户信息的管理
⏹能够对一定数量的读者信息进行存储与管理,这其中包括:
读者信息的登记、删除及修改;读者基本信息的查询。
(2)对图书信息的管理
⏹能够存储一定数量的图书信息,并方便有效地进行书籍数据的操作和管理,这主要包括:
图书信息的录入、删除及修改;图书信息的查询,即可根据不同的条件(条形码、书名、类别、作者、书架、出版社等信息)查询读者需要的图书,而读者可根据不同的条件(条形码、图书名称、读者编号、读者姓名、到期时间等信息)查询自己借阅图书的信息。
(3)对图书借阅的管理
⏹借书管理:
读者从书架上选取所需图书后,将图书和借阅卡交管理人员,管理人员利用条形码扫描仪及读卡器将图书和借阅卡上的信息读入系统。
系统根据借阅卡信息从借阅者的借阅文件中找到相应记录;根据图书信息从图书文件中找到相应记录,读者如果有如下列情况之一将不予办理借书手续。
① 读者所借阅图书已超过该读者允许的最多借书数目。
② 该读者还有已超过归还日期而仍未归还的图书。
⏹若读者符合所有借书条件时,予以借出。
系统在借阅文件中增加一条记录,记入读者编号(学生学号或教师编号)、图书编号(可以使用ISBN号)、借阅日期等内容。
(4)对图书归还的管理
⏹还书管理:
还书时,读者将图书交给管理人员,管理员通过条形码扫描仪将图书上的图书条码读入系统,系统从借阅文件上找到相应记录,填上还书日期,同时系统根据借书、还书日期进行计算,判断是否超过归还日期,若未超期则结束过程,若超期则计算出超期天数、罚款数。
通知读者交纳罚款。
3.1.2数据流图
依据用户需求,绘制系统的顶层数据流图,如图3-1所示。
第一层数据流图(如图3-2所示),借书处理的数据流图(图3-3),还书处理的数据流图(图3-4)以及入库处理的数据流图(图3-5)。
图3-1顶层数据流图
将顶层数据流图分层细化,下面是第一层数据流图(如图3-2所示)。
图3-2第一层数据流图
图3-3是借书处理的数据流图。
图3-3借书处理的数据流图
图3-4是还书处理的数据流图。
图3-4还书处理的数据流图
3.1.3数据字典
1.数据结构字典
----------------------------------------------------------------------
数据结构名:
借阅者
含义说明:
借阅者信息
组成:
借阅者姓名,借阅证号,班级,专业,院系,借书数量
----------------------------------------------------------------------
数据结构名:
管理员
含义说明:
管理员信息
组成:
管理员编号,管理员姓名,职称,负责书库
----------------------------------------------------------------------
数据结构名:
图书
含义说明:
图书信息
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
2.数据流字典
----------------------------------------------------------------------
数据流名:
借阅证
说明:
借阅者信息
数据流来源:
借阅者
数据流去向:
借书处理
组成:
借阅者姓名,借阅证号,班级,院系
----------------------------------------------------------------------
数据流名:
图书
说明:
借阅图书信息
数据流来源:
借书处理
数据流去向:
借阅者
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
数据流名:
还书
说明:
借阅者还书
数据流来源:
借阅者
数据流去向:
还书处理
组成:
借阅者姓名,借阅证号,班级,院系
----------------------------------------------------------------------
数据流名:
不合格的借阅证
说明:
借阅证无法使用
数据流来源:
借书处理
数据流去向:
借阅者
组成:
借阅者姓名,借阅证号,班级,院系
----------------------------------------------------------------------
数据流名:
借书清单
说明:
借出书目信息
数据流来源:
借书处理
数据流去向:
图书库存情况存档
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
数据流名:
还书清单
说明:
归还书目信息
数据流来源:
还书处理
数据流去向:
图书库存情况存档
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期----------------------------------------------------------------------
数据流名:
入库新书清单
说明:
入库新书信息
数据流来源:
管理员
数据流去向:
新书入库处理
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
数据流名:
库存清单
说明:
库存图书信息
数据流来源:
新书入库处理
数据流去向:
图书库存情况存档
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
数据流名:
销书计划
说明:
销毁图书信息
数据流来源:
管理员
数据流去向:
销书处理
组成:
图书编号,图书名称,日期,数量
----------------------------------------------------------------------
数据流名:
销书清单
说明:
销毁图书目录
数据流来源:
销书处理
数据流去向:
图书库存情况存档
组成:
图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期
----------------------------------------------------------------------
数据流名:
罚款清单
数据流来源:
罚款处理
数据流去向:
借阅者
组成:
管理员编号,借阅证号,借书编号,罚款数目
----------------------------------------------------------------------
3.处理逻辑字典
----------------------------------------------------------------------
处理逻辑名:
借书处理
含义说明:
完成读者对图书的借阅处理
输入数据流:
借阅证来源:
借阅者
输出数据流:
(1)不合格的借阅证去向:
借阅者
(2)图书去向:
借阅者
(3)借书清单去向:
图书库存情况存档,借阅者信息,借阅情况存档
处理:
检索“借阅情况存档”,“借阅者信息”,根据借阅者的借阅卡信息,审核借阅者的借阅条件,若不符合条件,则退回借阅卡;若符合条件,则检索“图书在库情况存档”,有在库图书,则完成审核,形成合格的借书单,据此完成图书借阅,并将借书信息加入到“借阅情况存档”,根据借书清单修改“图书库存情况存档”,“借阅者信息”文件。
----------------------------------------------------------------------
处理逻辑名:
还书处理
含义说明:
完成读者对图书的归还处理
输入数据流:
还书来源:
借阅者
输出数据流:
还书清单去向:
图书库存情况存档,借阅者信息,借阅情况存档
处理:
检索“借阅情况存档”,通过计算图书借阅的时间,审核借阅者所借阅的图书是否过期,若过期则通知借阅者缴纳罚款,并归还图书,若未过期则完成图书入库处理,并根据形成的还书清单,修改“借阅情况存档”、“图书库存情况存档”、借阅者信息”文件。
----------------------------------------------------------------------
处理逻辑名:
入库处理
含义说明:
完成新书入库处理
输入数据流:
入库新书清单来源:
管理员
输出数据流:
库存清单去向:
图书库存情况存档
处理:
根据管理员提交的入库新书清单完成图书入库处理,并根据形成的库存清单,修改“图书库存情况存档”文件。
----------------------------------------------------------------------
处理逻辑名:
销书处理
含义说明:
完成图书的出库销书处理
输入数据流:
销书计划来源:
管理员
输出数据流:
销书清单去向:
图书库存情况存档
处理:
根据管理员提交的销书计划完成图书出库处理,并根据形成的销书清单,修改“图书库存情况存档”文件。
----------------------------------------------------------------------
4.数据存储字典
----------------------------------------------------------------------
数据存储名:
图书库存情况存档
含义说明:
每类图书库存情况
输入数据流:
借书清单、还书清单、库存清单、销书清单
输出数据流:
图书库存情况
数据存储的组成:
图书
----------------------------------------------------------------------
数据存储名:
借阅情况存档
含义说明:
借阅者借阅情况
输入数据流:
借书清单、还书清单
输出数据流:
借阅情况
数据存储的组成:
借阅证号,图书编号,管理员编号,借出日期,归还日期,到期日期,拖欠日期,罚款数目
----------------------------------------------------------------------
数据存储名:
借阅者信息
含义说明:
借阅者信息
输入数据流:
借书清单、还书清单
输出数据流:
借阅者信息
数据存储的组成:
借阅者
----------------------------------------------------------------------
3.1.4功能模块分析
根据用户需求,以及数据流图分析,提取出系统应该实现的功能,如图3-5所示。
图3-5系统功能结构图
主要包括:
(1)实现对图书信息的修改,包括定义、查询、更新、删除等操作
⏹图书信息包括图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期等。
(2)实现对借阅者信息的修改,包括定义、查询、更新、删除等操作
⏹借阅者信息包括借阅证号,姓名,班级,院系、借书数量等。
(3)实现借书功能
⏹借书信息的输入,包括借阅证号,图书编号,借出日期,到期日期,归还日期,拖欠日期,罚款数目等。
⏹借书信息的查询,修改,包括图书编号,借阅证号,借阅者姓名,图书名称,借出日期等。
(4)实现还书功能
⏹还书信息的查询和修改,包括还书信息编号,借阅者编号,姓名,图书编号,图书名称,借书日期,还书日期等。
(5)实现销书功能
⏹对不符合要求的图书进行出库处理,包括图书编号,书名,作者姓名,出版社,出版日期,在库数,所在书库,入库日期,出库日期等。
3.2概念结构设计
分析了数据流图及数据字典,列出图书管理系统中涉及到的实体以及基本的E-R图。
(1)实体属性图
该系统中涉及到的实体有:
图书实体、借阅者实体、管理员实体、书库实体,上述实体对应的属性图见图3-6、图3-7、图3-8以及图3-9所示。
图3-6图书实体属性图
图3-7借阅者实体属性图
图3-8管理员实体属性图
图3-9书库实体属性图
(2)基本E-R图
图3-10基本E-R图
3.3逻辑结构设计
3.3.1关系模型
将上述E-R图转换为逻辑模型,其中实体转换为独立的关系模式,多对多联系也转换为独立的关系模式,而一对多联系与n端实体的关系模式进行合并,可得到如下关系模式。
图书(图书编号,书名,作者姓名,出版社,出版日期,在库数,入库日期,出库日期,书库编号),其中“图书编号”为主码,“书库编号”为外码。
借阅者(借阅证号,姓名,学号,专业,年级,院系,借书数量),其中“借阅证号”是主码。
管理员(管理员编号,姓名,职称,书库编号),其中“管理员编号”是主码,“书库编号”为外码。
书库(书库编号,书库名称,地点),其中“书库编号”是主码。
借阅(借阅证号,图书编号,管理员编号,借出日期,归还日期,到期日期,拖欠日期,罚款数目),其中“借阅证号”、“图书编号”及“管理员编号”共同构成主码。
管理(管理员编号,借阅证号),其中“管理员编号”及“借阅证号”共同构成主码。
处理(管理员编号,图书编号),其中“管理员编号”及“图书编号”共同构成主码。
3.3.2数据模型优化
在“图书”、“借阅者”、“管理员”、“书库”、“借阅”“管理”及“处理”关系模式中,不存在非主属性对码的部分函数依赖以传递函数依赖,因此这些关系模式属于第三范式。
3.3.3视图设计
视图是从一个特定的角度来查看数据库中的数据,从数据库系统内部看,一个视图是由SELECT语句组成的查询定义的虚表,它是由一张或多张表中的数据组成的;从数据库系统外部来看,视图就如同一张表,对视图的操作最终转换为对基本表的操作。
可以在上述基本表上建立如下视图。
表3-1视图定义
编号
视图(View)
作用(共性:
提供数据保密和安全保护机制)
V-1
BookView1
便于查询和更新图书的基本信息
V-2
BookView2
便于查询和更新图书的入库、出库日期
V-3
BorrowView
用于查询当前的借阅信息
V-4
FineView
便于查询罚款信息
BookView1(图书编号,书名,作者姓名,出版社,出版日期,在库数,书库编号);
BookView2(图书编号,书名,入库日期,出库日期);
BorrowView(借阅证号,图书编号,管理员编号,借出日期,到期日期);
FineView(借阅证号,图书编号,到期日期,拖欠日期,罚款数目)。
3.4物理结构设计
根据上述分析,数据库中应包含7张基本表,下面列出了每张表中数据项的定义,见表3-2、表3-3、表3-4、表3-5、表3-6、表3-7以及表3-8所示。
表3-2图书表(Book)
列名
数据类型
约束条件
说明
BookNo
Char
Primarykey
图书的编号
BookName
Char
NotNull
图书的书名
BookWriter
Char
NotNull
图书作者
BookPulish
Char
NotNull
图书出版社
BookPDate
Date
—
图书的出版日期
BookQuantity
Int
NotNull
图书的在库数量
BookIn
Date
NotNull
图书入库时间
BookOut
Date
NotNull
图书出库时间
BookRNo
Char
ForeignKey
图书所在书库编号
表3-3借阅者表(Reader)
列名
数据类型
约束条件
说明
ReaderNo
Char
PrimaryKey
借阅证号
ReaderName
Char
NotNull
借阅者姓名
ReaderID
Char
NotNull
借阅者学号
ReaderPref
Char
NotNull
借阅者所属专业
ReaderGrade
Char
Notnull
借阅者的年级
ReaderDep
Char
Notnull
借阅者所在院系
BorrowQuantity
Int
Notnulland<=10
借书数量
表3-4管理员表(Manager)
列名
数据类型
约束条件
说明
ManagerNo
Char
PrimaryKey
管理员编号
ManagerName
Char
NotNull
管理员姓名
ManagerTitle
Char
NotNull
管理员职称
BookRNo
Char
ForeignKey
管理员所负责的书库编号
表3-5书库表(Stackroom)
列名
数据类型
约束条件
说明
StackroomNo
Char
PrimaryKey
书库编号
StackroomName
Char
NotNull
书库名称
StackroomLoc
Char
NotNull
地点
表3-6借阅信息表(Borrow)
列名
数据类型
约束条件
说明
ReaderNo
Char
Primarykey
借阅证号
BookNo
Char
Primarykey
图书的编号
ManagerNo
Char
PrimaryKey
管理员编号
OutDate
Date
NotNull
借出日期
BackDate
Date
—
归还日期
InDate
Date
NotNull
到期日期
ArrearsDate
Date
NotNull
拖欠日期
Fine
Int
NotNull
罚款数目
表3-7管理表(Manage)
列名
数据类型
约束条件
说明
ManagerNo
Char
PrimaryKey
管理员编号
BookNo
Char
Primarykey
图书的编号
表3-8处理表(Handle)
列名
数据类型
约束条件
说明
ManagerNo
Char
PrimaryKey
管理员编号
ReaderNo
Char
Primarykey
借阅证号
根据上述视图的定义,下面列出了每个视图中数据项的定义,见表3-9、表3-10、表3-11以及表3-12所示。
表3-9图书基本信息视图
列名
数据类型
可否为空
说明
BookNo
Char
NotNull
图书的编号
BookName
Char
NotNull
图书的书名
BookWriter
Char
NotNull
图书作者
BookPulish
Char
NotNull
图书出版社
BookPDate
Date
—
图书的出版日期
BookQuantity
Int
NotNull
图书的在库数量
BookRNo
Char
NotNull
图书所在书库编号
表3-10图书的出入库信息视图
列名
数据类型
可否为空
说明
BookNo
Char
Notnull
图书的编号
BookName
Char
NotNull
图书的书名
BookIn
Date
NotNull
图书入库时间
BookOut
Date
NotNull
图书出库时间
表3-11读者当前借阅信息视图
列名
数据类型
可否为空
说明
ReaderNo
Char
Notnull
借阅证号
BookNo
Char
Notnull
图书编号
ManagerNo
Char
Notnull
管理员编号
OutDate
Date
NotNull
借出日期
InDate
Date
NotNull
到期日期
表3-12罚款信息视图
列名
数据类型
可否为空
说明
ReaderNo
Char
Notnull
借阅证号
BookNo
Char
Notnull
图书编号
InDate
Date
NotNull
到期日期
ArrearsDate
Date
NotNull
拖欠日期
Fine
Int
NotNull
罚款数目
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成的主要任务为确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构。
为数据库中各基本表建立索引,如下所示。
⏹由于基本表Reader,Book的主码ReaderNo,BookNo经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,在两个属性上建立唯一性索引;
⏹由于基本表Reader的属性ReaderDep,Book的属性BookPublish经常在查询条件中出现,在两个属性上建立聚簇索引;
⏹借阅信息基本表Borrow的属性ReaderNo,BookNo,经常在查询条件中出现,考虑在其之上建立聚簇索引。