位图索引的诱因 位图索引主要在有多个码上的选择时对选择操作有用。 考虑一个选择收入在10000~19999之间的女性顾客的查询。在这个例子中,即Gender的位图F=(01101)和I-Level的位图L1=(10100)的交得到位图00100,即第3个记录为要查询的记录。 位图的另外一个作用就是可以在不访问关系的条件下由位图索引计算出满足所给条件的元组数。如在本例中找有多少女性的收入水平为L2。 和实际关系相比,位图索引通常比较小。在位图中一位就可以代表一个记录。而且位的运算很容易在计算机中实现,执行起来效率比较高。 压缩位图(I) 假定在一个有n个记录的文件的字段F上建有位图索引,且在文件中出现的字段F不同的值是m。那么该索引的所有位向量的二进制位数就是m×n。 随着m的变大,位图索引所需的空间也就越多。但是,如果m很大,那么位向量的1将会很少。所以,我们有机会编码位向量以便它们平均占用的位比n少很多。 一个常用的方法叫做分段长度编码。 压缩位图(II) 分段长度编码 通过对整数i进行适当的二进制编码,得到一个由i个0且后跟一个1所组成的序列,这个序列表示一个段; 把每个段的代码拼接在一起,则得到整个位向量的编码。 对整数i的编码方法有多种,但要唯一的确定各个位向量。我们采用的方法如下: 首先需要确定i的二进制表示是多少位。假设数字j为log2i的上限,则i可表示为:(j-1个
原创力文档

文档评论(0)