学习要点1、数据库的基本术语和概念。2、常用文件类型和数据类型3、VisualFoxPro的命令格式。4、VisualFoxPro文件的基本命名方法。5、常用的文件类型和数据类型以及基本概念。第1章VisualFoxPro6.0概述1.1VisualFoxPro6.0发展概述1.2数据库系统概述1.3常用文件类型和数据类型1.4文件命名方法和命令构成返回第1章VisualFoxPro6.0概述退出1.1VisualFoxPro6.0发展概述1、1986年6月推出了FoxBASE+1.0版2、1987年7月推出了FoxBASE+2.0版3、1988年7月推出了FoxBASE+2.1版4、1992年下半年推出了FoxPro2.5版5、1994年下半年推出了FoxPro2.6版6、1995年6月推出了VisualFoxPro3.07、1996年8月推出了VisualFoxPro5.08、1998年9月推出了VisualFoxPro6.0返回1.2数据库系统概述1.2.1数据库技术的术语1.2.2数据库系统结构1.2.3数据模型退出返回1.2.4关系数据库数据库技术的术语1、数据库:数据库(Database,简记为DB)是长期存储在计算机内、有组织的、统一管理的相关数据的集合。2、数据库管理系统:数据库管理系统(DatabaseManagementSystem,简记为DBMS)是位于用户与操作系统(OS)之间的一层数据管理软件用户DBMSDBOS3、数据库技术:数据库技术是研究数据库的结构、存储、设计、管理和使用的一门软件学科。4、数据库系统:数据库系统(DatabaseSystem,简记为DBS)是实现有组织地、动态地存储大量关联数据、方便多用户访问的计算机硬件、软件和数据资源组成的系统,即它是采用数据库技术的计算机系统。DBS包含DBMS和DB。返回数据库系统结构传统的数据库有3类:层次数据库、网状数据库和关系数据库。它们分别采用树、图和线性表3种不同数据结构。VFP6属于关系数据库关系数据库系统结构:如某学院有:机电工程系、计算机系、化学工程系……每个系通过系代码、系名、系地址、系电话、教研室设置等数据来描述。表示关系数据库要采用线性表形式组织数据。每个系下设若干个教研室,如机电工程系下设应用电子、自动控制、机械制造、制图等教研室;计算机系下设软件工程、计算机应用等教研室;化学工程系下设无机化工、有机化工等教研室。每个教研室有室代码、室名、室电话等数据表现其属性。教研室负责管理教师和学生假设应用电子教研室有何、王、李等老师,有A1、B1、C1等学生;自动控制教研室有寸、黄、陈等老师,有A2、B2、C2、D2等学生,等等。教师用职工号、姓名、性别等描述,学生用学号、姓名、性别等描述。则有表3和表4每一个表称为一个关系;表的每一行称为一条记录,代表一个实体;表的每一列称为字段或数据项,代表实体的一个属性。学生到课程之间的关联关系,如图1-2所示。课程到学生之间的关联关系,如图1-3所示。同时涉及两个方向关系时可采用线性表结构。例如,作如下设计:在前面所举各表基础上增加课程表包括课程号、课程名、开课单位等,结构如表1-5所示。再设计一个如表1-6所示成绩表将表1-4和表1-5联系起来。返回1.2.3数据模型1、数据模型的定义设计数据库系统时,一般先用图或表的形式抽象地反映数据彼此之间的关系,这个过程称为建立数据模型,所建立的图或表及其关系称为数据模型。常用的数据模型一般可分为两类,一是语义数据模型,如实体-联系模型(E-R模型),面向对象模型等;二是经典数据模型,如层次模型,网状模型,关系模型等。2、数据之间的联系一对一联系;一对多联系;多对多联系3、实体-联系模型(Entity-RelationshipModel)该模型是P.PS.Chen于1976年提出的一种概念模型,用E-R图来描述一个系统中的数据及其之间关系。一个学校的系、教研室、教师、学生、课程之间的E-R模型NN1N系代码系名领导室代码室名开课管理学生学号姓名性别所属课程N成绩M11教师教学N姓名性别职工号分数课程号主选教材大纲教研室系N在E-R图中,用长方形表示实体集,在长方形框内写上实体名。用菱形表示实体间联系,菱形框内写上联系名。用无向边把菱形和有关实体相连接,在无向边旁标上联系的类型,如1或M或N。用椭圆形表示实体或联系的属性,如用椭圆形将它与一个相应实体间以无向边相连。实体联系联系的类型属性4、关系数据模型(RelationalModel)用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型。5、面向对象模型(ObjectRelationalModel)用对象、属性、方法来表示实体和实体间联系的模型叫面向对象模型。(1)对象对象是现实世界中实体的模型化。每个对象都有一个惟一的标识符,把状态和行为封装在一起。(2)类将属性集和方法集相同的所有对象组合在一起,构成了一个“类”。一个类可以从层次的直接或间接祖先那里继承所有的属性和方法。返回1.2.4关系数据库1、基本概念(1)关系数据库按关系数据模型组织的数据库是关系数据库,其理论基础是集合代数。按集合代数理论,关系名及其属性序列称为关系模式。例如,一个名为Student的关系,其属性有Student_ID,Name,Sex,Birthday,Classes,Dormitory,Phonenumber,则关系模式可简单写成Student(Student_ID,Name,Sex,Birthday,Classes,Dormitory,Phonenumber)。它的一个属性或若干属性构成的属性组取值的集合称为域,或者说,域是值的集合。关系是一个元素为k(k≥1)的元组集合,即这个关系中有若干个元组,每个元组有k个属性值。若把关系看成是一个集合,则集合中的元素是元组。更直观地理解,可将关系看成是一张二维表格。如表1-8所示是一张Student表。①关系(表)可以看成是由行和列交叉组成的二维表格。②表中一行称为一个元组,可用来表示实体集中的一个实体。③表中的列称为属性。给每一列起一个名称即属性名,表中的属性名不能相同。④列的取值范围称为域,同列具有相同的域。例如,Sex列的取值范围是{男,女}。Student_ID列和Phonenumber列都为字符域(都是数字型字符)。⑤表中任意两行(元组)不能完全相同。能惟一标识表中不同行的属性(组)称为主属性(组)或主关键字。(2)候选关键字与主属性①候选关键字如果一个属性(组)能惟一标识元组,且又不含有其余的属性,那么这个属性(组)称为关系的一个候选关键字。②主属性在一个关系中,如果一个属性是构成某一个候选关键字的属性集中的一个属性,则称它为主属性。(3)关系模式关系模式是对关系的描述,它包括模式名、组成该关系的诸属性名、值域名和模式的主关键字或主码。(4)关系子模式关系子模式是用户所需数据的结构的描述,其中包括这些数据来自哪些模式和应满足哪些条件。(5)存储模式存储模式描述了关系是如何在物理存储设备上存储的。(6)实体完整性规则实体完整性规则规定:关系中元组的主码值不能为空值。实体完整性规则和参照完整性规则是关系模型必须满足的完整性约束条件,称为关系完整性规则。(7)参照完整性规则参照完整性规则的形式定义为:如果属性集K是关系模式R1的主码,也是关系模式R2的外码,那么在R2的关系中,K的取值只允许有两种可能,或者为空值,或者等于R1关系中某个主码值。(8)域完整性规则这是针对某一具体数据的约束条件,由应用环境决定的。它反映某一具体应用所涉及的数据必须满足的语义要求。(9)关系模型的形式定义关系模型有3个组成部分:数据结构,数据操作,完整性规则。①数据库中全部数据及其相互联系都被组织成关系(即二维表格)的形式。关系模型基本的数据结构是关系。②关系模型提供一组完备的高级关系运算,以支持对数据库的各种操作。关系运算分为关系代数和关系演算两类。③关系模型有3类完整性规则。2、关系代数的运算(1)投影(Projection)设有关系R,在关系R中求指定的由若干个属性组成新的关系的运算称为投影,其形式为:PROJECT关系名(属性名1,属性名2,…,属性名n)记作ПA(R)。其中R为被运算关系名,A为要选取的属性系列。这是以“列”作为处理单位进行的运算。【例1-1】由表1-9所示的关系S1中找出学生宿舍分配情况,求关系运算式及结果。其操作可表示为:PROJECTS1(学号,宿舍)关系运算式为:П学号,宿舍(学生宿舍分配)结果如表1-10所示。(2)选择设有关系R,在关系R中求由满足给定条件F的元组组成新的关系的运算称为选择(Select)。其形式为:SELECT关系名WHERE条件记作σF(R)。这是以“记录”为处理单位进行的运算。【例1-2】由表1-9所示的关系S1中找出所有“男生”的数据,求关系代数式。其操作可表示为:SELECTS1WHERE性别=“男”关系代数式为:σ男生(学生情况)结果如表1-11所示。(3)连接从两个关系R和S的广义笛卡儿积中选取满足给定条件F的元组组成新的关系的操作称为R和S的连接(Join),其形式为:JOIN关系名1AND关系名2WHERE条件记作(F=AθB)。其中,条件(F)是由算术比较符(,≥,,≤,=,≠)和属性名或列号组成的条件表达式,A和B分别代表R的第A列和S的第B列属性。【例】关系R和关系S分别如表3.11和表3.12所示,求。其操作可表示为:JOINRANDSWHEREBD连接结果如下表所示。关系R关系S连接结果小于返回1.3VFP6系统的常用文件类型1、项目文件.PJT.PJX2、数据库文件.DBC.DCT3、表文件.DBF.FPT4、程序文件.PRG.FXP5、索引文件.IDX.CDX6、内存变量文件.MEM7、屏幕格式文件.FMT8、报表格式文件.FRX.FRT9、标签文件.LBX.LBT10、文本文件.TXT11、菜单文件.MNT.MNX.MPR.MPX12、表单文件.SCX.SCT1.3.1主要文件类型1.3.2VFP6系统的常用数据类型1、字符型数据(Character,简写为C)2、数值型数据(Numeric,简写为N)3、逻辑型数据(Logic,简写为L)4、日期型数据(Date,简写为D)5、备注型数据(Memo,简写为M)6、通用型数据(General,简写为G)返回1.4文件命名方法和命令构成1.4.1命令构成的基本格式1.4.2有关规则1.4.3VFP6文件命名方法命令书写的有关约定返回退出1.4.1命令构成的基本格式示例USEGradeCOUNTALLFOR课程成绩60LISTALL姓名,课程成绩FOR;课程成绩60TOPRINTERUSE第1条命令:打开名为GRADE的表文件。第2条命令:统计GRADE中分数在60分以下的人数。第3条命令:在打印机上输出成绩为60分以下的学生的姓名和分数。第4条命令:关闭表文件GRADE,将其保存在磁盘上。这四条命令的功能分别是VisualFoxPro的一般语法式命令动词;[表达式表];[范围];[FOR条件];[WHILE条件];[TOFILE文件名/TOPRINTER/TOARRAY;数组名/TO内存变量];[ALL[LIKE/EXCEPT通配符]];[IN别名]可以将命令分为八个部分,即每个顶头行为一个部分各部分的意义命令动词:它是VFP的命令名,用来指示计算机要完成的操作。表达式表:用来指示计算机执行该命令所操作的结果参数。范围:指定命令可以操作的记录集。范围有下列四种选择:ALL当前表中的全部记录。NEXTn从当前记录开始的连续N条记录。RECORDn当前表中的第N号记录。REST从当前记录开始到最后一条记录为止的所有记录。FOR条件:它规定只对满足条件的记录进行操作。WHILE条件:从当前记录开始,按记录顺序从上向下处理,一旦遇到不满足条件的记录,就停止搜索并结