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