1、21 世 纪 高 等 学 校 信 息 类 应 用 型 系 列 教 材Visual FoxPro 程序设计主 编 熊发涯副主编 唐铸文 冯 仲 王 伟 刘 烨陈晓红 万振科 陈华松 张 鑫华中科技大学出版社图书在版编目(CIP)数据Visual FoxPro 程 序 设 计 /熊 发 涯 主 编 武 汉 : 华 中 科 技 大 学 出 版 社 , 2003 年 3 月ISBN 7-5609-. V. 熊 .Visual FoxPro 程序设计 熊发涯 主编责任编辑:曾 光 封面设计:潘 群责任校对: 责任监印:出 版 发 行 : 华 中 科 技 大 学 出 版 社 武昌喻家山 邮编:430074
2、 电话:(027)87545012 经销:录排:华中科技大学惠友科技文印中心 印刷:开本:787960 1/16 印张: 字数:版次:2003 年 2 月第 1 版 印次:2003 年 2 月第 1 次印刷 印数:17000ISBN 7-5609- / 定价:32.80 元(本书若有印装质量问题,请向出版社发行部调换)内 容 简 介本书根据最新颁布的全国计算机等级考试二级 Visual FoxPro 考试大纲要 求 , 结 合 目 前 我 国 各 高 等 院 校 计 算 机 课 程 开 设 的 实 际 情 况 , 融 会 作 者 多 年 从 事 数据库教学和数据库程序设计的实践经验而编写。全书
3、以 Visual FoxPro 6.0 为 平 台 , 融 FoxBase、 FoxPro 为 一 体 , 介 绍 了 数 据 库 的 基 本 知 识 、 基 本 操 作 、 结 构化程序设计基础、SQL 语言、面向对象的程序设计方法。全 书 内 容 安 排 合 理 、 详 略 得 当 , 讲 述 深 入 浅 出 , 突 出 了 系 统 性 和 实 践 性 。 书 中 的 所 有 例 题 和 各 章 习 题 中 的 程 序 设 计 全 部 在 计 算 机 上 调 试 通 过 , 结 果 正 确 。 该书内容的深度和广度完全满足全国计算机等级考试二级 Visual FoxPro 6.0 考 试的
4、要求。该 书 独 创 性 地 配 有 独 立 的 上 机 实 验 指 导 书 , 可 以 极 大 地 提 高 学 习 者 的 上 机 效 率 也 更 便 于 老 师 进 行 针 对 性 地 上 机 指 导 。 该 书 还 配 有 整 套 的 电 子 教 案 免 费 供 师生们参考使用。本 书 可 作 为 高 等 学 校 各 专 业 的 计 算 机 应 用 基 础 教 材 和 全 国 计 算 机 等 级 考 试 二级 Visual FoxPro6.0 考试培训班的培训教程,也可供广大从事数据库应用程 序开发的技术人员参考学习。前 言Visual FoxPro 是 Microsoft 公 司 为
5、数 据 库 结 构 和 应 用 程 序 开 发 的 程 序 设 计 语 言 , 它 起 源 于 XBASE 语 言 系 列 , 是 目 前 微 机 上 最 优 秀 的 数 据 库 管 理 系 统 软 件 。 它 建 立 在 Windows 95/98/2000 平台 之上, 采用了可视化、 面向对象的程序设计方法 , 大大简化了应用 系统的开发过程, 并提高了系统的模块性和紧凑性。 在 Visual FoxPro 6.0 中提供了大量的系 统开发工具和向导工具(W izard) , 使以往费时费力的开发工作变得轻松自如,这些 可 视 化 的设计工具免除了开发者编写大量程序代码的工作,甚至在不需
6、要学习 Visual FoxPro 的有 关 命 令 或 函 数 的 情 况 下 , 也 能 设 计 出 功 能 强 大 的 应 用 系 统 。 Visual FoxPro 6.0 中 文 版 是 快 速 掌 握 面 向 对 象 的 程 序 设 计 、 运 用 计 算 机 解 决 常 用 数 据 处 理 问 题 的 最 佳 入 门 语 言 。 现 在 , 几 乎所有的高等院校都开设了相应的课程,全国计算机等级考试也开考了该语言。本书包括数据库基础、 Visual FoxPro 6.0 基础, 表与 数据库 , 查询与视图, Visual FoxPro 6.0 程 序 设 计 基 础 , 表 单
7、 , 报 表 和 标 签 , 菜 单 与 工 具 栏 , 项 目 管 理 与 程 序 发 布 等 内 容 。 完 全 满足全国计算机等级考试二级 Visual FoxPro 考 试 要 求 。 为 方 便 读 者 学 习 , 还 编 写 了 配 套 的 上机实验指导。本书共分 9 章,第 1 章 、 第 2 章 、 第 5 章 、 第 6 章、第 8 章和上机实验指导由熊发涯编写,第 3 章由唐铸文编写,第 4 章由冯仲编写,第 7 章由万振科编写,第 9 章 由 陈 晓 红 编写,参加编写的还有刘烨、王伟、陈华松、张鑫,全书由熊发涯统稿。本书还有配套的电子教案和教师手册,需要者请与出版社或作
8、者联系。 由于编者水平有限,书中错误在所难免,欢迎读者对本书提出宝贵意见和建议。编 者2003 年 2 月目 录第 1 章 数据库基础 (1)1.1 数 据 库 基 础 (1)1.1.1 计 算 机 数 据 管 理 技 术 的 发 展 (1)1.1.2 数 据 库 系 统 (5)1.1.3 数据模型 (7)1.2 关 系 数 据 库 (10)1.2.1 关系模型 (10)1.2.2 关系运算 (12)1.3 数 据 库 设 计 基 础 (13)1.3.1 数 据 库 设 计 步 骤 (14)1.3.2 数 据 库 设 计 过 程 (15)习题一 . (18)第 2 章 Visual FoxPr
9、o 6.0 基础 . (19)2.1 Visual FoxPro 6.0 中文版概述 .(19)2.1.1 Visual FoxPro 的发展 . (19)2.1.2 Visual FoxPro 6.0 的特点 (20)2.1.3 Visual FoxPro 6.0 中文版的安装、启动及菜单 . (23)2.2 Visual FoxPro 6.0 的基本概念与规则 .(35)2.2.1 项目、文件、数据库、表、视图 (35)2.2.2 Visual FoxPro 6.0 的命令结构和键盘宏 . (39)2.2.3 Visual FoxPro 6.0 的执行方式 . (40)2.2.4 Visu
10、al FoxPro 6.0 的常量、变量、数组 . (41)2.2.5 Visual FoxPro 6.0 的表达式与函数 (46)2.2.6 Visual FoxPro 6.0 的文件类型 . (54)2.3 Visual FoxPro 6.0 的编程工具 .(55)2.3.1 项 目 管 理 器 (55)2.3.2 设 计 器 简 介 (58)2.3.3 生 成 器 简 介 (59)2.3.4 向导简介 (59)习题二 . (61)第 3 章 表和数据库 (64)3.1 创 建 基 本 数 据 库 (64)3.1.1 建 立 自 由 表 (64)2 Visual FoxPro 程序设计3.
11、1.2 建 立 数 据 库 表 . (66)3.2 表 的 基 本 操 作 (75)3.2.1 打 开 和 关 闭 表 . (75)3.2.2 追加记录 (76)3.2.3 记 录 的 定 位 (76)3.2.4 记 录 的 插 入 (77)3.2.5 显示记录 (77)3.2.6 修改记录 (78)3.2.7 删除记录 (80)3.2.8 表 的 统 计 汇 总 . (81)3.2.9 表 结 构 的 操 作 . (82)3.2.10 其 他 文 件 操 作 . (83)3.3 排 序 与 索 引 (87)3.3.1 排序 . (87)3.3.2 索引 . (88)3.4 表 问 关 系 (
12、95)3.4.1 多 工 作 区 的 操 作 (95)3.4.2 关 系 的 类 别 (97)3.4.3 建 立 表 问 临 时 关 系 (98)3.4.4 建 立 表 问 永 久 关 系 (100)3.4.5 数 据 完 整 性 (101)习题三 . (103)第 4 章 查询与视图 (106)4.1 创 建 基 本 的 查 询 (106)4.1.1 查 询 设 计 器 (106)4.1.2 查 询 设 计 向 导 . (113)4.1.3 用 交 叉 表 向 导 设 计 交 叉 表 查 询 . (115)4.1.4 查询设计器的局限性 . (117)4.2 视图 (117)4.3 关 系
13、数 据 库 标 准 语 言 SQL (123)4.3.1 SQL 语言概述 (123)4.3.2 查询功能 (123)4.3.3 修改功能 (131)4.3.4 定义功能 (134)习题四 . (137)第 5 章 Visual FoxPro 6.0 程序设计 (139)5.1 程 序 与 程 序 文 件 (139)目 录 35.1.1 程 序 的 建 立 与 修 改 (139)5.1.2 执 行 程 序 文 件 . (140)5.1.3 简单的输入输出命令 . (140)5.2 顺 序 结 构 程 序 设 计 (142)5.2.1 基本结构 (142)5.2.2 基本语句 (144)5.3
14、分 支 结 构 程 序 设 计 (146)5.3.1 单 条 件 选 择 语 句 (146)5.3.2 多 条 件 选 择 语 句 (149)5.4 循 环 结 构 程 序 设 计 (150)5.4.1 当 型 循 环 DO WHILE (150)5.4.2 步 长 型 循 环 FOR . (156)5.4.3 表 扫 描 型 循 环 SCAN . (158)5.5 过 程 与 变 量 的 作 用 域 (158)5.5.1 过 程 的 使 用 (159)5.5.2 变 量 的 作 用 域 . (164)5.6 程 序 调 试 (167)5.6.1 调 试 器 环 境 (167)5.6.2 设置
15、断点 (168)5.6.3 调试菜单 (170)习题五 . (170)第 6 章 表单设计与应用 . (178)6.1 面 向 对 象 程 序 设 计 的 概 念 (178)6.1.1 对 象 、 属 性 、 事 件 和 方 法 (178)6.1.2 Visual FoxPro 6.0 的类 . (186)6.1.3 Visual FoxPro 6.0 可视化编程步骤 (190)6.2 创 建 表 单 (197)6.2.1 利 用 表 单 向 导 创 建 表 单 . (197)6.2.2 利 用 表 单 设 计 器 来 创 建 表 单 (200)6.2.3 利 用 快 速 表 单 创 建 表
16、单 . (201)6.2.4 保 存 表 单 、 修 改 和 运 行 表 单 (202)6.3 表 单 管 理 (205)6.3.1 管 理 表 单 属 性 . (205)6.3.2 常 用 事 件 与 方 法 (211)6.3.3 添加对象 (218)6.3.4 设 置 数 据 环 境 . (224)6.4 控件 (228)6.4.1 控 件 的 选 择 (228)4 Visual FoxPro 程序设计6.4.2 常 用 表 单 控 件 . (230)习题六 . (266)第 7 章 报表和标签 (270)7.1 报表 (270)7.1.1 报表布局 (270)7.1.2 创建报表 (27
17、1)7.1.3 报 表 操 作 命 令 . (279)7.2 标签 (279)7.2.1 用标签向导设计标签 . (279)7.2.2 标 签 操 作 命 令 . (280)习题七 . (281)第 8 章 菜单与工具栏 . (282)8.1 Visual FoxPro 系 统 菜 单 (282)8.1.1 菜单结构 (282)8.1.2 系统菜单 (282)8.2 下 拉 式 菜 单 设 计 (284)8.2.1 菜单设计的基本过程 . (284)8.2.2 用 菜 单 设 计 器 创 建 菜 单 . (284)8.2.3 通 过 编 程 设 计 菜 单 (290)8.2.4 在 应 用 程
18、 序 中 使 用 菜 单 . (291)8.2.5 菜 单 系 统 的 测 试 与 调 试 . (292)8.3 快 捷 菜 单 的 设 计 (295)8.4 创 建 自 定 义 工 具 栏 (297)8.4.1 定 义 工 具 栏 类 . (297)8.4.2 在 表 单 集 中 添 加 自 定 义 工 具 栏 . (297)习题八 . (298)第 9 章 项目管理与程序发布 (299)9.1 项 目 管 理 器 的 使 用 (299)9.1.1 Visual FoxPro 6.0 项目管理器 . (299)9.1.2 使 用 项 目 管 理 器 组 织 文 件 (300)9.1.3 构
19、适 应 用 程 序 框 架 (303)9.1.4 应 用 程 序 生 成 器 的 使 用 . (305)9.2 应 用 程 序 的 发 布 (307)习题九 . (310)附录 全国计算机等级考试二级 Visual FoxPro 考试大纲 . (311)第 1 章数据库基础人 类 社 会 随 着 计 算 机 技 术 、 通 信 技 术 和 网 络 技 术 的 发 展 , 已 经 进 入 了 信 息 化 时 代 。 信 息 资 源 已 成 为 最 重 要 和 最 宝 贵 的 资 源 之 一 , 建 立 一 个 行 之 有 效 的 信 息 系 统 是 企 业 组 织 生 存 和 发 展 的 重 要
20、 条 件 。 数 据 库 技 术 是 计 算 机 技 术 的 重 要 分 支 , 是 数 据 管 理 的 实 用 技 术 。 从 某 种 意 义 上 来 讲 , 数 据 库 的 建 设 规 模 、 数 据 库 信 息 量 的 大 小 和 使 用 频 度 已 成 为 衡 量 一 个 国 家 信息化程度的重要标志。计 算 机 应 用 人 员 只 有 掌 握 数 据 库 系 统 的 基 本 知 识 , 熟 悉 数 据 库 管 理 系 统 的 特 点 , 才 能 开 发 出 适 用 的 数 据 库 应 用 系 统 。 本 章 将 介 绍 数 据 库 的 基 本 概 念 和 关 系 数 据 库 设 计
21、的 基 本 知 识,掌握这些内容是学好、用好 Visual FoxPro 的前提条件。1.1 数据库基础数 据 库 管 理 系 统 是 处 理 数 据 的 有 效 工 具 , 在 此 , 首 先 介 绍 数 据 、 数 据 处 理 的 概 念 和 计 算 机 数 据 管 理 的 发 展 历 程 。1.1.1 计算机数据管理技术的发展1. 数据、信息和数据处理数据和信息密切相关 , 但又有区别 。 数 据 ( Data) 是对客观事物特征所进行的一种抽象 化、符号化表示。例如,某人身高 1.70 米,体重 63 千 克 , 年 龄 24 岁 , 这 里 的 1.70、 63、24 等 数 值 是
22、 数 据 。 除 数 值 数 据 外 , 数 据 还 包 括 文 字 、 声 音 、 图 形 、 图 像 等 非 数 值 型 数 据 。 信 息 (Information)是 指 有 一 定 含 义 的 、 经 过 加 工 ( 处 理 ) 的 , 对 决 策 有 价 值 的 数 据 。 例如 , “张 红 力的身高是 1.65 米 , 是 一条信息,而 “张红力 、 “1.65 、 “米 等 是数据。可以说数据表示了信息,而信息 有通过数据形式表现出来才能为人所理解。 数 据 处 理 是 指 将 数 据 转 换 成 信 息 的 过 程 。 从 数 据 处 理 的 角 度 而 言 , 信 息 是
23、 一 种 被 加 工成特定形式的数据,这种数据形式对于数据接收者来说是有价值的。 人 们 有 时 说 “信 息 处 理 , 其 真 正 含 义 应 该 是 为 了 产 生 信 息 而 处 理 数 据 。 通 过 处 理 数 据可 以 获 得 信 息 , 通 过 分 析 和 筛 选 信 息 可 以 为 决 策 提 供 依 据 。 信 息 的 价 值 必 须 通 过 信 息 决 策 者 的 行 为 结 果 来 体 现 , 所 以 , 为 了 提 高 信 息 的 价 值 , 就 要 用 科 学 的 方 法 来 管 理 信 息 , 这 种2 Visual FoxPro 程序设计应用程序 1数据集 1应
24、用程序 2数据集 2应用程序 n数据集 n科学的方法就是数据库技术。 在 计 算 机 中 , 使 用 计 算 机 外 存 储 器 , 如 磁 盘 、 光 盘 来 存 储 数 据 : 通 过 计 算 机 软 件 来 管理数据:通过应用程序来对数据进行加工处理。2. 计算机数据管理技术的发展与数据库技术的产生数 据 处 理 的 中 心 问 题 是 数 据 管 理 。 计 算 机 数 据 管 理 是 指 对 数 据 的 组 织 、 分 类 、 编 码 、 存 储 、 检 索 和 维 护 。 计 算 机 数 据 管 理 技 术 经 历 了 由 低 级 到 高 级 的 发 展 过 程 。 计 算 机 数
25、 据 管 理 技 术 随 着 计 算 机 硬 件 、 软 件 技 术 和 计 算 机 应 用 范 围 的 发 展 而 不 断 发 展 , 多 年 来 经 历 了 人 工管理、文件系统、数据库系统、分布式数据库系统和面向对象数据库系统等几个阶段。(1) 人工管理阶段20 世 纪 50 年 代中期以前 , 计算机主要用于科学计算 , 当时的计算机硬件状况是 : 外存有 磁 带 、 卡 片 、 纸 带 , 没 有 磁 盘 等 直 接 存 取 的 存 储 设 备 : 从 软 件 状 况 看 , 没 有 操 作 系 统 , 没有管理数据的软件和数据处理的批处理方式。人工管理数据的特点是: 数 据 不 保
26、 存 。 因 为 计 算 机 主 要 应 用 于 科 学 计 算 , 一 般 不 需 要 将 数 据 长 期 保 存 , 是 在 计 算 某 一 具 体 实 例 时 将 数 据 输 入 。 不 论 是 用 户 程 序 或 数 据 , 用 完 就 撤 走 或 被 覆 盖 , 对 某 些系统软件也同样。 数 据 无 专 门 软 件 进 行 管 理 。 数 据 需 要 由 应 用 程 序 自 己 进 行 管 理 , 应 用 程 序 不 仅 要 规 定数据的逻辑结构,而且还要设计数据的物理结构,包括存储结构、存取方法、输入 /输出 方式等,因此编程很困难。 数 据 不 共 享 。 一 组 数 据 对
27、应 一 个 程 序 , 数 据 是 面 向 应 用 的 , 即 使 两 个 应 用 程 序 涉 及 某 些 相 同 的 数 据 , 也 必 须 各 自 定 义 , 无 法 互 相 利 用 , 互 相 参 照 。 所 以 程 序 与 程 序 之 间 有 大 量冗余数据。 数 据 不 具 有 独 立 性 。 由 于 数 据 要 由 应 用 程 序 进 行 管 理 , 数 据 与 应 用 程 序 密 切 相 关 , 当 数 据 的 逻 辑 结 构 或 物 理 结 构 改 变 时 , 程 序 中 存 取 数 据 的 子 程 序 必 须 作 相 应 的 改 变 , 即 数 据与程序不具有独立性,因此用户
28、负担很重。人工管理数据的特点如图 1-1 所示。图 1-1 人工管理阶段的应用程序与数据之间的对应关系(2) 文件系统阶段这一阶段从 20 世纪 50 年 代 后 期 到 60 年 代 中 期 , 计 算 机 硬 件 和 软 件 得 到 了 发 展 。 计 算 机 不 仅 用 于 科 学 计 算 , 还 大 量 用 于 管 理 。 这 时 硬 件 方 面 己 经 有 了 磁 盘 、 磁 鼓 等 直 接 存 取 的 存 储 设 备 。 在 软 件 方 面 , 操 作 系 统 中 己 经 有 了 专 门 的 数 据 管 理 软 件 , 一 般 称 为 文 件 系 统 。 处 理 方 式 上 不 仅
29、 有 了 文 件 批 处 理 , 而 且 能 够 联 机 实 时 处 理 。 该 阶 段 的 数 据 管 理 具 有 如 下 特3第 1 章 数据库基础点。 数 据 可 以 长 期 保 存 。 由 于 计 算 机 大 量 用 于 数 据 处 理 , 数 据 需 要 长 期 存 储 在 外 存 上 反复处理,即经常对文件进行查询、修改、插入和删除等操作。 由 文 件 系 统 管 理 数 据 。 由 于 有 软 件 进 行 数 据 管 理 , 程 序 和 数 据 之 间 由 软 件 提 供 存 取 方 法 进 行 转 换 , 有 共 同 的 数 据 查 询 与 修 改 的 管 理 模 块 。 文
30、件 的 逻 辑 结 构 与 存 储 结 构 由 系 统 进 行 转 换 , 使 程 序 与 数 据 有 了 一 定 的 独 立 性 。 这 样 程 序 员 可 以 集 中 精 力 于 算 法 , 而 不 必 过 多 地 考 虑 物 理 细 节 , 并 且 , 数 据 在 存 储 上 的 改 变 不 一 定 反 映 在 程 序 上 , 这 又 可 以 大 大 节 省 维护程序的工作量。但是,文件系统管理数据存在如下缺点:一 是 数 据 共 享 性 差 , 数 据 冗 余 度 大 。 文 件 系 统 中 文 件 基 本 上 对 应 于 某 个 应 用 程 序 , 也 就 是 说 , 数 据 还 是
31、 面 向 应 用 的 。 当 不 同 的 应 用 程 序 所 需 要 的 数 据 有 部 分 相 同 时 , 也 必 须 建 立 各 自 的 文 件 , 而 不 能 共 享 相 同 的 数 据 , 因 此 , 数 据 冗 余 度 大 , 浪 费 存 储 空 间 , 并 且 由 于 相 同 数 据 的 重 复 存 储 和 各 自 管 理 , 给 数 据 的 修 改 和 维 护 带 来 了 困 难 , 容 易 造 成 数 据 的 不 一 致 。二 是 数 据 独 立 性 差 。 文 件 系 统 中 文 件 是 为 某 一 特 定 应 用 服 务 的 。 文 件 的 逻 辑 结 构 对 该 应 用
32、程 序 来 说 是 优 化 的 。 因 此 , 要 想 再 增 加 一 些 新 的 应 用 是 很 困 难 的 , 系 统 不 容 易 扩 充 。 一 旦 数 据 结 构 的 逻 辑 结 构 改 变 , 必 须 修 改 应 用 程 序 , 修 改 文 件 结 构 的 定 义 。 而 应 用 程 序 的 改 变 , 如 应 用 程 序 所 使 用 的 高 级 语 言 的 变 化 等 , 也 将 影 响 文 件 的 数 据 结 构 的 改 变 。 数 据 和 程序缺乏独立性。这阶段程序与数据的关系如图 1-2 所 示 。应 用 程 序 1 数 据 集 1应 用 程 序 2 文件 系统数 据 集 2
33、应 用 程 序 n 数 据 集 n图 1-2 文件系统阶段的应用程序与数据之间的对应关系文 件 系 统 存 在 的 问 题 阻 碍 了 数 据 处 理 技 术 的 发 展 , 不 能 满 足 日 益 增 长 的 用 户 需 求 , 这 正是数据库技术产生的原动力,也是数据库产生的背景。(3) 数据库系统阶段从 20 世纪 60 年代后期开始,需要计算机管理的数据量急剧增长,并且对数据共享需 求 日 益 增 强 。 文 件 系 统 的 数 据 管 理 方 法 己 无 法 适 应 开 发 应 用 系 统 的 需 要 。 为 了 实 现 计 算 机 对数据的统一管理,达到数据共享的目的,出现了数据库
34、技术。数 据 库 技 术 的 主 要 目 的 是 有 效 地 管 理 和 存 取 大 量 的 数 据 资 源 , 包 括 : 提 高 数 据 的 共 享 性 , 使 多 个 用 户 能 够 同 时 访 问 数 据 库 中 的 数 据 : 减 少 数 据 的 冗 余 度 , 以 提 高 数 据 的 一 致 性 和完整性:提供数据与应用程序的独立性,从而减少应用程序的开发和维护代价。为 数 据 库 的 建 立 、 使 用 和 维 护 而 配 置 的 软 件 称 为 数 据 库 管 理 系 统 DBMS( DataBase Management System) 。 数 据库管理系统利用了操作系统提供
35、的输入 /输出控制和文件访问功 能 , 因 此 它 需 要 在 操 作 系 统 的 支 持 下 运 行 。 Visual FoxPro 就 是 一 种 在 微 机 上 运 行 的 数 据 库4 Visual FoxPro 程序设计管理系统软件。在数据库管理系统的支持下,数据与程序的关系如图 1-3 所示。应 用 程 序 1应 用 程 序 2数 据 库 管 理 系 统DBMS数 据 库DataBase应 用 程 序 n图 1-3 数据库系统阶段应用程序与数据之间的对应关系(4) 分布式数据库系统阶段分布式数据库系统是数据库技术和计算机网络技术紧密结合的产物。在 20 世纪 70 年 代 后 期
36、, 数 据 库 系 统 多 数 是 集 中 式 的 。 网 络 技 术 的 进 展 为 数 据 库 提 供 了 分 布 式 运 行 环 境 , 从 主 机 /终 端 系 统 结 构 发 展 到 客 户 /服 务 器 ( Client/Server) 系 统 结 构 。数 据 库 技 术 与 网 络 技 术 的 结 合 分 为 紧 密 结 合 与 松 散 结 合 两 大 类 。 因 此 , 分 布 式 数 据 库 管 理 系 统 ( DBMS) 分 为 物 理 上 分 布 、 逻 辑 上 集 中 的 分 布 式 数 据 库 结 构 和 物 理 上 分 布 、 逻 辑 上分布的分布式数据库结构两种
37、。物 理 上 分 布 、 逻 辑 上 集 中 的 分 布 式 数 据 库 结 构 是 一 个 逻 辑 上 统 一 而 地 域 上 分 布 的 数 据 库 集 合 , 是 计 算 机 网 络 环 境 中 各 个 节 点 局 部 数 据 库 的 逻 辑 结 合 , 同 时 受 分 布 式 数 据 库 管 理 系 统 的 统 一 控 制 和 管 理 , 即 把 全 局 数 据 模 式 按 数 据 来 源 和 用 途 , 合 理 分 布 在 系 统 的 多 个 节 点上,使大部分数据可以就地或就近存取,而用户感觉不到数据的分布。物 理 上 分 布 、 逻 辑 上 分 布 的 分 布 式 数 据 库 结
38、 构 是 把 多 个 集 中 式 数 据 库 系 统 通 过 网 络 连 接 起 来 , 各 个 节 点 上 的 计 算 机 可 以 利 用 网 络 通 信 功 能 访 问 其 他 节 点 上 的 数 据 资 源 。 它 一 般 由 两 部 分 组 成 : 一 是 本 地 节 点 上 的 数 据 , 二 是 本 地 节 点 共 享 的 其 他 节 点 上 有 关 的 数 据 。 在 这 种 运 行 环 境 中 , 各 个 数 据 库 系 统 的 数 据 库 由 各 自 独 立 的 数 据 库 管 理 系 统 集 中 管 理 。 节 点 间的数据共享由双边协商确定。这种数据库结构有利于数据库的集
39、成,扩展和重新配置。Visual FoxPro 为创建功 能 强大的客户 /服务器应用程序提供了一些专用工具 。 客户 /服务 器 应 用 程 序 具 有 本 地 ( 客 户 ) 用 户 界 面 , 但 访 问 的 是 远 程 服 务 器 上 的 数 据 。 此 应 用 程 序 根 据 前 端 和 后 端 产 品 的 能 力 将 工 作 分 布 到 本 地 机 和 服 务 器 , 可 以 将 Visual FoxPro 功 能 强 、 速 度 快 、 图 形 化 的 用 户 界 面 以 及 高 级 的 查 询 、 报 表 处 理 等 优 点 与 开 放 式 数 据 库 连 接 ( ODBC,
40、Open DataBase Connectivity) 数 据 源 或 服 务 器 的 本 地 语 法 等 功 能 紧 密 地 结 合 在 一 起 。 Visual FoxPro 服 务 器 之 间 的 协 作 可 以 为 用 户 提 供 功 能 强 大 的 客 户 /服 务 器 解 决 方 案 。ODBC 是用于数据库标准协议 。 可以安装多种数据库的 ODBC 驱动程序 , 从而使 Visual FoxPro 能 够 与 该 数 据 库 相 连 , 访 问 库 中 的 数 据 。 如 果 选 择 “完 全 安 装 或 “用 户 自 定 义 安 装 安 装 选 项 , 则 可 以 获 得 “
41、开 放 式 数 据 库 连 接 支 持 。 使 用 ODBC, 可 以 从 Visual FoxPro 中访问 SQL Server 数 据 源 。 但 是 必 须 先 定 义 数 据 源 才 能 进 行 访 问 。(5) 面向对象数据库系统 面 向 对 象 方 法 是 一 种 认 识 、 描 述 事 物 的 方 法 论 , 它 起 源 于 程 序 设 计 语 言 。 面 向 对 象 程序设计是 20 世纪 80 年代引入计算机科学领域的一种新的程序设计技术和范例,它的发展5第 1 章 数据库基础十分迅猛,影响涉及计算机科学及其应用的各个领域。 通 俗 地 讲 , 面 向 对 象 的 方 法
42、就 是 按 照 人 们 认 识 世 界 和 改 造 世 界 的 习 惯 方 法 对 现 实 世 界的客观事物 /对象进行最自然的、最有效的抽象和表达,同时又以各种严格高效的行为规范 和 机 制 实 施 对 客 观 事 物 的 有 效 模 拟 和 处 理 , 而 且 把 对 客 观 事 物 的 表 达 ( 对 象 属 性 结 构 ) 和 对 它 的 操 作 处 理 ( 对 象 行 为 特 征 ) 结 合 成 为 一 个 有 机 整 体 , 事 物 完 整 的 内 部 结 构 和 外 部 行 为机制被反映得淋漓尽致。面 向 对 象 数 据 库 是 数 据 库 技 术 与 面 向 对 象 程 序 设
43、 计 相 结 合 的 产 物 。 面 向 对 象 数 据 库 是 面 向 对 象 方 法 在 数 据 库 领 域 中 的 实 现 和 应 用 , 它 既 是 一 个 面 向 对 象 的 系 统 , 又 是 一 个 数 据 库系统。 Visual FoxPro 不但仍然支持标准的过程化程序设计 , 而且在语言上还进行了扩充, 提供了面向对象程序设计的强大功能和更大的灵活性。1.1.2 数据库系统本 节 将 介 绍 数 据 库 、 数 据 库 应 用 系 统 、 数 据 库 管 理 系 统 等 几 个 相 互 关 联 但 又 有 区 别 的 基本概念,介绍数据库管理系统所支持的各种数据模型。1.
44、有关数据库的概念(1) 数据库数 据 库 ( DataBase, 简 称 DB) 是 按 一 定 组 织 方 式 存 储 、 相 互 关 联 的 数 据 的 集 合 , 它 不 仅 包 含 描 述 事 物 的 数 据 本 身 , 而 且 还 包 括 相 关 事 物 之 间 的 联 系 。 从 通 俗 意 义 上 讲 , 数 据 库 可理解为存储数据的仓库。例 如 , 一 个 学 生 成 绩 管 理 系 统 包 含 “学 生 、 “课 程 、 “成 绩 等 数 据 , 按 关 系 型 数 据 库系统的方法则将它们组织成三张二维表,其内容分别如表 1-1、表 1-2 和表 1-3 所 示 。表 1
45、-1 学生表学号 姓名 性别 出生年月 政治面貌 专业 本科否 照片 简历002010115 闰 敏 女 05/20/82 团员 计算机应用 F gen memo002010232 吴 琼 男 05/05/82 团员 计算机应用 F gen memo002010404 卢鹏如 女 12/02/81 团员 计算机应用 T gen memo002010531 宋俊杰 男 07/05/83 团员 计算机应用 T gen memo002010710 景振威 男 02/11/82 团员 计算机应用 F gen memo002020139 李明才 男 11/08/81 团员 计算机软件 T gen mem
46、o002030112 钟炜娜 女 01/21/82 团员 多媒体广告 T gen memo002040119 王名生 男 04/02/79 团员 计算机网络 T gen memo002040233 黄泽谊 男 08/08/79 团员 计算机网络 F gen memo002020210 陈永军 男 11/11/81 团员 计算机软件 T gen memo002030353 陈红坤 女 07/21/80 团员 多媒体广告 T gen memo002010532 文新旺 男 11/10/80 团员 计算机应用 T gen memo6 Visual FoxPro 程序设计表 1-2 课程表课程编码 课
47、程名 课时 学分101 大学英语 80 3.0102 计算机应用基础 70 3.0201 C 语言 90 4.0202 电工电子技术基础 70 3.0203 VFP 程序设计 90 4.0204 多媒体技术 60 3.0205 大学英语 70 3.0表 1-3 成绩表学号 课程号 学年 学期 成绩 补考成绩 清考成绩002010115 101 2000 1 78.0002010232 101 2000 1 89.0002010404 101 2000 1 76.0002010531 101 2000 1 78.0002010710 101 2000 1 76.0002020139 101 20
48、00 1 78.0002030112 101 2000 1 65.0002040119 101 2000 1 46.0002040233 101 2000 1 78.0(2) 数据库管理系统 仅 有 大 量 数 据 是 没 有 多 大 实 际 意 义 的 , 必 须 有 一 个 维 护 数 据 , 并 引 导 用 户 访 问 数 据 的软 件 , 这 就 是 数 据 库 管 理 系 统 , 数 据 库 管 理 系 统 是 数 据 库 的 管 理 控 制 中 心 , 它 提 供 了 一 整 套 的 操 作 命 令 , 用 户 可 用 它 们 建 立 数 据 库 , 对 数 据 库 中 的 数 据
49、 进 行 各 种 操 作 , 如 数 据 的 插 入 、 检 索 、 修 改 和 删 除 , 实 现 对 数 据 库 运 行 操 作 的 统 一 管 理 , 包 括 并 发 控 制 、 存 取 控 制 、 完整性约束条件的检查和执行,数据库内部的维护等。(3) 数据库应用系统数据库应用系统 是指开发人员利用数据库系统资源开发出来的、面向某一类实际应用 的 应 用 软 件 系 统 。 例 如 , 以 数 据 库 为 基 础 的 学 生 成 绩 管 理 系 统 、 人 事 管 理 系 统 、 财 务 管 理 系 统 、 图 书 管 理 系 统 、 教 学 管 理 系 统 、 生 产 管 理 系 统 等 。 无 论 是 面 向 内 部 业 务 和 管 理 的 管 理 信 息 系 统 , 还 是 面 向 外 部 , 提 供 信 息 服 务 的 开 放 式 信 息 系 统 , 从 实 现 技 术 角 度 而 言 , 是以数据库为基础和核心的计算机应用系统。(4) 数