Visual FoxPro 6.0程序设计教程(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-15 21:59:09

点击下载

作者:孙淑霞

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Visual FoxPro 6.0程序设计教程(第4版)

Visual FoxPro 6.0程序设计教程(第4版)试读:

第4版前言

本书是四川省精品课程“数据库程序设计”的配套教材,以Visual FoxPro 6.0中文版为平台,结合普通高校非计算机专业数据库程序设计课程的具体要求,深入浅出地介绍数据库程序设计的有关知识、方法和具体的实例。

本书共13章。前12章分别介绍:数据库系统概述,Visual FoxPro 6.0基础知识,Visual FoxPro数据库管理系统所支持的数据类型、函数、表达式、数组、属性、事件、方法、对象、表和数据库的操作,Visual FoxPro 6.0的编程工具和操作步骤,面向对象的可视化编程,表单操作,菜单与工具栏,数据的检索,视图的更新和报表的设计等。第13章以“QQ号码管理系统”为实例,讲述如何开发数据库应用系统,并给出一个较完整的解决方案。

本书的重点是数据库系统的基本概念,以Visual FoxPro 6.0为平台的程序设计的基本方法。本书内容的安排强调循序渐进、前后呼应;每章开始有本章要点,章末有上机实验内容和一定数量的习题。实验内容有助于读者理论联系实际,提高实际操作和编程的能力。对于有一定难度的实验内容,书中给出了具体的指导,使读者按照书中给出的操作步骤就能够完成规定的实验内容。习题有利于帮助读者自学和检查学习效果。

本书的作者多年来一直从事计算机基础教学,经过多年的教学实践编写了这本教材。针对初学者和自学读者的特点,本书力求通俗易懂,用大量具体的操作、各种不同的实例让读者进入Visual FoxPro的可视化编程环境。所有步骤都按实际操作界面一步一步地讲解,读者可一边学习,一边上机操作,通过一段时间的练习,在不知不觉之中就可逐渐掌握Visual FoxPro 6.0数据库程序设计的基础知识、设计思想和方法以及可视化编程的方法和步骤,并提高利用Visual FoxPro 6.0解决实际问题的能力。

此次修订根据读者提出的宝贵意见,经过多次修改并结合精品课程建设,加强了教学资源的建设,为读者提供电子课件、实验指导、习题解答、教学视频等教学资源,代课教师可登录华信教育资源网(www.hxedu.com.cn)注册后免费下载,也发邮件至ssx@cdut.edu.cn或yanyg@phei.com.cn获取。此次修订还对部分内容进行了适当的删减和增添,改正了上一版中的个别错误,力求在内容上更加精练和准确。

本书第1~7章由孙淑霞编写,第9~10章由刘祖珉编写、第11~12章由刘焕君编写,第8、13章由李思明编写。由于作者的水平有限,书中难免有错误和不妥之处,恳请读者不吝赐教。作 者

第1章 概述

本章要点:

数据库系统基本知识

数据库的数据模型

Visual FoxPro 6.0系统概述

数据库技术的产生与发展源于对数据的组织和管理,但人们对数据的认识,有狭义和广义两种概念。狭义上的数据,是指一些简单的数字和文字;广义上的数据,不仅包括数字和文字,还包括图形、图像、声音等多种类型和多种表现形式的数据。数据可定义为存储在某种媒体上,且能够被识别的描述事物特征的物理符号或符号记录。描述事物特征的符号可以是数字、文字、图形、图像、语音、声音等数据的多种表现形式,它们都可以经过数字化之后存入计算机。

数据库技术是数据管理的技术,随着数据管理任务的需要而产生于20世纪60年代中期。这是一门综合性技术,涉及操作系统、数据结构、算法设计和程序设计等知识。

1.1 数据库系统概述

数据库技术的基本思想是对数据实行集中、统一、独立的管理,用户可以最大限度地共享数据资源。本节介绍一些与数据库相关的知识,为深入学习打下必备的基础。1.1.1 数据库系统基础知识

1.数据管理的基本概念和发展过程(1)数据

数据是一种物理符号序列,用来记录事物的情况,用型和值来表征。不同数据类型,记录的事物性质也不同,如数值型数据1,2,3,…,可用来记录事物的多少。(2)信息

信息是经过加工的有用数据。这种数据有时能产生决策性的影响。

信息都是数据,但只有经过提炼和抽象之后具有使用价值的数据才能成为信息。加工所得的信息仍以数据形式表现,此时的数据是信息的载体,是人们认识信息的一种媒体。(3)数据处理

数据处理是指将基本元数据转换成有用信息的过程,是对数据进行收集、存储、加工和传播的一系列活动的总和。这里的“元数据”是指描述事物的最基本属性的数据。从数据处理的角度看,信息是一种被加工成特定形式的数据,而这种形式的数据对于数据的接收者来说是有意义的。人们通过处理数据可以获得信息,通过分析和筛选可以产生决策。

数据处理是指对各种类型的数据进行收集、存储、分类、计算、加工、检索及传输的过程,其目的是得到信息。数据处理也称为信息处理或信息技术等。

数据处理的核心是数据管理。数据管理指的是对数据的分类、组织、编码、存储、检索和维护等。计算机数据管理随着计算机硬件、软件技术和计算机应用范围的发展而不断发展,多年来经历了以下由低级到高级的发展过程。(1)人工管理

20世纪50年代中期以前采用人工管理数据,其特点是:数据与程序不具有独立性,一组数据对应一组程序;数据不能长期保存;存在着大量的数据冗余。(2)文件系统

20世纪50年代后期到60年代中后期采用文件系统,其特点是:数据和程序有了一定的独立性;数据文件可以长期保存在外存储器中被多次存取;数据和程序相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大,容易造成数据的不一致性。(3)数据库系统

从20世纪60年代后期开始采用数据库系统,其特点是:能够有效地管理和存取大量的数据资源,提高了数据的共享性,减少了数据的冗余度,提供了数据和程序的独立性。(4)分布式数据库系统

分布式数据库系统是数据库技术和计算机网络技术紧密结合的产物,产生于20世纪70年代后期。(5)面向对象的数据库系统

面向对象的数据库系统是面向对象程序设计和数据库技术相结合的产物。面向对象数据库是面向对象方法在数据库领域中的实现和应用,既是一个面向对象的系统,又是一个数据库系统。

数据库系统的主要特点如下:① 实现数据共享,减少数据冗余;② 采用特定的数据模型;③ 具有较高的数据独立性;④ 有统一的数据控制功能。

数据库系统主要解决了三个问题:一是有效地组织数据,对数据进行合理的设计,以便计算机存取;二是将数据方便地输入到计算机中;三是根据用户的要求将数据从计算机中抽取出来(这是人们处理数据的最终目的)。

2.数据库系统的组成

数据库系统实际上是一个应用系统,是指在计算机硬件和软件系统支持下,由用户、数据库管理系统、存储在存储设备中的数据和数据库应用程序构成的数据处理系统。(1)数据

这里的数据是指数据库系统存储在存储设备中的数据,是数据库系统操作的对象。数据具有集中性和共享性。(2)数据库管理系统

数据库管理系统是指位于用户与操作系统之间,负责数据库存取、维护和管理的软件系统。这是数据库系统的核心,其功能强弱是衡量数据库系统性能优劣的主要方面;一般由计算机软件公司提供。(3)应用程序

应用程序是指为适合用户操作、满足用户需求而编写的数据库应用程序。(4)用户

用户是指使用数据库的人员,主要有三类:终端用户、应用程序员和数据库管理员。

① 终端用户是指通过数据库系统所提供的命令语言、表格语言以及菜单等交互式对话手段来使用数据库数据的用户。

② 应用程序员是指为终端用户编写应用程序的软件人员,设计应用程序的主要用途是使用和维护数据库。

③ 数据库管理员(DataBase Administrator,DBA)是指全面负责数据库系统正常运转的高级人员,负责对数据库系统本身的深入研究。

3.数据库系统的特点

数据库系统是计算机数据处理技术的重大进步,涉及的内容如下。

① 实现数据共享。允许多个用户同时存取数据而互不影响。

② 实现数据独立。应用程序不随数据存储结构的改变而变动。

③ 减少了数据冗余度。逻辑数据文件和物理数据文件存在着“多对一”的重叠关系,有效地节省了存储资源。

④ 避免了数据不一致性。数据只有一个物理备份,故对数据的访问不会出现不同。

⑤ 加强了对数据的保护。数据库加入了安全保密机制,可防止对数据的非法存取。进行集中控制,有利于控制数据的完整性;采取了并发访问控制,保证了数据的正确性。另外,还实现了对数据库破坏后的恢复。

4.数据库应用系统(DataBase Application Systems,DBAS)

数据库应用系统是指开发人员利用数据库系统资源开发出来的、面向某实际应用的软件系统,并且可分为如下两类。

① 管理信息系统:面向机构内部业务和管理的数据库应用系统,如教学管理系统、财务管理系统等。

② 开放式信息服务系统:面向外部、提供动态信息查询功能,以满足不同信息需求的数据库应用系统。例如,大型综合科技情报系统、经济信息系统和专业的证券实时行情、商品信息系统等。

一个数据库应用系统通常由数据库和应用程序两部分组成,是在数据库管理系统支持下设计和开发出来的。

5.数据库设计阶段

数据库设计阶段包括:需求分析、概念设计、逻辑设计、物理设计。数据库设计的每个阶段都有各自的任务。

① 需求分析阶段:这是数据库设计的第一个阶段,主要任务是收集和分析数据,这一阶段收集到的基础数据和数据流图是下一步设计概念结构的基础。

② 概念设计阶段:分析数据间内在语义关联,在此基础上建立一个数据的抽象模型,即形成E-R图。

③ 逻辑设计阶段:将E-R图转换成指定关系型数据库管理系统(RDBMS)中的关系模型。

④ 物理设计阶段:对数据库内部物理结构进行调整并选择合理的存储结构和存取方法,以提高数据库访问速度及有效利用存储空间。1.1.2 数据库的数据模型

一般来说,设计数据模型应遵循三个原则:一是能较真实地模拟现实世界中的事物;二是容易被人们所理解或接受;三是便于在计算机中实现。

数据模型是数据库应用系统的核心和基础,是DBMS用来表示实体及实体间联系的方法,它应该能够反映出数据之间存在的整体逻辑关系。任何一个DBMS都是基于某种数据模型的。

从创建数据库技术以来,逻辑数据模型有3种类型,即层次模型、网状模型、关系模型。数据模型的另一种表现形式是概念数据模型——E-R数据模型。Visual FoxPro虽然在面向对象技术方面有了很大的发展,但就其本质来讲仍属于关系模型范畴。通常,我们把基于特定的数据模型开发出来的数据库系统相应地被称为层次型数据库系统、网状型数据库系统、关系型数据库系统。随着数据库技术的产生与发展,关系模型已经成为目前最为流行且影响最为深远的数据库模型。大型的Oracle、SQL Server或Sybase等DBMS都采用关系数据模型。

下面简要介绍这些数据模型及其特点。(1)层次模型(hierarchical model)

层次模型是数据库中出现最早的数据模型,它用树状结构来表示各类实体以及实体之间的联系,如图1-1所示。现实生活中的许多实体之间的联系都很自然地体现出了这种层次关系,如行政管理机构。层次模型的主要特点如下:图1-1 层次模型示例

① 有且只有一个根结点。

② 除根结点以外,其他结点有且只有一个父结点。

③ 在这种树状结构中,每个结点都表示一个实体类型或称记录类型。结点间的连线反映的是不同实体之间的“一对多”联系。

④ 在这种数据模型中,不能直接体现实体间“多对多”的联系。

层次模型中的记录只能组织成树的集合,对于非层次数据,层次DBMS的效率就很低,使用也不方便。随着DBMS技术的不断发展,现在已很少使用层次模型来开发DBMS。(2)网状模型(network model)

网状模型是用网状结构来表示实体及其之间联系的模型,如图1-2所示。网状模型的主要特点如下:

① 可以很灵活地表现出实体间的“多对多”联系,然而这种灵活性是建立在复杂的结构基础之上的。

② 数据的更新实现起来比较复杂。图1-2 网状模型示例

③ 在数据的组织实现方面常用链接方法。

这种模型结构复杂,且规律性差,在计算机中实现比较困难。与层次数据模型一样,网状数据模型现在也已很少在DBMS的设计中使用。(3)关系模型(relation model)

关系模型是目前最重要的一种数据模型。E.F.Cold于1970年首次提出了数据库系统的关系模型,为关系模型数据库技术奠定了理论基础,因此于1981年获得了有计算机界“诺贝尔”奖之称的ACM图灵奖。

关系模型不同于层次模型、网状模型,它建立在严格的数学基础之上,它的运算对象和结果都是集合(二维表)。关系模型是用二维表结构来表示实体及实体间联系的数据模型。正是由于关系数据模型具有描述的一致性、模型概念的简单化、完备的数学理论基础、说明性的查询语言和使用方便等优点,从而使它得到了广泛的应用。

表1-1是一张记录了学生基本数据的二维表,表的每一行都记录了一名学生的相关信息,在数据库中称为记录。表的每一列称为项,描述了学生属性的同类型数据,如姓名、性别、学号等。(4)E-R数据模型

上面介绍了3种数据模型,它们都属于逻辑数据模型。E-R数据模型(Entity-Relationship data model)即实体联系数据模型,属于概念数据模型。对于现实世界中的数据,在E-R数据模型中就抽象为两个重要的概念:实体和联系。表1-1 学生信息

① 实体(Entity)是客观存在并可相互区分的事物,是对能被人们识别的独立存在的对象的描述,是对现实世界中事、物、概念等的抽象。如商店、书、教师、学生、图书、火车、商品、公务员、各种机器设备和各种建筑物等都是实体。在一个单位(或研究的组织事务)中,具有共性的一类实体称为实体集,可由设计者规定。例如,在建立一个学校的学生档案数据库时,该校的所有学生就构成一个实体集。实体集均要用实体名来标识,实体名应能够反映实体集的构成。

实体一般均具有若干特征,这些特征称为该实体的属性。例如,学生这个实体就可以具有下列属性:学号、姓名、性别、年龄、专业、班级和民族等。每个属性均可以规定一定的取值范围,在E-R模型中称之为值集。例如,对某个具体的学生来说,可以用“200371015、张三、男、18、计算机科学与技术、2003710、汉族”来描述。当实体的某个属性不适用或属性值未知时,也可用“NULL”表示。实体属性与应用系统的要求有关,因而对于同样的实体集,其属性的构成可能并不相同。

由于在现实世界中,抽象成实体的数目要比数据元素的数目少得多,因此以实体作为研究对象,就大大地减少了对现实世界分析中所涉及的对象,简化了分析过程。

② 联系(Relation)是独立的实体相互之间的关系。现实世界的实体与实体之间通常都有关联,如:书店和书的关系是销售关系,教师与学生实体之间的关系是教师给学生上课,学生选修教师讲授的课程;工人按操作规程操作机器,人们为居住而选购建筑物(住宅楼)。不但不同的实体相互之间有关联,就是同一实体集中的多个实体之间也存在相互的关联。例如,对人这个实体集来说,人与人之间存在着夫妻关系、父子关系等。为了反映实体与实体之间的联系,在E-R数据模型中把这种实体与实体之间的关联抽象为联系。因此,联系也是E-R模型中的一种描述对象的数据。

能够唯一标识实体的属性或属性组称为该实体的实体键(Entity Key)。如果一个实体(集)有多个实体键存在,则可选其中最常用的一个作为实体主键(Entity Primary Key)。

现实世界中可能存在许多实体(用E表示实体或实体集),如E,1E,…,E,则这些实体之间的联系,可用一个元组(E,E,…,E)2n12n来表示。n=2时,(E,E)就称为一个二元联系;n>2时,就称为多12元联系。

在E-R模型中,如果实体之间的联系是对一个实体集而言的,这种联系就称为一元联系。

在二元联系中,实体E与E之间的联系(E,E)可归结为如下3种1212类型:1:1,1:n,m:n。

① 1:1(一对一)联系。对于任意两个实体E和E,若E中的任121意一个实体最多和E中的一个实体相联系,E中的每个实体也最多22与E中的一个实体相联系,则称E和E是“一对一”联系,简记为1121:1联系。例如,某个班的学生组成一个实体集,该班指定教室的座位组成另一个实体集,假定该班的座位是按固定方式分配的,则学生与座位之间就构成了一对一联系:一个学生对应一个座位,一个座位也对应一个学生。

② 1:n(一对多)联系。对于任意两个实体E和 E,若E中的任121意一个实体可以和E中的任意数目(可以是0,2,3,…,n)的实体2相联系,则称E到E的一对多联系,简记为1:n联系。例如,在某个12银行的信贷业务中,客户与贷款是两个不同的实体,银行的一笔贷款只能属于一个客户,但一个客户可以获得多笔贷款,因此客户与贷款的联系就是一对多的联系。与一对多联系相对应地还有多对一联系n:1。所谓多对一联系,是指实体E中的任意一个实体最多与E中的12一个实体相联系,但E中的任意一个实体可以与E中的任意数目的21实体相联系,则称E到E是多对一的联系。E到E的多对一联系也1212可以看成是E到E的一对多联系。21

③ m:n(多对多)联系。对于任意两个实体E和E,若E中的每121个实体,可以与E中的任意数目(0,2,3,…,n)的实体相联系,2E中的每个实体也和E中的任意数目(0,2,3,…,m)的实体相21联系,则称E和E是多对多联系,简记为m:n联系。12

多对多联系在现实生活中是很多的,如师生关系、学生与图书、供应商与生产厂家、商场与货物等都属于多对多联系。

E-R模型的图示法是:实体集用矩形表示,属性用椭圆形表示,联系用菱形表示。图1-3就是学生选课系统E-R图。图1-3 学生选课E-R图1.1.3 关系模型

1.关系模型中的几个术语(1)字段(field)

信息世界中的“属性”,就是数据世界中的“数据项”。从数据库的角度讲,数据项就是字段;从表格的角度讲,数据项称为列。例如,学生的学号、姓名、性别和专业就是字段名。

字段和属性一样,也用型和值表示。由此可见,字段、属性、数据项、列这些术语,所描述的对象是相同的,只是从不同角度对对象进行描述而已。(2)记录(record)

字段的有序集合称为记录。在关系模型中,记录称为元组;在表中,记录称为行;在概念模型中称为实体。换句话说,实体、记录、元组和行分别是从不同的角度描述同一对象的术语。记录也由型和值来描述:记录型是字段型的集合,记录值是字段值的集合。(3)表(table)

记录的集合称为表。记录的型和值构成了关系数据库的基本单位,即表。表也分为型和值,表的型也称关系模式,或称表结构,由一系列字段型组成。(4)关键字(keyword)

关键字能够唯一确定记录的字段或字段的集合。有了关键字就可很方便地使用指定的记录。(5)关系数据库(Relational Database)

这是由若干表组成的集合。也就是说,关系数据库中至少有一个表。在实际应用中,关系数据库通常是由有着一定关系的若干表组成的。在关系数据库系统中,关系是相对稳定的。因数据库中的数据需要不断更新,故关系数据是不断变化的。

2.关系模型的优点

关系模型是建立在严格的数学概念基础上的,每个关系都用一张表格来描述,字段、记录描述得很清楚,更重要的是,可以用关系的性质来衡量关系。

① 关系规范化,即每个数据项(即字段)都是一个不可分的数据单元。

② 概念简单,数据结构简单、清晰,用户易懂易用。

③ 存取路径对用户透明,数据的独立性高,安全保密性强。

3.关系操作

关系操作是基于关系模型的基础操作,这是数据库操作中的一部分。这里将介绍关系数据库中最常用的3种关系操作,即投影、选择和连接。(1)投影(projection)

从表中选择若干属性的操作称为投影。例如,从“学生信息”表中选择属性“学号”、“姓名”、“性别”的操作。(2)选择(selection)

从表中选择若干元组(行)的操作称为选择。选择是对一个关系表的记录进行选择,把符合某个条件的记录集选择出来,并重新构建一个原表的子集。(3)连接(join)

生成一组新的元组,新元组的属性来自两个或两个以上的元组。连接是按照两个关系表中相同字段间的一定条件对两个关系表中的记录进行选择而形成新的记录集。在进行连接操作时,要特别注意连接条件,否则会造成连接结果元组各属性间张冠李戴。

除上述3种基本操作外,关系数据库还提供了不同表间元组的并、交、差等集合运算。在进行并、交、差等集合运算时,要求参加运算的两个表具有相同的属性结构,即表的元组属性名和属性取值范围都相同。设R、S是两个具有相同属性结构的表,对这几种运算的意义简要说明如下。

① 并(∪)运算:R、S表进行并运算的结果是一个表,记为R∪S。两个相同关系的并是这两个关系的元组组成的集合。例如,有两个结构相同的学生关系R和S,分别存放两个班的学生信息,把第2个班的学生记录追加到第1个班的记录后面,这就是两个关系的并运算。

② 交(∩)运算:R、S表进行交运算的结果是一个表,记为R∩S。两个结构相同的关系R和S,它们的交是既属于R又属于S的元组组成的集合,即交运算的结果是R和S的共同元组。例如,有参加计算机课外小组的学生关系R,还有参加机器人设计课外小组的学生关系S,求参加了两个课外小组的运算,这就是两个关系R和S的交运算。

③ 差(-)运算:对 R、S 表进行差运算的结果依然是一个表,记为 R-S。有两个结构相同的关系R和S,R和S差的结果是属于R但不属于S的元组组成的集合,即差运算的结果是从R中去掉S中的元组。例如,有参加计算机课外小组的学生关系R,还有参加机器人设计课外小组的学生关系 S,求参加了计算机课外小组但没有参加的机器人设计课外小组的运算,所采用的运算就是差的运算。

④ 广义笛卡儿积(×)运算:设关系R和S的属性个数分别为n、m,则R和S的广义笛卡儿积是一个有(n+m)列的元组的集合。每个元组的前n列来自R的一个元组,后m列来自S的一个元组,记为R×S。

根据笛卡儿积的定义:有n个属性R及m个属性S,它们分别有p、q个元组,则关系R与S经笛卡儿积记为R×S,该属性个数是n+m,元组个数是p×q,由R与S的有序组合而成。【例1.1】 有两个关系R和S,分别进行并、差、交和广义笛卡儿积运算,其结果如下。

4.关系中的数据约束

数据完整性约束是用来确保对数据的准确性和一致性的。数据完整性约束包括实体完整性约束、参照完整性约束和用户定义的完整性约束。

① 实体完整性约束:要求关系的主键中属性值不能为空值,因为主键具有确定元组的唯一性。

② 参照完整性约束:关系之间相互关联的基本约束,不允许关系引用不存在的元组,即在关系中的外键要么是所关联关系中实际存在的元组,要么为空值。

③ 用户定义的完整性约束:反映某一具体应用所涉及的数据必须满足的语义要求。例如,某个属性的取值范围为0~100。

1.2 Visual FoxPro 6.0系统概述

根据不同的数据模型可开发出不同的数据库管理系统,基于关系模型开发的数据库管理系统属于关系数据库管理系统。Visual FoxPro 6.0就是以关系模型为基础的关系数据库管理系统。

1.数据库管理系统概述

由于关系数据库管理系统的主要特点是简单灵活,数据独立性高,理论严格,因此目前市场上的数据库管理系统(DataBase Management System,DBMS)绝大部分是关系型的。

DBMS是在操作系统(Operation System,OS)支持下运行的,是数据库系统的核心软件。DBMS向用户提供数据操作语言,支持用户对数据库中的数据进行查询、编辑和维护等。

在关系数据库领域中有许多DBMS,比较著名的有dBASE、FoxBASE、FoxPro、Sybase、Oracle、Unify、SQL Server、Access和DB2等。这些DBMS分为两类:一类属于大型数据库管理系统,如Oracle、Sybase、DB2、、Unify和SQL Server;另一类属于小型数据库管理系统,如Visual FoxPro、Access、Clipper、dBASE等。大型DBMS中也有许多经过简化而成为微型机上的版本,如Oracle、Sybase、Unify。大型DBMS需要专人管理和维护,性能比较强,一般被应用于大型数据场所,如飞机订票系统、银行系统等。微型机数据库管理系统功能相对简单,提供的数据库语言都具有“一体化”的特点,即集数据定义语言和数据操作语言于一体,容易掌握,使用也比较方便,因而被广泛使用。

2.Visual FoxPro 6.0数据库管理系统的特点

微机数据库管理系统已由最初的dBASE经FoxBASE、FoxPro for DOS、FoxPro for Windows发展到Visual FoxPro 9.0。Visual FoxPro的功能强大,操作灵活。数据库应用程序的设计方法正在经历一次程序设计思想方面的变革,即从广泛采用的面向过程的结构化程序设计方法发展到面向对象的由事件驱动的程序设计方法。

Visual FoxPro 6.0是微软公司开发的一个32位的数据库管理系统,是自含型数据库管理系统,是解释型和编译型混合的系统。它能够以解释的方式定义、操作数据库,也可将操作过程编写为程序进行编译,脱离系统直接运行。下面介绍Visual FoxPro 6.0数据库管理系统的主要特点。(1)提供面向对象的由事件驱动的应用程序设计方法

早期的FoxPro等采用面向过程的结构化程序设计方法,Visual FoxPro 6.0提供了面向对象的由事件驱动的程序设计方法。采用该方法开发数据库应用软件不仅简化了设计,并且用户界面操作灵活、样式美观。

Visual FoxPro 6.0仍然支持标准的面向过程的程序设计方式,更重要的是它提供真正的面向对象程序设计(Object-Oriented Programming,OOP)的能力。借助Visual FoxPro 6.0的对象模型,用户可以利用面向对象程序设计的所有功能,包括继承性、封装性、多态性和子类。这一方面可以减少用户的编程工作量,另一方面加快了程序的开发过程。(2)提供可视化设计工具

为提高应用程序的设计效率,减轻设计人员劳动强度,Visual FoxPro 6.0提供了用于应用程序开发的各种设计器、向导、工具栏、菜单和生成器。这些设计工具的可视化使尚不具备应用程序设计技术的广大用户,具有易于获得开发应用程序的能力。(3)增强了项目及数据库管理功能

Visual FoxPro 6.0在创建项目的同时,生成了该项目的项目管理器,由它全面管理项目中的数据库、应用程序及文档等,使数据库的应用和开发更加方便。其数据库的管理功能也更加强大,提供了过去只有在大型计算机的数据库管理系统中才具有的功能,如设置表字段的默认值、字段和记录的有效性规则,以及表间记录的参照完整性规则等,因此极大地提高了数据的安全性。

Visual FoxPro 6.0还有许多其他方面的功能特点,在此不一一列举。

3.Visual FoxPro 6.0的技术指标

Visual FoxPro 6.0作为一个关系型数据库,其主要技术指标如表1-2所示。表1-2 Visual FoxPro 6.0的主要技术指标续表

4.Visual FoxPro 6.0的文件类型

在计算机中,数据是以文件的形式存放在磁盘上的。文件的管理采用了目录树的结构。为了便于查找,每个文件有一个确切的文件名称及其存放该文件的目录。Visual FoxPro 6.0同样采用这种方式来存放文件。Visual FoxPro 6.0默认的工作目录是C:\Program Files\Microsoft Visual Studio\Vfp98;在操作中为了方便,用户可以改变默认的工作目录。

Visual FoxPro 6.0中常用的文件类型如表1-3所示。表1-3 Visual FoxPro 6.0常用文件类型

5.Visual FoxPro 6.0的启动与退出(1)启动

软件安装完成之后,会在“程序”菜单中启动添加相应菜单项。启动的方法是执行“开始|程序|Microsoft Visual FoxPro 6.0|Microsoft Visual FoxPro 6.0”命令。

若经常使用Visual FoxPro 6.0,可为该软件在桌面上创建一个快捷方式图标。操作方法是在“程序”菜单中,选择“Visual FoxPro 6.0”项的有关菜单项,然后右击,系统会弹出一个快捷菜单,选择“发送到|桌面快捷方式”选项,单击之后,就将该软件的图标发送到桌面上。此后,启动Visual FoxPro 6.0只要在桌面上双击该图标即可。(2)退出

退出Visual FoxPro的方法有多种,常用的有:① 在命令窗口中输入命令Quit,然后按回车键;② 执行系统菜单的“文件|退出”命令;③ 单击系统主窗口右上角的“关闭”按钮。

需指出的是,按正常操作步骤退出Visual FoxPro 6.0,将会自动保存缓冲区中尚未存入数据库中的数据,并完成表文件、数据库及项目等的关闭操作。如果非正常或意外地退出Visual FoxPro 6.0,就可能丢失这些未保存的数据,因此,一定要按正常操作步骤退出Visual FoxPro 6.0。

习题1

1.1 思考题

1.以实例说明数据、信息和数据处理。

2.文件系统和数据库系统有何不同?

3.满足哪些条件的数据库可称为关系型数据库?

4.试举例说明什么是字段、字段值、记录、表。

5.目前常用的数据库管理系统软件主要有哪些?

1.2 选择题

1.数据模型是将概念模型中的实体及实体间的联系表示成便于计算机处理的一种形式。数据模型一般有关系模型、层次模型和()。

(A) 网络模型 (B) E-R模型 (C) 网状模型 (D) 实体模型

2.数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)之间的关系是()。

(A) DBMS包括DB和DBS (B) DBS包括DB和DBMS

(C) DB包括DBS和DBMS (D) DBS就是DB,也就是DBMS

3.Visual FoxPro是一种关系数据库管理系统。所谓关系,是指()。

(A) 表中各条记录彼此有一定的关系 (B) 表中各个字段彼此有一定的关系

(C) 一个表与另一个表之间有一定的关系 (D) 数据模型符合满足一定条件的二维表格式

4.关系数据库管理系统的3种基本操作运算不包括()。

(A) 比较 (B) 选择 (C) 连接 (D) 投影

5.在有关数据库的概念中,若干记录的集合称为()。

(A) 字段 (B) 文件 (C) 数据项 (D) 数据表

6.现实世界中的事物(对象或个体),在数据世界中则表示为()。

(A) 记录 (B) 文件 (C) 数据项 (D) 数据表

7.如果要改变一个关系中属性的排列顺序,应使用的关系运算是()。

(A) 重建 (B) 选择 (C) 连接 (D) 投影

8.一个关系是一张二维表。在Visual FoxPro 6.0中,一个关系对应一个()。

(A) 字段数据 (B) 记录 (C) 数据库文件 (D) 索引文件

9.在已知教学环境中,一名学生可以选择多门课程,一门课程可以被多名学生选择,这说明学生记录型与课程记录型之间的联系是()。

(A) 一对一 (B) 一对多 (C) 多对多 (D) 未知

10.用户启动Visual FoxPro后,若要退出Visual FoxPro回到Windows环境,可在命令窗口中输入()命令。

(A) QUIT (B) EXIT (C) CLOSE (D) CLOSE ALL

11.扩展名为.dbc的文件是()。

(A) 表单文件 (B) 数据库表文件 (C) 数据库文件 (D) 项目文件

12.Visual FoxPro 6.0是一个()位的数据库管理系统。

(A) 8 (B) 16 (C) 32 (D) 64

13.关系数据库管理系统所管理的关系是()。

(A) 一个.dbf文件 (B) 若干二维表 (C) 一个.dbc文件 (D) 若干.dbc文件

14.在关系数据库中,二维表的列称为属性,二维表的行称为()。

(A) 元组 (B) 数据项 (C) 元素 (D) 字段

15.将一个关系数据库文件中的各条记录任意调换位置将()。

(A) 不会影响库中数据的关系 (B) 会影响统计处理的结果

(C) 会影响按字段索引的结果 (D) 会影响关键字排列的结果

16.下列关于关系型数据库的正确描述是()。

(A) 记录和元组都对应于二维表中的一行 (B) 属性和字段都对应于二维表中的一列

(C) 字段组成记录,记录组成数据表 (D) 以上均正确

17.数据库系统与文件系统的主要区别是()。

(A) 文件系统简单,而数据库系统复杂

(B) 文件系统只能管理少量数据,而数据库系统能管理大量数据

(C) 文件系统只能管理数据文件,而数据库系统能管理各种类型的文件

(D) 文件系统不能解决数据冗余和数据独立性问题,而数据库系统则可以

18.对关系S和关系R进行集合运算,结果中既包含S中的元组也包含R中元组,这种集合运算称为()。

(A) 并运算 (B) 交运算 (C) 差运算 (D) 积运算

19.对于现实世界中的事物的特征,在实体—联系模型中使用()。

(A) 属性描述 (B) 关键字描述 (C) 二维表格描述 (D) 实体描述

20.从关系模型中指出若干属性组成新的关系的操作,称为()。

(A) 连接 (B) 投影 (C) 选择 (D) 索引

21.对于“关系”的描述,正确的是()。

(A) 同一个关系中允许有完全相同的元组

(B) 在一个关系中元组必须按关键字升序存放

(C) 在一个关系中必须将关键字作为该关系的第一个属性

(D) 同一个关系中不能出现相同的属性

22.E-R图用于建立()。

(A) 概念模型 (B) 逻辑模型 (C) 物理模型 (D) 实际模型

23.下列叙述中正确的是()。

(A) 数据库是一个独立的系统,不需要操作系统的支持

(B) 数据库系统具有高共享性和低冗余性

(C) 数据库管理系统就是数据库系统

(D) A,B,C都不对

24.设有如下面的表所示的关系,则下列操作中正确的是()。

(A) T=R∩S (B) T=R∪S

(C) T=R×S (D) T=R/S

25.下列叙述中正确的是()。

(A) E-R图能够表示实体集之间一对一的联系、一对多的联系、多对多的联系

(B) E-R图只能表示实体集之间一对一的联系

(C) E-R图只能表示实体集之间一对多的联系

(D) 用E-R图表示的概念数据模型只能转变为关系数据模型

1.3 填空题

1.数据库系统的核心是_____________。

2.关系是具有相同性质的_____________的集合。

3.数据库管理系统常见的数据模型有3种:层次模型、网状模型和_____________模型。

4.实体与实体之间的联系有3种,即一对一联系、一对多联系和_____________。

5._____________是数据库的最小逻辑单位。

6.对关系进行选择、投影或连接运算后,运算的结果仍然是一个_____________。

7.如果一个工人可以管理多个设备,而一个设备只能被一个工人管理,则实体“工人”与实体“设备”之间存在______________的管理。

8.在关系模型中,把数据库看成一个二维表,每个二维表称为一个_____________。

9.在关系模型中,把数据库看成一个二维表,表中的每列称为一个_____________,相当于记录中的一个数据项。

10.在数据库设计中,设计概念模型的有利工具有_____________。

第2章 Visual FoxPro 6.0基础知识

本章要点:

Visual FoxPro 6.0的用户界面

Visual FoxPro 6.0的工作方式

Visual FoxPro 6.0的项目管理器

Visual FoxPro 6.0的设计器

Visual FoxPro 6.0的向导

Visual FoxPro 6.0的生成器

Visual FoxPro 6.0为应用程序开发者提供了一系列的可视化开发工具,给用户的开发带来了极大的方便。

2.1 Visual FoxPro 6.0的用户界面

Visual FoxPro 6.0为用户提供了Windows风格的窗口、菜单工作方式,利用这种方式,用户可以方便、快捷地使用Visual FoxPro 6.0数据库。(1)窗口

当用户正常启动Visual FoxPro 6.0后,进入如图2-1所示的Visual FoxPro 6.0窗口。(2)工具栏

图2-1中的工具栏是Visual FoxPro 6.0的常用工具栏,用户可根据需要选择其他工具栏,其操作为:执行系统菜单的“显示|工具栏”命令,出现如图2-2所示的对话框,从中选择所需的工具栏,单击“确定”按钮,该工具栏就会出现在窗口中。图2-1 Visual FoxPro 6.0窗口图2-2 “工具栏”对话框(3)改变Visual FoxPro 6.0默认设置

如果用户没有改变Visual FoxPro 6.0的默认设置,Visual FoxPro 6.0会按系统默认设置显示相关的数据。例如,日期按美语格式显示(即11/23/98是按月月/日日/年年显示)、小数的位数为2、每星期开始的时间是星期日。执行系统菜单中的“工具|选项”命令,出现如图2-3所示的“选项”对话框,从中可以改变默认设置。图2-3 “选项”对话框中的“区域”选项卡

用户可以改变Visual FoxPro 6.0默认的工作目录,操作如下。

① 执行系统菜单中的“工具|选项”命令。

② 在“选项”对话框中选择“文件位置”选项卡,如图2-4所示。

③ 在“文件类型”和“位置”列表框中选择“默认目录”,再单击“修改”按钮。

④ 在如图2-5所示的“更改文件位置”对话框中输入新的目录路径,如“E:\VFP”,或通过按钮选择新目录,这样就把Visual FoxPro 6.0默认的工作目录改变为E:\VFP。图2-4 “选项”对话框中的“文件位置”选项卡图2-5 “更改文件位置”对话框(4)敏感菜单

Visual FoxPro 6.0在运行过程中,随着用户操作内容的变化,菜单栏上的菜单项会随着操作内容的变化而发生动态改变,这就称为敏感菜单。例如,在没有打开“菜单设计器”之前,菜单栏中有“格式”菜单项,但打开“菜单设计器”后,“格式”菜单项消失了,出现了“菜单”菜单项,如图2-6所示。图2-6 敏感菜单

2.2 Visual FoxPro 6.0的工作方式及命令语法规则

Visual FoxPro 6.0支持两种不同的工作方式,即交互方式和程序执行方式。有时,使用Visual FoxPro 6.0的一条命令,可以快速地完成一件复杂的任务。一条命令的功能可能相当于一段程序所能完成的功能。2.2.1 Visual FoxPro 6.0的工作方式

1.交互方式

交互方式又可分为可视化操作和命令操作方式。可视化操作主要包括菜单操作和设计器、向导、生成器等工具类操作。(1)菜单操作方式

系统将若干命令做成菜单接口,用户可以通过菜单的选择来操作。这样用户不必记忆命令的具体格式,而是通过对话来完成相应的命令输入操作,从而达到按指定要求操作数据库的目的。这种操作方法无须编写程序,就可完成数据库的操作和管理。(2)工具操作方式

在Visual FoxPro系统中提供了许多工具,并可分为设计器、向导、生成器三种交互式的可视化开发工具。这些工具使创建表、表单、数据库、查询和报表以及管理数据变得轻而易举。选择某一工具后,根据系统提供的一系列选择和对话框,用户可以很方便地进行操作。另外,为了方便用户,系统将菜单中的一些常用功能通过工具栏的方式放置在屏幕上,单击相应的工具图标就可以进行操作。(3)命令操作方式

所谓命令操作是指在命令窗口中输入一个命令就可以进行操作。例如,创建一个表单,输入“CREATE FORM”命令就可以实现。命令操作为用户提供了一个直接操作的手段,这种方法能够直接使用系统的各种命令和函数,有效地操作数据库,但需要熟练掌握命令和函数的细节。通常,在测试一个命令和函数时,需要用命令操作方式。

2.程序操作方式

所谓程序操作,是指将多条命令编写成一个程序,通过运行这个程序达到操作数据库的目的。开发应用系统时需要编写程序,以提供更简洁的画面交给用户去操作。Visual FoxPro的程序设计与其他高级语言的程序设计是一样的。

以上几种操作方式可以相互补充,既可以在程序中增加菜单操作,也可以在菜单中增加程序操作。当然,命令操作是这些操作方法的基础。2.2.2 命令语法规则

在Visual FoxPro 6.0的操作过程中,除了使用菜单操作之外,主要是通过命令方式操作的,这些命令都有固定的格式和语法。

1.命令结构

Visual FoxPro 6.0有许多命令和函数。每条命令都有确定的格式,其一般格式如下:

下面以LIST|DISPLAY命令为例,说明命令及其子句。

语法:

功能:在Visual FoxPro主窗口或用户自定义窗口中,显示当前表有关的信息。

说明:命令都是由命令动词和子句(选择项)构成的。该命令的动词是LIST|DISPLAY,它是一个固定关键字,可简写,但不可省略,方括号内的内容都是子句。(1)命令动词

所有命令都以命令动词开头,命令动词是VFP命令的名字,决定了命令的性质。命令动词一般为一个英文动词,该动词的英文含义表示要执行的功能。当一个动词的字母超过4个时,从第5个字母开始可以省略。例如,DISPLAY可以写为DISP。从程序可读性考虑,不提倡省略命令动词的写法。(2)Scope(范围)子句

Scope子句用来表示命令涉及的记录范围,其限定方法如下。

① RECORD 表示指定第N个记录。

② NEXT 表示从当前记录开始的N个记录。

③ ALL 表示数据库的所有记录。

④ REST 表示从当前记录开始到最后一个记录的所有记录。(3)FIELDS子句

该子句说明数据库的字段名称,一般后面跟一个FieldList(字段名列表,简称字段表,它由一个或多个由逗号隔开的字段名组成)。在字段表中,每个字段名之间必须用逗号隔开。如果不选择这个子句,则表示选择所有的字段。(4)FOR/WHILE子句

这两条子句后面一般跟一个逻辑表达式lExpression,即其结果值必须为真(.T.)或假(.F.)。这个条件短语表示筛选出满足条件表达式(即表达式的结果为.T.)的记录,以实施命令操作。当FOR lExpression和WHILE lExpression在同一条命令语句中使用时,系统规定WHILE子句优先。这两条子句的差别是:FOR子句能在整个数据表文件中筛选出符合条件的记录;而WHILE子句从当前记录开始顺序寻找出第1个满足条件的记录,再继续找出紧随其后满足条件的记录,一旦找到一个不满足条件的记录,则终止寻找。

2.命令书写规则

Visual FoxPro 6.0的命令有的比较短,有的则相当长,书写时应遵循如下规则。

① 任何命令必须以命令动词开头,后面的多个子句通常与顺序无关,但必须符合命令格式的规定。

② 用空格分隔各子句。

③ 一条命令的最大长度为254个字符,一行写不下时,可用分行符“;”(英文分号)在行尾分行,然后在下行继续书写。

④ 为了保持程序的可读性,命令动词一般不用缩写。

⑤ 命令中的字符大小写可以混合使用,不区分大小写。为了区分命令关键字和其他内容,可以将命令关键字大写,而其他内容小写(说明:为了全书统一和美观,本书全部采用大写)。

⑥ Visual FoxPro 6.0中没有规定的系统保留字,但用户在选择变量名、字段名和文件名时应尽可能不使用系统中的命令动词和其他系统已经使用过的名字,以免程序在运行时发生混乱。

2.3 Visual FoxPro的项目管理器

使用Visual FoxPro时将创建很多不同格式的文件。为了方便地管理这些文件,Visual FoxPro提供了“项目管理器”,为用户提供了一个方便、简单的可视化工作平台,用以组织和处理表、数据库、表单、查询、视图、报表和其他文件。在“项目管理器”中,只要通过鼠标的简单操作就可实现对文件的创建、修改和删除等操作。

当开发应用程序时,最好将应用程序文件都组织到项目管理器中,这样便于查找。通过项目管理器可以将应用程序系统编译成一个扩展名为.app的应用文件或.exe的可执行文件。用DO命令可以执行.app文件;应用程序中的所有.prg文件、报表文件、标签文件及不需要修改的表和索引文件可以组合在一个文件中。因此,项目管理器是Visual FoxPro中处理数据和对象的主要组织工具,是Visual FoxPro系统的控制中心。2.3.1 项目管理器的使用

1.项目管理器的选项卡“项目管理器”窗口有6个选项卡,分别为“全部”、“数据”、“文档”、“类”、“代码”和“其他”,如图2-7所示。其中“全部”选项卡用于集中显示该项目中的所有文件,是其他5个选项卡内容的集中显示;“数据”、“文档”、“类”、“代码”和“其他”5个选项卡用于分类显示各种文件。当要处理项目中某一特定类型的文件或对象时,可选择相应的选项卡。图2-7 项目管理器

在建立表和数据库,以及创建表单、查询、视图和报表时,所要处理的主要是“数据”和“文档”选项卡中的内容。(1)“数据”选项卡

该选项卡包含了一个项目中的所有数据,如数据库、自由表、查询和视图等。

数据库是表的集合,一般通过公共字段彼此关联。使用“数据库设计器”可以创建一个数据库。数据库文件的扩展名为.dbc。

自由表存储在以.dbf为扩展名的文件中,它不是数据库的组成部分。

查询是查找存储在表中特定信息的一种方法。利用“查询设计器”可以设置查询的格式,该查询将按照输入的规则从表中提取记录。查询被保存为带.qpr扩展名的文件。

视图是特殊的查询,它不仅可以查询记录,还可更新记录。通过更改由查询返回的记录,可用视图访问远程数据或更新数据源。视图只能存在于数据库中,它不是独立的文件。(2)“文档”选项卡

该选项卡中包含了处理数据时所用的3类文件,即输入和查看数据所用的表单、打印表和查询结果所用的报表及标签。

表单用于显示和编辑表的内容。

报表是一种文件,它告诉Visual FoxPro如何设置查询和从表中提取结果,以及如何将这些结果打印出来。

标签是打印在专用纸上的带有特殊格式的报表。

通过“文档”选项卡可以很方便地创建、编辑和删除这3类文件。(3)“类”选项卡

使用Visual FoxPro的基类就可以创建一个面向对象的事件驱动程序。如果自己创建了实现特殊功能的类,可以将其存放在某一指定的类库中,需要的时候随时调用。也可以在“项目管理器”中添加或修改已有的类库,“项目管理器”提供的这种用于创建和管理类及类库的方法极大地方便了面向对象的编程。(4)“代码”选项卡

该选项卡包括三大类程序,其扩展名分别为.prg的程序文件、函数库API Librares和应用程序.app文件。一般应用系统所需要的程序文件可以在这里编制;也可以通过“项目管理器”向应用系统引进应用程序接口函数库,该应用程序接口文件的扩展名为.fll,通过该文件来向应用系统提供一些外部函数的调用;还可以向项目添加一些扩展名为.app和.exe的服务程序,作为应用系统的一部分。(5)“其他”选项卡

该选项卡包括文本文件、菜单文件和其他文件。在该选项卡中,用户可以为应用程序建立自己的菜单系统,通过菜单组织各个功能模块的调用,也可以向“项目管理器”添加一些应用程序所需的文本文件、位图文件、光标文件和图标文件等。

2.项目管理器窗口的命令按钮“项目管理器”窗口中的命令按钮是动态的,当选择不同对象时会有不同的命令按钮排列。“新建”按钮——创建一个新文件或对象,其作用与执行“项目|新建文件”命令相同。新文件或对象的类型与当前选定的类型相同。“添加”按钮——把已有的文件添加到项目中,其作用与执行“项目|添加文件”命令相同。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载