1
Visual FoxPro
程序设计实用教程计算机与电子工程系
2
第一章
Visual FoxPro 基础
3
本章要点
1.1 数据库系统简介
1.2 数据模型与关系数据库(重点)
1.3 Visual FoxPro的安装
4
1.1 数据库系统简介
1.1.1 数据库系统的产生与发展
1.1.2 数据库产品的发展历史
1.1.3 Visual FoxPro的特点
5
1.1.1 数据库系统的产生与发展
问题
什么是数据库?
为什么要发展数据库技术?
6
数据:是一组用来描述事物情况的物理符号序列。
数据处理:是指对各种形式的数据进行收集、
存储、加工和传播的一系列活动的总和。
数据库:是以一定的组织方式存储在一起的相互关联的数据的集合。不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。
数据库管理系统:是为数据库的建立、使用和维护而配置的软件。它建立在操作系统的基础上,对数据库进行统一的管理和控制。
7
数据库系统:是一个具有管理系统数据库功能的计算机系统,它是由计算机硬件、数据库管理系统、数据库、应用系统和管理人员组成的整体。
数据库技术所研究的问题,就是如何科学地组织和存储数据,如何高效地获取和处理数据。
8
数据处理的中心是数据管理
数据管理:指的是对数据的分类、组织、
编码、存储、检索和维护。
数据处理经过三个阶段
9
人工管理阶段( 20世纪 50年代中期以前)
背景:计算机主要用于科学计算
硬件:外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备。
软件:没有操作系统,无管理数据的软件,数据处理方式是批处理方式。
10
特点
数据不保存
没有专门的软件系统对数据进行管理
数据的组织必须由程序员自行设计
一组数据对应一个程序,数据是面向应用的,
无法共享。
11
程序与数据的关系应用程序 1
应用程序 2
应用程序 n
数据组 1
数据组 2
数据组 n
… …
12
文件系统阶段( 20世纪 50年代后期 ~60
年代中期)
背景:科学计算、大量用于管理
硬件:外存有了磁盘、磁鼓等直接存储的设备
软件:操作系统已经有了专门的管理数据软件,一般称为文件系统
处理方式:文件批处理、联机实时处理
13
特点
数据需要长期保存,反复处理
程序与数据有了一定的独立性
文件已经多样化
数据的存取基本上以纪录为单位
缺点
数据冗余度大
数据和程序缺乏独立性
数据缺乏集中管理,无法保证安全性、完整性
14
程序与数据的关系存取方法应用程序 n
应用程序 2 文件 2
文件 n
应用程序 1 文件 1
15
数据库系统阶段( 20世纪 60年代后期)
背景:计算机用于管理的规模庞大、应用更广泛、数据量急剧增长、数据共享要求更强;有了大容量的磁盘,联机实时处理要求更多,软件价格上升,硬件价格下降,为编制和维护系统软件及应用程序所需的成本相对增加。
16
特点
采用特定的数据模型和数据结构存放数据。不仅描述数据本身,还描述数据之间的联系。 数据的结构化是数据库的主要特征,是数据库系统与文件系统的根本区别。
数据统一管理,达到数据实现共享、减少数据冗余、
易扩充
数据和程序的相互依赖性减弱,数据独立性强
数据统一控制,提高了数据的安全性和完整性
17
数据的安全性:是指保护数据以防止不合法的使用所造成数据的泄密和破坏。
数据的完整性:是指数据的正确性、有效性和相容性。
18
在数据库管理阶段,应用程序与数据之间的关系数据库管理系统数据库应用程序 2
应用程序 1
应用程序 n
19
数据库系统结构分为四个部分
硬件
软件
数据库
人员
20
1.1.2 数据库产品的发展历史
1982年推出了 dBaseII
1984年推出了 dBaseIII
1986年推出了 dBaseIII plus
1984年推出了 FoxBASE
1987年 7月推出了 FoxBASE+ 2.0
1988年 7月推出了 FoxBASE+ 2.1
1989年推出了 FoxPro 1.0
1991年推出了 FoxPro 2.0
1992年下半年推出了 FoxPro 2.5版
1995推出了 Visual FoxPro 3.0
1998年推出了 Visual FoxPro6.0
21
1.1.3 Visual FoxPro的特点
Visual FoxPro 6.0系统是一个关系型 DBMS,是微软公司 1998年推出的可视化开发套件 Visual Studio 6.0系统中的一个产品。 XBASE( dBASE,FoxBASE,FoxPro、
Visual FoxPro) 系列数据库管理系统在我国具有广泛的应用基础,随着版本的更新,增加、完善了许多功能,开发、应用能力不断提升。目前,Visual FoxPro
6.0系统是一种比较普及的小型关系型 DBMS
22
真正的关系型数据库概念
可视化编程技术
支持面向对象程序设计
提供多种事件处理编程方式
提供了可视化编程工具
统一的用户界面和方便灵活的工具栏
使用表单设计器生成应用程序界面
各类文档的统一管理
新增多种数据类型、索引关键字类型,SQL语句更加丰富
最优化系统
23
提供快速查询技术
使用 32位方式
支持客户机 /服务器结构
用数据词典定义规则
查看远程或异种数据
用事件处理来控制共享访问
实现客户机 /服务器应用程序
同其他软件的高度兼容性共享数据
导入和导出数据
使用自动 OLE控制其它软件
24
1.2 数据模型与关系数据库
1.2.1 实体的描述
1.2.2 数据模型
1.2.3 关系运算
25
1.2.1 实体的描述
实体( Entity)
现实世界存在的各种事物,事物与事物之间存在着联系,并且可以相互区别的事物称为实体。
可以是人、物、概念、事物的联系。
举例一个学生、一门课、学生的一次选课
26
实体的属性描述实体特性的称为属性。
举例学生实体由学号、姓名、年龄、性别,系、
年级等属性组成。
27
码( Key)
唯一标识实体的属性
举例学号是学生实体的码
28
域( domain)
某个属性的取值范围
举例性别的域为(男、女)
29
实体型( Entity type)
具有相同属性的实体具有共同的特征和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
举例学生(学号、姓名、年龄、性别、系、年级)
30
实体集( Entity Set)
同型实体的集合称为实体集。
举例全体学生
31
实体间的联系实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。
两类联系实体内部实体之间( 3种)
32
一对一联系若对于实体集 A中的每一个实体,实体集 B中至多有一个实体与之联系,反之亦然,则称实体集 A与实体集 B具有一对一联系,记为 1,1
举例球队和主教练两个实体型,一个球队只有一个主教练,一个主教练不能同时担任其他球队的教练,这时,两者存在 1,1的联系。
33
一对多联系若对于实体集 A中的每一个实体,实体集 B中有
n个实体( n>=0) 与之联系,反之,对于实体集 B中的每一个实体,实体集 A中至多只有一个实体与之联系,则称实体集 A与实体集 B有一对多的联系,记为 1,n
举例一个部门有若干职工而每个职工只在一个部门工作,
则部门与职工之间是一对多的联系。
34
多对多联系若对于实体集 A中的每一个实体,实体集 B中有 n个实体
( n>=0) 与之联系。翻过来,对于实体集 B中的每一个实体,实体集 A中也有 m个实体( m>=0) 与之联系,
则称实体集 A与实体集 B具有多对多联系,记为 m,n
举例一个项目有多个职工参加而一个职工可以参加若干项目的工作,则项目和职工之间具有多队多的联系。
35
1.2.2 数据模型
数据模型表示实体及实体之间联系的模型叫数据模型。
数据模型的种类层次模型、网状模型和关系模型。
Visual FoxPro是关系数据库管理系统。
36
层次模型( Hierarchical Model)
用树形结构来表示层次模型
基本层次联系:指两个记录型及它们之间的一对多(包括一对一)的联系。
满足下面两个条件的,基本层次联系,的集合为层次模型
( 1)有且仅有一个结点无双亲,这个结点称为根结点。
( 2)其他结点有且仅有一个双亲。
37
不能直接表示 m-n关系,要想用层次模型表示 m-n关系,必须先将关系分解为多个
1-m关系,然后再用层次模型表示。
适用于表示 1-1关系和 1-m关系
38
网状模型( Network Model)
用网状结构来表示实体之间联系的数据模型称为网状模型。
特点:每一个结点都可以有多个父结点,
每一个结点都可以和其他任一结点相连。
可以直接表示 m-n关系。
39
关系模型( Relational Model)
一个关系的逻辑结构就是一个二维表格,用二维表格来表示实体和实体间联系的数据模型叫关系模型
40
主要术语
关系:一个关系对应于我们平常说的一张表
元组:表中得一行
属性:表中的一列,每一列的名称叫属性名
主码:表中的某个属性组,他们的值唯一地标识一个元组
域:属性的取值范围
分量:元组中的一个属性值
关系模式:对关系的描述,用关系名(属性 1,…,
属性 n) 来表示
41
在关系型数据库管理系统中,满足以下条件的二维表格都可以作为一个关系处理。
表中的每一列属性都有相同的数据类型
表中不能包含有其他的表
不允许有完全相同的两行
行和列的次序都可以调换
42
1.2.3 关系运算
两类关系运算
传统的集合运算并、差、交
专门的关系运算选择、投影、连接
43
并( Union)
由属于这两个关系的元组组成的集合
差( Difference)
设有两个相同结构的关系 R和 S,R差 S的结果由属于 R但不属于 S的元组组成的集合
交( Intersection)
两个相同结构的关系 R和 S,R交 S是由既属于 R
又属于 S的元组组成的集合
44
------------------ ------------------
R A B C S A B C
------------------ ------------------
a1 b1 c1 a1 b2 c2
a1 b2 c2 a1 b3 c2
a2 b2 c1 a2 b2 c1
------------------ ------------------
45
-------------------------
RUS A B C
-------------------------
a1 b1 c1
a1 b2 c2
a2 b2 c1
a1 b3 c2
46
-------------------------
R-S A B C
-------------------------
a1 b1 c1
47
-------------------------
R n S A B C
-------------------------
a1 b2 c2
a2 b2 c1
48
选择( Selection)
从关系中找出满足给定条件的元组的操作称为选择。
以逻辑表达式指定选择条件,选择运算将选取使逻辑表达式为真的所有元组。选择运算的结果构成关系的一个子集,是关系中的部分元组,其关系模式不变。
选择运算是从二维表格中选取若干行的操作,在表中则是选取若干个记录的操作。
49
投影( Projection)
从关系模式中指定若干个属性组成新的关系称为投影。
投影运算从关系中选取若干属性形成一个新的关系,其关系模式中属性个数比原关系少,或者排列顺序不同,同时也可能减少某些元组。因为排除了一些属性后,特别是排除了原关系中关键字属性后,
所选属性可能有相同值,出现相同的元组,而关系中必须排除相同元组,从而有可能减少某些元组。
投影是从二维表格中选取若干列的操作,在表中则是选取若干个字段。
50
联 接( Join)
联 接运算是将两个或多个关系通过 联 接条件组成一个新的关系。也可以说,联 接运算是在关系 R和关系 S中选择属性间满足一定条件的元组。
联接运算是将两个关系模式的若干属性拼接成一个新的关系模式的操作,对应的新关系中,包含满足联接条件的所有元组。联接过程是通过联接条件来控制的,联接条件中将出现两个关系中的公共属性名,或者具有相同语义、可比的属性。
联接是将两个二维表格中的若干列,按同名等值的条件拼接成一个新二维表格的操作。在表中则是将两个表的若干字段,按指定条件(通常是同名等值)
拼接生成一个新的表。
51
1.3 Visual FoxPro的安装中文版 Visual FoxPro 6.0系统可以由 CD-ROM光盘直接安装 。 操作步骤如下:
( 1) 启动安装程序
( 2) 选择安装方式
( 3) 安装系统组件
( 4) 安装 MSDN组件 ( Visual FoxPro 6.0的帮助文档 )
( 5) 重新启动系统,完成 Visual FoxPro 6.0安装如在 Windows 95 /98环境下运行 Visual FoxPro 6.0
系统,上述安装结束后必须重新启动系统,完成系统的配置,Visual FoxPro 6.0系统的安装才告完成 。
52
启动 Visual FoxPro
使用 开始 菜单启动:开始 --〉程序 --〉
Microsoft Visual FoxPro
使用快捷方式,在桌面双击图标
使用运行窗口:在运行窗口中输入 Visual
FoxPro的所在位置
53
关闭 Visual FoxPro
单击标题栏上的 关闭 按钮
在 Visual FoxPro 6.0主窗口,单击【文件】
|【退出】菜单项
点击标题栏上的控制按钮,在下拉菜单中选择 关闭 命令
使用快捷键 Alt + F4