18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > 面向对象索引(数据库)

面向对象索引(数据库)

时间:2022-11-03 12:30:02 | 来源:信息时代

时间:2022-11-03 12:30:02 来源:信息时代

    面向对象索引 : 在面向对象数据库(OODB)中所建立的索引。与传统的关系数据库在一个属性或一组属性上建立一个索引有所不同,OODB引入新的索引: 类层次索引和嵌套属性索引等。
类层次索引(class level index): 类C的属性A的类层次索引,是以C为根的类层次上所有类的属性A的一个单一索引。索引属性是建立在其上的属性,而索引类是建立在这些类属性上的类层次的根。例如,可以在图1的车辆类及其重量属性上建立一个类层次索引,则重量是该索引的索引属性,而车辆是索引类。在面向对象数据模型下,一个类既可能是一个类层次的根,也可能是一个类复合层次的根。一个类从它的超类继承属性,它的所有直接和间接的子类共享相同的属性。


图1 类层次和类复合层次


类层次索引和单一类索引的实现采用B+-树。在这两种索引文件中,内结点的格式是相同的。每个索引项由键的长度、键、指向下一层结点的指针组成,如图2(a)所示。类层次索引的叶结点格式和单一类索引的叶结点格式分别如图2(b)和图2(c)所示。
对于类层次索引,其存储要求索引页可以足够地保留以索引类为根的类的所有实例对象的oids;而在相应类层次上每个类的单一类索引集合的存储要求,是每个单一类索引的索引页总数之和。
嵌套属性索引(nested-attribute index):在面向对象数据模型中,允许一个对象的属性值是一个对象或一组对象,构成嵌套对象。尽管一个查询返回一个目标类的实例对象集合,但查找谓词可以指定在该类的任意嵌套属性上。一个类的嵌套属性上的索引称为嵌套属性索引。在类的嵌套属性索引中,对属性的索引是间接的,是针对类的嵌套属性的。换句话说,对属性的索引并不针对索引类的属性。嵌套属性索引使我们能够通过遍历一个单一索引来计算复杂的对象查询。嵌套属性索引特别适合于嵌套查询类型,这类查询包含了关于索引类的多重嵌套属性的谓词。


图2 结点格式


给定一个类复合层次C1,C2,…,Cn。A1,A2,…,An(n≥1)作为复合层次上的路径,提供了对象数据库的一种查找能力。这里C1是类复合层次上的类,A1是类C1的属性,Ai是类复合层次上类Ci的属性,Ci是类Ci-1的属性Ai-1的值域,1<i≤n。合成路径上类的个数等于路径长度。可以看出,必须遍历包括C1在内的n个类才能到达嵌套属性An。这里,除了路径中最后一个属性的值域可以是原子类或非原子类,路径上其他所有的类必须是非原子类。
将一条合成路径表示成n+1个对象组成的一个序列:O1,O2,…,On,On+1。这里,O1是类C1的实例对象,Oi是对象Oi-1的属性Ai-1的值,1<i≤n+1。对象Oi是类Ci的实例。在图3中,O1,O2,…,On,On+1表示一条合成路径。正向遍历路径表示从Oi开始,沿路径依次访问对象Oi+1,Oi+2,…,On-1,On,Oi通过复合属性Ai引用Oi+1,On-1通过复合属性An-1引用On。路径上的对象也可以反向遍历,但路径上的对象之间必须设置反向引用; 否则,一般不能使用嵌套索引。


图3 合成路径O1,O2,…,On,On+1



图4 C1.A1.A2上的对象


为说明起见,将合成路径上的嵌套索引NX表示成一组偶对(O,S)。这里,S={O′,存在一条合成路径O1,O2,…,On,On+1,并且,O′=O1,O=On+1},(O,S)偶对的元素O是索引键。嵌套索引NX将路径上的末端对象On+1和起始对象O1关联在一起。在图4中表示一组路径C1.A1.A2上的对象, 路径上的嵌套索引将属性A2的值与C1的一组oids关联在一起,类C2的属性A2是索引键。该嵌套索引包括以下偶对: (O3,{O1″})和(O3′,{O1,O1′})。

74
73
25
news

版权所有© 亿企邦 1997-2022 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭