据的正确性和相容性,要防止合法用户使用数据库时向数据库加入不规范的数据,对输入到数据库中的数据要审核和约束机制;安全性原则:数据库的安全性是指保护数据,防止非法用户使用数据库或合法用户非法使用数据库造成数据泄漏、更改或破坏,数据库要有人证和授权机制;可伸缩性原则:数据库的设计应当考虑到发展的需求、移植的需求,应具有一定的伸缩扩展性能和适度冗余;规范化数据库的设计:须具备规范化理念。不具备规范化的数据库很可能会存在插入/删除存在错误、修改繁琐、数据冗余等缺陷,解决的方法则是转换为高级规范化模式,对关系模式进行分解或合并[11]。
3.2系统功能模块分析 3.2.1图书管理
图书管理的内容主要包括:
新书入库:图书管理员按照计划采购量进行购书,并对每批书进行分类并录入数据库。
图书出库:随着时间流逝,某些书本已经过时或破损已失去价值,需要从图书馆中移除,即从图书库中删除此图书记录。
新书编码:图书入库后,需将每册书粘上独一无二的条形码以分辨该书,本系统不涉及图书编码,默认图书已编码完成。图书编码是识别图书的唯一标识。
图书修改:当出现某书的信息录入出错时,可通过系统对录入信息进行修改,只需提供书本编码即可对相应信息进行修改[12]。
3.2.2图书流通管理
图书流通管理的内容主要包括:
图书借阅:功能主要是将已经编码的图书进行借出,将书本标记为借出状态,并记录下图书编码、借阅者ID、借出日期、借阅编号。
图书归还:主要功能是按照图书编号、借阅者ID找到图书,并删除对应的借出记录,将图书改为未借出状态[13]。
3.2.3统计查询
10
统计查询内容主要包括:
借阅查询:录入图书编号或读者ID对当前已经借阅图书及读者信息查询。 读者查询:录入读者ID来查找读者信息的功能。
3.3模块框架图
模块如图3-1所示。
图书与管理系统 图书管理 图书流通管理 读者管理 查询 系统管理 新手入库 图书出库 借书操作 还书操作 添加读者 读者查询 删除读者 查询目标图书 查询借阅情况 添加管理员 删除管理员
图3-1 系统整体框架
通过整体分析,该系统涉及三个实体,得出E-R图,见图3-2所示。
读者 借阅 还书 图书 维护 管理员
图3-2 E-R图
3.4系统数据分析和设计
11
通过前面分析,系统涉及三类实体:读者、管理员、图书。 读者:ID号、姓名、借书数。
图书:图书编码、图书名称、出版社、作者、价格、库存量。 管理员:用户名称、登陆密码。 系统管理主要包括:
① 添加用户:主要功能是在用户表中添加用户账号,且只有管理员才拥有此权限。
② 修改密码:主要功能是用于对用户密码的更改。
实体之间联系涉及的数据项主要包括:借阅人姓名,借阅信息表,图书编号,借书日期。因而对系统数据库的设计可以围绕这几个方面进行,对数据库的设计由以上的分析为依据,进行一系列的分析和数据库设计,使得数据库设计得以实现。 图书库表设计如表3-1所示。
表3-1 图书库表(Book)
列名 BookId Title Austhor TSLB ISBN CBS TSZT TSXX CBSJ DJ PCJE TSKCL
数据类型 int varchar varchar varchar varchar varchar varchar text varchar int int int
长度 4 50 50 50 50 50 16 50 4 4 4 4
允许空
√ √ √ √ √ √ √ √
12
读者表设计如表3-2所示。
表3-2 用户信息表(Reader)
列名 ReaderID Password Readername BZRQ SXRQ LJJS
数据类型 varchar varchar varchar Datetime Datetime int
长度 40 40 30 8 8 4
允许空 √ √ √
图书借阅记录表设计如表3-3所示。
表3-3 图书借阅记录表(Borrow)
列名 BorrowID ReaderID BookID JYSJ DQSJ GHSJ ZT XJCS
数据类型 int int int Datetime Datetime Datetime Varchar int
长度 4 4 4 8 8 8 50 4
允许空 √ √
管理员信息表设计如表3-4所示。
表3-4 管理员表(Manager)
列名 ManagerID Password
数据类型 Int Int
长度 20 30
允许空
规则表设计如表3-5所示。
表3-5 规则表(GZ)
列名 RuleID GZMC GZNR
数据类型 Int Varchar Text
13
长度 20 50 16
允许空 √
以上各表反应了数据库的储存。Book表用来储存图书信息,包括图书编码、作者等,若需修改图书信息管理员可通过直接对Book的修改来达到目的。Reader表用来记录读者信息,包括读者ID号等。Borrow表用来记录图书借阅记录,每当图书有借入或借出时,相应的记录便会记入Borrow表中。Manager表用来记录管理员信息。
3.5基本模块设计 3.5.1功能模块的实现
功能模块的实现如图3-3所示。
登 陆 ASP ASP 首 页 ASP ASP ASP 图书查询 查询已借图书 管理员修改 ASP 图书添加
图3-3 功能模块框架图
① 登陆模块的实现
页面admin.asp实现登陆功能,借阅者用户名由管理员提供,具体登陆页面
14
基于WEB的图书管理系统的设计与实现



