图书馆管理信息系统的数据库设计
1 需求分析
1.1系统目标
大学图书馆管理信息系统为广大大学师生提供了便利的图书借阅服务。本系统面向全体教职职工与学生,该系统根据不同的操作者,提供不同的服务,以实现图书管理系统的科学化、系统化、自动化,最大限度地为老师和学生提供方便和提供管理效率。 1.2功能分析
图书馆管理信息系统的功能模块如图1.1所示。
图书馆管理信息系统书籍管理读者管理借阅管理查看新增书籍书籍信息维护书籍类别管理新增读者读者信息维护借阅历史查看书籍信息查询读者信息查询借阅信息查询
图1.1 图书馆管理信息系统功能模块
(1)读者管理
1)新增读者。新增读者时要求填写其基本的信息,包括读者号、密码、读者姓名、性别、读者类型、单位、电子邮箱等。
2)读者信息维护。读者可以对自己的信息进行修改,图书管理员有权限对已有读者的信息进行修改和删除。
3)借阅历史查看。注册的读者可以在网上查询自己的图书借阅情况,一般读者只可以查阅到自己的借阅情况和图书的信息,而图书管理员可以查看任何读者的信息、借阅情况、任何图书的信息和借阅情况。
(2)书籍管理
1)新增书籍。图书管理员对新增的入库文献资料按规定进行编目、编录、加工、建库。对每本图书、杂志要登记其基本信息,包括图书名称、图书作者、ISBN号、出版地、出版社、出版时间、字数、单价、内容简介、所属分类号,馆藏地、入库时间等。
2)书籍信息维护。图书管理员可以对入库的书籍信息进行修改,或是删除该书籍信息,如采购书籍册数。
3)书籍类别管理。新增书籍按照中图法分类规则进行分类。 (3)借阅管理
1)书籍借阅管理。图书管理员根据不同类型读者的借阅情况,对书籍进行管理。
(4)查看
1)书籍信息查询。登陆本系统的读者或是图书管理员可以查看现有图书系统中任何书籍的信息。
2)读者信息查询。一般的读者只能查看自己在该系统上的信息,如借阅的书籍等,而图书管理员可以查看任何读者的信息情况。
3)借阅信息查询。读者或是图书管理员可以查看每本书籍的在图书馆的状态,是借阅中还是在馆藏地等。 1.3数据需求及业务规则分析
(1)图书馆为全校的学生和教职工提供图书借阅服务,学生分为高职生、本科生(含一本、二本、三本)、硕士研究生(含MBA)和博士研究生等多种层次。
(2)图书按性质可以分为中文图书、外文图书和新书。不同的读者对象有不同的借阅要求,按照借阅要求规则。
(3)新书在上架或入库后的60天内只提供短期外借,然后自动生成中文图书或是外文图书。
(4)借出的图书不能当天归还。
(5)每次借阅后读者最多可以续借一册图书一次。
(6)图书逾期不还者,如果是中文图书,则每册每天罚款0.2元、新书和外文图书借阅则每册每天0.5元。并且对超期图书,图书管理系统将自动向读者电子邮箱中发一封电子邮件催还图书。
(7)每个读者和图书管理员都有自己唯一的编号。
(8)每个书籍都有唯一的图书编号,,每种图书可能采购多册,并且分布于多个馆中。
(9)每个馆藏的图书,当借出后,则该图书状态改为借出状态,而且相应的该馆藏这本图书修改。
(10)图书的归还遵循属地原则,即从哪个分馆借出的图书必须要在那个分馆中归还。
(11)图书馆管理员有权更改图书到期时间,比如将本来暑假到期的图书的到期时间改为9月10日。
(12)每个用户都分配了用户名(全局唯一)和密码,其中,用户名就是读者号,密码初始值为读者的学号或者工号,可以修改。 1.4数据约束分析
(1)读者登陆系统的用户名即是读者号,为一卡通账号或学工号,11位。初始密码为该读者的读者号,可以修改。
(2)书籍编号按照一定规则, “ISBN号”+三位流水号“XXX” (3)每种借阅类型和读者类型,其借阅册数、借期、是否允许续借、续借期限等不同。不同借阅种类和借阅对象的借阅要求规定。例如,本专科生可以借中文图书5本,借期30天,可以续借一次,续借15天。
(4)日期的格式一律采取“yyyy--mm--dd”。
(5)书籍分类号按照要求编号。例如A代表马克思主义、列宁主义、思想、理论。
(6)图书管理员编号按照教职工号编写。
2 实体集与联系集 2.1实体集及属性
(1)图书Book: 图书编号BookNo、ISBN号、名称BName、作者Writer、出版地Address、出版社Press、出版时间PressTime、字数SumWords、单价Price、内容简介Introduction、所属分类号ClassifyNo。如图2.1所示。
BookNoISBNBNameClassifyNoWriterBookIntroductionAddressPriceSumWordsPressTimePress图2.1 图书Book实体集 (2)读者Reader:读者号ReaderNo、姓名Name、性别Sex、类型ReaderType、单位Department、电子邮箱Email。如图2.2所示。
ReaderNoEmailDepartmentReaderNameSexReaderType 图2.2 读者Reader实体集
(3)图书管理员Librarian:图书管理员编号LibrarianNo、姓名Name、性别Sex、单位Department、电子邮箱Email。如图2.3所示。
LibrarianNoNameReaderEmailDepartmentSex 图2.3 图书管理员Librarian实体集
(4)书籍分类号表ClassifyTable:所属分类号ClassifyNo、所属分类名称ClassifyName。如图2.4所示。
ClassifyNoClassifyNameClassifyTable 图2.4 书籍分类号表ClassifyTable实体集
(5)书籍借阅种类表BorrowTypeTable:读者类型Readertype、借阅种类BookType、借阅册数BorrowNum、借期BorrowDays、续借次数Number、续借天数ReBorrowDays、借书总册数Total。如图2.5所示。
ReaderTypeBookTypeBorrowNumTotalBorrowBookTableBorrowDaysReRorrowDaysNumber 图2.5书籍借阅种类表BorrowTypeTable实体集
2.2联系集及属性
(1)图书管理员与书籍之间的“入库Input”联系集,多对多联系。
Input联系集属性:图书编号BookNo、名称BName、ISDN号、入库时间InputDate、图书种类BookType、入库册数InputNum、馆藏地点Place、图书管理员编号LibrarianNo。如图2.6所示。
InputDateBookTypeBookBookNoPlaceInputInputNumLibrarianLibrarianNo 图2.6入库Input联系集
(2)读者与书籍之间的“借阅Borrow”联系集,多对多联系。 Borrow联系集属性:读者编号ReaderNo、读者姓名Name、读者类型ReaderType、读者电子邮箱Email、图书编号BookNo、借阅种类BookType、ISDN号、初次借阅时间InitialDate、续借时间ReBorrowDate、应归还时间LastBackDate、实际归还时间BackDate、罚款Penalty、总库存InputNum、实际库存Num、馆藏地Place。如图2.7所示。
InitialDateReBorrowDateLastBackDateBakeDateReaderReaderNoBorrowBookBookNoPenaltyInputNumNumPlace 图2.7借阅Borrow联系集
2.3总体E-R图
图书馆管理信息系统的总体E-R图如2.8所示。
ReaderNoClassifyNoReaderClassifyTableBorrowManageBookInputLibrarianLibrarianNoBookNoDefineReaderTypeBorrowTypeTableBookType 图2.8总体E-R图
3 数据字典
数据字典包括数据说明和数据的使用,具体内容如下所示。
3.1 数据项与数据结构
通过总体E-R图,基本确定各实体及联系的属性,如表3.1所示。
表3.1 数据说明
实体/联系 Book 名称 作者 BName Writer varchar(50) varchar(30) 50个字符内 30个字符内 ISBN号 ISBN char(9) 数据项名 图书编号 属性名 BookNo 数据类型 char(12) 域/取值范围 “ISBN号”+三位流水号“XXX” 通用标准 约束 Primary Key Not Null Not Null Not Null 出版地 出版社 出版时间 字数 单价 内容简介 所属分类号 Reader 性别 Sex char(2) 2个字符,“男”或“女” 姓名 Name varchar(10) 10个字符内 读者号 Address Press PressTime SumWords Price varchar(50) varchar(50) datatime 50个字符内 50个字符内 Not Null Not Null yyyy--mm--dd Not Null 10 numeric(10,0) 0至10Null Not Null Not Null Not Null Primary Key Not Null Not Null numeric(10,2) 0至10.00 50个字符内 10个字符内,“A-Z”+“0-9” 11个字符 10Introduction varchar(50) ClassifyNo varchar(10) ReaderNo char(11) 类型 ReaderType varchar(20) 20个字符Not 内,“科研人Null 员”、“教师”、“非教研人员”、“博士研究生”、“硕士研究生”、“本专科生” 30个字符内 30个字符内 11个字符 10个字符内 2个字符,“男”或Null Not Null Primary Key Not Null Not Null 单位 电子邮箱 Librarian 图书管理员编号 姓名 性别 Department Email LibrarianNo Name Sex varchar(30) varchar(30) char(11) varchar(10) char(2) “女” 单位 电子邮箱 Department Email varchar(30) varchar(30) 30个字符内 30个字符内 Null Not Null ClassifyTable 所属分类号 所属分类名称 BorrowTypeTable 借阅册数 借期 续借次数 续借天数 借书总册数 名称 BName varchar(50) 50个字符内 ISDN号 ISDN char(9) 图书编号 BorrowNum BorrowDays Number 借阅种类 BookType varchar(10) 读者类型 ClassifyNo varchar(10) 10个字符内,“A-Z”+“0-9” 30个字符内 Primary Key Not Null ClassifyName varchar(30) Readertype varchar(20) 20个字符Primary 内,“科研人Key 员”、“教师”、“非教研人员”、“博士研究生”、“硕士研究生”、“本专科生” 10个字符内,“中文图书”、“外文图书”、 “短期外借” 10 Primary Key numeric(10,0) 0至10numeric(10,0) 0至10numeric(10,0) 0至10Not Null Not Null Not Null Not Null Not Null Primary Key Not Null Not Null 10 10 ReBorrowDays numeric(10,0) 0至10Total BookNo numeric(10,0) 0至10char(12) 10 10 “ISBN号”+三位流水号“XXX” 通用标准 Input 入库时间 图书种类 InputDate BookType datatime varchar(10) yyyy--mm--dd Not Null 10个字符内,“中文图书”、“外文图书”、 “短期外借” 10 Not Null 入库册数 馆藏地点 InputNum Place numeric(10,0) 0至10varchar(10) Not Null 10个字符Not 内,“本部”、Null “枫林园”、 “麦庐园” 11个字符 11个字符 “ISBN号”+三位流水号“XXX” Not Null Primary Key Primary Key 图书管理员编号 Borrow 借阅种类 读者电子邮箱 读者姓名 读者类型 图书编号 读者编号 LibrarianNo ReaderNo BookNo char(11) char(11) char(12) ReaderType varchar(20) 20个字符Not 内,“科研人Null 员”、“教师”、“非教研人员”、“博士研究生”、“硕士研究生”、“本专科生” 30个字符内 10个字符内 10个字符内,“中文图书”、“外文图书”、 “短期外借” 通用标准 Not Null Not Null Not Null Email Name BookType varchar(30) varchar(10) varchar(10) ISDN号 初次借阅ISDN InitialDate char(9) datatime Not Null yyyy--mm--dd Not 时间 续借时间 应归还时间 实际归还时间 罚款 总库存 实际库存 馆藏地 ReBorrowDate datatime LastBackDate datatime BackDate Penalty InputNum Num Place datatime Null yyyy--mm--dd Null yyyy--mm--dd Not Null yyyy--mm--dd Null 10numeric(10,2) 0至10.00 numeric(10,0) 0至10numeric(10,0) 0至10varchar(10) 10 Null Not Null Not Null 10 10个字符Not 内,“本部”、Null “枫林园”、 “麦庐园” 3.2 数据处理
根据数据说明表,对这些数据进行如下处理,如表3.2所示。
表3.2 数据处理
数据操作 New_Book_Inf Update_Book_Inf 说明 新增图书信息 书籍信息维护 功能实现 图书管理员将新书信息输入入库 图书管理员对已有库存书籍信息进行修改、删除等操作 图书管理员根据图书所属分类进行添加、删除、修改、更新等操作 图书管理员将读者信息输入系统 图书管理员或是读者本身对自己的信息进行修改 读者可以查看搜索自己的借阅历史信息 图书管理员根据读者借阅读书及归还读书进行的一系列操作 读者或图书管理员可以查询Update_ ClassifyTable_Inf 书籍类别管理 New_Reader_Inf Update_Reader_Inf Scan_Borrow_Histroy Borrow_Operate 新增读者信息 读者信息维护 借阅历史查看 书籍借阅管理 Check_Book_Inf 书籍信息查询 读书的信息 Check_Reader_Inf Check_Borrrow_Inf 读者信息查询 借阅信息查询 图书管理员可以查询读者的信息 图书管理员可以查询任何读者的借阅情况