首页 理论教育 VisualFoxPro6.0数据库索引简介

VisualFoxPro6.0数据库索引简介

时间:2023-10-19 理论教育 版权反馈
【摘要】:索引文件和数据表文件分别存储,并且不改变记录的物理顺序。索引文件实际上是由指向数据表记录的指针构成的文件。当对数据表进行添加、修改、更新、删除等操作时系统会自动维护结构复合索引文件中的索引。一个数据表只能建立一个主索引,并且只能在数据库中的表中建立主索引。当数据表已经建立了主索引,可以将数据表中其他字段或字段表达式值唯一的索引设置为候选索引。

VisualFoxPro6.0数据库索引简介

数据表进行排序虽然实现了对记录的有序排列,但排序会建立了许多内容相同只是排列顺序不同的数据表文件,会造成大量数据的冗余。对数据表建立索引可以实现对指定的字段进行排序显示,但却不会造成大量数据的冗余。

1.索引的基本概念

(1)索引及索引类型。

索引是由指针构成的文件,这些指针逻辑上按照索引关键字的值进行排序。索引文件和数据表文件分别存储,并且不改变记录的物理顺序。索引文件实际上是由指向数据表记录的指针构成的文件。索引可以加速对表的查看和访问。

从索引的组织方式上分,索引有以下三类:

1)独立索引。指在索引文件中只能包含一个单一的关键字或组合关键字的索引。独立索引文件的扩展名为.IDX。

2)结构复合索引。指索引文件中可以包含多个索引项的索引,每个索引项称为索引标识。结构复合索引文件的主文件名与数据表文件同名,扩展名为.CDX,结构复合索引文件随着数据表的打开自动打开,随着数据表关闭而自动关闭。当对数据表进行添加、修改、更新、删除等操作时系统会自动维护结构复合索引文件中的索引。结构复合索引是一种最常用的索引方式。

3)非结构复合索引。指索引文件中可以包含多个索引项的索引,扩展名也为.CDX,但非结构复合索引文件的主文件名与数据表文件不同,它不会随着数据表的打开而打开。

(2)索引关键字及索引关键字类型。

索引关键字是指在数据表中建立索引时引用的字段或字段表达式,可以是数据表中的单个字段,也可以是数据表中多个字段组成的表达式。索引文件就是根据索引关键字值的大小,逻辑上重新排列数据表中记录的组织顺序。

在VFP中,索引关键字的类型可以分为以下四种:

1)主索引(Primary Indexes)。指索引关键字不允许出现重复值的索引,即索引关键字的值必须唯一的索引。例如,教师的编号没有重复值,可以按编号字段建立主索引。一个数据表只能建立一个主索引,并且只能在数据库中的表中建立主索引。

2)候选索引(Candidate Indexes)。同主索引一样,指索引关键字不允许出现重复值的索引。当数据表已经建立了主索引,可以将数据表中其他字段或字段表达式值唯一的索引设置为候选索引。一个数据表中可以建立多个候选索引,它在特定的环境下可以视为主索引。

3)普通索引(Regular Index)。表示把由索引表达式为每个记录产生的值,存入索引文件中,如果多个记录的索引表达式值相同,则可以重复存储。

4)唯一索引(Unique Index)。指索引文件对每一个特定的关键字只存储一次,忽略后面出现重复值的记录。例如:对“教师”表按性别字段建立唯一索引,结果在索引文件中按照该索引项只存储两条记录,即第一条男教师的记录和第一条女教师的记录。

2.建立索引

在VFP中结构复合索引是最重要也是最常用的索引,这里我们主要介绍建立结构复合索引。

(1)利用表设计器建立索引。

选择要创建索引的表,打开其表设计器,选择“索引”选项卡,设置如下参数:

1)在“排序”选项中设置索引顺序,“↑”为升序,“↓”为降序。

2)在“索引名”选项中输入索引标识名,索引标识名最多为10个字符

3)在“类型”选项中设置选择索引类型,自由表只有候选索引、普通索引、唯一索引三种,数据库表还可以有主索引。

4)在“表达式”选项中输入索引表达式,索引表达式可以是单个字段,也可以是多个字段的组合,若是多个字段,要组合成一个合法的字符型表达式,并用字符串运算符“+”连接。

5)在“筛选”选项中,可以限制记录的输出范围。

【例3-24】利用表设计器,对“教师”表,按编号字段的降序建立候选索引,按性别字段升序建立唯一索引,按性别与年龄建立普通索引,性别与工作时间建立普通索引。步骤如下:

打开“教师”表,显示其表设计器,并显示表设计器的“索引”选项卡,分别进行各参数的设置,设置结果如图3-44所示。

图3-44 在表设计器中建立索引

【说明】1)按编号建立的索引其索引表达式为:编号。

2)按性别建立的索引其索引表达式为:性别。

3)按性别和年龄建立的索引其索引表达式为:性别+str(年龄)。

4)按性别和工作时间建立的索引其索引表达式为:性别+dtoc(工作时间)。

5)索引名可以任意,一般单个字段的索引,索引名可以与字段名同名;组合字段的索引,索引名最好能反映出索引的关键字所代表的含义,例如对性别和年龄建立的索引,索引名设置为“性别_年龄”,对性别和工作时间建立的索引,索引名设置为“性别_工作”。

各个参数设置结束后,单击“确定”按钮,会弹出如图3-45所示对话框,单击“是”按钮完成索引的建立。(www.xing528.com)

图3-45

索引可以提高查询速度,但是维护索引是要付出代价的,对于结构复合索引当对数据表中的记录进行添加、删除、修改等操作时,不需用户去修改索引,系统会自动维护索引,从而降低了工作速度,所以建立索引要根据实际情况的需要建立,并不是越多越好。

(2)命令方式建立索引。

【格式】INDEX ON <索引关键字> TO <索引文件名>| TAG<索引标识名>[OF<复合索引文件名>][FOR<条件>][ASCENDING|DESCENDING][UNIQUE| CANDIDATE]

【功能】建立索引文件或增加索引标识。

【说明】1)<索引关键字>可以是单个字段也可以是多个字段的组合。

2)TO < 单索引文件名> 选项用于建立一个独立索引文件,扩展名为.IDX。

3)选择TAG<索引标识名>,代表建立结构复合索引,若选择TAG<索引标识名> OF<复合索引文件名>表示建立非结构复合索引。

4)FOR <条件>给出索引过滤条件,即只对满足条件的记录进行索引。

5)ASCENDING|DESCENDING选项表示建立升序或降序索引,系统默认为升序索引。

6)UNIQUE选项表示建立唯一索引。

7)CANDIDATE表示建立候选索引。

【例3-25】用INDEX命令为“教师”表建立结构复合索引,包含4个索引项:按编号字段的降序建立候选索引;按性别字段升序建立唯一索引;按性别与年龄建立普通索引;性别与工作时间建立普通索引。

3.按索引顺序浏览记录

建立索引后,就可以按索引关键字的值的顺序显示和处理记录了。但同一时刻,系统只能使用一种索引顺序,所以在使用索引之前,应先指定要使用的索引项为主索引。

(1)菜单方式。

打开指定的数据表,这里打开“教师”表,同时打开表的浏览窗口,然后选择“表”菜单的“属性”菜单项,打开如图3-46所示“工作区属性”对话框,在“索引顺序”下拉列表框中选择当前要使用的索引标识名,单击“确定”按钮后,浏览窗口中的记录的显示顺序就会按指定索引标识名的索引顺序排列。

如选择索引标识为“编号”的索引后,浏览窗口显示结果如图3-47所示。

在图3-46所示对话框中,如果在“索引顺序”列表中选择“无顺序”选项,表示不使用任何索引,只按实际输入时的物理顺序来显示或处理记录。

(2)命令方式。

【格式】SET ORDER TO [<独立索引文件名>|TAG<索引标识>]

【功能】使指定的索引成为主索引。

图3-46 “工作区属性”对话框

图3-47

【说明】不带任何选项的SET ORDER TO命令,表示取消使用的任何索引。

【例3-26】设置“教师”表的结构复合索引文件中的索引标识为“性别_年龄”的索引为主索引,并显示“教师”表的记录,最后取消索引。

显示结果如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈