Visual FoxPro 应用基础与面向对 象程序设计教程 ( 第二版 ) 李雁翎 编
前 言 前言 Visual FoxPro 6.0 关系数据库管理系统是新一代数据库管理系统的杰出代表,以它强大的性能、完整而又丰富的工具、超高速的速度、极其友好的界面,以及完备的兼容性等特点,吸引众多的国内外用户,倍受广大用户的欢迎。 上页 下页 帮助
前 言 前言 Visual FoxPro 6.0 及它的中文版,是可运行于Windows 95和Windows NT平台的数据库开发系统,它不仅可以简化数据库管理,而且能使应用程序的开发流程更为合理。 Visual FoxPro 6.0 使组织数据、定义数据库规则和建立应用程序等工作变得简单易行。用户利用可视化的设计工具和向导,可以快速创建表单,查询和打印报表。 上页 下页 帮助
前 言 前言 Visual FoxPro 6.0 还提供了一个集成化的系统开发环境,它不仅支持过程式编程技术,而且在语言方面作了强大的扩充,支持面向对象可视化编程技术。由于Visual FoxPro 6.0 拥有功能强大的可视化程序设计工具,使程序设计简单易行。 上页 下页 帮助
前 言 前言 本课程是根据教育部提出的非计算机专业计算机基础教学三个层次要求,并配合全国计算机等级考试“Visual FoxPro 二级”考试大纲的知识要点,以Visual FoxPro 6.0 为主要内容,介绍关系数据库管理系统基础理论及应用系统开发知识。不仅介绍数据库基础理论,介绍了Visual FoxPro 6.0 的基本操作;而且介绍面向对象可视化编程、应用系统开发的方法、步骤。 上页 下页 帮助
目录 第一章数据库基础理论 第二章Visual FoxPro系统概述 第三章Visual FoxPro基础 第四章表操作 目 录 目录 第一章数据库基础理论 第二章Visual FoxPro系统概述 第三章Visual FoxPro基础 第四章表操作 第五章索引及创建索引 第六章创建数据库 第七章视图与查询 第八章SQL关系数据库查询语言 第九章创建项目 第十章程序设计基础 第十一章面向对象可视化编程基础 第十二章表单设计及运行 第十三章实用表单的设计 第十四章创建报表 第十五章菜单设计 第十六章小型系统开发实例 上页 下页 帮助
第一章 数据库基础理论 1.1、信息、数据和数据处理 1.2、数据模型 1.3、数据库系统 1.4、关系数据库及其设计 第一章 数据库基础理论 第一章 数据库基础理论 1.1、信息、数据和数据处理 1.2、数据模型 1.3、数据库系统 1.4、关系数据库及其设计 上页 下页 帮助
§1.1 信息、数据和数据处理 1.1 信息、数据和数据处理 1.1.1 数据与信息 信息(Information)……客观事物属性的反映。信息是经过加工处理并对人类客观行为产生影响的数据表现形式 数据(Data)……反映客观事物属性的记录,是信息的载体。数据是信息的具体表现形式。 数据符号:数值型、字符型和特殊型(声音、视频、图象等) 上页 下页 帮助
信息是有用的数据,数据是信息的表现形式。信息是通过数据符号来传播的。只有具有知识性和有用性的数据才能称其为信息。 §1.1 信息、数据和数据处理 信息是有用的数据,数据是信息的表现形式。信息是通过数据符号来传播的。只有具有知识性和有用性的数据才能称其为信息。 1.1.2 数据处理——信息处理。 利用计算机对各种类型的数据进行处理,它包括对数据的采集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列的过程。 上页 下页 帮助
1、2 数据模型 对数据组织结构的描述就是数据模型。 常用的数据模型有三种: 1、层次模型 2、网络模型 3、关系模型 §1.2 数据模型 1、2 数据模型 现实世界中的客观事物是彼此相互联系的。 对数据组织结构的描述就是数据模型。 常用的数据模型有三种: 1、层次模型 2、网络模型 3、关系模型 上页 下页 帮助
层次模型象一棵倒置的树,根结点在上,层次最高;子结点在下,逐层排列。 §1.2 数据模型 1.层次模型 层次模型是一种以记录某一事物的类型为根结点的有向树结构。 层次模型象一棵倒置的树,根结点在上,层次最高;子结点在下,逐层排列。 其主要特征如下: .仅有一个无双亲的根结点。 .根结点以外的子结点,向上仅有一个父结点,向下有若干子结点。 上页 下页 帮助
层次模型的示例如图 : 数理学院 数学系 物理系 材料系 ······ 分团委 04级 05级 06级 学生会 ······ 系团委 §1.2 数据模型 层次模型的示例如图 : 数理学院 数学系 物理系 材料系 ······ 分团委 04级 05级 06级 学生会 ······ 系团委 上页 下页 帮助
2.网状模型 网状模型是以记录为结点的网络结构。 其主要特征如下: .有一个以上的结点无双亲。 .至少有一个结点有多个双亲。 §1.2 数据模型 2.网状模型 网状模型是层次模型的扩展,表示多个从属关系的层次结构,呈现一种交叉关系的网络结构。 网状模型是以记录为结点的网络结构。 其主要特征如下: .有一个以上的结点无双亲。 .至少有一个结点有多个双亲。 上页 下页 帮助
§1.2 数据模型 网状模型的示例如图 : 数理学院 应物系 ······ 院学生会 物理系 院团委 系学生会 系团委 上页 下页 帮助
3.关系模型 关系模型是指类似“二维表”的集合关系。 人才基本情况表 40 51 35 45 女 男 张红 刘一峰 林立 丁俊 年龄 性别 §1.2 数据模型 3.关系模型 关系模型是指类似“二维表”的集合关系。 人才基本情况表 40 51 35 45 女 男 张红 刘一峰 林立 丁俊 年龄 性别 姓名 上页 下页 帮助
3.1 关系模型主要概念: 1、数据项 ———— 最基本的单位 (数据类型) 2、字段 ———— 每一竖列数据项 (字段名) §1.2 数据模型 3.1 关系模型主要概念: 1、数据项 ———— 最基本的单位 (数据类型) 2、字段 ———— 每一竖列数据项 (字段名) 3、记录 ———— 每一横行 (记录内容) 4、表 ———— 一个关系 (文件) 上页 下页 帮助
关系模型主要特点有: ·关系中每一数据项不可再分,是最基本的单位; ·每一竖列数据项是同属性的。列数根据需要而设,且各列的顺序是任意的; §1.2 数据模型 关系模型主要特点有: ·关系中每一数据项不可再分,是最基本的单位; ·每一竖列数据项是同属性的。列数根据需要而设,且各列的顺序是任意的; ·每一横行记录由一个事物的诸多属性项构成。记录的顺序可以是任意的; ·一个关系是一张二维表,不允许有相同的字段名,也不允许有相同的记录行。 上页 下页 帮助
某地区专门人才基本情况 部门 专业 姓名 性别 年龄 高等院校 信息管理 张秋红 女 40 科研所 软件工程 刘一峰 男 51 销售公司 §1.2 数据模型 某地区专门人才基本情况 部门 专业 姓名 性别 年龄 高等院校 信息管理 张秋红 女 40 科研所 软件工程 刘一峰 男 51 销售公司 计算机 林立 35 经贸公司 国际贸易 丁嘉俊 45 上页 下页 帮助
1.3 数据库系统 1.3.1 数据库: 数据库是数据库系统的核心和管理对象。 §1.3 数据库系统 1.3 数据库系统 1.3.1 数据库: 数据库是数据库系统的核心和管理对象。 数据库(Database)……以一定的组织方式将关联的数据组织在一起存放在计算机存储器上形成的、能为多个用户共享的、与应用程序彼此独立的一组相关数据的集合。 上页 下页 帮助
§1.3 数据库系统 1.3.2 数据库管理系统 我们把利用数据库进行信息处理的工作过程,或把掌握、管理和操纵数据库的数据资源的方法看作是一个系统,称这个系统为数据库管理系统简称DBMS。 上页 下页 帮助
1.3.2 数据库管理系统: 数据库管理系统 (Data Base Management System §1.3 数据库系统 1.3.2 数据库管理系统: 数据库管理系统 (Data Base Management System —— DBMS) ---实质上就是一个软件如 Visual Foxpro…… 上页 下页 帮助
数据库管理系统通常由三个部分组成: 1、数据描述语言(DDL); 2、数据操纵语言(DML); 3、数据库管理例行程序。 §1.3 数据库系统 数据库管理系统通常由三个部分组成: 1、数据描述语言(DDL); 2、数据操纵语言(DML); 3、数据库管理例行程序。 上页 下页 帮助
用于定义数据库的各级模式(外模式、概念模式、内模式),各种模式通过数据描述语言编译器翻译成相应的目标模式,保存在数据字典中。 §1.3 数据库系统 1、数据描述语言 用于定义数据库的各级模式(外模式、概念模式、内模式),各种模式通过数据描述语言编译器翻译成相应的目标模式,保存在数据字典中。 上页 下页 帮助
提供对数据库数据存取、检索、插入、修改和删除等基本操作。数据操纵语言一般有两种类型:一种是宿主型语言;另一种是自主型语言。 §1.3 数据库系统 2、数据操纵语言 提供对数据库数据存取、检索、插入、修改和删除等基本操作。数据操纵语言一般有两种类型:一种是宿主型语言;另一种是自主型语言。 上页 下页 帮助
§1.3 数据库系统 3、数据库管理例行程序 是数据库管理系统的核心部分,它包括并发控制、存取控制、完整性条件检查与执行、数据库内部维护等,数据库的所有操作都在上述控制程序的统一管理下进行,以确保数据的正确有效。 上页 下页 帮助
1.3.3 数据库系统的体系结构 从数据管理的角度来看,与数据库打交道的有三类人员:用户、应用程序员和系统程序员。 §1.3 数据库系统 1.3.3 数据库系统的体系结构 从数据管理的角度来看,与数据库打交道的有三类人员:用户、应用程序员和系统程序员。 由于他们对数据库的认识、理解和接触范围各不相同,从而形成了各自的数据库视图。 上页 下页 帮助
对应于系统程序员的——内部视图。 对应于用户的——外部视图; 对应于应用程序员的——概念视图; §1.3 数据库系统 根据各类人员与数据库的不同关系,可把视图分为三种: 对应于用户的——外部视图; 对应于应用程序员的——概念视图; 对应于系统程序员的——内部视图。 由此形成数据库系统的三级模式结构:外模式、概念模式和内模式。 上页 下页 帮助
图1-3 数据库系统结构图 DBMS §1.3 数据库系统 用户A1 用户A2 用户B1 用户B2 …… 外视图A 外模式A 外视图B §1.3 数据库系统 图1-3 数据库系统结构图 用户A1 用户A2 用户B1 用户B2 …… 外视图A 外模式A 外视图B 外模式B 概念模式 概念视图 存储结构定义 (内模式) 存储数据库 (内视图) DBMS 由数据 库管理 员建立 和维护 的模式 上页 下页 帮助
1.3.4 数据库应用系统的构成 数据库应用系统是指引进了数据库技术后的整个计算机系统。 §1.3 数据库系统 1.3.4 数据库应用系统的构成 数据库应用系统是指引进了数据库技术后的整个计算机系统。 它是由有关的硬件、软件、数据和人员四个部分组合形成的为用户提供信息服务的系统 上页 下页 帮助
数据库应用系统的构成: 硬件 计算机硬件系统:CPU、内存、 外存及输入输出设备 操作系统 系统软件 软件 数据库应用系统 数据库管理系统 §1.3 数据库系统 数据库应用系统的构成: 硬件 计算机硬件系统:CPU、内存、 外存及输入输出设备 操作系统 系统软件 软件 数据库应用系统 数据库管理系统 应用软件 应用系统开发工具软件 数据 数据库……信息源 数据库管理员 人员 系统分析员、程序员 用户 上页 下页 帮助
关系数据库(relation database)是若干个数据表文件的集合。 §1.4 关系数据库及其设计 1.4 关系数据库及其设计 关系数据库(relation database)是若干个数据表文件的集合。 也就是说,关系数据库是由若干个二维表组成的。一个二维表即为一个数据表,数据表包含数据及数据间的关系 上页 下页 帮助
数据库中的包含关系 一个数据库由若干个数据表组成 ; 一个数据库有一个名字,称为库文件名。 一个数据表又由若干个记录组成 ; §1.4 关系数据库及其设计 数据库中的包含关系 一个数据库由若干个数据表组成 ; 一个数据表又由若干个记录组成 ; 一个记录又由若干个以字段组成 。 一个数据库有一个名字,称为库文件名。 而在数据库中,每一个数据表又有名字,称为表文件名。 上页 下页 帮助
关系数据库(Relation Database) 若干个依照关系模型设计的数据表文件的集合。 §1.4 关系数据库及其设计 关系数据库(Relation Database) 若干个依照关系模型设计的数据表文件的集合。 关系数据库是由若干张完成关系模型设计的二维表组成的。 上页 下页 帮助
1.4.2 关系的规范化 第一范式:在一个关系中,消除重复字段,且各字段都是不可分的基本数据项。 §1.4 关系数据库及其设计 1.4.2 关系的规范化 第一范式:在一个关系中,消除重复字段,且各字段都是不可分的基本数据项。 第二范式:若关系数据库属于第一范式,则所有非主属性应完全依赖关键字段。 第三范式:若关系数据库属于第二范式,则关系中所有非主属性都直接依赖于关键字段。 上页 下页 帮助
表1-4 信息中心专门人才基本情况一览表 自然情况 专业 成果和成就 编号 姓名 性别 出生日期 工资现状 党员否 专业年限 职称 英语水平 §1.4 关系数据库及其设计 表1-4 信息中心专门人才基本情况一览表 自然情况 专业 成果和成就 编号 姓名 性别 出生日期 工资现状 党员否 专业年限 职称 英语水平 名称 类别 出处 bj10001 刘伟箭 男 1960.08.23 2000 T 计算机应用 20 教授 精通 略 jl04010 黄晓远 1970.08.12 10000 F 财政税收 副教授 上页 下页 帮助
1.4.3 表间关联关系的类型:有 3 种 1. 一对一关系: 一对一 一对多 多对一。 §1.4 关系数据库及其设计 1.4.3 表间关联关系的类型:有 3 种 一对一 一对多 多对一。 1. 一对一关系: 两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有唯一值,另一个表中的关系字段为外来关键字段也具有唯一值。 上页 下页 帮助
一对一关系示例: 一对一(编号) 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 §1.4 关系数据库及其设计 一对一关系示例: 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 gz05002 杨行东 jl04001 林惠繁 女 编号 专业 专业年限 bj10001 计算机应用 20 bj10002 环境工程 24 gz05001 生物工程 30 gz05002 统计学 15 jl04001 财政税收 10 一对一(编号) 上页 下页 帮助
两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有唯一值,另一个表中的关系字段为外来关键字段该值是重复的。 §1.4 关系数据库及其设计 2. 一对多关系: 两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有唯一值,另一个表中的关系字段为外来关键字段该值是重复的。 上页 下页 帮助
2. 一对多关系示例: 一对多(编号) 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 §1.4 关系数据库及其设计 2. 一对多关系示例: 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 gz05002 杨行东 jl04001 林惠繁 女 编号 成果名称 专业年限 bj10001 VF高级编程技术 20 专门人才信息管理系统 24 VF编程技巧与常见问题解答 30 面向对象编程与系统开发 15 面向对象编程与系统程序优化 10 一对多(编号) 上页 下页 帮助
两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有重复值,另一个表中的关系字段为外来关键字段该值是唯一的。 §1.4 关系数据库及其设计 3. 多对一关系示例: 两个数据表中选一个相同字段作为关键字段,其中一个表中的关系字段称为主关键字段具有重复值,另一个表中的关系字段为外来关键字段该值是唯一的。 上页 下页 帮助
3. 多对一关系示例: 多对一(编号) 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 §1.4 关系数据库及其设计 3. 多对一关系示例: 编号 成果名称 专业年限 bj10001 VF高级编程技术 20 专门人才信息管理系统 24 VF编程技巧与常见问题解答 30 面向对象编程与系统开发 15 面向对象编程与系统程序优化 10 编号 姓名 性别 bj10001 刘伟箭 男 bj10002 刘简捷 gz05001 藤波海 gz05002 杨行东 jl04001 林惠繁 女 多对一(编号) 上页 下页 帮助
1.4.4 关系的完整性 1、域完整性: 用户自定义完整性。用于对数据表中字段 属性的约束(值域、类型和有效性规则)。 2、实体完整性: §1.4 关系数据库及其设计 1.4.4 关系的完整性 1、域完整性: 用户自定义完整性。用于对数据表中字段 属性的约束(值域、类型和有效性规则)。 2、实体完整性: 对关系中记录的唯一性,即主键的约束。 上页 下页 帮助
1.4.4 关系的完整性 3、参照完整性: (2)参照完整性指关系中的外键必须是关系中另一个的主键有效值,或NULL。 §1.4 关系数据库及其设计 1.4.4 关系的完整性 3、参照完整性: (1)参照完整性包括:删除约束、更新约束和插入约束。对关系数据库中建立关联关系的数据表间数据参照引用的约束。 (2)参照完整性指关系中的外键必须是关系中另一个的主键有效值,或NULL。 上页 下页 帮助
1.4.5 关系运算 —— 以关系为运算对象的运算。 1、选择(Select): §1.4 关系数据库及其设计 1.4.5 关系运算 —— 以关系为运算对象的运算。 1、选择(Select): 选择运算是从关系(二维表)中选择某些满足条件的记录组成一个新的关系(二维表)。 < 性别 = ‘ 男 ’ > (人才档案 ) 举例: SELECT * FROM RCDA WHERE 性别=“男” 上页 下页 帮助
——从关系(二维表)中选择某些字段的所有值组成一个新的关系(二维表) 。 §1.4 关系数据库及其设计 2、投影: ——从关系(二维表)中选择某些字段的所有值组成一个新的关系(二维表) 。 ∏编号 , 姓名 , 性别 , 出生日期(人才档案) 举例: SELECT 编号 , 姓名 , 性别 , 出生日期 FROM RCDA 上页 下页 帮助
—— 将两个或多个关系(二维表)通过连接条件组成一个新的关系(二维表)。 §1.4 关系数据库及其设计 3、连接(Join): —— 将两个或多个关系(二维表)通过连接条件组成一个新的关系(二维表)。 (人才档案) (专业特长) ON RCDA.编号 = ZYTC.编号 上页 下页 帮助
连接举例: SELECT rcda.编号 , rcda.姓名 , rcda.性别 , zytc.专业 , zytc.职称 §1.4 关系数据库及其设计 连接举例: SELECT rcda.编号 , rcda.姓名 , rcda.性别 , zytc.专业 , zytc.职称 FROM rcda JOIN zytc ON rcda.编号 = zytc.编号 上页 下页 帮助
思考题 1、常用的数据模型有几种 ? 2、什么是数据库 ? 3、什么是关系数据库 ? 4、数据库中数据表间的关系有几种 ? §1.4 关系数据库及其设计 思考题 1、常用的数据模型有几种 ? 2、什么是数据库 ? 3、什么是关系数据库 ? 4、数据库中数据表间的关系有几种 ? 5、数据库应用系统的主要组成部分是什么 ? 6、有几种关系运算是什么 ? 上页 下页 帮助