Access数据库应用实例一一图书借阅管理系统
一、数据库分析与设计
1.数据库数据结构分析
通过对图书借阅管理的内容和数据分析,创建该管理系统数据库,名为“图书借阅管理系统. mdb”, 主要包含的数据表有“会员表”、“会员级别表”、“图书表”、“图书类别表”、“图书借阅表”共 五个表。这五个表之间存在着一定的关联关系,各表间的关系如图2所示:
2系统中各表间关系图
2.数据库逻辑结构设计
“图书借阅管理系统”的各个数据库表结构设计如表15所示:
1    ”会员表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
会员证编号
文本
12
会员级别
文本
8
会员姓名
文本
8
会员性别
文本
2
身份证号
文本
18
单位名称
文本
50
单位地址
文本
50
文本
15
办证日期
日期/时间
短日期
有效日期
日期/时间
短日期
照片
OLE对象
备注
备注
2 ”会员级别表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
会员级别
文本
8
限借册数
数字
整型
3 “图书表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
图书编号
文本
7
图书分类号
文本
30
图书类别
文本
30
书名
文本
50
作者
文本
50
出版社
文本
30
出版日期
日期/时间
短日期
价格
数字
双精度型
货币
存放位置
文本
50
入库时间
日期/时间
短日期
库存总数
数字
整型
在库数量
数字
整型
借出数量
数字
整型
新书入库
数字
整型
旧书出库
数字
整型
借出次数
数字
整型
备注
备注
access数据库生成网页版4    ”图书类别表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
图书类别
文本
30
限借天数
数字
整型
超期/天
数字
双精度型
货币
5    ”图书借阅表”表结构
字段名
数据类型
字段大小
格式
主键
必填字段
默认值
借阅编号
自动编号
长整型
图书编号
文本
7
会员证编号
文本
12
借阅日期
日期/时间
短日期
还书日期
日期/时间
短日期
已缴
文本
2
“否”
备注
备注
:、查询的设计与实现
在本图书借阅管理系统中,要用到大量的查询功能。Access 2003提供了 5种查询:选择查询、参数 查询、交叉表查询、操作查询和SOL查询。
其中操作查询又包括生成表查询、更新查询、追加查询和删除查询4种查询。
(1)生成表查询•':这种查询可以根据一个或多个表中的全部或部分数据新建表。生成表查
询有助于创建表以导出到其他Microsoft Access数据库或包含所有旧记录的历史表。
(2)更新查询:,:这种查询可以对一个或多个表中的一个或一组记录作全局更改。使用更新
查询可以更改已有表中的数据。
(3)追加查询,追加查询将一个或多个表中的一组记录添加到一个或多个表的末尾。
(4)删除查询;:这种查询可以从一个或多个表中删除一组记录。(使用删除查询,通常会删
除整个记录,而不只是记录中的部分字段。)
该图书借阅管理系统中主要用到了选择查询、操作查询的更新查询和追加查询,下边我们以实例主 要说明一下这几种查询在本系统中的实现方法与过程。
1.选择查询的设计与实现
分析:在实际图书馆图书借阅过程中,会员(借阅者)或者图书馆管理员经常需要对图书借阅情况进行 查询,比如查看某本书是否已归还、某人是否未按期归还图书、某本书是否已到归还期或是某本书是否 忘记归还了等等。为了解决上述这些问题,我们就需要设置一些相应的查询(一般都是以“选择查询” 为居多)。这些查询能有效地帮我们解决这些问题。
步骤:(以“图书借阅超期查询”为例)
第一步:选择“在设计视图中创建查询”。(见图11
11
第二步:分别添加“会员表”、“图书表”、“图书借阅表”和“图书类别表”。(见图12
见图12
第三步:选择“图书表”中的“图书编号”、“书名”、“作者”、“图书类别”;“会员表”中的“会 员证编号”、“会员姓名”、“会员级别”;“图书借阅表”中的“借阅日期”、“还书日期” 字段,然后再设立2个新字段一一“超期天数”和“应还日期”。这两个新字段是原表中没有 的,它们是以原表的部分字段为数据基础,通过数学表达式计算得出的新数据所组成的。(表 达式的写入可以通过单击工具栏上的“生成器”按钮,打开“表达式生成器”对话框来完成 ——如图13)最后在“还书日期”字段的“条件”约束栏中写入约束条件“IS NULL”并在 “超期天数”□字段的“条件”约束栏中写入约束条件" >0”(此处正值为有效值,负值是无 效值,因为负值说明还未超期,在该查询中无实用意义,故舍去)。(见图14
下边给出这两个新字段的数学表达式:(1)超期天数:Date ()-[借阅日期]-[限借天数;(2) 应还日期借阅日期]+[限借天数
13
14
第四步:保存查询。(见图15
15
第五步:运行该查询。(见图16
16
其他选择查询的设计可参照“图书借阅超期查询”的设计来进行,如“借阅历史记录查询”、“今 日借出查询”、“今日到期查询”、“今日还书查询”、“今日入库查询”、“借书查询”、“还书查 询”、“续借查询”、“查询”等。下边给出上述这几个选择查询的主要设计视图供大家参考:
⑴.“借阅历史记录查询”主设计视图:(见图17
17
⑵.“今日借出查询”主设计视图:字段“借阅日期”须以“Date ()”当前日期作为约束条件。 (见图18
18
⑶.“今日到期查询”主设计视图:须通过“表达式生成器”建立新字段“应还日期”且以“ Date ()”为约束条件,表达式为:应还日期:[借阅日期]+[限借天数。(见图19
19
⑷.“今日还书查询”主设计视图:字段“还书日期”须以“Date ()”作为约束条件。(见图20
20
⑸.“今日入库查询”主设计视图:字段“入库时间”须以“Date ()”作为约束条件。(见图21
21
⑹.“借书查询”主设计视图:由于“借书查询”、“还书查询”、“续借查询”、“查询” 这4个选择查询是专门为“借书窗体”、“还书窗体”、“续借窗体”、“窗体”的功能实现而量 身打造的专用查询,故其设计上有别与上述几个一般选择查询。区别主要体现在在这些查询中要设计与 相应窗体中控件的功能链接,如大家现在在图22—— “借书查询1”和图23—— “借书查询2
”(此处 将借书查询分为12两部分也是应借书窗体的功能要求而针对设计的)中看到的“图书编号”字段和 “会员证编号”字段中的条件约束即为功能链接的一部分。例如“借书查询1”中的“图书编号”字段 的条件”[Forms]![借书窗体]![Text13]”意为与“借书窗体”中的文本框“ Text13”相链接,该条件其实 起到了一个“指针”的作用(后边几个查询中的相似条件约束的功能与此相同,不再多作解释)。“借
书查询1”中的字段“在库数量”的约束条件为“>0”,表示某本书只有在有库存的情况下才允许借出。 (见图2223
22
23
⑺.“还书查询”主设计视图:“还书日期”字段的约束条件要设置为“ Is Null”,表示未还的书 才会被列出。(见图24
24
⑻.“续借查询”主设计视图:(见图25
25
“查询”主设计视图:须设立2个新字段一一“超期天数”和“数额”且“超期天数” 字段的约束条件为“>0”,另外“缴纳”字段的约束条件为“否”,表示已欠费且未缴纳过的 会员才会被列出,未欠费或已缴纳过的会员不会再被列出。下边给出这两个新字段的数学表达式:(1) 超期天数还书日期]-[借阅日期]-[限借天数;(2)数额:还书日期]-[借阅日期]-[限借天数])*[超期 /。(见图26
26
2.操作查询的设计与实现
分析:在“图书借阅管理系统”中,图书的借阅功能是该系统的核心功能,如何实现该功能便是设计该 系统的核心问题。我们知道,图书在借出、归还、续借等过程发生后,数据表中的数据就应发生相应的 改变(即更新),那么在系统中如何实现数据的自动更新或添加呢?答案是利用“操作查询”。
步骤:(以“借书更新”和“借书追加”为例)
第一步:在设计视图中创建查询,并添加“会员表”、“图书表”和“图书借阅表”。
第二步:将“图书表”中的“图书编号”、“借出次数”、“借出数量”、“在库数量”字段;“会员 表”中的“会员证编号”字段;“图书借阅表”中的“还书日期”字段添加进来。并将查询类 型设置为“更新查询”(设置方法:在选中查询窗口的情况下在“查询设计菜单栏”中单击“查 询类型”叵旧进行更改,或者在查询窗口中的表添加栏中的空白处单击鼠标右键,在弹出的菜 单中选择查询类型)。(见图2728
27
28
第三步:对各个字段的更新条件进行设置。(如图29
图中“借出次数”、“借出数量”、“在库数量”三个字段的“更新到” 一栏中的条件表示当 借书操作使得某本图书被借出时,相应数据表中的原数据应该根据这一条件更新为新数据。约 束条件“<[图书表]![库存总数”表示若借出数量大于等于库存总数则数据无法更新,因为图书 已无库存,无法借出;约束条件" >0”表示只有当该书有库存的情况下才能借出;而字段“
图 书编号”和“会员证编号”的约束条件” [Forms]![借书窗体]![Text13]”和“[Forms]![借书窗 体]![Text14]”与前边在选择查询中提到的条件一样,是查询与相应窗体中控件的功能链接条件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。