《Visual-FoxPro程序设计教程-第3版-教学课件-ppt-第1章--数据库基础和Visual-FoxPro编程环境.ppt》由会员分享,可在线阅读,更多相关《Visual-FoxPro程序设计教程-第3版-教学课件-ppt-第1章--数据库基础和Visual-FoxPro编程环境.ppt(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 数据库是按一定方式把相关数据组织、存储在计算机中的数据库是按一定方式把相关数据组织、存储在计算机中的数据集合数据集合, 数据库不仅存放数据数据库不仅存放数据, 而且还存放数据之间的联而且还存放数据之间的联系。系。 数据是指存储在某一种媒体上的能够识别的物理符号。数数据是指存储在某一种媒体上的能够识别的物理符号。数据的概念有两个方面的涵义:描述事物特性的数据内容以及据的概念有两个方面的涵义:描述事物特性的数据内容以及存储在媒体上的数据形式。存储在媒体上的数据形式。 数据的概念在数据处理领域中已经大大地拓宽了数据的概念在数据处理领域中已经大大地拓宽了, 数据不数据不仅包括各种文字或字符组成的文本
2、形式的数据仅包括各种文字或字符组成的文本形式的数据, 而且包括图而且包括图形、图像、动画、影像、声音等多媒体数据。形、图像、动画、影像、声音等多媒体数据。 数据处理是指将数据转换成信息的过程数据处理是指将数据转换成信息的过程, 通过数据处理可通过数据处理可以获得信息以获得信息, 如通过商店的进货量和销售量如通过商店的进货量和销售量, 就可以知道库就可以知道库存量存量, 从而为进货提供依据。从而为进货提供依据。 计算机管理数据随着计算机的发展而不断发展计算机管理数据随着计算机的发展而不断发展, 利用计算利用计算机对数据进行处理经历了机对数据进行处理经历了4个阶段。个阶段。 计算机诞生之初计算机诞
3、生之初, 外存储器只有纸带、磁带、卡片等外存储器只有纸带、磁带、卡片等, 没没有像磁盘这样的速度快、存储容量大、随机访问、直接存储有像磁盘这样的速度快、存储容量大、随机访问、直接存储的外存储器。软件方面的外存储器。软件方面, 没有专门管理数据的软件没有专门管理数据的软件, 数据包数据包含在计算或处理它的程序之中。含在计算或处理它的程序之中。 数据管理的任务数据管理的任务, 包括存储结构、存取方法、输入输出方包括存储结构、存取方法、输入输出方式等完全由程序员通过编程实现。这一阶段的数据管理称为式等完全由程序员通过编程实现。这一阶段的数据管理称为人工管理阶段。人工管理阶段。 20世纪世纪50年代后
4、期至年代后期至60年代后期年代后期, 计算机开始大量地用于计算机开始大量地用于各种管理中的数据处理工作。此时各种管理中的数据处理工作。此时, 在硬件方面在硬件方面, 可直接存可直接存取的磁盘成为外存储器的主流;软件方面取的磁盘成为外存储器的主流;软件方面, 出现了高级语言出现了高级语言和操作系统。和操作系统。 这一阶段的数据处理采用程序与数据分离的方式这一阶段的数据处理采用程序与数据分离的方式, 有了程有了程序文件与数据文件的区别。数据文件可以长期保存在外存储序文件与数据文件的区别。数据文件可以长期保存在外存储器上被多次存取器上被多次存取, 程序使用文件名访问数据文件程序使用文件名访问数据文件
5、, 程序员只程序员只需关注数据处理的算法上需关注数据处理的算法上, 而不必关心数据在存储器上如何而不必关心数据在存储器上如何存取。这一阶段的数据管理称为文件(系统)管理阶段。存取。这一阶段的数据管理称为文件(系统)管理阶段。 文件系统中的数据文件是为了满足特定的需要而专门设计文件系统中的数据文件是为了满足特定的需要而专门设计的的, 为某一特定的程序而使用为某一特定的程序而使用, 数据与程序相互依赖。同一数据与程序相互依赖。同一数据可能出现在多个文件中数据可能出现在多个文件中, 这不仅浪费存储空间这不仅浪费存储空间, 而且由而且由于不能统一更新于不能统一更新, 容易造成数据的不一致性。容易造成数
6、据的不一致性。 随着社会信息量的迅猛增长随着社会信息量的迅猛增长, 计算机处理的数据量也相应计算机处理的数据量也相应增大增大, 文件系统存在的问题阻碍了数据处理技术的发展文件系统存在的问题阻碍了数据处理技术的发展, 于于是数据库管理系统便应运而生。是数据库管理系统便应运而生。 数据库技术的主要目的是有效地管理和存取大量的数据资数据库技术的主要目的是有效地管理和存取大量的数据资源。包括:提高数据的共享性源。包括:提高数据的共享性, 使多个用户能够同时访问数使多个用户能够同时访问数据库中的数据;减少数据的冗余度据库中的数据;减少数据的冗余度, 提高数据的一致性和完提高数据的一致性和完整性;提供数据
7、与应用程序的独立性整性;提供数据与应用程序的独立性, 从而减少应用程序的从而减少应用程序的开发和维护费用。开发和维护费用。 20世纪世纪70年代以前年代以前, 数据库多数是集中式的数据库多数是集中式的, 随着网络技随着网络技术的发展为数据库提供了良好的运行环境术的发展为数据库提供了良好的运行环境, 使数据库从集中使数据库从集中式发展到分布式式发展到分布式, 从主机从主机/终端系统结构发展到客户终端系统结构发展到客户/服务器系服务器系统结构。统结构。 数据库(数据库(DataBase):存储在计算机存储器中):存储在计算机存储器中, 结构化结构化的相关数据的集合。它不仅存放数据的相关数据的集合。
8、它不仅存放数据, 而且还存放数据之间而且还存放数据之间的联系。的联系。 数据库管理系统(数据库管理系统(DBMS):是指帮助用户建立、使用):是指帮助用户建立、使用和管理数据库的软件系统和管理数据库的软件系统, 主要包括三部分:数据描述语言主要包括三部分:数据描述语言(DDL)、数据操作语言、数据操作语言(DML)以及其它管理和控制程序。以及其它管理和控制程序。 数据库应用系统(数据库应用系统(DBAS):利用数据库系统资源开发):利用数据库系统资源开发的面向某一类实际应用的应用软件系统。一个的面向某一类实际应用的应用软件系统。一个DBAS通常由通常由数据库和应用程序两部分构成数据库和应用程序
9、两部分构成, 它们都需要在数据库管理系它们都需要在数据库管理系统统DBMS支持下开发和工作。支持下开发和工作。 数据库系统:是指引进数据库技术后的计算机系统数据库系统:是指引进数据库技术后的计算机系统, 包包括硬件系统、数据库集合、数据库管理系统和相关软件、数括硬件系统、数据库集合、数据库管理系统和相关软件、数据库管理员、用户等五部分。据库管理员、用户等五部分。 与文件系统相比与文件系统相比, 数据库系统具有以下特点:数据库系统具有以下特点: 数据的独立性强数据的独立性强, 减少了应用程序和数据结构的相互依减少了应用程序和数据结构的相互依赖性。赖性。 数据的冗余度小数据的冗余度小, 尽量避免存
10、储数据的相互重复。尽量避免存储数据的相互重复。 数据的高度共享数据的高度共享, 一个数据库中的数据可以为不同的用一个数据库中的数据可以为不同的用户所使用。户所使用。 数据的结构化数据的结构化, 便于对数据统一管理和控制。便于对数据统一管理和控制。 通常把表示客观事物及其联系的数据及结构称为数据模型。通常把表示客观事物及其联系的数据及结构称为数据模型。 客观存在并且可以相互区别的事物称为实体。实体可以是客观存在并且可以相互区别的事物称为实体。实体可以是实际的事物实际的事物, 如:教师、职工、部门、单位等;也可以是抽如:教师、职工、部门、单位等;也可以是抽象的事件象的事件, 如:比赛如:比赛, 订
11、货订货, 选修课程等。选修课程等。 实体集是具有相同类型及相同性质(或属性)的实体集合实体集是具有相同类型及相同性质(或属性)的实体集合, 例如例如, 某个学校的所有学生的集合可以被定义为实体集某个学校的所有学生的集合可以被定义为实体集Students。 实体通过一组属性来表示实体通过一组属性来表示, 属性是实体集中每个成员具有属性是实体集中每个成员具有的描述性性质。将一个属性赋予某实体集表明数据库为实体的描述性性质。将一个属性赋予某实体集表明数据库为实体集中每个实体存储相似的信息集中每个实体存储相似的信息, 例如学生可以用学号、姓名、例如学生可以用学号、姓名、性别、出生日期等属性描述。但对每
12、个属性来说性别、出生日期等属性描述。但对每个属性来说, 各实体有各实体有自己的属性自己的属性, 即属性被用来描述不同实体间的区别。即属性被用来描述不同实体间的区别。 实体之间的对应关系称为联系实体之间的对应关系称为联系, 它反映了现实事物之间的它反映了现实事物之间的相互联系相互联系, 例如例如, 一位学生可以选学多门课程;一个部门中一位学生可以选学多门课程;一个部门中可以有多个职工。可以有多个职工。 联系可以归纳为联系可以归纳为3类。类。 若对于实体集若对于实体集A中的每一个实体中的每一个实体, 都有实体集都有实体集B中唯一的一中唯一的一个实体与之联系个实体与之联系, 则称实体集则称实体集A与
13、实体集与实体集B具有一对一的联系。具有一对一的联系。例如例如, 一个部门有一个经理一个部门有一个经理, 而每个经理只在一个部门任职而每个经理只在一个部门任职, 则部门和经理之间具有一对一的联系。则部门和经理之间具有一对一的联系。 若对于实体集若对于实体集A中的每一个实体中的每一个实体, 实体集实体集B中有中有n(n 0)个实体与之联系个实体与之联系, 反之反之, 对于实体集对于实体集B中的每个实体中的每个实体, 实体集实体集A中至多只有一个实体与之联系中至多只有一个实体与之联系, 则称实体集则称实体集A与实体集与实体集B具具有一对多的联系。有一对多的联系。 例如例如, 一个部门有若干个职工一个
14、部门有若干个职工, 而每个职工只在一个部门而每个职工只在一个部门工作工作, 则部门与职工之间是一对多的联系。则部门与职工之间是一对多的联系。 若对于实体集若对于实体集A中的每一个实体中的每一个实体, 实体集实体集B中有中有n(n 0)个实体与之联系个实体与之联系, 反之反之, 对于实体集对于实体集B中的每个实体中的每个实体, 实体集实体集A中也有中也有m(m 0)个实体与之联系)个实体与之联系, 则称实体集则称实体集A与实体集与实体集B具有多对多的联系。具有多对多的联系。 例如例如, 学生和选修课程的联系学生和选修课程的联系, 某个学生可以选修多门课某个学生可以选修多门课程程, 某选修课程也可
15、以被多名学生选修。某选修课程也可以被多名学生选修。 数据库中的数据从整体来看是有结构的数据库中的数据从整体来看是有结构的, 即所谓数据的结即所谓数据的结构化。各实体以及实体间存在的联系的集合称为数据模型构化。各实体以及实体间存在的联系的集合称为数据模型, 数据模型的重要任务之一就是指出实体间的联系。数据模型的重要任务之一就是指出实体间的联系。 按照实体集间的不同联系方式按照实体集间的不同联系方式, 数据库分为数据库分为3种数据模型:种数据模型: 层次型;层次型; 网络型;网络型; 关系型。关系型。 层次模型的结构是树型结构层次模型的结构是树型结构, 树的节(结)点是实体树的节(结)点是实体,
16、树树的枝是联系的枝是联系, 从上到下为一对多的联系。每个实体由从上到下为一对多的联系。每个实体由“根根”开始沿着不同的分支放在不同的层次上。如果不再向下分支开始沿着不同的分支放在不同的层次上。如果不再向下分支, 则此分支中最后的节点称为则此分支中最后的节点称为“叶叶”。 支持层次模型的数据库管理系统称为层次数据库管理系统支持层次模型的数据库管理系统称为层次数据库管理系统, 其中的数据库称为层次数据库。其中的数据库称为层次数据库。 用网形结构表示实体及其之间的联系的模型称为网状模型。用网形结构表示实体及其之间的联系的模型称为网状模型。在网状模型中在网状模型中, 每一个节点代表一个实体每一个节点代
17、表一个实体, 并且允许节点有并且允许节点有多于一个的多于一个的“父父”节点。这样网状模型代表了多对多的联系节点。这样网状模型代表了多对多的联系类型。类型。 支持网状模型的数据库管理系统称为网状数据库管理系统支持网状模型的数据库管理系统称为网状数据库管理系统, 其中的数据库称为网状数据库。其中的数据库称为网状数据库。 关系模型是以数学理论为基础构造的数据模型关系模型是以数学理论为基础构造的数据模型, 它用二维它用二维表格来表示实体集中实体之间的联系。表格来表示实体集中实体之间的联系。 在关系模型中在关系模型中, 操作的对象和结果都是二维表(即关系)操作的对象和结果都是二维表(即关系), 表格与表
18、格之间通过相同的栏目建立联系。表格与表格之间通过相同的栏目建立联系。 关系模型有很强的数据表示能力和坚实的数学理论关系模型有很强的数据表示能力和坚实的数学理论, 且结且结构单一构单一, 数据操作方便数据操作方便, 最易被用户接受最易被用户接受, 以关系模型建立的以关系模型建立的关系数据库是目前应用最广泛的数据库。关系数据库是目前应用最广泛的数据库。 由于关系数据库的许多优秀功能由于关系数据库的许多优秀功能, 层次数据库和网状数据层次数据库和网状数据库均已失去其重要性。库均已失去其重要性。 关系的逻辑结构就是一张二维表关系的逻辑结构就是一张二维表, 如学籍表、课程表等。如学籍表、课程表等。在在V
19、isual FoxPro中中, 一个关系就是一个一个关系就是一个“表表”, 每个表对应每个表对应一个磁盘文件一个磁盘文件, 表文件的扩展名为表文件的扩展名为.DBF。表文件名即表的名。表文件名即表的名称称, 也就是关系的名称。也就是关系的名称。 一个关系有很多属性(即实体的属性)一个关系有很多属性(即实体的属性), 对应二维表中的对应二维表中的列(垂直方向)。每一个属性有一个名字列(垂直方向)。每一个属性有一个名字, 称为属性名。对称为属性名。对于一张二维表格来说于一张二维表格来说, 属性就是表格中的栏(列)属性就是表格中的栏(列), 同栏的同栏的数据应具有相同的性质数据应具有相同的性质, 如
20、如“姓名姓名”这一栏就只能填充姓名这一栏就只能填充姓名数据数据, 而不能是其它数据。而不能是其它数据。 在在Visual FoxPro中中, 属性表示为表中的属性表示为表中的“字段字段”, 属性名属性名即为字段名。即为字段名。 对关系的描述称为关系模式对关系的描述称为关系模式, 一个关系模式对应一个关系一个关系模式对应一个关系的结构。其格式为:的结构。其格式为:关系名关系名(属性名属性名1, 属性名属性名2, , 属性名属性名n) 在在Visual FoxPro中对应的表结构为:中对应的表结构为:表名表名(字段名字段名1, 字段名字段名2, , 字段名字段名n) 在一个表格(一个关系)中在一个
21、表格(一个关系)中, 行(水平方向)称为行(水平方向)称为“元元组组”。在。在Visual FoxPro中中, 元组表示为表中的元组表示为表中的“记录记录”。 一个表中可以有多个记录一个表中可以有多个记录, 也可以没有记录也可以没有记录, 没有记录的没有记录的表称为表称为“空表空表”。 域是属性取值的范围域是属性取值的范围, 不同的属性有不同的取值范围不同的属性有不同的取值范围, 即即不同的域。如成绩的取值范围是不同的域。如成绩的取值范围是0100, 逻辑型属性的取值逻辑型属性的取值只能是只能是 .T.(真)或(真)或 .F.(假)。(假)。 用来区分不同元组(实体)的属性或属性组合用来区分不
22、同元组(实体)的属性或属性组合, 称为码。称为码。在在Visual FoxPro中对应的概念是关键字中对应的概念是关键字, 关键字是字段或字关键字是字段或字段的组合段的组合, 用于在表中唯一标识记录。用于在表中唯一标识记录。 如学生成绩表中的学号字段是关键字如学生成绩表中的学号字段是关键字, 因为学号不可能重因为学号不可能重复复, 可以用来唯一标识一个记录可以用来唯一标识一个记录, 性别字段就不是关键字性别字段就不是关键字, 因因为表中性别可能会在不同记录中出现为表中性别可能会在不同记录中出现, 即有两个或两个以上即有两个或两个以上的记录该属性相同的。的记录该属性相同的。 如果码的任意真子集都
23、不能成为码如果码的任意真子集都不能成为码, 这样的这样的“最小码最小码”称称为为“候选码候选码”。候选码可能有多个。候选码可能有多个, 被选中用来区别不同元被选中用来区别不同元组的候选码称为主码。组的候选码称为主码。 在在Visual FoxPro中中, 对应的概念是:候选关键字和主关键对应的概念是:候选关键字和主关键字。字。 如果表中的某个字段不是本表的关键字如果表中的某个字段不是本表的关键字, 而是另外一个表而是另外一个表中的关键字中的关键字, 则称该字段为外部关键字。则称该字段为外部关键字。 从集合论的观点来看从集合论的观点来看, 一个关系模型就是若干个有联系的一个关系模型就是若干个有联
24、系的关系模式的集合关系模式的集合, 一个关系模式是命名的属性集合一个关系模式是命名的属性集合, 另外另外, 关关系是元组的集合系是元组的集合, 元组是属性值的集合。元组是属性值的集合。 在在Visual FoxPro中中, 把相互之间存在联系的表放到一个数把相互之间存在联系的表放到一个数据库中统一管理。例如据库中统一管理。例如, 在订货管理数据库中可以包含订单在订货管理数据库中可以包含订单表和客户表。数据库文件的扩展名为表和客户表。数据库文件的扩展名为.DBC。 数据完整性是指数据库中数据的正确性和一致性(或相容数据完整性是指数据库中数据的正确性和一致性(或相容性)性), 数据完整性用来防止数
25、据库中存在不合法的数据数据完整性用来防止数据库中存在不合法的数据, 防防止错误的数据进入数据库中。止错误的数据进入数据库中。 数据完整性可以分为实体完整性、域完整性和参照完整性。数据完整性可以分为实体完整性、域完整性和参照完整性。 实体完整性是指数据库表的每一行都有一个唯一的标识。实体完整性是指数据库表的每一行都有一个唯一的标识。实体完整性由实体完整性规则来定义实体完整性由实体完整性规则来定义, 完整性规则是指表中完整性规则是指表中的每一行在组成码(关键字)的列上不能有空值或重复值的每一行在组成码(关键字)的列上不能有空值或重复值, 否则就不能起到唯一标识行的作用。否则就不能起到唯一标识行的作
26、用。 域完整性是指数据库数据取值的正确性。它包括数据类型、域完整性是指数据库数据取值的正确性。它包括数据类型、精度、取值范围以及是否允许空值等。精度、取值范围以及是否允许空值等。 取值范围又可分为静态和动态两种:静态取值范围是指列取值范围又可分为静态和动态两种:静态取值范围是指列数据的取值范围是固定的如年龄小于数据的取值范围是固定的如年龄小于150;动态取值范围是;动态取值范围是指列数据的取值范围由另一列或多列的值决定指列数据的取值范围由另一列或多列的值决定, 或更新列的或更新列的新值依赖于它的旧值。新值依赖于它的旧值。 参照完整性是指数据库中表与表之间存在码(关键字)与参照完整性是指数据库中
27、表与表之间存在码(关键字)与外码(外部关键字)的约束关系外码(外部关键字)的约束关系, 利用这些约束关系可以维利用这些约束关系可以维护数据的一致性或相容性护数据的一致性或相容性, 即在数据库的多个表之间存在某即在数据库的多个表之间存在某种参照关系。种参照关系。 要实现这种参照关系要实现这种参照关系, 首先创建表的码与外码:首先创建表的码与外码: 当对含有外码的表进行插入、更新操作时当对含有外码的表进行插入、更新操作时, 必须检查新必须检查新行中外键的值是否在主表中存在行中外键的值是否在主表中存在, 若不存在就不能执行该操若不存在就不能执行该操作。作。 参照完整性是指数据库中表与表之间存在码(关
28、键字)与参照完整性是指数据库中表与表之间存在码(关键字)与外码(外部关键字)的约束关系外码(外部关键字)的约束关系, 利用这些约束关系可以维利用这些约束关系可以维护数据的一致性或相容性护数据的一致性或相容性, 即在数据库的多个表之间存在某即在数据库的多个表之间存在某种参照关系。种参照关系。 要实现这种参照关系要实现这种参照关系, 首先创建表的码与外码:首先创建表的码与外码: 当对主表中的行进行删除、更新操作时当对主表中的行进行删除、更新操作时, 必须检查被删必须检查被删除行或被更新行中主码的值是否在被一个或多个外码参照引除行或被更新行中主码的值是否在被一个或多个外码参照引用用, 若正被参照就不
29、能执行该操作。若正被参照就不能执行该操作。 通常生活中的二维表格多种多样通常生活中的二维表格多种多样, 不是所有二维表格都被不是所有二维表格都被当作当作“关系关系”而存放到数据库中。也就是说而存放到数据库中。也就是说, 在关系模型中在关系模型中对对“关系关系”有一定的规范化要求。有一定的规范化要求。 关系中的每个属性(列)必须是不可分割的数据单元。关系中的每个属性(列)必须是不可分割的数据单元。如图如图1-3左所示的复合表不符合要求左所示的复合表不符合要求, 不能直接作为关系不能直接作为关系, 应应将它改为图将它改为图1-3右所示的二维表。右所示的二维表。姓名姓名成绩成绩姓名姓名语文语文数学数
30、学外语外语语文语文数学数学外语外语a)复合表复合表b)关系表关系表 同一关系中不应有完全相同的属性名同一关系中不应有完全相同的属性名, 即在同一个表格即在同一个表格中不能出现相同的栏(字段)。中不能出现相同的栏(字段)。 关系中不应有完全相同的元组关系中不应有完全相同的元组, 即在同一个表格中不能即在同一个表格中不能出现相同的行(记录)。出现相同的行(记录)。 元组(记录)和属性名(字段)与次序无关元组(记录)和属性名(字段)与次序无关, 即交换两即交换两行或两列的位置不影响数据的实际含义。行或两列的位置不影响数据的实际含义。 选择运算是指从关系中找出满足给定条件的元组选择运算是指从关系中找出
31、满足给定条件的元组, 又称为又称为筛选运算。选择的条件以逻辑表达式给出筛选运算。选择的条件以逻辑表达式给出, 使得逻辑表达式使得逻辑表达式的值为真的元组被选取。的值为真的元组被选取。 选择是从行的角度进行的运算选择是从行的角度进行的运算, 即选择部分行即选择部分行, 经过选择经过选择运算可以得到一个新的关系运算可以得到一个新的关系, 其关系模式不变其关系模式不变, 但其中的元但其中的元组是原关系的一个子集。组是原关系的一个子集。 在在Visual FoxPro中中, 选择操作使用命令短语选择操作使用命令短语FOR | WHILE 条件条件或设置记录过滤器来实现。或设置记录过滤器来实现。 从关系
32、模式中指定若干个属性组成新的关系称为投影。从关系模式中指定若干个属性组成新的关系称为投影。 投影是从列的角度进行的运算投影是从列的角度进行的运算, 经过投影可以得到一个新经过投影可以得到一个新关系关系, 其关系模式所包含的属性个数往往比原关系少其关系模式所包含的属性个数往往比原关系少, 或者或者属性的排列顺序不同。属性的排列顺序不同。 在在Visual FoxPro中中, 投影操作使用命令短语投影操作使用命令短语FIELDS 字字段段1, 字段字段2, 或设置字段过滤器来实现。或设置字段过滤器来实现。 选择和投影经常联合使用选择和投影经常联合使用, 从数据库文件中提取某些记录从数据库文件中提取
33、某些记录和某些数据项。和某些数据项。 从两个关系中选取满足连接条件的元组组成新关系从两个关系中选取满足连接条件的元组组成新关系, 称为称为连接(或链接、连结)。连接(或链接、连结)。 连接是关系的横向结合连接是关系的横向结合, 连接运算将两个关系模式的属性连接运算将两个关系模式的属性名拼接成一个更宽的关系模式名拼接成一个更宽的关系模式, 生成的新关系中包含满足连生成的新关系中包含满足连接条件的元组。接条件的元组。 连接过程是通过连接条件来控制的连接过程是通过连接条件来控制的, 连接条件中将出现两连接条件中将出现两个关系中的公共属性名个关系中的公共属性名, 或者具有相同语义、可比的属性。或者具有
34、相同语义、可比的属性。 在在Visual FoxPro中中, 连接操作相当于对两个二维表进行拼连接操作相当于对两个二维表进行拼接。接。 有两种意义下的连接操作有两种意义下的连接操作, 用用JOIN命令实现两个表的连接命令实现两个表的连接将得到一个新的表;关联操作命令将得到一个新的表;关联操作命令SET RELATION属于逻辑属于逻辑上的连接操作。上的连接操作。 自然连接是指去掉重复属性的等值连接自然连接是指去掉重复属性的等值连接, 它是按照属性值它是按照属性值对应相等为条件进行的连接操作。自然连接是最常用的连接对应相等为条件进行的连接操作。自然连接是最常用的连接运算。运算。 优化的一般方法是
35、:优化的一般方法是: 首先进行选择运算首先进行选择运算, 尽量减少关系中元组的个数尽量减少关系中元组的个数, 缩小缩小参与连接运算关系的数量参与连接运算关系的数量, 减少访问记录的次数;减少访问记录的次数; 然后能投影的投影然后能投影的投影, 使关系中的属性个数减少。在投影使关系中的属性个数减少。在投影时必须注意保留连接两个关系所需要的公共属性或具有相同时必须注意保留连接两个关系所需要的公共属性或具有相同语义的属性语义的属性, 否则关系之间就失去了联系;否则关系之间就失去了联系; 最后再进行连接操作。最后再进行连接操作。 利用关系的投影、选择和连接运算可以方便地分解或构造利用关系的投影、选择和
36、连接运算可以方便地分解或构造新的关系。新的关系。 (1) 快速完成应用任务快速完成应用任务 (2) 一致的用户一致的用户界面界面, 使用使用方便的工具栏方便的工具栏 (3) 不编程而建立应用程序界面不编程而建立应用程序界面 (4) 用项目管理器统一管理工作用项目管理器统一管理工作 (1) 真正的数据库概念真正的数据库概念 (2) 可视化编程技术可视化编程技术 (3) 具有面向对象编程的能力具有面向对象编程的能力 (4) 更容易处理事件更容易处理事件 (5) 增强的功能增强的功能 (6) 最优化系统最优化系统 (7) 使用快速查询技术使用快速查询技术 (8) 使用使用32位方式位方式 (1) 用
37、数据词典定义规则用数据词典定义规则 (2) 查看远程或异种数据查看远程或异种数据 (3) 用事务处理来控制共享访问用事务处理来控制共享访问 (4) 实现客户机实现客户机/服务器应用程序服务器应用程序 (1) 同其它软件共享数据同其它软件共享数据 (2) 导入和导出数据导入和导出数据 (3) 使用自动使用自动OLE控制其它软件控制其它软件 从从“开始开始”菜单中选择菜单中选择“Microsoft Visual FoxPro 6.0”, 进入进入Visual FoxPro 6.0后后, 将显示如图将显示如图1-4所示的对话框。所示的对话框。 如果选择了如果选择了“以后不再显示此屏以后不再显示此屏”
38、复选项复选项, 在以后启动在以后启动Visual FoxPro后将直接进入后将直接进入Visual FoxPro的主窗口。关闭本的主窗口。关闭本对话框后对话框后, 窗口的显示将与以前版本一样窗口的显示将与以前版本一样, 如图如图1-5所示。所示。 下列方法中的任何一种下列方法中的任何一种, 都可以退出都可以退出Visual FoxPro 6.0系统:系统:n 在在命令窗口键入命令窗口键入QUIT, 再再按按Enter键。键。n 用用鼠标单击系统窗口右上角的鼠标单击系统窗口右上角的“关闭关闭”按钮。按钮。n 用用鼠标单击鼠标单击“文件文件”菜单中的菜单中的“退出退出”项。项。n 同时同时按下按下
39、Alt+F4键。键。 Visual FoxPro的主窗口(图的主窗口(图1-5)具有标准的)具有标准的Windows风格。风格。除了在窗口的上边有标题栏、控制菜单图标、极小化按钮、除了在窗口的上边有标题栏、控制菜单图标、极小化按钮、极大化按钮和关闭按钮外极大化按钮和关闭按钮外, 还包括菜单栏、工具栏、主窗口、还包括菜单栏、工具栏、主窗口、命令窗口和状态栏。命令窗口和状态栏。 在主窗口的最上一行是菜单栏在主窗口的最上一行是菜单栏, 通过它可以完成绝大部分通过它可以完成绝大部分的操作。在默认的情况下的操作。在默认的情况下, 菜单栏有八个子菜单。随着用户菜单栏有八个子菜单。随着用户操作的不同操作的不
40、同, 子菜单和菜单项会有相应的增加与减少。子菜单和菜单项会有相应的增加与减少。 工具栏上的按钮对应于最常使用的菜单命令工具栏上的按钮对应于最常使用的菜单命令, 所以使用工所以使用工具栏可以加快某些任务的执行。具栏可以加快某些任务的执行。 工具栏可以显示为窗口形式工具栏可以显示为窗口形式, 只要将鼠标指针指向工具栏只要将鼠标指针指向工具栏中按钮之外的地方中按钮之外的地方, 然后把工具栏然后把工具栏“拖拖”下来。将工具栏放下来。将工具栏放在窗口四周的动作称为在窗口四周的动作称为“停放(停放(Dook)”。将鼠标放在某个。将鼠标放在某个按钮上停一会按钮上停一会, 就会出现该按钮的说明文字就会出现该按
41、钮的说明文字, 称为工具提示称为工具提示(Tooltip)。)。 命令窗口是一个接受输入命令的地方命令窗口是一个接受输入命令的地方, 可以直接在命令窗可以直接在命令窗口中输入口中输入Visual FoxPro命令。命令。Visual FoxPro命令提供的功能命令提供的功能远远超过主菜单远远超过主菜单, 这是因为主菜单只列出最常用的功能。这是因为主菜单只列出最常用的功能。 命令窗口是命令窗口是Visual FoxPro的一种系统窗口。当选择菜单命的一种系统窗口。当选择菜单命令时令时, 相应的相应的Visual FoxPro语句会自动反映在命令窗口中。语句会自动反映在命令窗口中。初学者可以通过命
42、令窗口学习许多常用的命令。初学者可以通过命令窗口学习许多常用的命令。 在命令窗口中可以:在命令窗口中可以:在按在按Enter键执行命令之前键执行命令之前, 按按Esc键删除文本。键删除文本。将光标移到以前命令行的任意位置按将光标移到以前命令行的任意位置按Enter键重新执行此命令。键重新执行此命令。选择要重新处理的代码选择要重新处理的代码块块, 然后然后按按Enter键。键。若要分割很长的若要分割很长的命令命令, 可以可以在所需位置的空格后接在所需位置的空格后接分号分号, 然后然后按按Enter键。键。可在可在“命令命令”窗口内或向其他编辑窗口中移动窗口内或向其他编辑窗口中移动文本文本, 选择
43、选择需要的需要的文本文本, 并并将将其拖动到需要的位置。其拖动到需要的位置。可在可在“命令命令”窗口内或向其他编辑窗口中复制窗口内或向其他编辑窗口中复制文本文本, 而而不用使用不用使用“编辑编辑”菜单的命令。选择需要的菜单的命令。选择需要的文本文本, 按下按下Ctrl键不键不放放, 将将其拖动到需要的位其拖动到需要的位置。置。 可以在可以在“命令命令”窗口的程序中使用窗口的程序中使用SET命令设置环境命令设置环境, 也也能使用下列方式交互地在能使用下列方式交互地在“选项选项”对话框中设置、查看或更对话框中设置、查看或更改环境选项。改环境选项。 把设置保存为仅在当前工作期有效:在把设置保存为仅在
44、当前工作期有效:在“选项选项”对话框中对话框中更改设置更改设置, 然后选择然后选择“确定确定”按钮。所作的设置一直作用到按钮。所作的设置一直作用到退出退出Visual FoxPro(或直到再次更改它们)为止。(或直到再次更改它们)为止。 把当前设置保存为默认设置:在把当前设置保存为默认设置:在“选项选项”对话框中更改设对话框中更改设置置, 然后单击然后单击“设置为默认值设置为默认值”按钮按钮, 再按再按“确定确定”按钮。按钮。系统将把设置存储在系统将把设置存储在Windows注册表中。注册表中。 通过执行通过执行SET命令或在启动命令或在启动Visual FoxPro时指定一个配置时指定一个配
45、置文件文件, 可以忽略默认设置。可以忽略默认设置。 Visual FoxPro在许多操作中产生临时文件。例如在许多操作中产生临时文件。例如, 编辑、编辑、索引、排序时索引、排序时, 都要产生临时文件。都要产生临时文件。 除非为临时文件指定其他位置除非为临时文件指定其他位置, 否则否则Visual FoxPro在在Windows保存临时文件的目录中创建临时文件。指定临时文保存临时文件的目录中创建临时文件。指定临时文件位置的步骤为:件位置的步骤为: 从从“工具工具”菜单中菜单中, 选择选择“选项选项”命令命令, 然后选择然后选择“文文件位置件位置”选项卡。选项卡。 输入临时文件的位置输入临时文件的
46、位置, 如图如图1-7所示。若要永久保存所做所示。若要永久保存所做更改更改, 单击单击“设置为默认值设置为默认值”按钮。按钮。 VFP可定制的工具栏可定制的工具栏, 见表见表1-1。工具工具相关的工具栏相关的工具栏命令命令数据库设计器数据库设计器数据库数据库CREATEDATABASE表单设计器表单设计器表单控件、表单设计器、调色板、布局表单控件、表单设计器、调色板、布局CREATEFORM打印预览打印预览打印预览打印预览查询设计器查询设计器查询设计器查询设计器CREATEQUERY报表设计器报表设计器报表控件、报表设计器、调色板、布局报表控件、报表设计器、调色板、布局CREATEREPORT
47、 默认情况只有默认情况只有“常用常用”工具栏可见。当使用一个设计器工工具栏可见。当使用一个设计器工具时具时, 将激活相关的工具栏。当然将激活相关的工具栏。当然, 还可以在任何需要时激还可以在任何需要时激活一个工具栏。活一个工具栏。 若要激活一个工具栏若要激活一个工具栏, 可以运行相应的设计器工具可以运行相应的设计器工具, 或者或者从从“显示显示”菜单选择菜单选择“工具栏工具栏”, 在在“工具栏工具栏”对话框中选对话框中选择希望激活的工具栏择希望激活的工具栏, 如图如图1-8所示。所示。 创建自定义工具栏最简单的方法就是修改创建自定义工具栏最简单的方法就是修改Visual FoxPro提提供的工
48、具栏。供的工具栏。 可以通过添加或移去按钮修改现有工具栏可以通过添加或移去按钮修改现有工具栏, 创建包含现有创建包含现有工具栏按钮的新工具栏。工具栏按钮的新工具栏。 也可以使用代码创建一个自定义工具栏类来定义自定义工也可以使用代码创建一个自定义工具栏类来定义自定义工具栏。具栏。 (1) 修改现有修改现有Visual FoxPro工具栏工具栏 (2) 从现有工具栏创建新工具栏从现有工具栏创建新工具栏 在在“编辑属性编辑属性”对话框中对话框中, 可以配置可以配置Visual FoxPro编辑器编辑器使之按用户希望的方式显示文本。如可以设置字体与文本对使之按用户希望的方式显示文本。如可以设置字体与文
49、本对齐齐, 还可以设置缩进、换行、自动备份文件等其他特性还可以设置缩进、换行、自动备份文件等其他特性, 使使编辑器更易使用。编辑器更易使用。 若要显示若要显示“编辑属性编辑属性”对话框对话框, 首先需要打开一个编辑器首先需要打开一个编辑器窗口。窗口。 在编辑器窗口的任意位置上单击鼠标右键显示快捷菜单在编辑器窗口的任意位置上单击鼠标右键显示快捷菜单, 然后选择然后选择“属性属性”, 将打开将打开“编辑属性编辑属性”对话框对话框, 如图如图1-11所所示。示。 如果希望关闭所有操作返回如果希望关闭所有操作返回Visual FoxPro启动时的状态启动时的状态, 在命令窗口或在退出在命令窗口或在退出
50、Visual FoxPro之前最后调用的程序中之前最后调用的程序中, 按下列顺序运行如下命令:按下列顺序运行如下命令:CLEAR ALLCLOSE ALLCLEAR PROGRAM 说明:说明:CLEAR ALL从内存中移去所有对象从内存中移去所有对象, 按顺序关闭按顺序关闭所有私有数据工作期以及其中的临时表。所有私有数据工作期以及其中的临时表。 在在CLOSE ALL正确执行后正确执行后, 关闭关闭Visual FoxPro默认数据默认数据工作期工作期, 即数据工作期即数据工作期1中的所有数据库、表以及临时表。中的所有数据库、表以及临时表。 如果希望关闭所有操作返回如果希望关闭所有操作返回V