摘要
当今社会正快速向信息化社会前进,信息系统的作用也越来越大。图书馆在正常运营中总是面对大量的读者信息,书籍信息以及由两者相互作用产生的借书信息,还书信息。因此图书管理信息化是发展的必然趋势。用结构化系统分析与设计的方法,建立一套有效的图书信息管理系统,可以减轻工作,将工作科学化、规范化,提高了图书馆信息管理的工作质量因此根据图书馆目前实际的管理情况开发一套图书管理系统是十分必要的。
1.系统分析
1.1功能目标
1. 实现图书馆对在馆图书的按类别,书名,作者,是否已被借出等多方面的查询。
2. 实现图书馆对新书入库,旧书注销的简单处理,并且建立书籍档案,方便图书管理。
3. 能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除。
4. 建立图书馆外借读者数据库,包括添加读者信息、删除读者信息、修改读者信息。
5. 可以按读者编号查询读者信息,包括该读者所借图书名称,归还日期等信息。
6. 能够进行罚款功能。
7. 能够进行借阅历史的查询功能。
9. 增加管理用户和注销功能。
1.2系统需求分析
1.2.1用户需求
1、 可以管理读者的登记、图书的购入、借出、归还以及注销等。
2、 管理人员可以查询某位读者、某本图书的借阅情况,对当前借阅情况给出一些统计,给出统计表格,以全面掌握图书的流通情况。
3、 同时可以连接网络,便于在校教师,学生查询自己的借阅信息等。避免在馆图书内,下载所需资源,大大节省了图书馆的人力资源,方便了教师、学生的借阅,查询。
4、 管理员可以利用系统得出仓储和折旧等情况,根据这些决定进购书的类型和数量。
5、 用户可以快速查找图书信息,方便借阅。
1.2.2系统的功能需求:
1. 密码设置:每个操作员均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。
2. 资料维护:为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。
3. 系统查询:可以按图书编号、借阅证编号等相关信息进行查询
4. 系统管理:进行图书馆信息管理、管理员权限设置。
5. 报表统计:包括统计图书信息、读者信息、借阅信息和罚款信息等。
6. 其它操作:包括修改密码、添加用户、页面设置等。
1.3业务流程分析
业务流程图(TFD)反映着业务处理的过程,有前后次序关系。
基本符号如下
业务处理单位 数据 业务 存档文件 文档 决策
经过分析,得到系统综合业务流程图如下:
1.4数据流程分析
顶层数据流图:
第2层数据流图:(读者借阅,读者还书,读者查询)
第3层数据流图1:(读者借阅)
第3层数据流图2:(读者还书)
第3层数据流图3:(查询图书信息,查询读者信息,查询借阅历史,查询罚款信息)
1.4相关关键数据字典
数据项:
系统涉及的数据项有44项
表1.1 数据项列表
数据项编号 | 数据项名 | 数据项含义 | 与其它数据项的关系 | 存储结构 | 别名 |
DI-1 | BookID | 图书条码号 | char(9) | 条码号 | |
DI-2 | BookNo | 图书索书号 | char(10) | 索书号 | |
DI-3 | BookName | 图书名 | char(20) | 书名 | |
DI-4 | BookWriter | 图书作者 | char(8) | 作者 | |
DI-5 | BookPublish | 图书出版社 | char(20) | 出版社 | |
DI-6 | BookPrice | 图书单价 | char(7) | 单价 | |
DI-7 | BookDate | 图书出版日期 | Date | 出版日期 | |
DI-8 | BookClass | 图书分类 | char(20) | 类别 | |
DI-9 | BookMain | 图书摘要 | char (200) | 摘要 | |
DI-10 | BookPrim | 图书关键字 | char (30) | 关键字 | |
DI-11 | BookCopy | 图书副本数 | char (5) | 副本数 | |
DI-12 | BookState | 图书是否可借 | char(10) | 状态 | |
DI-13 | BookRNo | 所属馆室号 | 同RoomNo | char(5) | 馆室号 |
DI-14 | ReaID | 读者条码号 | char(9) | 条码号 | |
DI-15 | ReaName | 读者姓名 | char(10) | 姓名 | |
DI-16 | ReaSex | 读者性别 | char(2) | 性别 | |
DI-17 | ReaNo | 读者学号 | char (9) | 学号 | |
DI-18 | ReaLBID | 读者类别编号 | 同LBID | char(5) | 类别编号 |
DI-19 | ReaType | 读者类型(职务) | char(20) | 类型 | |
DI-20 | ReaDep | 读者所在学院 | char(20) | 学院 | |
DI-21 | ReaGrade | 读者所属年级 | char(5) | 年级 | |
DI-22 | ReaPre | 读者所读专业 | char(20) | 专业 | |
DI-23 | ReaDate | 读者时间 | Date | 时间 | |
DI-24 | OutDate | 借阅日期 | Date | 借阅时间 | |
DI-25 | InDate | 归还日期 | Date | 归还时间 | |
DI-26 | YHDate | 应还日期 | Date | 应还时间 | |
DI-27 | Fine | 罚款金额 | char(3) | 罚款金额 | |
DI-28 | CLState | 是否交纳罚金 | char(8) | 处理状态 | |
DI-29 | LBID | 类别编号 | 同ReaLBID | char(5) | 类别编号 |
DI-30 | LBName | 读者类别名 | char(20) | 类别名 | |
DI-31 | LBnum | 允许最多借书数量 | char(5) | 借阅数量 | |
DI-32 | LBbqx | 允许最长持有时间 | char(4) | 借阅期限 |
2.1系统结构设计
2.1.1系统功能模块图:
2.1.2读者基本信息的查询和更新模块
将实现对读者基本信息的查询和更新(修改、添加、删除)操作,用于新生入学,毕业生离校,以及读者补办借阅证或更改信息的情况,具体的功能模块图如下:
2.1.3图书基本信息的查询和更新模块
将完成对图书基本信息的查询、更新(修改、添加、删除)操作,用于读者对图书信息的查询及管理员添加新书、删除淘汰的旧书,具体的功能模块图如下所示:
2.2数据库设计
2.2.1概念结构设计
实体——联系图
在本图书管理系统中,从第3层数据流程图下手。分析各3层数据流图和数据字典,知道整个系统功能围绕“读者”、“管理员”和“图书”的处理。根据实体与属性间的两条准则:作为“属性”,不能再具有需要描述的性质。“属性”不能与其他实体具有联系。第三层数据流程图1、图2、图3可综合成借阅子系统的分E-R图1,第三层数据流程图4可抽象为分E-R图2,第三层数据流程图5可抽象为分E-R图3,第三层数据流程图6可抽象为分E-R图4。然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图5。
根据不同的对象,从第3层数据流程图入手,分别画出各分E-R图:
从第三层数据流程图图1、2与图3抽象出的分E-R图1:
从第三层数据流程图图4抽象出的分E-R图2:
从第三层数据流程图图5抽象出的分E-R图3:
从第三层数据流程图图6抽象出的分E-R图4:
合并各分E-R图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步E-R图,再消除不必要冗余,得到的基本E-R图5如下所示:
各E-R图各实体的属性如下所示:
图书:Book(BookID, BookNo, BookName, BookWriter, BookPublish, BookPrice, BookDate, BookClass, BookMain, BookPrim, BookCopy, BookState,BookRN)
读者:Reader(ReaID, ReaName, ReaSex, ReaNo, ReaLBID, ReaType, ReaDep, ReaGrade, ReaPref, ReaDate)
管理员:Maneger(MID, MName, MSex, Mpwd, MAuth, MTeleph, MAddre)
馆室:Room(RoomNo,RoomMID,RoomNum,RoomAddre)
读者类别:ReaderTpye(LBID, LBName, LBnum, LBbqx, LBqx)
各E-R图中联系的属性如下所示:
借阅信息:Borrow (BookID,ReaderID,BookName,BookWriter, Outdate,YHdate)
借阅历史:History(BookID,ReaderID,BookName, BookWriter, Outdate,Indate)
罚款信息:Fine(BookID,ReaderID,BookName, Outdate,Indate, Fine, CLState, MID)
2.3表结构设计
读者信息表结构设计
读者信息表的设计是为了图书馆管理员对读者进行管理,其中读者ID,不同类型证件的号码都是唯一的,是读者在借阅图书时需要输入对读者身份进行识别的信息,读者邮件电话等信息室为了与读者进行联系,读者类型信息决定了读者一次性可借阅的图书的数量,注册时间可用于查询计算读者身份有效的期限,操作员是为了便于对信息才操作的查询。表的具体结构设计如下:
表2.4读者信息表tb_reader
字段名称 | 数据类型 | 字段长度 | 是否为空 | 说明 |
Id | int | 10 | No | Key |
name | varchar | 20 | No | |
sex | varchar | 4 | No | |
barcode | varchar | 30 | No | |
readertype | varchar | 11 | No | 读者类型 |
tel | varchar | 20 | Yes | 电话 |
varchar | 100 | Yes | ||
paperType | varchar | 10 | No | 证件类型 |
PaperNO. | Varchar | 20 | No | 证件号码 |
birthday | date | Yes | ||
intime | date | No | 登记时间 | |
operator | varchar | 30 | No | 操作员 |
该表的设计是用于对读者借阅图书进行管理,表中图书ID属性是对借阅图书的唯一性识别标识,读者ID号记录借阅的相应读者,结出时间记录了相应的归还时间,以及归还时是否超时,操作员是对借阅进行操作的人员的记录方便日后的查询,是否归还标识可查询当起读书是否被归还,表的具体结构设计如下:
表 2.6 图书借阅信息表 tb_borrow
字段名称 | 数据类型 | 字段长度 | 是否为空 | 说明 |
ID | int | 10 | No | Key |
readerID | varchar | 10 | No | |
bookID | int | 10 | No | |
borrowTime | date | No | 结出时间 | |
backTime | date | No | 应归还时间 | |
operator | varchar | 30 | No | 操作员 |
ifback | tinyint | 1 | No | 是否归还 |
与图书借阅信息表形成对照的是图书归还信息表,该表的设计除了像上表一样把借阅的图书与相应的借阅者进行对应的联系以外还记录了读者应归还图书的时间,以此判断读者的借阅是否超时,表的具体结构设计如下:
表 2.7图书归还信息表tb_giveback
字段名称 | 数据类型 | 字段长度 | 是否为空 | 说明 |
ID | int | 10 | No | Key |
readerID | varchar | 11 | No | |
bookID | int | 11 | No | |
backTime | date | No | 归还时间 | |
operator | varchar | 30 | No | 操作员 |
编码就是以数字或字符来代表各种客观实体。
本系统中涉及到编码的主要有两个实体,分别图书和读者。对图书和读者进行合理的信息编码设计,使其能清晰的标识对象和显示分类,对系统的进一步设计是很有必要的。
本系统采用层次码和顺序码结合的方式来对图书和读者进行编码。“顺序码”就是顺序的自然数或字母赋予编码对象。“层次码”是按对象的从属、层次关系为排列顺序的一种编码方式。编码时将代码分成若干层级并与分类对象的分类层级相对应,代码从左至右,表示层级由高到低。
1)对读者编号,为了便于查找采用层次码。可直接对应学生学号或教职工号。
如:2009(年级,即入学年份) 05(学院代码) 06(码) 02(班级) 16(学号数)
2)图书编号,为了便于得到有关信息采用层次码。
如:TP(类别) 3111(编号) 01(内部编号)
[注]: 内部编号:同时采购了五本相同的图书,在类别和编号相同的时候,用01,02,03,04,05分别代表这五本相同的图书。
编号: 计算机应用基础-计算机网络---3112
计算机组成原理-数据库---3114
类别:计算机类-文学类-艺术类---V
数理化-英语类---H
2.5输入输出界面