• 沒有找到結果。

第 2 章 Access 2007 数据库应用系统设计

N/A
N/A
Protected

Academic year: 2021

Share "第 2 章 Access 2007 数据库应用系统设计"

Copied!
20
0
0

加載中.... (立即查看全文)

全文

(1)

第 2 章 Access 2007 数据库应用系统设计

本章学习目标

l 学习并掌握 Access 2007 数据库应用系统开发的一般方法 l 理解面向对象的数据库应用系统设计的概念

l 理解将要贯穿本书始终的数据库应用系统实例“零售商店管理信息系统”

l 学习并掌握创建 Access 2007 数据库对象的方法

随着数据库技术的发展,现代数据库已不再仅仅是数据的集合,同时包含着针对数据进 行的各种操作。一个 Access 2007 数据库即可包含一个应用系统的全部数据及其相关的所有操 作。因此,Access 2007 数据库的设计内容也就包括整个 Access 2007 数据库应用系统的设计 内容。

2.1 数据库应用系统开发方法

比较成熟的数据库应用系统设计方法称为生命周期法,主要包括  4  个阶段的工作:系统 分析,系统设计,系统实现和系统测试。

2.1.1 系统分析

根据生命周期法提供的理论和方法,数据库应用系统的开发应该首先进行系统分析。在 这一工作过程中,应主要完成以下内容: 

1.业务流程分析

在这一步工作中,需要调查、了解并描述待开发的数据库应用系统中的各项业务以及诸 业务间的相互关联,并形成分析文档以供开展下一步工作之需。 

2.数据流程分析

在这一步工作中,必须清晰地描述出数据库应用系统中的所有数据在各个业务环节中的 处理方式、处理结果及其在诸业务间的流动轨迹(数据流程)。 

3.功能分析

在这一步工作中,通过归纳、整理各业务环节与各项数据间的相互关系,总结系统功能、

归并或解析数据集合、确定数据和功能间的处理关系。

2.1.2 系统设计

数据库应用系统开发的第二步工作,是在系统分析的基础上进行系统设计。在这一工作

(2)

1.数据库设计

在这一步工作中,应该根据系统分析阶段形成的相关文档,并参考计算机数据库技术发展 的现状,采用计算机数据库的成熟技术,设计并描述出本应用系统的数据库结构及其内容组成。 

2.功能设计

在这一步工作中,必须根据系统分析过程中获得的功能分析结果,结合数据库设计的初 步模型,设计完成应用系统中的各功能模块。这里包括各功能模块的调用关系、功能组成等 内容。

3.输入与输出设计

在这一步工作中,考虑的是数据库应用系统中各功能模块的界面设计。

对于输入模块,应该考虑的问题包括:它以什么样的形式呈现在操作者的面前,操作员 应以何种方式在界面上完成各种操作, 怎样容忍操作员的操作错误, 如何减少操作员可能的错 误操作,等等。

对于输出模块,应该考虑的问题包括:其输出格式、输出内容、输出方式等应该如何设 计,等等。可以这样说,一个数据库应用系统设计的成败在很大程度上取决于其输入输出设计 的优劣。

2.1.3 系统实现

数据库应用系统开发的第三步工作,是在系统设计的基础上实现系统的各项设计。在这 一工作过程中,应主要完成以下内容: 

1.系统开发工具的选择

一个数据库应用系统应该基于计算机数据库技术基础实现,这已成为大家的共识。当今,

计算机数据库管理系统软件及其数据库应用系统开发工具的种类很多, 因此, 选择的余地是很 大的。一般而论,开发工具的选择应依据数据库应用系统本身的特性而定,这是基本原则。

由于本书介绍  Access  2007  数据库管理系统的应用,所以,后续实例就无可选择地采用  Access 2007 作为实例数据库应用系统的开发工具。事实上,Access 2007 确实是一个非常优秀 的数据库管理系统,同时它也是一个功能非常强大的数据库应用系统开发工具。 

2.数据库的实现

这一步的工作就是使用所选择的开发工具,逐步地在计算机上建立数据库文件及其所包 含的各个数据表,建立数据关联,创建数据库应用系统中各个数据与功能对象实例,并设定所 有对象的相关属性值。 

3.功能的实现

在这一步工作中应该完成数据库应用系统中各对象对于相关事件的处理能力的设定,即 安排各个对象在其遇到相关事件时的处理方法,也就是针对事件编程。

2.1.4 系统测试

一个数据库应用系统的各项功能都已经实现了,也还不能说系统开发完成,还必须经过 严格的系统测试工作,才真正能够将开发完成的应用系统投入运行使用。因此,应该认识到系 统测试是数据库应用系统开发的第四步工作。

系统测试工作常被人们称为数据库应用系统成败之关键所在,其主要内容是尽可能多地

(3)

查出并改正数据库应用系统中存在的错误。关于这一部分的内容,本书将在第 10 章中通过实 例的讲解加以介绍。

2.2 零售商店数据库应用系统(Grocer)开发实例

商品进销存管理信息系统是一类比较典型的计算机数据库应用系统实例,主要功能就是 实现一般商品从进货、 存货到销售这样一个商品流通环节中的各项信息的即时管理。 本书以一 个虽经简化但确实可以使用的实例“零售商店管理信息系统”进行讲解,并以此帮助读者学习  Access 2007 及其数据库应用系统开发技术。

为了叙述方便,后续章节将“零售商店管理信息系统”简称为 Grocer。

2.2.1 零售商店管理信息系统分析 

Grocer  针对经营日用商品的小型经销商店而设计。该商店以小批量形式进货,以零售方 式销货。 以批量形式购入的商品首先存入商品库中, 经常持有小量库存, 库存中记录进货单价。

准备销售的商品,一律需从商品库中逐一搬至销售柜台上,经常持有小量柜存,柜存中记录销 售单价。售货员销售商品时,总是从销售柜台上取得商品销售。任一商品的进货单价不大于该 商品的销售单价,经销商从这些商品的进销差价中获取利润。该商店聘用管理人员若干名、售 货员若干名,均以轮班方式工作。每次交接班时,货与款均要求当班结、转、清。 

1.业务与数据流程分析

(1)商品进货数据录入。

商店管理人员负责从供货商处接收进货,并将自己负责的进货数据(包括商品名称、商 品规格、进货单价、进货数量等)录入到应用系统提供的窗体对象的相关文本框控件中,并记 录下自己的姓名。

每一项进货数据输入完毕,都必须根据本次进货商品数据修改“库存数据表”中的对应 数据(比如,库存数量=原库存数量+本次进货数量),以保证“库存数据表”中数据的正确性。

因此,这一业务流程可称为“商品进货数据录入” 。

(2)商品上柜数据录入。

商店管理人员在发现某些商品的柜存数量偏少时,必须将这些商品由库存中搬至销售柜 台上,同时减少“库存数据表”中的对应商品库存数据记录,并增加“柜存数据表”中的对应 商品柜存数据记录。因此,这一业务流程可称为“商品上柜数据录入” 。

(3)销售数据录入。

售货员出售商品并将其出售商品的种类与数量等信息记录在“销售数据表”中,并同时 减少“柜存数据表”中的对应商品柜存数据记录。这一业务流程可称为“销售数据录入” 。

从管理职能上讲,售货员仅有权以销售单价出售存放在销售柜台上的商品,无权访问库 存商品记录。而任一商品的销售单价均由管理人员通过“商品上柜数据录入”业务予以指定,

售货员无权更改。

(4)交接班结转清。

商店管理人员在售货员交接班时,根据“销售数据表”和“柜存数据表”中的数据输出

“销售交接班报表” ,用以清点交班售货员的应交货款以及接班售货员的接班柜存商品数量。

(4)

因此,这一业务流程可称为“交接班结转清” 。

(5) “销售业绩查询汇总”和“商品库存数据查询” 。

商店管理人员为了分析商店运营状况,会定期或不定期地查阅商品销售利润和库存商品 数量,并分别填写“库存商品数量清单” 、 “柜存商品数量清单”和“商品销售汇总一览表” 。 因此,这些业务流程可称为“销售业绩查询汇总”和“商品库存数据查询” 。

综上所述,可以绘制“零售商店管理信息系统(Grocer) ”的业务数据流程图,如图 2­2­1  所示。

图 2­2­1  “零售商店管理信息系统(Grocer) ”业务数据流程图  2.系统功能分析

实际上,在进行业务与数据流程分析过程中,已经明确了系统所需的各项功能组成。在 系统功能分析阶段,需要进一步确定各项功能之间的相互调用及其从属关系。

分析零售商店管理信息系统的功能可知,零售商店管理信息系统应该由 7 个功能模块 组成。它们分别是:零售商店管理信息系统主控模块(GrocerMIS),商品进货数据录入模 块,商品上柜数据录入模块,销售数据录入模块,交接班结转清模块,销售业绩查询汇总 模块和商品库存数据查询模块。7  个功能之间的调用于从属关系可采用功能结构图描述,

如图 2­2­2 所示。

图 2­2­2  “零售商店管理信息系统(Grocer) ”功能结构图

进货单 商品进货数据录入 库存数据表

销售数据表 销售数据录入

柜存数据表 商品上柜

数据录入

交接班 结转清

销售交接 班报表

销售业绩 查询汇总

商品销 售利润

商品库存 数据查询

库存商 品一览 

GrocerMIS 

商品进货 数据录入

销售 数据录入

商品上柜 数据录入

交接班 结转精

销售业绩 查询汇总

商品库存 数据查询

(5)

作为系统功能分析的结果,各项功能分别如图 2­2­2 中文字所述。请读者对照图 2­2­1 所 描述的系统业务数据流程, 逐一明确每一项功能在系统业务数据流程中的位置, 它们各自在系 统中针对数据操作所起的作用,以及它们之间的相互关系。

2.2.2 零售商店管理信息系统设计

依据上述零售商店管理信息系统的分析结果,可按照以下设计步骤进行零售商店管理信 息系统的设计。 

1.零售商店管理信息系统数据库设计

分析图  2­2­1  所示的“零售商店管理信息系统”业务数据流程图,可以明确在  Grocer  中需要建立 3 个数据表用于存储基础数据,分别是:库存数据表、柜存数据表和销售数据 表。

此外,还应该把问题考虑得更加细致一些。可以这样设想:当商店管理人员接收一批进 货时,他需要输入他的姓名以及供货商的名称,一方面容易产生输入出错,另一方面很麻烦。

同样的道理, 要求商店管理人员在进行商品上柜操作时逐一输入本人姓名和营业员姓名, 也是 一个容易出现差错的环节。还有,要求营业员在每一笔销售业务发生时必须填写自己的姓名,

根本就是勉为其难。

为了解决这样的问题,应该为上述 3 个基础数据表设计 3 个辅助数据表,这 3 个辅助数 据表分别为:供货商名单、收货人员名单和销售员名单。

(1)库存数据表结构设计。

库存数据表对象用于存储库存商品数据,主要包括货号、货名、规格、计量单位、进货 单价和库存数量。 除此以外, 管理上还要求记录进货日期、 收货人和供货商等 3 项数据。 因此,

库存数据记录表应该由 9 列组成。

结合 Access 2007 数据表对象所具备的基本属性, 可以将库存数据表结构设计为如表 2­2­1  所示结构。

表 2­2­1  库存数据表结构

字段名称 货号 货名 规格 计量单位 进货单价 库存数量 进货日期 收货人 供货商 数据类型 文本 文本 文本 文本 数字 数字 日期/时间 文本 文本 字段大小  4 位  16 位  12 位  2 位 单精度型 长整型 一般日期  8 位  20 位

小数位数  2 位  0 位

索引 主键 有 有 有 有

(2)柜存数据表结构设计。

柜存数据表对象用于存储销售柜台上存储的各项商品数据,主要包括货号、货名、规格、

计量单位、销售单价和柜存数量。除此以外,管理上还要求记录上柜日期、上柜人和营业员等  3 项数据。因此,柜存数据表也包含 9 列数据。

结合 Access 2007 数据表对象所具备的基本属性, 可以将柜存数据表结构设计为如表 2­2­2  所示结构。

(6)

表 2­2­2  柜存数据表结构

字段名称 货号 货名 规格 计量单位 销售单价 柜存数量 上柜日期 上柜人 营业员 数据类型 文本 文本 文本 文本 数字 数字 日期/时间 文本 文本 字段大小  4 位  16 位  12 位  2 位 单精度型 长整型 一般日期  8 位  8 位

小数位数  2 位  0 位

索引 主键 有 有 有 有

(3)销售数据表结构设计。

销售数据表对象用于存储营业员在整个销售活动中的全部销售记录,构成一个销售流水 账。其中应该具备的字段主要包括销售序列号、货号、货名、规格、计量单位、销售单价和销 售数量。除此以外,管理上还要求记录销售日期和销售人员等 2 项数据。因此,柜存数据表包 含 9 列数据。

结合 Access 2007 数据表对象所具备的基本属性, 可以将销售数据表结构设计为如表 2­2­3  所示结构。

表 2­2­3  销售数据表结构

字段名称 销售序列号 货号 货名 规格 计量单位 销售单价 销售数量 销售日期 销售人员 数据类型 自动编号 文本 文本 文本 文本 数字 数字 日期/时间 文本 字段大小 长整型  4 位  16 位  12 位  2 位 单精度型 整型 一般日期  8 位

小数位数  2 位  0 位

索引 主键 有 有 有

(4)供货商名单表结构设计。

供货商名单表,用以存储所有供货商名称及其业务代表姓名。在进行商品进货操作时,

操作界面上将提供下拉式菜单供操作者从中选取供货商名称, 被选中的供货商名称将自动填入 库存数据记录表的供货商字段中,从而避免键盘输入汉字的弊端。

可以将供货商名单表结构设计为如表 2­2­4 所示。

表 2­2­4  供货商名单表结构 字段名称 供货商 供货人 数据类型 文本 文本 字段大小  20 位  8 位 小数位数

索引 主键

(5)收货人员名单表结构设计。

收货人员名单表,用以存储商店经理的姓名。在进行商品进货操作时,操作界面上将提 供下拉式菜单供操作者从中选取收货人姓名, 被选中的收货人姓名将自动填入库存数据记录表 的收货人字段中。 在进行商品上柜操作时, 操作界面上将提供下拉式菜单供操作者从中选取上 柜人姓名, 被选中的上柜人姓名将自动填入柜存数据记录表的上柜人字段中, 同样避免了键盘 输入汉字的弊端。

(7)

可以将收货人员名单表结构设计为如表 2­2­5 所示。

表 2­2­5  收货人员名单表结构 字段名称 收货人名 数据类型 文本 字段大小  8 位 小数位数

索引 主键

(6)售货人员名单表结构设计

售货人员名单表,用以存储营业员的姓名。在进行商品销售操作时,操作界面上将提供 下拉式菜单供操作者从中选取售货人员姓名, 被选中的售货人员姓名将自动填入销售数据记录 表的售货人员字段中,从而避免键盘输入汉字的弊端。

可以将售货人员名单表结构设计为如表 2­2­6 所示。

表 2­2­6  售货人员名单表结构 字段名称 售货人名 数据类型 文本 字段大小  8 位 小数位数

索引 主键 

2.零售商店管理信息系统功能设计

零售商店管理信息系统具有 7 个功能模块:1 个主控模块和 6 个功能模块。

(1)零售商店管理信息系统主控模块。

零售商店管理信息系统中的主控模块主要用于实现系统内其他各功能模块的控制转移 功能。

(2) “商品进货数据录入”模块。

零售商店管理信息系统中的“商品进货数据录入”模块用于提供商品库存数据的添加和 修改功能。

“商品进货数据录入”模块允许操作者通过输入的“货号”数据识别是新增商品信息还 是修改原有的商品信息,若识别为新增商品信息,应能在“库存数据表”中增添新记录,并填 入相关的商品信息数据。为了操作的方便,当输入原有商品代码时,应能够自动搜索并显示对 应的货名、规格、计量单位、进货单价、库存数量和进货日期等所有信息,并允许修改和保存。

另外, “商品进货数据录入”模块还应该能够提供删除原有商品数据记录的功能。

(3) “商品上柜数据录入”模块。

零售商店管理信息系统中的“商品上柜数据录入”模块用于提供商品柜存数据的添加、

修改和删除功能。

“商品上柜数据录入”模块允许操作者从库存商品数据表中检索到指定的商品记录,并 将该指定商品的库存数量减少,而同时增加相同数量至柜存数据表的对应商品的柜存数量中。

(8)

本功能必须禁止针对库存商品数据表中不存在的商品操作,也必须禁止这个商品的增减 数量大于其库存数量。

另外,如果指定商品存在于库存数据表而不存在于柜存数据表,必须在柜存数据表中增 添该商品的对应记录。

(4) “销售数据录入”模块。

零售商店管理信息系统中的“销售数据录入”模块用于提供销售数据的添加功能。

“销售数据录入”模块允许操作者从柜存数据表中检索到指定的商品记录,并将该指定 商品的柜存数量减少, 而同时在销售数据表中增加一条销售记录, 令其销售数量等于柜存数据 表对应商品柜存数量减少的数量。

本功能必须禁止针对柜存商品数据表中不存在的商品操作,也必须禁止这个商品的减少 数量大于其柜存数量。

(5) “商品库存数据查询”模块。

零售商店管理信息系统中的“商品库存数据查询”模块用于提供商品库存数据记录的查 询和删除功能。

“商品库存数据查询”模块允许操作者查阅全部库存商品的数据记录,也允许操作者指 定商品货号、货名、收货人、供应商、库存金额、进货单价、进货日期、库存数量或计量单位 等任一特征值的商品库存数据记录定位查询。 如果满足指定条件的查询结果不止一个, 将定位 于满足查询条件的第一条记录, 并提供查阅下一条满足条件记录的命令按钮, 帮助操作者快速 定位于下一条满足查阅条件的商品记录。

另外,根据实际需求分析,将库存商品数据记录的删除功能赋予“商品库存数据查询”

模块。

(6) “交接班结转清”模块。

零售商店管理信息系统中的“交接班结转清”模块为销售人员交接班事务提供货与款的 汇总数据,以及报表打印功能,以便交接班时的数据清对。

“交接班结转清”模块允许操作者指定交接班日期和交班营业员姓名,然后自动计算每 一项柜存商品的实际销售数量、金额和当前柜存数量,同时计算销售总金额。

此外,根据实际需求, “交接班结转清”模块提供“销售交接班报表”的打印预览驱动功能。

(7) “销售业绩查询汇总”模块。

零售商店管理信息系统中的“销售业绩查询汇总”模块为商店管理人员提供任一指定时 间段内的销售业绩汇总查询功能。

“销售业绩查询汇总”模块允许操作者指定销售业绩查询汇总的起始日期和终止日期,

然后自动计算每一项销售商品在这一段时间内的销售数量、 金额和销售利润, 同时计算销售总 金额和销售总利润。

此外,根据实际需求, “销售业绩查询汇总”模块提供“销售业绩查询”报表的打印预览 驱动功能。

2.3 面向对象技术基础

面向对象技术提供了一个具有全新概念的数据库应用系统开发模式,它将面向对象分析

(9)

(OOA,Object­Oriented Analysis)、面向对象设计(OOD,Object­Oriented Design)和面向对 象程序设计(OOP,Object­Oriented Programming)集成在一起。其核心概念是“面向对象” 。

所谓面向对象(Object­Oriented),可以这样定义:

面向对象=对象+类+属性的继承+对象之间的通信

如果一个数据库应用系统是使用这样的概念设计和实现的,则称这个数据库应用系统是 面向对象的。 一个面向对象的数据库应用系统中的每一个组成部分都是对象, 所需实现的操作 是通过建立对象与对象之间的通信来完成的。 

Access 2007 实质上是一个面向对象的可视化数据库管理工具, 它提供了一个完整的对 象类集合。因此,一个  Access  2007  数据库应用系统的设计过程也就是一个面向对象的设 计过程。

2.3.1 对象的概念 1.对象的定义

客观世界中的任何一个事物都可以看成是一个对象,或者说,客观世界是由很多对象组 成的。正是所有这些对象及其相互之间联系的存在,才构成了一个五彩缤纷的世界。

例如,一个人是客观世界中的一个对象,他(她)具有自己的姓名、性别、身高、体重 和相貌,这些称为一个对象的属性;当遇到某种事件时,他(她)会做出相应的反应,这种反 应称之为一个对象对某一事件的操作。

因此,可以这样定义对象,一个对象就是它本身的一组属性和它可执行的一组操作。 

2.对象的分类

数据库应用系统的对象一般可以分为两类:实体对象和过程对象。

(1)实体对象。

例如,在零售商店管理过程中,库存商品是一个对象,柜存商品也是一个对象;同样的,

在柜台内售货的营业员是一个对象, 在柜台外购物的顾客也是一个对象, 他们之间交易的商品 和金钱是两个对象。所有这些对象都具有一个特征:实体特征,即,它们是客观存在的。这一 类对象可称为实体对象。

在数据库应用系统中,实体对象的主要形式为数据库中的数据表对象。数据表对象中记 录着数据库中的数据实体,它们是一些客观存在。

(2)过程对象。

在零售商店管理过程中还有一类对象,它们是一个活动,在未被启动时,人们感受不到 它们的存在。例如,某一次商品进货的工作,商品上柜的过程,商品销售的过程,以及交接班 结转清的过程等。这样的对象所具有的特征是:过程特征,即,它们反映了活动的存在。

在 Access 2007 数据库应用系统中,过程对象的主要形式为数据库中的窗体对象、查询对 象和报表对象。Access  2007 数据库中的过程对象用于实施针对数据库中实体对象的操作,并 通过这些操作来改变某些实体对象的属性值,或驱动其他的过程对象。 

3.面向对象技术的应用

在建立了对象的概念后,可以说,数据库应用系统的设计过程就是逐步定义系统中的每 一个对象,并赋予它们相关的属性和操作的过程。以系统的观点看,对象中还可以包含对象,

被包含在一个对象中的对象称为子对象, 可以包含子对象的对象则称为容器对象。 Access 2007

(10)

数据库中的所有基本对象都是容器对象。

显然,为了开发一个 Access 2007 数据库应用系统,首先应该发现并定义系统中存在的所 有实体对象,在必要的情况下,还需要对这些实体对象进行规范化处理。然后应该分析系统运 行所需要的那些过程实体,定义它们,直至它们确实能够对相应的事件做出正确的操作。

值得注意的是, 传统的面向过程设计方法是围绕系统功能进行的, 而面向对象设计方法则 是围绕着对象进行的。也就是说,面向对象设计是将系统功能封装到对象之中,作为对象的操 作予以实现的。

2.3.2 类的概念

实际上,有很多对象都是相似的,即很多对象具有相同的属性和相同类别的操作。类的 概念就建立在这样的基础上, 我们把具有相同属性和相同类别操作的对象统称为一个类。 一个 应用系统中的对象都是某一个类的实例。

根据类的定义,类是一组具有相同数据结构和相同类型操作的对象的集合,我们可以说,

类是对象的抽象,而对象是类的具体实例。比如,在人类社会中, “首都”可以是一个类,而 北京是中国的首都,巴黎是法国的首都,伦敦是英国的首都等。这些城市都是“首都”这个类 的具体实例,它们都具有一些相同的属性:大城市、中央政府所在地等,它们还有一些相同类 型的操作:政治中心、经济中心、文化中心和军事指挥中心等。尽管这些城市同属于“首都”

这一个类,但它们的相同属性却具有不同的值:它们分别是不同国家的首都,它们影响政治、

发展经济、 传播文化以及指挥军事的方式不同。 这就使得这些城市中的每一个都是一个不同于 其他同类的具体对象。

在 Access 2007 数据库应用系统中,一个数据表是一个对象。因为所有的数据表对象均具 有二维表格的特点(这表明数据表对象的属性相同),且都是用于存储数据的对象(这表明数 据表对象的基本操作相同),所以可以将 Access  2007 数据表对象归结为一个类。如果数据库 应用系统的开发工具提供可能需要的所有对象的类, 那么在进行数据库应用系统开发时, 就只 需利用这些类创建一个又一个合乎应用需求的对象实例, 从而可以极大地提高数据库应用系统 开发的工作效率。

当今,凡是支持面向对象设计的数据库应用系统开发平台,都提供一系列的类。这就使 得在这样的开发平台上进行应用系统开发的过程, 成为利用开发平台提供的类创建符合应用要 求的对象的过程。 

Access  2007 是一个支持面向对象设计的数据库应用系统开发平台,它所提供的类主要包 括:数据表对象类、查询对象类、窗体对象类、报表对象类、宏对象类和模块对象类等。一个  Access 2007 数据库应用系统的开发,也就是要根据系统分析的结果,创建相应的 Access 2007  数据表对象实例、 窗体对象实例、 报表对象实例、 宏对象实例和模块对象实例。 由于 Access 2007  提供了丰富的类和很友好的创建各种对象实例的可视化操作界面,从而使得在 Access 2007 开 发平台上进行数据库应用系统开发可以获得很高的开发效率。

2.3.3 属性的概念

属性是对象固有的特征。比如人是一个对象类,这个对象类中的所有对象一般均具有这 些属性:姓名、性别、身高、体重等。当这些属性具有某一属性值时,则产生了一个对象实例,

(11)

比如(张三,男,1.75m,70kg)就可以标识一个特定的人。显然,属性只是型,而属性值才 是实。即,只有给定所有的属性值,才能真正标识一个唯一的对象。

在 Access 2007 数据库应用系统中, 不同类型的对象具有不同的属性集。 例如, Access 2007  数据库中的一个数据表对象总是具有这样的属性:表名以及一系列的字段。给定一个表名,并 定义其中的一系列字段,则构造成了一个 Access  2007 数据表对象。例如表 2­2­2 所示的数据 表对象就不同于表 2­2­3 所示的数据表对象, 尽管它们拥有相同的属性 (表名和一系列的字段), 但是这些属性的取值不同。所以,它们是两个不同的数据表对象实例。

派生于同一个类的对象是不允许任意两个对象实例的所有属性值都相同的,也就是说,

属于同一类的两个对象至少有一个属性的取值不同, 这个属性称为这一类对象的关键属性, 也 称为关键字。 如果派生于同一个类的两个不同对象具有更多的相异属性值, 则这两个同类对象 将具有非常不同的形式和表现。例如,两个 Access 2007 窗体对象的 BackColor 属性值不同,

则这两个窗体对象在运行时的背景颜色就会不同。显然,在设计某一个对象时,将有相当一部 分工作是在根据应用需求来设定这个对象的各个属性值。

根据类的概念可知,派生于不同类的对象将具有不同的属性集。比如在 Access 2007 数据 库中,报表对象就具有几乎完全不同于数据表对象的属性集。这就是说,在进行 Access  2007  数据库应用系统设计时, 应该根据数据库应用系统对各项应用的要求, 合适地选择属于某一个 类型的对象并为其设定所需要的属性值。

2.3.4 事件与方法的概念

既然客观世界是由对象组成的,那么客观世界中的所有行动都是由对象发出的,且能够 为某些对象感受到。我们把这样的行动称为事件。

在 Access 2007 数据库应用系统中,事件分为内部事件和外部事件。数据库应用系统中对 象的数据操作和功能调用命令等都是内部事件, 而鼠标的移动、 单击和键盘的敲击等都是外部 事件。并非所有的事件都能被每一个对象感受到,例如,鼠标在某一位置上单击,则该事件只 能被安置在这一位置上的对象感受到。

当某一个对象感受到一个特定事件发生时,这个对象应该可以做出某种响应。例如,将鼠标 指向一个运行窗体上标记为“退出”的按钮对象处单击,则这个窗体会被关闭。这是因为这个标 记为“退出”的按钮对象感受到了这个鼠标左键单击事件,并以执行关闭窗体的操作来响应这个 事件。通用的,人们将这种一个对象针对一个事件的响应称为这个对象处理这一事件的方法。

因此,我们把方法定义为一个对象响应某一事件的一个操作序列。

显然,为了完成一个数据库应用系统的开发工作,在根据需要创建了各个对象并设定了 所有对象的各个属性之后, 还必须为相关对象设计其响应某些事件的方法。 一个方法也就是一 个操作序列,即程序。这样一种程序设计的过程,就称之为面向对象的程序设计。

2.4 面向对象技术应用实例 

Access 2007 是一个采用面向对象技术的数据库管理系统, 它具有丰富完整的对象类集合。

因此,Access 2007 数据库应用系统的设计过程也应该是一个面向对象的设计过程。

在 2.2 节中完成了“零售商店管理信息系统”的分析与设计过程,接着可以开始进入这个

(12)

小型数据库应用系统的实现过程。 本书将以这个小型数据库应用系统作为实例贯穿始终, 逐步 地介绍应用 Access 2007 数据库管理系统实现这个小型数据库应用系统的全过程。为此,需要 将零售商店管理信息系统的所有数据集合以及功能均描述为 Access 2007 对象。

根据 Access 2007 的特性,可以将零售商店管理信息系统的所有数据集合以及功能设计为 这样一组对象:1 个数据库对象、6 个数据表对象、4 个查询对象、7 个窗体对象和 2 个报表对 象,以及其他一些辅助性的子窗体对象和宏对象。

2.4.1 零售商店管理信息系统的数据库对象

零售商店管理信息系统的数据库对象是存储于磁盘上的一个数据库文件, 其文件名为 “零 售商店管理信息系统.accdb” 。零售商店管理信息系统的其他对象均为这个数据库对象中的子 对象。因此,实现零售商店管理信息系统的第一步工作必须是创建这个数据库对象,我们将在 下一节介绍创建一个 Access 2007 数据库对象的操作。

2.4.2 零售商店管理信息系统的数据表对象

零售商店管理信息系统中的 6 个数据表应该设计为 Access 2007 数据库中的 6 个数据表对 象,图 2­4­1 所示即为包含于零售商店管理信息系统数据库中的表对象。

图 2­4­1  零售商店管理信息系统的数据表对象

在图  2­4­1  中, “库存数据记录” 、 “柜存数据记录”和“销售数据记录”是零售商店管理 信息系统中的基本表对象, “供货商名单” 、 “收货人员名单”和“售货人员名单”是零售商店 管理信息系统中的辅助表对象 (如 2.2.2 节所述), 另外一些是本书介绍一般知识时将要用到的 实例。

2.4.3 零售商店管理信息系统的查询对象

零售商店管理信息系统相关功能的实现需要应用 5 个 Access 查询对象,它们分别是“库 存数据记录查询” 、 “柜存数据记录查询” 、 “销售数据查询” 、 “销售结转清查询” 和 “销售利润 明细查询” ,除此之外的其他 Access 查询对象是本书介绍一般知识时将要用到的一些实例。图

(13)

2­4­2 所示即为包含于零售商店管理信息系统数据库中的查询对象。

图 2­4­2  零售商店管理信息系统的查询对象

2.4.4 零售商店管理信息系统的窗体对象

零售商店管理信息系统中的 7 个功能模块应该设计为 Access 数据库中的 7 个窗体对象,

同时还需设计与之对应的相关子窗体对象。 它们分别为: “零售商店管理信息系统” 窗体、 “商 品进货数据录入”窗体、 “商品库存数据查询”窗体、 “商品上柜数据录入”窗体、 “销售数据 录入”窗体、 “交接班结转清”窗体和“销售业绩查询汇总”窗体。另外, “销售结转清查询子 窗体”和“销售数据记录查询子窗体”分别为“交接班结转清”窗体和“销售数据录入”窗体 所包含的子窗体。除此之外,其他 Access 窗体对象是本书介绍一般知识时将要用到的一些实 例。图 2­4­3 所示即为包含于零售商店管理信息系统数据库中的窗体对象。

图 2­4­3  零售商店管理信息系统的窗体对象

(14)

2.4.5 零售商店管理信息系统的报表对象

根据需求分析,零售商店管理信息系统中的“销售交接班报表”和“销售业绩查询”都 应该设计为 Access 数据库中的报表对象。在“销售业绩查询”报表中,还包含着一个图表子 报表,如图 2­4­4 所示。

图 2­4­4  零售商店管理信息系统的报表对象

2.4.6 零售商店管理信息系统的宏对象

在 Access 中,很多个操作序列的实现均可以选择宏对象或者选择 VBA 编程来实现。在什 么样的情况下使用宏对象,在什么样的情况下使用 VBA 编程模块,没有一定之规。根据作者 的习惯,零售商店管理信息系统中使用 VBA 程序多于使用宏,且这些 VBA 程序模块多数都 是采用绑定于控件的 VBA 程序方法实现的。本节所列宏对象多数都是为了讲解相关知识点的 需要,而作为介绍实例建造的。图 2­4­5 中所列为零售商店管理信息系统数据库中的宏对象集 合。

图 2­4­5  零售商店管理信息系统的宏对象

(15)

2.5 创建 Access 2007 数据库对象

2.5.1 理解 Access 2007 数据库文件

由于 Access 2007 数据库与传统的数据库概念有所不同,采用特有的全环绕数据库文件结 构组成数据库文件(accdb 文件),因此,它可以以一个单独的 accdb 文件存储一个数据库应用 系统中包含的所有对象。基于 Access 2007 数据库文件的这一特点,我们创建一个 Access 2007  数据库应用系统的过程几乎就是创建一个 Access 2007 数据库文件,并在其中设置各种应用系 统必需的各个 Access 2007 数据库子对象的过程。

由此可见,开发一个 Access  2007 数据库应用系统的第一步工作是创建一个 Access  2007  数据库对象,其操作结果就是在磁盘上生成一个扩展名为 accdb 的磁盘文件。第二步工作是在 数据库中创建相应的数据表,并建立各数据表间的连接。然后,再逐步创建其他必需的 Access  对象,最终即可形成完备的 Access 2007 数据库应用系统。而整个数据库应用系统仅以一份磁 盘文件的形式存储于文件系统中, 显得极其简洁。 这也是很多小型数据库应用系统开发者偏爱  Access 的原因之一。

实际上,对 Access 2007 数据库管理系统来说,一个数据库对象是一个一级容器对象,其 他 Access 对象均置于该容器对象之中,称为 Access 数据库的子对象。因此,一个 Access 2007  数据库对象是其他所有 Access 对象的基础,即其他的 Access 对象必须建立在一个数据库对象 之中。由此,我们可以将 Access 2007 数据库文件理解为一个工程项目文件,它记录着整个数 据库应用系统的所有属性与特征。

2.5.2 创建 Access 2007 数据库

为了创建一个 Access 2007 数据库对象,可以通过两种不同的操作方法实现。 

1.创建 Access 2007 空白数据库

启动 Access  2007 后,Access  2007 启动窗口如图 1­2­3 所示。在 Access  2007 启动窗口中 有一个 “空白数据库” 图标, 单击这个图标, 将导致 Access 2007 启动窗口右部显示创建 Access  2007 空白数据库的相关选项,如图 2­5­1 所示。

如果是在 Access 2007 运行后的其他工作窗口中需要创建空白数据库, 可以单击 Microsoft  Office 按钮,然后单击其中的“新建”菜单项,即可启动如图 2­5­1 所示的 Access  2007 空白 数据库创建选项窗口。

在图 2­5­1 所示的“Access 2007 空白数据库创建选项窗口”中,首先需要指定数据库文件 的存储位置。为此,单击置于窗口右下侧的“打开文件夹”图标 ,即可进入“文件新建数 据库”对话框,如图 2­5­2 所示。

在如图  2­5­2  所示的“文件新建数据库”对话框中,首先应该正确选择“保存位置” ,它 指定的是新建数据库文件所在的磁盘以及文件夹。接着在“文件名”列表框中输入一个合适的 数据库文件名,例如可以命名为“零售商店管理信息系统 1.accdb” 。并在“保存类型”列表框 中,选择“Microsoft Office Access 2007 数据库(*.accdb) ” ,一般情况下,这是默认类型,可 以不加修改。

(16)

图 2­5­1  Access 2007 空白数据库创建选项窗口

图 2­5­2  “文件新建数据库”对话框

完成上述三项操作后,单击“确定”按钮 ,即可返回到 Access 2007 空白数据库创 建选项窗口中。此时可以看到 Access 2007 空白数据库创建选项窗口中的空白数据库文件名以 及存储路径、文件夹名均成为上述操作所指定的数据。最后,在 Access 2007 空白数据库创建

(17)

选项窗口中单击“创建”按钮 ,即可进入 Access 2007 空白数据库设计视图窗口,如 图 2­5­3 所示。

图 2­5­3  Access 2007 空白数据库设计视图窗口

注意, 此时这个新创建的数据库容器对象中尚无任何其他数据库对象存在, 图中所示的名 为“表 1”的数据表对象实际上还不存在,Access  2007 是在提示需要创建一个数据表对象。

因此,接下来需进行的工作就是在该数据库容器中创建所需要的 Access 2007 数据库中的数据 表对象、查询对象以及所需要的窗体对象、报表对象等。 

2.借助模板创建 Access 2007 数据库 

Access  2007 的设计者充分考虑到二次应用开发的需求,提供了一套经过专业化设计的数 据库模板。 每个模板就是一个完整的 Access 2007 数据库应用系统, 其中包含预定义的数据表、

窗体、报表、查询和宏对象。如此,创建 Access 2007 数据库的工作就可以使用模板作为起点,

来创建满足特定需求的数据库。

为了使用 Access 2007 提供的数据库模板, 可以在如图 2­5­1 所示的 Access 2007 启动窗口 中进行操作。 也可以单击 Microsoft Office 按钮, 然后单击其中的 “新建” 菜单项进入 Access 2007  启动窗口。在 Access 2007 启动窗口中,数据库模板划分为 5 个类别列表于窗口左部,分别为

“本地模板” 、 “来自  Microsoft  Office  Online” 、 “个人” 、 “教育”和“商务” 。其中, “来自  Microsoft Office  Online”类别的模板最丰富,需要连接 Internet 获取。如果需要借助于模板来 创建 Access 数据库,就应该在 Access 2007 启动窗口中选定合适的数据库模板。

例如,为了创建零售商店数据库,在 Access 2007 启动窗口左部的“模板类别”列表栏中,

选择“本地模板”类别,即可进入 Access 2007 启动窗口中的“本地模板”选项卡;然后在窗 口中部显示的各个数据库模板中选定“销售渠道”数据库模板;最后,在窗口右部设定创建数 据库的存储位置以及文件名,在本例中存储位置设定为“D:\2011\grocer\” ,文件名设定为“销 售渠道.accdb” ,如图 2­5­4 所示。

在完成了上述操作之后,单击窗口中的“创建”按钮 ,即完成了借助模板创建  Access 2007 数据库的操作。创建数据库的操作完成后,即自动进入 Access 2007 数据库设计视 图窗口,如图 2­5­5 所示。

(18)

图 2­5­4  Access 2007 启动窗口中的“本地模板”选项卡

图 2­5­5  借助模板创建的“销售渠道”数据库设计视图窗口

借助模板创建的 Access 2007 数据库中包含着一系列数据表、查询、窗体和报表对象,如 果选择的模板合适,这些对象的属性将非常接近所需要设计的应用信息系统的需求。但是,无

(19)

论多么接近实际需求,也还是存在差异的。因此,还需要设计者逐一修改这些对象的相关属性 以期得到完全满足应用需求的数据库。

本教材以后的实例讲解将基于空白数据库展开。

2.5.3 转换 Access 数据库 

Microsoft 公司对于集成于 Office 套件中的 Access 数据库管理系统应该说是比较尽心的,

在 Access 2.0 面世以后, 随着 Office 套件的更新改版, 出现了 Access 95、 Access 97、 Access 2000、 

Access  2002­2003,直至本书讲解的  Access  2007  以及更新的  Access  2010。为了解决不同的  Access 数据库管理系统版本间相互转换的问题,Microsoft 公司在后期的 Access 版本中提供一 个称为“转换数据库”的数据库实用工具。借助于这个数据库实用工具,可以将低版本环境下 开发的数据库应用系统转换为当前版本的 Access 数据库应用系统,也可以将在当前版本环境 下开发的数据库应用系统转换为低一级版本的 Access 数据库应用系统。

将当前 Access 版本的数据库转换为其他 Access 版本的数据库的操作方法是,打开需要转 换版本的 Access 数据库,在数据库设计视图窗口中单击“Microsoft Office 按钮” ,然后在其菜 单中选定“另存为”选项,如图 2­5­6 所示,即可选择将当前 Access 版本数据库转换为 Access  2007 数据库、Access 2002­2003 数据库或者 Access 2000 数据库。

图 2­5­6  转换 Access 数据库版本的“Microsoft Office 按钮”菜单

本章实践

按照示例,完成“零售商店管理信息系统”数据库的创建,并存储在 Grocer 文件夹中。

(20)

复习思考题 

1.请简述数据库应用系统开发的一般步骤,以及各个开发步骤的要点。 

2.请解释系统分析阶段需要完成的各项工作及其意义。 

3.请解释系统设计阶段需要完成的各项工作及其意义。 

4.请解释系统实现阶段需要完成的各项工作及其意义。 

5.请解释系统测试阶段需要完成的各项工作及其意义。 

6.请以 OOP 的观点解释以下术语:对象;类;属性;事件;方法。 

7.为了创建一个新的 Access 2007 数据库对象,可以通过哪两种不同的操作途径来实现?并结合你的实 践说明各自的适用范围。 

8.为了打开一个现存的 Access 2007 数据库对象,可以通过哪三种不同的操作途径来实现?并结合你的 实践说明各自的适用范围。 

9.如果需要利用数据库向导建立一个关于个人通讯录管理的 Access 2007 数据库,应该选用哪一个数据 库模板? 

10.请在教师的指导下选择一个你所熟悉的业务系统,进行数据业务流程分析,并绘制系统业务与数据 流程图。 

11.请针对你所绘制的业务与数据流程图,绘制系统功能结构图。 

12.请针对你所绘制的业务与数据流程图和系统功能结构图,设计相关的Access 2007基本对象。

參考文獻

相關文件

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

主要指标 单位 参考期.

年初至当期累计 数值 按年变动.

年初至当期累计 数值 按年变动.

年初至当期累计 数值 按年变动.

数值 按年变动 主要指标.. 年初至当期累计