1、Visual FoxPro程序设计(等级考试版),戴仕明编著 清华大学出版社,主讲人:杨乐江西农大计算机与信息技术学院 Email:,第1章 Visual FoxPro基础,Visual FoxPro(VFP)是当今用得最广的微机数据库管理系统之一,它是计算机类专业C/S(客户机/服务器)结构重要的前端开发工具,也是非计算机专业计算机等级考试(二级)最为普及的课程内容之一。,内容提要,1.1 数据库基础知识 1.2 关系型数据库 1.3 数据库设计基础 1.4 Visual FoxPro系统概述 1.5 项目管理器 1.6 Visual FoxPro向导、设计器、生成器简介 1.7 典型例题解
2、析 1.8 小型案例实训1.9 本章小结,1.1 数据库基础知识,随着计算机技术的发展,计算机已成为人们处理数据的得力助手。 数据库技术用于数据的处理,一方面促进了计算机技术的高速发展,另一方面也形成了专门的信息处理理论及数据库管理系统。 数据库技术是信息社会的重要基础技术之一,是计算机科学技术领域中发展最为迅速的重要分支。 本节主要介绍数据库基础知识,包括数据的概念、数据管理的发展,数据库系统的概念、组成、特点,数据模型等。,1.1.1 计算机数据管理的发展,1数据与数据处理 数据(Data)是客观事物的符号表示,是反映客观事物属性的记号,是信息(Information)的载体。 数据的含义
3、主要包括以下两个方面: 一是描述事物特性的数据内容,也就是通常所说数据的“值”。 二是存储在某一种媒体上的数据形式,也就是通常所说数据的“类型” 。,数据的分类:数值型数据,字符型数据,特殊型数据。 数据处理就是将数据转换成信息的过程,包括数据的收集、整理、存储、分类、排序、检索、维护、加工、统计和传输等一系列活动。通过处理数据可以提取对人们有用的信息,作为决策的依据。 数据与信息:信息与数据是密切相关的,数据是信息的载体,信息是数据的内涵。,2计算机数据管理计算机通过对数据进行收集、整理、组织、存储、维护、统计、传输等一系列的工作实现对数据的管理。计算机对数据进行处理通常分为5个环节。 (1
4、) 对原始数据的收集 (2) 数据的规范化及编码 (3) 数据输入 (4) 数据处理 (5) 数据输出,计算机数据管理发展的几个阶段 (1) 人工管理 (2) 文件系统 (3) 数据库系统 (4) 分布式数据库系统 (5) 面向对象数据库系统,1.1.2 数据库系统,1数据库系统的相关概念 (1) 数据库数据库(DataBase,DB)是指在数据库系统中以一定的方式将相关数据组织在一起,存储在外部存储设备上形成的、为多个用户共享、与应用程序相互独立的相关数据集合。 数据库不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。,(2) 数据库应用系统数据库应用系统是指系统开发人员利用数据库系
5、统资源开发出来的,面向某一类实际应用的应用软件系统。 (3) 数据库管理系统数据库管理系统(DataBase Management System,DBMS)是用于建立、使用和维护数据库的系统软件。数据库管理系统对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。 (4) 数据库管理员数据库管理员(DataBase Administrator,DBA)是负责全面管理和实施数据库控制及维护的技术人员。,2数据库系统的组成 数据库系统(DataBase System,DBS )是一个计算机应用系统。简单的说,它是一个引入了数据库技术的计算机系统。 数据库系统的组成(部分):计算机硬件系统数据
6、库数据库管理系统相关软件数据库管理员和用户,3数据库系统的特点 (1) 具有统一的数据控制功能 (2) 具有较高的数据独立性 (3) 采用特定的数据模型 (4) 实现数据共享,减少数据冗余,1.1.3 数据模型,1实体的描述 (1) 实体(Entity) 客观存在、可以相互区别的事物称为实体。 (2) 实体的属性(Attribute) 描述实体的特性称为属性。,1实体的描述 (3) 实体集和实体型 属性值的集合表示一个实体,例如(9921102,李建,21,男)。 而属性的集合表示一种实体的类型,称为实体型,例如,(学号,姓名,年龄,性别)。 同类型的实体的集合称为实体集。,2实体间联系及联系
7、的种类实体与实体之间相对应的关系称为联系,它反映了现实世界事物之间的相互关联。例如,一位乘客可以乘坐若干辆汽车,同一辆汽车也可以被若干个乘客乘坐。 实体间联系的种类是指一个实体型中可能出现的每一个实体与另一个实体型中多少个具体实体存在联系。 实体间的联系可以归结为以下3种类型: (1)一对一联系(One-to-One Relationship,简记为1:1) (2)一对多联系(One-to-Many Relationship,简记为1:m)(3)多对多联系(Many-to-Many Relationship,简记为m:n),3数据模型简介数据模型是指反映客观事物及客观事物间联系的数据组织的结构
8、和形式。 数据模型主要有以下3种: (1) 层次模型 (2) 网状模型 (3) 关系模型关系模型用二维表结构来表示实体和实体间联系。相对于层次模型和网状模型数据库,关系型数据库属于较新的数据库类型。其本质区别在于数据描述的一致性,模型概念比较单一。,1.2 关系型数据库,从20世纪80年代以来,新推出的数据库管理系统几乎都支持关系模型(DBase,SyBase,SQL,Oracal)。 VFP就是一种关系型数据库管理系统,1.2.1 基本概念,关系的几个术语 (1)关系:一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都有一个关系名。 在Visual FoxP
9、ro中,一个关系对应于一个表文件,简称为表,关系名则对应于表文件名或表名,表文件的扩展名为“.dbf”。 例如:,学生基本信息表,课程表,成绩表,电子051班C语言成绩登记表,而下面表格不是一个关系,注:上表是个表中表,其中的成绩列又分成了期中考试、期末考试和总评成绩三列。,1.2.1 基本概念,(5)关键字:关系中能唯一区分、确定不同元组的属性或属性组合,称为该关系的一个关键字。单个属性组成的关键字称为单关键字,多个属性组成的关键字称为组合关键字。 (6)候选关键字:凡在关系中能够唯一区分、确定不同元组的属性或属性组合,称为候选关键字。 (7)主关键字:在候选关键字中选定一个作为关键字,称为
10、该关系的主关键字。关系中主关键字是唯一的。,(8)外部关键字:关系中某个属性或属性组合并非本表的关键字,但却是另一个关系的关键字。当A表的主关键字被包含到B表中时,A表的关键字就称为B表的外部关键字。,关系的基本特点: (1)关系必须规范化,属性不可再分割; (2)在同一关系中不允许出现相同的属性名; (3)在同一关系中元组及属性的顺序可以任意; (4)任意交换两个元组(或属性)的位置,不会改变关系模式; (5)在关系中不允许出现相同的两个元组。,以上是关系的基本性质,也是衡量一个二维表格是否构成关系的基本要素。下面表1-1所示的表格不是二维表,不能直接作为关系来存放,去掉表中的“成绩”字段就
11、是一个二维表了。,3实际关系模型在Visual FoxPro中,一个数据库中可以包含有多个表并且这些表之间存在相互联系。两个相互联系的表之间有一个公共的字段名,为了反映各个表所表示的实体之间的联系,公共字段名就起着“桥梁”的作用。,例1.1 部门-员工关系模型和公共字段名的作用。 设公司管理数据库中有以下两个表: 部门(部门号,部门名称,负责人,员工数) 员工(部门号,籍贯,奖金,津贴,姓名,职称,养老保险,医疗保险,员工号,月薪) 通过公共字段,即部门号将部门表和员工表联系起来。,例1.2 学生管理数据库中学生-成绩-课程3表之间的关系模型。,学生和课程这两个实体之间是多对多联系,即把多对多
12、关系分解成两个一对多关系,在VFP中称作“纽带表” 。,注意: 关系模型中的各个关系模式并不是孤立存在的,要使得关系模型正确地反映事物及事物之间的联系,需要设计关系型数据库。 在Visual FoxPro中,一个数据库就是一个实际关系模型,它是存放一个或多个表或视图信息的容器。,1.2.2 关系运算,关系的基本运算主要有两类: (1)传统的集合运算(并差交等) (2)专门的关系运算(选择、投影、连接) 1传统的集合运算 进行并、差、交集合运算的两个关系必须具有相同的关系模式,即两个关系的结构要相同。,2专门的关系运算 关系运算包括选择、投影和连接等。 (1) 选择从一个关系模式中找出满足给定条
13、件的记录的操作称为选择。选择是从行的角度进行的运算。运算的结果构成关系的一个子集,是关系中的部分元组,其关系模式不变。选择运算是从二维表格中选取若干行的操作,即是在表中选取若干条记录的操作。,(2) 投影从关系模式中指定若干个属性组成新的关系称为投影。投影运算从关系中选取若干属性形成一个新的关系,其关系模式中的属性个数比原关系少,或者排列顺序不同,同时也可能减少了某些元组。投影是从列的角度进行的运算,相当于对关系进行垂直分解,关系中的列可以相互交换。运算的结果仍然构成一个关系。,(3) 连接连接是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关系模式。连接过程是通过连接条件来控制的,连
14、接条件中将出现两个关系中的公共属性名,或者具有相同语义,并且可比的属性。在对应的新关系中,包含满足连接条件的所有元组。,选择和投影运算的操作对象只是一个表,属于单目运算,即只对一个关系进行操作。连接运算需要两个表作为操作对象,属于双目运算。两两连接可以实现多个关系的连接。 在连接运算中,按照字段值对应相等的连接操作为等值连接。自然连接是指去掉重复属性的等值连接。,1.3 数据库设计基础,1.3.1 数据库设计步骤,设计数据库的目的是设计出满足用户需求的实际关系模型。,1设计原则 在数据库设计中应遵循以下原则。 (1) 概念单一化原则 (2) 避免在表之间出现重复字段 (3) 表中的字段必须是原
15、始数据和基本数据元素 (4) 用外部关键字保证有关联的表之间的联系,2设计步骤 (1) 需求分析:确定建立数据库的目的。 (2) 确定需要的表:着手把需求信息划分成各个独立的实体。 (3) 确定所需字段:确定在每个表中要保存哪些字段。 (4) 确定联系:对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。 (5) 设计求精:对设计进一步分析,查找其中的错误。创建表,在表中加入几个示例数据记录,看看能否从表中得到想要的结果。,1.3.2 数据库设计过程,1需求分析 用户需求主要包括以下3个方面: 处理需求。 信息需求。 安全性和完整性要求。 2确定需要的表 3确定所需字段 4确定联系
16、5设计求精,1.4 Visual FoxPro系统概述,Visual FoxPro 6.0是可以运行在Windows 95/98/NT/2000/2003/XP/Vista平台的32位数据库开发系统,能充分发挥32位微处理器的强大功能,具有功能强大、可视化强、面向对象等特点。,1.4.1 安装Visual FoxPro 6.0,Visual FoxPro 6.0的功能很强大,但是它对系统的要求并不高:内存在16MB以上,硬盘空间90MB以上,486DX/66MHz以上处理器的系统即可。目前计算机的主流配置远远超出了Visual FoxPro 6.0对系统的要求。 Visual FoxPro 6
17、.0可以从CD-ROM安装也可以在网络上安装。这里仅介绍从CD-ROM安装的方法。,1.4.2 启动和退出Visual FoxPro 6.0,1启动Visual FoxPro 6.0 选择“开始”“程序”Microsoft Visual FoxPro 6.0Microsoft Visual FoxPro 6.0 选项。,2退出Visual FoxPro 6.0 可以采用以下4种方法退出Visual FoxPro 6.0:单击Visual FoxPro 6.0标题栏中的“关闭”按钮。选择“文件”“退出”命令。单击主窗口左上方的狐狸图标,从下拉菜单中选择“关闭”命令,或者按Alt+F4组合键。在命
18、令窗口中输入QUIT命令,然后按Enter键。,1.4.3 Visual FoxPro 6.0的主界面,Visual FoxPro 6.0的工作方式 交互式工作方式可视化操作通过菜单或者单击工具栏中的按钮来实现各种命令功能单命令操作在命令窗口直接输入一条命令,按Enter键后执行该命令 自动化工作方式自动化工作方式又称作程序工作方式,1菜单操作Visual FoxPro 6.0主界面的菜单栏实际上是各种命令的分类组合,菜单栏包括8个菜单: 文件、编辑、显示、工具、程序、项目、窗口、帮助,2命令操作命令窗口在命令窗口中,可以直接输入Visual FoxPro 6.0的各条命令,按Enter键之后
19、便立即执行该命令。显示与隐藏命令窗口有以下3种操作方法: (1)单击命令窗口右上角的“关闭”按钮可以关闭它,然后通过“窗口”“命令窗口”命令可以重新打开。 (2)单击“常用”工具栏中的“命令窗口”按钮,按下则显示命令窗口,弹起则隐藏命令窗口。 (3)按Ctrl+F4组合键隐藏命令窗口,按Ctrl+F2组合键显示命令窗口。,3项目管理器项目管理器是VFP中处理数据和对象的主要组织工具,是VFP的“控制中心”。项目可以是文件、数据、文档,也可以是VFP对象的集合,项目文件以扩展名.pjx及.pjt保存。如图1-8所示是“项目管理器”对话框。,1.4.5 Visual FoxPro 6.0的系统配置
20、,Visual FoxPro 6.0的配置是指系统环境的设置。Visual FoxPro可以使用“选项”对话框或SET命令进行附加的配置设定。,1.5 项目管理器,项目管理器将一个应用程序的所有文件集合成一个有机的整体,为系统开发者提供了极为便利的工作平台。,1.5.1 创建项目,项目是指文件、数据、文档和Visual FoxPro对象的集合,它可以有效地处理数据库、表、表单、菜单、类、程序和其他文件,并且将它们编译成可以独立运行的.app或.exe文件。 1创建新项目 通过“文件”“新建”命令可以创建新项目 具体操作步骤如下:,(1) 选择“文件”“新建”命令,或者单击“常用”工具栏中的“新
21、建”按钮,则打开如下图左图所示的“新建”对话框。 (2) 选中“文件类型”选项组中的“项目”单选按钮,单击“新建文件”按钮,弹出如下图右图所示的“创建”对话框。,(3) 在“创建”对话框中,输入新项目的名称,例如输入“职工管理”。 (4) 单击“保存”按钮,系统就在指定目录位置建立一个名为“职工管理.pjx”的项目文件。,2打开和关闭项目打开项目的操作步骤如下: (1) 选择“文件”“打开”命令,或者单击“常用”工具栏中的“打开”按钮,弹出 “打开”对话框。 (2) 在“文件类型”下拉列表框中选择“项目”选项,然后在文件列表框中单击打开项目所在的文件夹。 (3) 双击要打开的项目,或者选择它,
22、然后单击“确定”按钮,即可打开所选项目。关闭项目单击项目管理器右上角的“关闭”按钮可以关闭打开的项目文件。,3各类选项卡 “项目管理器”对话框共有6个选项卡: 其中“数据”、“文档”、“类”、“代码”、“其他”5个选项卡用于分类显示各种文件,“全部”选项卡用于集中显示该项目中的所有文件。,1.5.2 使用项目管理器,1创建文件如果要创建一个数据库文件,必须先在项目管理器中选择“数据库”选项。 选定文件类型后,单击“新建”按钮选择“新建文件”,打开相应的设计器可以创建一个新文件。 !注意:直接选择“文件”“新建”命令(菜单命令)创建的文件不属于任何项目文件。,2添加文件 添加文件的步骤如下: (
23、1) 选择要添加的文件类型。 (2) 单击“添加”按钮或者选择“项目”“添加文件”命令,在“打开”对话框中选择要添加的文件。 (3) 单击“确定”按钮,新建的文件自动包含在该项目文件中。,注: (1)在VFP中,添加或新建一个文件到项目中并不意味着该文件已经成为项目的一部分(注:项目中的文件分为“包含”和“排除”两种情况)。 (2)某个项目包含某个文件只是表示该文件与项目建立了一种关联。这样做有两大优点:一是一个文件可以包含在多个项目中;二是如果一个文件同时被多个项目所包含,那么在修改该文件时,修改的结果将同时在相应的项目中得以体现。,3修改文件 修改文件的步骤如下: (1) 选择要修改的文件
24、。 (2) 单击“修改”按钮或选择“项目”“修改文件”命令,系统将根据要修改的文件类型打开相应的设计器。 (3) 在设计器中修改选择的文件。 注意:如果被修改的文件同时包含在多个项目中,修改的结果对其他项目也同样有效。,4移去文件 移去文件的步骤如下: (1) 选择要移去的文件。 (2) 单击“移去”按钮或选择“项目”“移去文件”命令。 (3) 在弹出的“移动”对话框中,如果单击 “移去”按钮,系统仅从项目中移去该文件,被移去的文件仍存在于原目录中。如果单击“删除”按钮,系统不仅从项目中移去文件,还将从磁盘中删除该文件。,5操作按钮“浏览”按钮:在“浏览”对话框中打开一个表。通过该按钮浏览表时
25、只能选定一个文件。“打开”和“关闭”按钮:打开或关闭一个数据库。如果选定的数据库已关闭,此按钮变为“打开”;如果选定的数据库已打开,此按钮变为“关闭”。“预览”按钮:在打印预览方式下显示选定的报表或标签。“运行”按钮:执行选定的查询、表单或程序。“连编”按钮:连编一个项目或应用程序。,1.5.3 定制项目管理器,项目管理器的定制 包括:调整“项目管理器”对话框的大小、移动“项目管理器”对话框的显示位置、折叠或拆分“项目管理器”对话框,以及使“项目管理器”对话框中的选项卡永远浮在其他对话框之上。 1移去、缩放和折叠 2拆分项目管理器 单击上箭头折叠项目管理器,然后选择一个选项卡,将它拖离项目管理
26、器。 3停放项目管理器 将项目管理器拖到VFP主窗口的顶部就可以像工具栏一样显示在主窗口的顶部。,1.6 Visual FoxPro向导、设计器、 生成器简介,本节主要介绍Visual FoxPro向导的启动和使用方法、设计器的作用和打开方法,以及生成器的功能和启动。,1.6.1 Visual FoxPro的向导,向导是一种交互式程序,是一种快捷的设计工具。它通过一组对话框依次与用户对话,引导用户分步完成Visual FoxPro 6.0的某项任务。 。,VFP系统中带有的向导超过20个项目向导表向导数据库向导查询向导表单向导报表向导应用程序向导等等,1启动向导的操作通过项目管理器或“文件”菜
27、单创建某种新的文件时,可以利用向导来完成。启动向导有以下4种途径:在项目管理器中选定要创建的文件类型,选择“新建”按钮,在系统弹出的“新建”对话框中单击“向导”按钮。选择“文件”“新建”命令,或者单击工具栏中的“新建”按钮,选择要创建文件的类型,单击相应的向导按钮启动相应的向导。选择“工具”“向导”子菜单,也可以直接访问大多数的向导。单击工具栏中的向导按钮可以直接启动相应的向导。,2使用向导 根据所用向导的类型,每个向导的最后一个界面都会要求提供一个标题,并给出保存、浏览、修改和打印结果的选项。如果需要做出不同的选择来改变结果,可以返回到前边重新进行选择。对向导的结果满意后,应单击“完成”按钮
28、。 3修改向导创建的项 用向导创建表、表单、查询或报表之后,可以用相应的设计工具将其打开,并做进一步的修改。,1.6.2 Visual FoxPro的设计器,Visual FoxPro的设计器是一种用于创建和修改应用系统中各种组件的可视化工具。Visual FoxPro的设计器表现为一个带有选项卡的对话框。利用各种设计器可以使创建表、表单、数据库、查询和报表变得轻而易举。,1.6.2 Visual FoxPro的设计器,1各种设计器数据库设计器表设计器查询设计器视图设计器表单设计器报表设计器菜单设计器类设计器等等,2打开设计器 除了可以使用命令方式打开各种设计器以外,还可以使用以下的任意一种方式打开设计器: (1) 在项目管理器环境下调用 (2) 菜单方式调用 (3) 从“显示”菜单中打开,1.6.3 Visual FoxPro的生成器,生成器也是一种辅助设计工具,表现为一个带有选项卡的对话框,用于简化对表达式、表单、复杂控件和参照完整性代码的创建和修改过程。 通常可以在以下5种情况下启动生成器: 1使用表单生成器创建或修改表单 2对表单中的控件使用相应的生成器 3使用自动格式生成器设置控件格式 4使用参照完整性生成器 5使用应用程序生成器,