【正文】:入库日期, 图书编号 ,管理员编号,书名 6). 整体 ER 图 图 26 整体 ER 图 图中各实体属性如下: 读者档案: 学号 ,读者姓名,性别,借书证号,单位 借书证: 借书证号 ,姓名,性别,办证日期 管理员: 操作员编号 ,管理员姓名,登陆密码 库存信息:书号, 图书编号 读者 图书档案 借出书库 库存表 管理员 借书证 图书管理 证件处理 催还 借书 还书 查询已借 索书 P P M 1 M N 1 1 M N P P M N N P M N N 1 N 借出信息: 图书编号,借书证号 ,借书日期,归还日期 图书档案:书号,书名,作者,出版单位,出版日期,单价,类别,藏书册书, 图书编号入库日期 实体描述 说明: 由于读者的信息可以在借书证办理档案中查到所以合并为借书证办理档案2. 将借出书库和入库清单分别合并到了借书登记表和图书信 息表中表 2 实体描述 关系描述 (已包含在 ER 图中) 实体 关系调整 (实体描述表中已消除冗余实体和关系) 数据项定义 1).图书库的数据项定义: 名称 别名 类型 长度 其他 图书书名 SM 字符型 20 普通索引 书号 SH 数值型 20 主索引 译者 YZ 字符型 10 出版社 CBS 字符型 20 单价 DJ 数值型 8 出版时间 CBSJ 日期型 8 表 3 图书库 数据项定义 2).借、还书库的数据项定义: 名称 别名 类型 长度 其他 姓名 XSXM 字符型 10 普通索引 借书证号 JSZH 数值型 8 主索引 图书书名 SM 字符型 20 实体名称 借书证 数据库表 借书证信息表 实体说明 读者和借书证信息 实体属性列表 借书证号 ,姓名,性别,办证日期,*大借书量,学号 实体名称 管理员 数据库表 tz_passwd 实体说明 管理员的信息 实体属性列表 管理员编号 ,管理员姓名,登陆密码 实体名称 读者 数据库表 借书登记表 实体说明 图书馆未被借出的图书信息 实体属性列表 书号, 图书编号 实体名称 读者 数据库表 还书登记表 实体说明 图书馆未被借出的图书信息 实体属性列表 书号, 图书编号 实体名称 图书档案 数据库表 图书信息表 实体说明 馆藏图书信息 实体属性列表 书号,书名,作者,出版单位,出版日期,版次,单价,类别 ,图书编号 ,入库日期 图书编号 SH 字符型 20 借书日期 JSRQ 日期型 8 还书日期 HSRQ 日期型 8 表 4 借、还书库数据项定义 3).借书证库的数据项定义: 名称 别名 类型 长度 其他 姓名 JSXM 字符型 10 普通索 引 借书证号 JSGH 字符型 6 主索引 性别 XB 字符型 4 单位 DW 字符型 8 表 5 借书证库数据项定义 4).操作员库的数据项定义: 名称 别名 类型 长度 其他 操作员编号 CZYYHH 字符型 10 操作员用户名 CZYYHM 字符型 10 口令 KL 字符型 10 表 6 操作员库数据项定义 数据表(库)描述 图书数据库 =图书书名 +图书编号 +著者 +出版社 +单价 +书号 +出版时间 借书库 =姓名 +借书证号 ++教师姓名 +图书名称 +借书日期 +还书日期 教师数据库 =姓名 +借 书证号 +单位 操作员库 =操作员用户名 +口令 系统功能模块图 软件功能结构图 : 工商学院图书信息管理系统 系统管理 基本情况录入 借、还书管理 查询、统计 初始化 数据备份 操作员管理 一 般 用 户登陆 新图书登记 新期刊登记 借书登记 还书登记 图书库藏查询 借书证库查询 图书查询 借书查询 还书查询 图 27 软件功能结构 系统流程图: 图书管理系统 读者查询系统 图书 (期刊 )库 查询 图 28 系统流程图 3 逻辑结构设计 为了能够用计算机 和 SQL Server 实现用户需求,可将概念结构转化为相应的数据模型,即是设计逻辑结构。
即由 E- R 图建立了适当的表,并按不同的范式的定义,对表进行规范化。对规范化的表,更据用户需求建立数据库结构。 确定数据依赖 关系名 主 要 函 数 依 赖 管理员 BCNF 管理员编号 — → (管理员姓名,登陆密码 ) 库存信息 BCNF 图书编号 — → 书名等 借出信息 BCNF (图书编号 )— → (借书日期,借书证号,归还日期 ) 借书证 2NF 借书证号 — → (借书证号 ,姓名,性别,单位,发证日期,已借书册 书,是否容许借书 ) 以后扩展:身份证号 — → (姓名,性别,照片 ) 图书档案 2NF 图书编号 — → (书号,书名,作者,出版单位,出版日期,版次,单价,内容提要,分类号,索书号,所在书库,入库日期 ) 入库清单 BCNF 图书编号 — →( 管理员编号,书名,入库日期) 还书信息 BCNF 借书证号 — → ( 姓名,图书编号,书名,借出日期,还书日期 ) 数据依赖的优化与调整 关系模式的优化 (1) 借书证信息:借书证 (借书证号 ,姓名,性别,单位,发证日期,已借书册书,是否容许借书 ) 满足 BCNF 范式 (2) 管理员信息:管理员信息 (管理员编号 ,管理员姓名,登陆密码 )满足 BCNF 范式 (3) 库存信息:库存信息 (图书编号 ,书号 ) 满足 BCNF 范式 (4) 借书信息:借书信息 (图书编号 , 借书证号 ,姓名,书名,借书日期,是否归还 )满足 BCNF 范式 (5) 还书信息:还书信息( 姓名, 图书编号 ,书名,借出日期,还书日期) 满足 BCNF 范式 (6) 图书信息:图书档案 (图书编号 ,书名,作者,图书类别,单价,出版社,进册书,库存量 )均满足 BCNF 范式 (7) 入库清单:入库清单(图书编 号 , 管理 员编号,书名,入库日期)满足 BCNF 范式 关系模式的调整 虽然在关系模式的优化中将各种关系满足了 BCNF 范式的要求,但是对某些数据库的操作却并没有简化,相反导致了数据库查询等数据库操作的效率低下。
于是对‘借书证信息’,和‘图书信息’作出了以下调整。 (1) 借书证信息:借书证( 借书证号 ,姓名,性别,办证日期,单位,已借书册数,借书许可,)( 3NF)(2) 图书信息: 图书档案( 图书编号 , 书名,作者,出版单位,单价,图书类别,进册数,入库量 ) (2NF) 4 代码设计 图书管理系统 部分源代码 [图书外借情况查询代码 ] tempstr=allt() tempstr=%+tempstr+% if =借书证号 select * from 借书登记表 where 借书登记表 .借书证号 like tempstr into cursor tempcursor =tempcursor endif if =姓名 select * from 借书登记表 where 借书登记表 .姓名 like tempstr into cursor tempcursor =tempcursor endif if =图书编号 select * from 借书登记表 where 借书登记表 .图书编号 like tempstr into cursor tempcursor =tempcursor endif if =书名 select * from 借书登记表 where 借书登记表 .书名 like tempstr into cursor tempcursor =tempcursor endif if =是否归还 select * from 借书登记表 where 借书登记表 .是否归还 like te