数据库系统

索引结构

一个数据文件可以用来存储一个关系。

一个数据文件可能拥有一个或多个索引文件,每个索引文件建立查找键和数据记录之间的关联,查找键的指针指向于查找键相同属相值得记录。

 

索引可以是稠密的,以数据文件中每个记录在索引文件中都设有一个索引项。

也可以是稀疏的,即数据文件中只有一些记录在索引文件中表示出来,通常为每个数据块在索引文件中设一个索引项。

索引还可以是主索引或者辅助索引。

 

顺序文件

顺序文件是对关系中的元祖按主键进行排序而生成的文件。

关系中的元祖按照这个次序分布在多个数据块中。

 

 

稠密索引

如果记录是排好序的,我们就可以在记录上建立稠密索引。

块中只存放记录的键以及只想记录本身的指针。稠密索引文件中的索引块保持键的顺序与文件中的排序顺序一致。

 

 

稀疏索引

稀疏索引只为数据文件的每个存储块设一个键-指针对,他比稠密索引节省了更多的存储空间,但查找给定值的记录需要更多的时间。

只有当数据文件是按照某个查找键排序时,在该键上建立的稀疏索引才能被使用,而稠密索引则可以应用任何的查找键。

 

 

多级索引

同坐在索引上再建索引,我们能够使第一级索引的使用更为有效。

 

 

辅助索引

辅助索引可以用于任何索引目的:这种数据结构有助于查找给定一个或多个字段值的记录。

 

桶文件中指针可以是:

指向文档本身的指针。

       指向词的一个出现的指针。

 

桶中插入与删除

       桶是单个字段(指针)的记录,且向其他任何记录集合一样存放在块中。因此在插入和删除指针时,我们可用目前位置学过的任一种技术,例如为文件的扩充预留空闲空间、溢出块和可能得块内或块间记录移动。在后一种情况下,当我们移动倒排索引和桶中指针指向的记录时,我们必须小心地改变从倒排索引到桶文件中的相应指针。

 

 

改进文档检索效率

1 抽取词干。(例如复数名词可悲当作单数形式处理)

2 无用词。(the、and通常不包含在到排索引中)

 

 

多维索引

 

多维索引的应用

1 部分匹配查询

2 范围查询

3最近邻查询

4 where-am-I查询

 

多维索引结构综述

1 类散列表方法

2 类树方法

 

多维数据的散列结构

 

网格文件

划分成网格的点空间,在每一维上网络线把空间分成条状,落在网格线上的点被认为是属于该网络线为其底边界的条。在不同的网络线的数目可以不同,并且相邻网格线之间可能有不同的区间长度,甚至在同一维的线之间也可有不同的区间长度。

 

 

网格文件的查找

空间被划分成的每一个区域可以被看成是散列表的一个桶,落入该区域的每个点的记录都存放在属于该桶的块中。如果有必要,溢出块可以用来增加桶的大小。

 

网格文件的插入

如果同种没有空间:

1 按需要给桶增加溢出块

2 通过增加或移动网格线在重组结构

posted @ 2012-12-02 11:32  rilley  阅读(234)  评论(0编辑  收藏  举报