论文部分内容阅读
摘要:索引的作用类似于一本图书的章节内容目录——可以通过其准确查询相关内容和页码。因此,在关系数据库中索引相当于一个表文件,在VFP中占有举足轻重的地位,值得我们探讨。
关键词:VFP索引;索引文件
中图分类号:G4 文献标识码:A 文章编号:16723198(2016)02019402
1 索引简介
一般情况下,表中记录的顺序由数据录入的先后顺序而定,并用记录号予以标识,因此,表中的记录无规律。要想使无规律的记录有规律,VFP中提供了两种方法:一是排序法,二是索引法。排序是对表中记录进行整理,按指定的关键字段排序,并将排序结果形成一个新的数据表,属于物理排序。其缺点是:当原始的表文件被修改后,必须重新排序,排序时产生的新表文件,占用磁盘空间,当表较大时,排序处理太耗时,因此此法较少使用。索引是根据某一字段的值进行逻辑排序,VFP在输出记录时,按照索引的顺序分别读取每一条记录,而这些记录的实际储存位置并未改变。一般来讲,在数据库中,索引不会自动生成新的表文件,只是会生成有用的索引新文件。但是,不能单独利用索引新文件来进行搜索,必须在表文件的密切配合下,才能加以利用。因此,在一定意义上,可以将索引的优势概括为三点:(1)在数据检索上,利用索引使得搜索速度得到了质的提升,节约了搜索过程的时间;(2)可以精确定位数据库中每一行,甚至每一个字符的唯一性;(3)能够加强表与表之间的关联性,同时也加快了他们之间的连接。
2 索引的分类
索引是根据某一特定关键字进行排序的,因此根据对关键字的不同要求,可以将索引分为以下四种不同的类型。
(1)主索引:主索引的关键字不允许出现重复值,因此,只能在数据库表中建立主索引,并且,一个数据库也只能建立唯一的主索引。
(2)候选索引:一般情况下,一个表中可以建立若干个候选索引,但是,候选索引却不允许关键字出现重复值。
(3)普通索引:普通索引可以认为是候选索引的进一步扩展,既允许一个表建立若干个普通的索引,同时也允许索引的关键出现重复值。所以,可以将普通索引归类为默认类型的索引。
(4)唯一索引:在唯一索引中,一个表可以创建多个唯一索引,也同样允许出现重复的关键字,但却区别于普通索引的是,只能包含表文件与索引关键字匹配的第一个记录。
3 索引文件的分类
索引文件分为以下三类。
(1)结构复合索引文件(.CDX):使用和表文件名相同的基本名,可以包含多个索引,每个索引有一个索引标志。此类索引文件,随表的打开自动打开,当数据库文件被修改时被自动维护。
(2)非结构复合索引文件(.CDX):必须明确打开。使用和表不同的基本名,可以包含多个索引,每个索引有一个索引标志,需要单独打开。
(3)独立索引文件(.IDX):必须明确的打开。文件的基本名由用户定义。此类索引文件是根据一个索引项建立的索引文件。
4 索引文件的创建
VFP创建索引文件有两种方式:表设计器方式和命令方式。
(1)表设计器方式:打开表文件→从显示菜单中选择表设计器→在表设计器中单击索引→输入索引名并选择索引类型→选择索引的方向(升序还是降序)→在表达式框中输入作为排序依据的索引关键字→在筛选框中输入筛选表达式→单击确定,完毕。
(2)命令方式。
INDEX ON <索引关键字表达式> TO <单索引文件> | TAG <标识名>
[OF <复合索引文件名>] [FOR <逻辑表达式>] [ASCENDING | DESCENDING][UNIQUE][ADDITIVE]
[说明]<索引关键字表达式>:对于关键字表达式在索引文件中的建立,既可以是单一字段名,也能够是多个字段组成的字符型的表达式,但在字段类型上,必须是数值型、字符型、日期型和逻辑型等四种,不能是其他类型的字段,在指定的索引文件中进行。单个字段的表达式类型无须转换,但多个字段的表达式在应用中需要转换成同一个类型的表达式才能进行使用。
TAG<标识名>:对于TAG标识名,属于指定建立或者追加索引的标识名,因此只对复合索引文件的检索有效,而对其他类型的索引文件无法进行检索。
OF<复合索引文件名>:在VFP关系数据库中,OF特指指定的复合索引文件名。若有此选项,就会在指定的复合索引文件中追加一个索引标识,即使指定的复合索引文件不存在,系统也会自动建立指定的文件。若没有此选项,表示在结构复合文件中追加一个索引标识,若结构复合索引文件不存在,系统将自动建立结构复合索引文件。
FOR<逻辑表达式>:对记录进行筛选,只对满足特定要求的记录建立索引,而去除不符合特定要求的其他记录。
ASCENDING|DESCENDING:ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省时,按按升序建立索引。单索引文件不能选用DESCENDING选项。
UNIQUE:用来建立唯一的索引,确保在后续检索操作中的精确定位,加快检索速度。
ADDITIVE:用来标识以前打开的索引文件,防止在使用过程中关闭索引文件。要是没有ADDITIVE进行识别,就会关闭除了结构符合索引文件外的其他已经打开的索引文件,带来不必要的麻烦。
举例:
INDEX ON产品名称TAG cpmc OF产品名称索引FOR产品名称=“三星手机”表示按照升序排列给产品名称为三星手机的记录建立索引文件,其索引文件名为产品名称索引,索引标识为:cpmc。
5 索引的使用
(1)建立一个或者几个索引,打开相应的索引文件。
一个表可以建立多个索引,但任一时刻控制记录逻辑顺序的索引却只有一个,这个索引称为当前索引。指定当前索引后记录的顺序就由该索引决定。但在指定当前索引之前,必须打开索引文件(结构索引文件除外,结构索引文件随着表的打开而打开),打开索引文件的命令是:SET INDEX TO,其中的“索引文件列表”指定打开的索引文件,每两个文件名之间用逗号分隔。当索引文件打开后,就可以指定当前索引了,其命令为:SET ORDER TO<索引名>,其中“OF索引文件名”,指定该索引文件中的索引为当前索引。如果缺少该项,则默认为结构索引文件。
例如,将产品名称索引文件中的cpmc指定为当前索引:
SET INDEX TO 产品名称索引
SET ORDER TO cpmc OF 产品名称索引
(2)索引文件的维护。
增加、删除和修改当前表中的数据时,同时也需要对索引进行相应的动态维护和调整,使索引文件中的索引正确反映记录的最新状态。当表文件和需要维护的索引文件都打开后,可以执行重新索引命令来维护索引,其命令为:REINDEX。
(3)关闭索引文件。
当索引文件使用完毕后,应及时的关闭,其关闭命令为:SET INDEX TO,CLOSE INDEX,CLOSE ALL,CLEAR ALL。SET INDEX TO:关闭当前表除结构索引以外的其他打开的索引文件;CLOSE INDEX:用法同SET INDEX TO;close all:关闭当前所有类型文件(其中包括数据库文件以及索引文件);clear all:关闭所有类型文件的同时还清除所有内存变量的值。
参考文献
[1]王睿.技工院校数据库VFP的教学探讨[J].知识经济,2015,(15).
[2]段雪莉.探析当代案例教学法在VFP教学中的应用[J].电子制作,2015,(10).
[3]杨云春.指针在Visual FoxPro教学中的应用研究[J].昆明学院学报,2015,(03).
关键词:VFP索引;索引文件
中图分类号:G4 文献标识码:A 文章编号:16723198(2016)02019402
1 索引简介
一般情况下,表中记录的顺序由数据录入的先后顺序而定,并用记录号予以标识,因此,表中的记录无规律。要想使无规律的记录有规律,VFP中提供了两种方法:一是排序法,二是索引法。排序是对表中记录进行整理,按指定的关键字段排序,并将排序结果形成一个新的数据表,属于物理排序。其缺点是:当原始的表文件被修改后,必须重新排序,排序时产生的新表文件,占用磁盘空间,当表较大时,排序处理太耗时,因此此法较少使用。索引是根据某一字段的值进行逻辑排序,VFP在输出记录时,按照索引的顺序分别读取每一条记录,而这些记录的实际储存位置并未改变。一般来讲,在数据库中,索引不会自动生成新的表文件,只是会生成有用的索引新文件。但是,不能单独利用索引新文件来进行搜索,必须在表文件的密切配合下,才能加以利用。因此,在一定意义上,可以将索引的优势概括为三点:(1)在数据检索上,利用索引使得搜索速度得到了质的提升,节约了搜索过程的时间;(2)可以精确定位数据库中每一行,甚至每一个字符的唯一性;(3)能够加强表与表之间的关联性,同时也加快了他们之间的连接。
2 索引的分类
索引是根据某一特定关键字进行排序的,因此根据对关键字的不同要求,可以将索引分为以下四种不同的类型。
(1)主索引:主索引的关键字不允许出现重复值,因此,只能在数据库表中建立主索引,并且,一个数据库也只能建立唯一的主索引。
(2)候选索引:一般情况下,一个表中可以建立若干个候选索引,但是,候选索引却不允许关键字出现重复值。
(3)普通索引:普通索引可以认为是候选索引的进一步扩展,既允许一个表建立若干个普通的索引,同时也允许索引的关键出现重复值。所以,可以将普通索引归类为默认类型的索引。
(4)唯一索引:在唯一索引中,一个表可以创建多个唯一索引,也同样允许出现重复的关键字,但却区别于普通索引的是,只能包含表文件与索引关键字匹配的第一个记录。
3 索引文件的分类
索引文件分为以下三类。
(1)结构复合索引文件(.CDX):使用和表文件名相同的基本名,可以包含多个索引,每个索引有一个索引标志。此类索引文件,随表的打开自动打开,当数据库文件被修改时被自动维护。
(2)非结构复合索引文件(.CDX):必须明确打开。使用和表不同的基本名,可以包含多个索引,每个索引有一个索引标志,需要单独打开。
(3)独立索引文件(.IDX):必须明确的打开。文件的基本名由用户定义。此类索引文件是根据一个索引项建立的索引文件。
4 索引文件的创建
VFP创建索引文件有两种方式:表设计器方式和命令方式。
(1)表设计器方式:打开表文件→从显示菜单中选择表设计器→在表设计器中单击索引→输入索引名并选择索引类型→选择索引的方向(升序还是降序)→在表达式框中输入作为排序依据的索引关键字→在筛选框中输入筛选表达式→单击确定,完毕。
(2)命令方式。
INDEX ON <索引关键字表达式> TO <单索引文件> | TAG <标识名>
[OF <复合索引文件名>] [FOR <逻辑表达式>] [ASCENDING | DESCENDING][UNIQUE][ADDITIVE]
[说明]<索引关键字表达式>:对于关键字表达式在索引文件中的建立,既可以是单一字段名,也能够是多个字段组成的字符型的表达式,但在字段类型上,必须是数值型、字符型、日期型和逻辑型等四种,不能是其他类型的字段,在指定的索引文件中进行。单个字段的表达式类型无须转换,但多个字段的表达式在应用中需要转换成同一个类型的表达式才能进行使用。
TAG<标识名>:对于TAG标识名,属于指定建立或者追加索引的标识名,因此只对复合索引文件的检索有效,而对其他类型的索引文件无法进行检索。
OF<复合索引文件名>:在VFP关系数据库中,OF特指指定的复合索引文件名。若有此选项,就会在指定的复合索引文件中追加一个索引标识,即使指定的复合索引文件不存在,系统也会自动建立指定的文件。若没有此选项,表示在结构复合文件中追加一个索引标识,若结构复合索引文件不存在,系统将自动建立结构复合索引文件。
FOR<逻辑表达式>:对记录进行筛选,只对满足特定要求的记录建立索引,而去除不符合特定要求的其他记录。
ASCENDING|DESCENDING:ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省时,按按升序建立索引。单索引文件不能选用DESCENDING选项。
UNIQUE:用来建立唯一的索引,确保在后续检索操作中的精确定位,加快检索速度。
ADDITIVE:用来标识以前打开的索引文件,防止在使用过程中关闭索引文件。要是没有ADDITIVE进行识别,就会关闭除了结构符合索引文件外的其他已经打开的索引文件,带来不必要的麻烦。
举例:
INDEX ON产品名称TAG cpmc OF产品名称索引FOR产品名称=“三星手机”表示按照升序排列给产品名称为三星手机的记录建立索引文件,其索引文件名为产品名称索引,索引标识为:cpmc。
5 索引的使用
(1)建立一个或者几个索引,打开相应的索引文件。
一个表可以建立多个索引,但任一时刻控制记录逻辑顺序的索引却只有一个,这个索引称为当前索引。指定当前索引后记录的顺序就由该索引决定。但在指定当前索引之前,必须打开索引文件(结构索引文件除外,结构索引文件随着表的打开而打开),打开索引文件的命令是:SET INDEX TO,其中的“索引文件列表”指定打开的索引文件,每两个文件名之间用逗号分隔。当索引文件打开后,就可以指定当前索引了,其命令为:SET ORDER TO<索引名>,其中“OF索引文件名”,指定该索引文件中的索引为当前索引。如果缺少该项,则默认为结构索引文件。
例如,将产品名称索引文件中的cpmc指定为当前索引:
SET INDEX TO 产品名称索引
SET ORDER TO cpmc OF 产品名称索引
(2)索引文件的维护。
增加、删除和修改当前表中的数据时,同时也需要对索引进行相应的动态维护和调整,使索引文件中的索引正确反映记录的最新状态。当表文件和需要维护的索引文件都打开后,可以执行重新索引命令来维护索引,其命令为:REINDEX。
(3)关闭索引文件。
当索引文件使用完毕后,应及时的关闭,其关闭命令为:SET INDEX TO,CLOSE INDEX,CLOSE ALL,CLEAR ALL。SET INDEX TO:关闭当前表除结构索引以外的其他打开的索引文件;CLOSE INDEX:用法同SET INDEX TO;close all:关闭当前所有类型文件(其中包括数据库文件以及索引文件);clear all:关闭所有类型文件的同时还清除所有内存变量的值。
参考文献
[1]王睿.技工院校数据库VFP的教学探讨[J].知识经济,2015,(15).
[2]段雪莉.探析当代案例教学法在VFP教学中的应用[J].电子制作,2015,(10).
[3]杨云春.指针在Visual FoxPro教学中的应用研究[J].昆明学院学报,2015,(03).