1、一 、 设 计 目 的 和 意 义 :在 信 息 技 术 迅 猛 发 展 及 基 于 Internet 网 络 应 用 日 益 普 及 的 今 天 , 传 统 图 书 馆 正 在 向 自 动 化 、 网络 化 、 电 子 化 的 数 字 化 方 向 发 展 , 这 是 目 前 网 络 信 息 资 源 开 发 和 研 究 的 热 点 。 图 书 管 理 系 统 的 建 设 涉 及到 信 息 资 源 数 字 化 、 多 媒 体 数 据 库 、 分 布 式 网 络 、 信 息 管 理 系 统 结 构 等 多 方 面 的 问 题 , 需 要 有 效 地 集 成和 应 用 最 新 的 信 息 技 术 。
2、 如 何 在 宏 观 上 有 效 地 把 握 和 组 织 , 并 运 用 到 图 书 管 理 系 统 的 开 发 建 设 上 , 是 图书 管 理 系 统 研 究 的 重 点 ; 随 着 人 们 知 识 水 平 层 次 的 提 高 , 图 书 馆 成 为 日 常 生 活 中 不 可 缺 少 的 一 部 分 。 而图 书 馆 的 存 书 量 和 业 务 量 庞 大 , 仅 仅 靠 传 统 的 记 帐 式 管 理 是 不 可 行 的 。 图 书 管 理 系 统 应 运 而 生 , 逐 渐 成为 信 息 化 建 设 的 重 要 组 成 部 分 。 图 书 管 理 系 统 为 学 校 或 社 会 型
3、图 书 馆 的 管 理 员 提 供 所 有 借 阅 者 的 详 细 信息 , 以 及 馆 内 库 存 的 详 细 情 况 , 对 借 书 和 还 书 两 大 功 能 进 行 合 理 操 纵 并 登 记 。 图 书 管 理 系 统 是 使 用 计 算机 实 现 图 书 大 量 信 息 处 理 的 电 子 档 案 管 理 系 统 , 在 本 系 统 中 主 要 满 足 借 书 者 、 系 统 管 理 员 和 一 般 用 户 3方 面 的 需 求 。 对 读 者 来 说 主 要 是 查 询 个 人 信 息 、 查 询 图 书 信 息 、 读 者 借 阅 的 图 书 、 借 阅 图 书 和 归 还 图
4、 书等 ; 图 书 管 理 员 是 系 统 的 主 要 参 与 者 , 负 责 借 书 处 理 和 还 书 处 理 ; 系 统 管 理 员 主 要 负 责 系 统 的 维 护 工 作 ,涉 及 到 读 者 信 息 管 理 , 图 书 信 息 管 理 , 系 统 状 态 维 护 ; 另 外 这 对 正 在 处 于 蓬 勃 发 展 的 华 北 科 技 学 院 来 说 ,具 有 很 大 的 意 义 , “ 腹 有 诗 书 气 自 华 ” 学 院 的 未 来 是 靠 学 院 的 整 体 实 力 和 培 养 的 学 生 来 衡 量 的 , 图书 馆 的 建 设 的 程 度 代 表 着 我 们 所 能 接
5、 触 知 识 面 的 宽 广 程 度 , 而 一 个 好 的 的 图 书 馆 需 要 配 备 相 应 的 图 书 管理 系 统 , 这 也 就 是 我 们 开 发 设 计 本 系 统 的 目 的 和 意 义 !由 于 图 书 馆 已 经 成 为 师 生 日 常 生 活 中 不 可 缺 少 的 一 部 分 , 随 着 2002 年 我 院 晋 升 为 本 科 院 校 , 近年 来 我 院 大 量 扩 招 , 师 生 队 伍 日 益 庞 大 , 从 而 图 书 馆 的 存 书 量 和 业 务 量 日 益 庞 大 , 仅 仅 靠 传 统 的 记 帐 式管 理 是 不 可 行 的 。 图 书 管 理
6、系 统 应 运 而 生 , 逐 渐 成 为 信 息 化 建 设 的 重 要 组 成 部 分 。 图 书 管 理 系 统 为 学 校或 社 会 型 图 书 馆 的 管 理 员 提 供 所 有 借 阅 者 的 详 细 信 息 , 以 及 馆 内 库 存 的 详 细 情 况 , 对 借 书 和 还 书 两 大 功能 进 行 合 理 操 纵 并 登 记 。 图 书 管 理 系 统 是 使 用 计 算 机 实 现 图 书 大 量 信 息 处 理 的 电 子 档 案 管 理 系 统 , 在 本系 统 中 主 要 满 足 读 者 、 系 统 管 理 员 和 一 般 用 户 3方 面 的 需 求 。 对 读
7、者 来 说 主 要 是 查 询 个 人 信 息 、 查 询 图书 信 息 、 借 阅 图 书 和 归 还 图 书 等 ; 所 有 这 些 操 作 全 部 都 是 利 用 计 算 机 方 便 而 快 捷 , 而 这 些 都 是 过 去 的 旧系 统 无 法 做 到 的 。二 、 系 统 的 总 体 设 计 :登 录密 码 正 确 ? NY读 者 信息 管 理 书 籍 信息 管 理 借 阅 信息 管 理管 理 员 信息 管 理添 加 管理 员 删 除 管理 员 修 改 管理 员 提 示 密 码 错 误添 加 新读 者 添加新图书修 改 读者 信 息 删除读者信息 查询读者信息 修改图书信息 删除图
8、书信息 查询图书信息 查 看当 前借 阅信 息 查 看历 史借 阅信 息主 界 面超 过 3 次 切 换 用 户退 出 系 统维 护图书信息统计数据备份恢复三 、 数 据 库 设 计 :由 于 图 书 管 理 系 统 是 针 对 管 理 员 管 理 、 图 书 管 理 、 读 者 管 理 、 读 者 借 阅 管 理 还 有 读 者 借 阅 历 史 等 等 , 所有 这 些 就 要 涉 及 到 读 者 信 息 表 xs、 借 阅 信 息 表 : jy、 书 本 信 息 表 : book、 借 阅 历 史 表 : jyls、 用 户 信 息表 : users。 表 的 具 体 信 息 如 下1、
9、读 者 信 息 表 : xs字 段 名 类 型 与 宽 度 是 否 主 码 是 否 允 许 空 值 说 明xsno Char(15) 是 Not null (主 键 )命 名 规 则 如 : 200507034244xsname Char(20) 否 Not null 读 者 姓 名department Char(15) 否 Not null 专 业 名sex Bit 否 Not null 性 别 ; 默 认 是 0; 0: 男 ; 1: 女both Datetime 否 Not null 出 生 时 间 输 入 规 则 : yyyy-mm-ddxscount Integer 否 Not nu
10、ll 借 书 数 量 : 默 认 是 0xsphoto Image 否 可 空 照 片filelen Bigint 否 可 空 储 存 读 者 照 片2、 借 阅 信 息 表 : jy字 段 名 类 型 与 宽 度 是 否 主 码 是 否 允 许 空 值 说 明bno Char(10) 是 Not null 索 书 号xsno Char(15) 是 Not null 借 阅 证 号ISBN Char(16) 是 Not null 书 籍 出 版 号bname Char(20) 否 可 空 书 本 名xsname char(20) 否 可 空 读 者 姓 名jydate Datetime 否 可
11、 空 借 阅 时 间 ( 当 前 系 统 时 间 )hsdate datetime 否 可 空 实 际 还 书 时 间3、 书 本 信 息 表 : book字 段 名 类 型 与 宽 度 是 否 主 码 是 否 允 许 空 值 说 明ISBN Char(16) 是 Not null 书 籍 出 版 号bname Char(20) 否 Not null 书 本 名zuozhe Char(15) 否 Not null 作 者chuban Char(20) 否 Not null 出 版 社booklei Char(8) 否 Not null 书 籍 类 别 ( 默 认 为 计 算 机 类 )book
12、jg Float(8) 否 Not null 书 本 价 格fuben Integer 否 可 空 当 对 书 籍 进 行 插 入 、 删 除 时 , 复 本 量 应 等于 库 存 量 ; 默 认 值 都 是 0kucun Integer 否 可 空4、 借 阅 历 史 表 : jyls字 段 名 类 型 与 宽 度 是 否 主 码 是 否 允 许 空 值 说 明xsno Char(15) 是 Not null用 来 存 放 读 者 的 借 阅 历 史 信 息ISBN Char(16) 是 Not nullbno Char(10) 是 Not nulljydate Datetime 否 可 空
13、hsdate datetime 否 可 空 还 书 时 间5、 用 户 信 息 表 : users字 段 名 类 型 与 宽 度 是 否 主 码 是 否 允 许 空 值 说 明yhnum Char(10) 是 Not null 用 户 号 主 键 且 不 可 更 改yhname Char(10) 否 Not null 用 户 名mima Char(15) 否 Not null 密 码cfmima Char(15) 否 Not null 重 复 密 码 ; 判 断 是 否 与 密 码 一 致jibie bit 否 Not null 级 别 默 认 1; 0: 系 统 管 理 员 ; 1: 一 般
14、 用 户以 上 就 是 本 次 数 据 库 所 涉 及 的 5 个 表 , 由 上 表 可 知 , 非 主 属 性 都 不 传 递 依 赖 于 码 , 即 数 据 库 能 够 达 到 第三 范 式 。四 、 详 细 设 计 :图 书 管 理 系 统 的 E-R 图 如 下 :借 阅 证 号 姓 名 专 业 性 别价 格作 者出 生 年 月书 本 名ISBN 号管 理 员读 者书 籍借 阅 NM管 理管 理 NN11用 户 号级 别 借 书 时 间还 书 时 间用 户 名图 1 系 统 主 界 面系 统 要 求 登 录 时 提 供 用 户 名 和 密 码 , 密 码 错 误 时 会 给 出 提
15、示 , 但 是 如 果 三 次 都 输 入 错 误 , 系 统 将自 动 关 闭 。 另 外 系 统 会 根 据 用 户 名 和 密 码 判 断 是 系 统 管 理 员 还 是 一 般 用 户 , 在 用 户 登 录 是 , 系 统 根 据 用户 级 别 给 biaohao赋 值 , 从 而 给 出 不 同 权 限 , 如 图 2 所 示图 2 系 统 登 录 界 面实 现 上 图 的 部 分 代 码 如 下 :PrivateSubcmd1_Click()Dimstrtext,MsgTextAsStringstrtext=Combo1.Textyhm=Combo1.Textsql1=“sele
16、ctyhname,mima,jibiefromuserswhereyhname=“Password=sa;Persist Security Info=True;User ID=sa;InitialCatalog=XSBOOK230;Data Source=“ + ServerIp + “;“ + “use procedure for prepare=1;autotranslate=true;“_+“useencryptionfordata=false;tagwithcolumncollationwhenpossible=false“Cn.ConnectionString=strconOnErr
17、orResumeNextCn.OpenIfOption1.Value=TrueThen 完 全 备 份 数 据 库KillApp.Path&“backupXSBOOK230_all.bak“sql1 = “backup database XSBOOK230 to disk=“ + App.Path +“backupXSBOOK230_all.bak with name=XSBOOK230 backup all,description=Full Backup OfXSBOOK230“Setmrc=ExecuteSQL(sql1,MsgText)MsgBox“数 据 完 全 备 份 已 经 完 成
18、 “,vbOKOnly+vbInformation,“提 醒 “ElseIfOption3.Value=TrueThen 差 异 备 份 数 据 库KillApp.Path&“backupXSBOOK230_dif.bak“sql1 = “backup database XSBOOK230 to disk=“ + App.Path +“backupXSBOOK230_dif.bak with differential ,noinit,name=XSBOOK230 backupdif,description=DifferentialBackupOfXSBOOK230“Setmrc=Execute
19、SQL(sql1,MsgText)MsgBox“数 据 差 异 备 份 已 经 完 成 “,vbOKOnly+vbInformation,“提 醒 “ElseIfOption2.Value=TrueThen 恢 复 指 定 路 径 下 的 数 据 库sql1 = “restore database XSBOOK230 from disk=“ + App.Path +“backupXSBOOK230_all.bakwithFILE=1“Setmrc=ExecuteSQL(sql1,MsgText)MsgBox“数 据 恢 复 已 经 完 成 “,vbOKOnly+vbInformation,“提
20、 醒 “EndIfEndIfEndIfEndSub附 加 部 分 SQL代 码 :在 借 阅 查 询 的 时 候 由 于 涉 及 到 多 个 表 , 所 以 创 建 了 视 图 borrowbook, 代 码 如 下 :useXSBOOK230gocreateviewborrowbookwithencryptionas selectbook.ISBN,book.bname,book.zuozhe,chuban,bookjg,fuben,kucun,xs.xsno,xs.xsname,department,sex,both,xscount,jy.bnofromxs,book,jywherejy.
21、xsno=xs.xsnoandjy.ISBN=book.ISBNgo考 虑 到 在 对 数 据 库 操 作 过 程 中 , 有 对 多 个 表 的 级 联 操 作 , 建 立 触 发 器 , 由 触 发 器 实 现 数 据 的 完 整 性 , 触发 器 的 代 码 如 下 :createtriggertjy_insertonjyforinsertasbeginupdatexssetxscount=xscount+1wherexs.xsnoin(selectinserted.xsnofrominserted)updatebooksetkucun=kucun-1wherebook.ISBNin(s
22、electinserted.ISBNfrominserted)endgocreatetriggertjy_deleteonjyfordeleteasbeginupdatexssetxscount=xscount+1wherexs.xsnoin(selectdeleted.xsnofromdeleted)updatebooksetkucun=kucun-1wherebook.ISBNin(selectdeleted.ISBNfromdeleted)endgo另 外 根 据 设 计 需 要 还 设 计 了 必 要 的 存 储 过 程 xs_insert、 xs_update、 xs_update0
23、、 xs_delete、book_insert、 book_update、 book_delete、 jy_insert、 jy_delete 等 ,考 虑 在 实 际 应 用 中 借 阅 证 号 是 有 一 定 的 限 制 的 , 所 以 也 建 立 了 借 阅 证 号 的 规 则 xsno_rule.sql, 代 码 如 下 :useXSBOOK230goifexists(selectnamefromsysobjectswherename=no_ruleandtype=R)beginexecsp_unbindrulexs.xsnodropruleno_ruleendgocreaterule
24、no_ruleasnumlike1-20-90-90-90-90-90-90-90-90-90-90-9goexecsp_bindruleno_rule,xs.xsnogo五 、 总 结 及 体 会 :开 始 运 行 图 , 除 了 系 统 管 理 和 帮 助 按 钮 可 用 , 其 他 按 钮 均 为 灰 色 不 可 用 状 态 , 点 击 系 统 管 理 选 项中 的 登 录 , 会 出 现 图 2 状 态 , 没 有 输 入 密 码 或 密 码 错 误 均 给 出 提 示 , 按 照 系 统 管 理 员 和 一 般 用 户 成 功 登录 后 , 可 以 拥 有 不 同 的 操 作 权 限
25、 , 系 统 管 理 员 可 以 进 行 全 部 操 作 , 一 般 用 户 不 能 进 行 读 者 的 添 加 、 修 改 、删 除 和 图 书 的 添 加 、 修 改 、 删 除 , 也 不 可 以 借 书 、 还 书 更 不 可 以 管 理 员 进 行 任 何 操 作 。在 设 计 过 程 中 根 据 需 要 按 以 下 原 则 设 计 必 要 的 视 图 、 索 引 、 存 储 过 程 和 触 发 器 :( 1) 如 果 在 一 次 查 询 中 涉 及 到 多 个 表 , 应 该 创 建 视 图 。( 2) 如 果 对 某 个 字 段 进 行 多 次 查 询 , 应 该 对 该 字 段
26、 创 建 索 引 、 并 建 立 存 储 过 程 。( 3) 如 果 在 对 数 据 库 操 作 过 程 中 , 有 对 多 个 表 的 级 联 操 作 , 应 该 建 立 触 发 器 , 由 触 发 器 实 现 数 据的 完 整 性 。如 : 当 对 多 表 进 行 连 接 时 , 创 建 了 视 图 view.sql; 建 立 读 者 信 息 、 图 书 信 息 、 借 阅 信 息 表 的 添 加 、修 改 、 删 除 的 存 储 过 程 、 借 阅 信 息 表 的 添 加 、 删 除 触 发 器 ; 另 外 考 虑 在 实 际 应 用 中 借 阅 证 号 是 有 一 定 的限 制 的 ,
27、 所 以 也 建 立 了 借 阅 证 号 的 规 则 xsno_rule.sql: 只 能 是 200001001101999999999999之 间 的 数 字 。由 于 时 间 仓 促 , 系 统 还 不 完 善 。 能 够 实 现 图 书 馆 管 理 系 统 的 高 级 语 言 很 多 , 本 次 实 验 选 择 的 语言 是 Microsoft Visual Basic, 对 实 现 该 系 统 的 某 些 功 能 相 对 来 说 较 为 简 单 , 但 是 有 些 功 能 的 实 现 则 较 为复 杂 , 由 于 此 次 实 验 主 要 是 为 熟 悉 SQL Server , 通
28、过 这 次 实 验 , 我 们 能 初 步 掌 握 数 据 库 与 高 级 语 言 的结 合 , 了 解 数 据 库 的 作 用 , 在 将 来 随 着 计 算 机 硬 件 的 不 断 更 新 换 代 , 应 用 程 序 会 越 来 越 庞 大 , 数 据 库 的应 用 更 是 必 不 可 少 , 所 以 说 随 着 社 会 的 发 展 进 步 , 数 据 库 的 应 用 会 越 来 越 广 泛 。此 次 课 程 设 计 加 深 了 我 们 对 数 据 库 的 理 解 及 对 数 据 库 的 应 用 , 对 先 前 的 理 论 学 习 做 了 一 次 综 合 性 的实 践 。 更 能 深 刻 体 会 数 据 库 的 作 用 。 数 据 库 是 事 物 处 理 、 信 息 管 理 等 应 用 系 统 的 核 心 和 基 础 , 数 据 库 管理 系 统 通 过 将 大 量 的 数 据 按 一 定 的 数 据 模 型 组 织 起 来 , 提 供 存 储 、 维 护 和 检 索 数 据 的 功 能 , 使 应 用 系 统可 以 统 一 的 方 式 方 便 、 及 时 、 准 确 地 从 数 据 库 中 获 取 所 需 要 的 信 息 , 其 强 大 的 功 能 使 数 据 库 在 各 个 领 域都 得 到 了 广 泛 的 应 用 !