第一章数据库系统基础知识1.1数据库系统概述1.数据处理数据:是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。数据处理:是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。2.数据库系统(1)数据库(DataBase)定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。特点:具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好(2)数据库管理系统(DataBaseManagementSystem)定义:是操纵和管理数据库的系统软件。VisualFoxPro属于一种关系型数据库管理系统。数据语言:数据定义语言(DDL):用来建立所需的数据库。数据操作语言(DML):用来对数据库进行查询和维护操作。关系型数据库使用的标准语言是结构化查询语言(StructuredQueryLanguage,SQL)。(3)数据库系统(DataBaseSystem)定义:是以数据库应用为基础的计算机系统。组成:数据库硬件(计算机硬件设备)软件(数据库管理系统、操作系统)用户(应用程序设计员、终端用户、数据库管理员)分类:层次型数据库、网状型数据库、关系型数据库分代:第一代非关系型数据库系统,60年代末问世,包括层次型和网状型。第二代关系型数据库系统(RDBS),70年代中期问世。第三代对象-关系数据库系统(ORDBS、OOBDS),80年代中期至今。上述三个概念之间的联系:在数据库系统中通过数据库管理系统来建立和使用数据库。3.关系模型三个领域:现实世界→事物(对象、性质)观念世界→实体(对象、属性)数据世界→数据(记录、字段)实体模型:即反映事物联系的实体。数据模型:即描述实体模型的数据。数据模型的分类:层次模型(采用树型结构)网络模型(采用无向图型结构)关系模型(采用二维表结构)关系模型的性质:二维表的记录数随数据的增加而改变,但其字段数是相对固定的;二维表中的每一列均有唯一的字段名;二维表中不允许出现完全相同的两行二维表中行的顺序、列的顺序均可以任意交换。二维表的主关键字:超关键字:能唯一确定记录的一列或几列的组合候选关键字:最简练的超关键字主关键字:候选关键字中的一个外部关键字:当A表的主关键字被包含到B表中时,则称A表的主关键字为B表的外部关键字。4.微机关系型数据库系统的发展关系型数据库:即根据表、记录和字段之间的关系进行组织和访问的一种数据库。名称运行环境公司名称发布时间dBASE,dBASEⅡ,dBASEⅢ,dBASEⅢPLUS,dBASEDOSAshton-TateFoxBASE1.0DOSFox软件公司1987.2FoxBASE+(2.00/2.10)DOSFox软件公司87.7/88.7FoxPro1.0DOSFox软件公司1989FoxPro2.0DOSFox软件公司1991FoxPro2.5DOS、WINDOWS3.x微软公司1993.1FoxPro2.6DOS、Windows3.x微软公司1994VisualFoxPro3.0Windows3.X微软公司1996.1VisualFoxPro5.0Windows95微软公司1997.2VisualFoxPro6.0Windows98微软公司1998.11.2VisualFoxPro6.0概述1.VFP6.0的特点完善了关系型数据库的概念,采用了Rushmore技术,引入了SQL命令;支持多种数据交换格式;采用了可视化的面向对象的程序设计方式;提供了功能完善的集成环境和丰富的开发工具。2.VFP6.0的用户界面[图例]界面基本组成:标题栏、主菜单栏、工具栏、主窗口、命令窗口、状态栏系统工具一览表各种菜单各种工具栏各种窗口各种设计器各种生成器各种向导文件菜单常用工具栏命令窗口数据库设计器文本框生成器表向导编辑菜单表单控制工具栏浏览窗口表设计器组合框生成器交叉表向导显示菜单布局工具栏代码窗口表单设计器命令组生成器查询向导格式菜单调色板工具栏调试窗口菜单设计器编辑框生成器本地视图向导工具菜单打印预览工具栏编辑窗口报表设计器表达式生成器表单向导程序菜单报表控制工具栏查看窗口标签设计器表单生成器一对多表单向导窗口菜单查询设计器工具栏跟踪窗口类设计器表格生成器报表向导帮助菜单表单设计器工具栏属性窗口连接设计器列表框生成器一对多报表向导菜单菜单报表设计器工具栏通用字段窗口查询和视图设计器参照完整性生成器标签向导数据环境菜单数据库设计器工具栏远程视图向导表单菜单项目管理器窗口数据环境设计器自动格式生成器邮件合并向导项目菜单导入向导查询菜单选项组生成器图形向导报表菜单数据透视表向导表菜单分组/总计报表向导数据库菜单类菜单3.VFP6.0的工作方式(1)菜单操作方式根据所需的操作从菜单中选择相应的命令(与WORD类似)。每执行一次菜单命令,命令窗口中一般都会显示出与菜单对应的命令内容。利用工具菜单中的向导可以很方便地完成常规任务。(2)命令交互方式根据所要进行的各项操作,采用人机对话方式在命令窗口中按格式要求逐条输入所需命令,按回车后,机器逐条执行。(3)程序执行方式先在程序编辑窗口中编完程序,再从程序菜单中选择执行,或从命令窗口中输入DO命令,让机器执行。4.VFP6.0常用文件类型VFP6.0常用的文件扩展名及其关联的文件类型扩展名文件类型扩展名文件类型.app生成的应用程序.frx报表.exe可执行程序.frt报表备注.pjx项目.lbx标签.pjt项目备注.lbt标签备注.dbc数据库.prg程序.dct数据库备注.fxp编译后的程序.dcx数据库索引.err编译错误.dbf表.mnx菜单.fpt表备注.mnt菜单备注.cdx复合索引.mpr生成的菜单程序.idx单索引.mpx编译后的菜单程序.qpr生成的查询程序.vcx可视类库.qpx编译后的查询程序.vct可视类库备注.scx表单.txt文本.sct表单备注.bak备份文件5.创建文件新建各种类型的文件时,可以利用系统提供的相应工具,以提高工作效率。新建文件时可用的设计器和向导。1.3项目管理器1.项目管理器简介项目:是一种文件,用于跟踪创建应用系统所需要的所有程序、表单、菜单、库、报表、标签、查询和一些其他类型的文件。项目管理器:[图例]是开发VFP应用系统的一个工具,它生成一个项目文件,项目文件的扩展名为.PJX,项目备注的扩展名为:.PJT。项目管理器窗口的组成:由6大类数据项(全部、数据、文档、类、代码、其他)和10个命令按钮(新建、添加、修改、浏览、关闭、打开、预览、运行、移去、连编)组成。注:粗斜体表示的命令按纽根据用户选择的不同对象相应地出现。项目菜单的组成:13个子菜单(其中一部分与项目管理器中的命令按钮功能相同)。项目管理器的功能:组织和管理所有与应用系统有关的各种类型的文件。2.创建项目文件用菜单方式:打开文件菜单→新建→项目→新文件→给出合适的项目文件名及保存位置→进入项目管理器→开发应用系统→完成后关闭窗口退出。用命令方式:语法:CREATEPROJECT项目文件名功能:打开项目管理器窗口进行应用系统的开发。3.修改项目文件用菜单方式:打开文件菜单→打开→找到所需的项目文件并确定之→进入项目管理器→修改应用系统→完成后关闭窗口退出。用命令方式:语法:MODIFYPROJECT项目文件名功能:打开项目管理器窗口进行应用系统的修改。4.项目管理器的使用可以利用项目管理器来创建、打开、浏览、修改所有VFP文件并运行其中的表单、报表、标签、菜单、程序等。特别是可以利用它来连编项目(追踪这些文件的变化情况,包括它们之间的相关性、引用和连接等,确保引用的完整,并加入自上次连编之后更新了的一些组件)、应用程序(扩展名为.APP,在VFP环境下执行)和可执行文件(扩展名为.EXE,能脱离VFP环境执行)。1.4VFP6.0的一些规则1.VFP6.0的命名规则:·只能使用字母、下划线和数字。·使用字母或下划线作为名称的开头。·名称可以是1至128个字符,但自由表的字段名和索引标识最多只能有10个字符。·避免使用VisualFoxPro的保留字。·文件的命名遵循操作系统的约定。2.命令和子句的书写规则(1)以命令动词开始;(2)各部分之间要用空格隔开;(3)命令、子句、函数名都可简写为前4个字符,大、小写等效;(4)一行只能写一条命令,总长度不超过8192个字符,超过屏幕宽度时用续行符“;”;(5)变量名、字段名和文件名应避免与命令动词、关键字或函数名同名,以免运行时发生混乱。(6)命令格式中的符号约定:命令中的[]、|、…、符号都不是命令本身的语法成分,使用时不能照原样输入,其中:[]表示可选项,根据具体情况决定是否选用|表示两边的部分只能选用其中的一个…表示可以有任意个类似参数,各参数间用逗号隔开表示其中内容要以实际名称或参数代入3.命令工作方式中的常见错误(1)命令动词写错(2)格式不符合要求·标点符号不对(一定要用英文标点符号)·缺少必需的空格或添加了不该有的空格·数据类型不一致,要注意字符型、数值型、日期型、逻辑型数据的书写格式(3)打不开所需文件:没有正确输入盘符和路径或文件名输错第二章VFP语言基础2.1程序设计概述1.程序设计方法简介设计方法主要概念设计过程程序执行方式结构化程序设计功能模块(即过程、自定义函数)编制各个功能模块,再用主程序将它们串起来将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。面向对象程序设计类、对象、属性、事件、方法设计类、子类、对象(设计外观、设置属性、为事件编写方法程序)将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。2.数据类型VFP包含下列数据类型:通用的数据类型字符型Character货币型Currency日期型Date日期时间型DateTime逻辑型Logical数值型Numeric仅用于字段的数据类型双精度型Double浮点型Float整型Integer通用型General备注型Memo3.数据容器VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。(1)常量(constants):一个在操作过程中保持不变的数值或字符串。常用的常量类型常量类型数值型常量字符型常量逻辑型常量日期型常量表示方式-25.36abc,123,中国.T..F.{^2005/07/10}(2)变量(variables):是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。变量的命名习惯:类型变量代号如:cStud、nCj、dCsrq——分别代表一个字符型、数值型、日期型的变量名变量的赋值方式:1)用STORE命令如:STORE王兰TOcStud2)用赋值操作符=如:cStud=王兰变量的作用域:即变量起使用的有效范围。变量作用域定义作用域的关键字特点局部变量localvariable(本地变量)LOCAL只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。当其所属程序停止运行时,局部变量将被释放。私有变量PRIVATE私有变量在VFP中是默认的,不需要特殊的关键字定义。privatevariable但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE关键字予以声明,以限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。公共变量publicvariablePUBLIC可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。变量的访问:当变量和字段同名时,字段有优先被访问权。要在变量名前加m.或m-以