当前位置:文档之家› 高级数据库索引技术.

高级数据库索引技术.

个存储块中,该位为0的记录保留在B中,而该位为1的记 录则放入到新块中。 • c)把(j+1)存入这两个存储块的小方块中,以表明用于确 定成员资格的二进制位数。 • d)调整桶数组中的指针,使原来指向块B的项指向块B或新 块,这由项的第(j+1)位决定。
可扩展散列索引操作
• 如果j=i,那么我们必须先将i加1。我们使桶数组长度翻了 一倍,因此数组中现在有2i+1个项。假定w是以前的桶数 组中作为某项序号的i位二进制位序列。在新桶数组中,序 号为w0和w1(即分别用0和1扩展w所得到的数)的项都 指向原w项指向的块。也就是说,这两个新项共享同一个 存储块,而存储块本身没有变化。该块的成员资格仍然按 原先的位数确定。最后,我们继续像第一种情况中那样分 裂B。
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
• 设有一个存放顾客购买金首饰记录的关系 表(age,salary)。为使问题简化,我们假设 该关系只有顾客年龄和月薪两个属性。
• ---实例数据中有12个顾客,相关记录被表 示成下列的年龄-薪水对:(26,0.6) (45,0.6) (51,0.75) (51,1)(51,1.28)(70,1.30) (85,1.4) (30,2.6) (26,4.0) (45,3.5)(51,2.75)(60,2.6)
• 动态散列索引优点: 空间开销小,算法查询速度快,且与数据文 件大小无关
• 动态散列索引缺点: 当桶数量增加时,其扩展的代价非常昂贵
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
多维空间索引的应用简介
㈠数据仓库的数据立方体 ㈡地理信息系统(GIS) ㈢CAD/CAM系统 ㈣多媒体信息处理
R树实例
R树操作
• Function:Search • 描述:假设T为一棵R树的根结点,查找所有搜索矩形S覆
盖的记录条目。 • S1:[查找子树] 如果T是非叶子结点,如果T所对应的矩形
与S有重合,那么检查所有T中存储的条目,对于所有这 些条目,使用Search操作作用在每一个条目所指向的子树 的根结点上(即T结点的孩子结点)。 • S2:[查找叶子结点] 如果T是叶子结点,如果T所对应的矩 形与S有重合,那么直接检查S所指向的所有记录条目。 返回符合条件的记录。
– 通常是每个散列值对应一个存储目标对象的桶(页/块)
– 存储到桶的对象,既可能是实际数据项或数据记录, 也可以是数据记录指针;
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
静态散列索引
• 散列函数形式:M=hash(k) • 散列函数条件:
1、搜索码值的分布呈均匀分布 2、记录的分布呈均匀分布
• 范围查询和空间连接查询可能是这类应用 中最常见的查询。
• CAM/CAD也是对象数据库系统发展的一个 主要动因。
多媒体信息种类型时 间序列数据(音频/视频)等各类对象,也 需要空间管理方式。
• 在多媒体数据库(multimedia databases)中 ,使用象“查找与特定对象相似的所有对 象”这类相似查询可能极为普遍。
• 静态索引技术的特点:桶的数目是事先分 配好的,且数目固定。
• 其缺点是当索引文件发生变化时,桶数目 无法改变。
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
可扩展散列索引
• 散列函数将这些键转换成的二进制位序列。因此 ,第一块有一个键被散列为0001的记录;而第二 个块存放着键分别散列为1001和1100的记录。
• 内节点 – 存储其每个子节点的边界框和指向各子节点的指针。
R树叶子节点
R树的两种视图
R树实例
例子:假设我要查询广州市天河区天河城附近一公里的所有 餐厅地址怎么办?打开地图(也就是整个R树),先选择国 内还是国外(也就是根结点)。然后选择华南地区(对应第 一层结点),选择广州市(对应第二层结点),再选择天河 区(对应第三层结点),最后选择天河城所在的那个区域( 对应叶子结点,存放有最小矩形),遍历所有在此区域内的 结点,看是否满足我们的要求即可。
数据仓库的数据立方体
图5.14
地理信息系统(GIS)
• GIS被广泛用来处理各种空间数据,包括点 、线、二维/三维-区域。 – 例如,一幅地图中,可能同时包含小目 标(点)、河流/公路(线),以及城市/ 湖泊(区域)等。
CAD/CAM系统
• 这类系统中通常要存储和处理大量的空间 对象。类似GIS,这类系统中也必须存储和 处理空间点/区域数据。
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
R树
• R-树也是一种平衡树结构,其中被索引的多边形存储在叶 节点上(这一点很象B+树)。
• 每个树节点(叶节点/内节点)都对应有一个平行于坐标轴的 矩形边界框。
• 叶节点 – 负责存储位于其内的所有被索引多边形,边界框是一 个能涵盖其内所有存储对象的最小矩形。
• 我们应该注意到图中每个存储块的“小方块”中 都出现了数字1。这个数字其实出现在每个存储块 的块头中,表明由散列函数得到的位序列中有多 少位用于确定记录在该块中的成员资格。
可扩展散列索引
可扩展散列索引操作
• 1.如果j<i,那么不必对桶数组做什么变化。我们: • a)将块B分裂成两个存储块。 • b)根据记录散列值的第(j+1)位,将B中记录分配到这两
5449 5450 5595
桶0
5349 5350 5451 5897
桶1
静态散列操作
各位数字之和与桶数模运算
5349 王悦 32 5350 李丽 31 5449 王永 32 5450 Ella 36 5451 李永 29 5595 杜华 42 5897 王永 40 5901 武岳 39
5901
桶1溢出桶
高级数据库索引技术
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
• 散列索引
• 静态散列索引 • 动态散列索引
• 多维索引
• R树 • 网格文件 • 位图索引
• 散列与散列函数
– 散列函数选择要求:随机分布好、易计算;
– 散列函数参数:查找键或散列键; • 基于散列的存储结构
相关主题