时间:2022-11-04 06:30:01 | 来源:信息时代
时间:2022-11-04 06:30:01 来源:信息时代
内存数据库索引结构 : 内存数据库索引结构是为具有特定属性值的MMDB数据提供指针,以实现快速存取的一种专门数据结构。内存数据库索引的概念与DRDB完全一样,所以原则上一般索引结构也可用于MMDB。但由于对内存数据库而言,“时-空”这对矛盾的地位正好对调,因此各种索引结构在内存数据库中表现出与原来不同的特征。另外还开发出了许多适合内存数据库的专门索引结构。
1. 一般内存索引
适用于MMDB的索引结构可分为两大类: 一是数据保持某种自然排序,如各种树结构; 另一类是数据随机分布,如各种Hash索引结构。常用的内存数据库索引结构有:
(1)数组: 在IBM的内存数据库系统OBE中,采用数组作索引结构。它使用的空间最小,但每一维护操作所引起的数据移动量是O(N)级的(N为数组元素个数)。其代价太高,除只读(read-only)环境外,几乎没有什么实用性。
(2) AVL树: AT&T BeLL实验室的“硅数据库机”(silicon database machine)中用它作内存索引结构。它的操作时间复杂度为O(Log2N)(N为记录数),因此具有较高的存取性能。但每个结点只有一个数据元素,却有两个指针和有关控制信息,其内存的有效利用率很低。
(3) B-树: 操作性能好,且能动态维护。但它的内存有效利用率很低,因为①结点空间的平均占用率约66%,且其阶K越大,虽然操作性能越好,但每一结点的绝对未用空间就越大; ②任一结点中若有m个数据元素(索引码),则有(m+1)+m个(对于内结点)或0+m个(对于叶结点)指针(后一个m是指向数据记录的指针数),指针占用空间的比例太多。
(4) B+-树: 在内存情况下,B+-树不具有比B-树更大的优越性。
2. SB-树索引结构
兼有AVL树和B-树的主要特征,是一种满足下列条件的树结构(D,E),其中D为其结点集,E为边集:
(1) D中存在唯一的称为根的结点r,无父辈。
(2) D={r}∪DLr∪DRr, DLr∩DRr=∅; 且存在唯-XRr∈DLr,XLr∈DLr,使得E={<r,XLr>,<r,XRr>,ELr,ERr}。
(3)(DLr,ELr),(DRr,ERr)是符合本定义的SB-树,分别称为根r的以XLr和XRr为根的左子树和右子树,且它们是平衡的,即|hLr-hRr|≤1(hLr和hRr分别为左、右子树的高度)。
(4)结点N的形式为(bf,lc,rc,lp,rp;e0,e1,…,en,…,e2n)(见图1),其中:①bf=hLN-hRN,称为N的平衡因子; ②lp和rp分别为指向左、右子树的指针; ③lc和rc分别为左半部ei(0≤i≤n-1)和右半部ei(n+1≤i≤2n)的实际个数; ④所有元素ei(i=0,1,…,2n)构成一个标识顺序集: ∀ei=Ki∈N,Ki<Ki+1(i=0,1,…,2n-1);⑤若N为叶结点,则1≤(lc+rc+1)≤2n+1;否则2n+1-m≤(lc+rc+1)≤2n+1。n称为SB-树的阶,m为很小的正整数,表示空元素个数。
图1 SB-树结点的结构
图2 SB-树结构