基于 SB 树的嵌入式数据库查询优化技术.doc
《基于 SB 树的嵌入式数据库查询优化技术.doc》由会员分享,可在线阅读,更多相关《基于 SB 树的嵌入式数据库查询优化技术.doc(6页珍藏版)》请在三一办公上搜索。
1、精品论文大集合基于 S-B 树的嵌入式数据库查询优化技术黄楷胤 1,何艳珊 2,陈鹏飞 2,李龙杰 21.华南师范大学 经济与管理学院,广州 石牌 5106312. 兰州大学 信息科学与工程学院,甘肃 兰州 730000摘要: 本文针对嵌入式设备存储空间有限的情况,提出一种静态平衡树S-B 树来代替 B+ 树作为嵌入式数据库的索引结构。S-B 树基于一些嵌入式数据库在具体的应用中无插入和删 除操作的情况,同时利用了 B+树效率高和静态树空间利用率高的优点,大大提高了 B+树的 空间利用率。并在固定资产管理系统的嵌入式数据库 SQLite 中应用了这一技术,实验表明 在相同情况下,S-B 树查询
2、效率略高于 B+树,空间利用率平均高出 B+树约 30%。 关键字:嵌入式数据库 B+树 静态平衡树 S-B 树中图分类号:TP311.132.31.引言嵌入式数据库管理系统是最近几年才兴起的一项新的数据管理技术。它以目前成熟的数 据库技术为基础,针对具体的嵌入式设备与系统特点,结合实际应用需求,主要实现对嵌入 式设备上数据的存储、组织和管理,以及同后台主数据源的数据交换。在国外,Sybase 为 移动和嵌入式计算提供了完整解决方案 Sybase SQL AnyWhere Studio 7.0;Oracle 公司的 Oracle Lite 以及 Berkeley DB;IBM 公司的 IBM
3、DB2 等都是嵌入式数据库的典型代表。近年 来,国内的嵌入式研究也已发展到应用阶段。人大金仓研发的“小精灵”系统,东北大学提 出了 OpenBase Mini 以及北京大学的 ECOBASE 等 1都是具有代表性的嵌入式数据库系统。数据库在当今社会各个领域都有着举足轻重的作用,数据库中的常用操作包括插入,选 择,更新和删除等。然而,在实际的操作中,特别是在嵌入式数据库的应用中,有时仅仅需要数据库的部分功能。例如,各企事业单位的门禁系统,固定资产盘点等,这些嵌入式数据 库系统中只是用到了选择和更新的功能,而不进行插入和删除操作。目前,绝大多数嵌入式 数据库都提供 B+树检索机制,B+树是一种效率
4、很高的外查找索引机制,是基本 B-树的变型树2。B+树的最大的缺点是空间利用率低下,这对于存储空间有限的嵌入式数据库来说是致 命的,特别是对于无需插入删除操作的嵌入式数据库,如果仍沿用 B+数作为索引显然不是 最优选择,这就要求一种更适合这类数据库的索引机制。在广东省教育部产学研结合项目“基于 RFID 技术的嵌入式数据库系统及相关产品的开 发”中,我们应用 RFID 技术和 Web Service 技术设计并实现了固定资产管理系统。本系统应用了两种数据库来管理固定资产,分别是服务器端的 Oracle 9i 和手持机 PDA 上的嵌入式 数据库 SQLite3.3.4。服务器端数据库存储了全部
5、的固定资产信息,支持插入,选择,更新, 删除等操作。手持机端由于硬件和内存限制,仅存储了部分常用数据,需要时与服务器端交互,同步双方数据库。根据系统需求,手机端数据库担负着大量的实时查询工作和部分修改 工作,而无需插入或删除操作。SQLite 是一个轻量级别的文件数据库,使用方便,不需要 安装,无须任何配置,也不需要管理员。SQLite 支持大部分 SQL 语句,而且它是开源的嵌入式数据库产品,因此可以根据具体需要对其进行改进。我们按照实际使用情况,设计出一 种静态平衡树(S-B 树)来组织文件和担任查询工作。1 本课题得到广东省教育部产学研结合基金项目(2007A090302117)的资助-
6、 6 -2.SQLite的查询优化2.1 SQLite 的索引机制SQLite 是一个功能强大的嵌入式数据库,为了满足所有的操作需求,SQLite 采用 B+树 作为文件组织形式。B+树是一种用于数据库索引的数据结构,其综合效率比较高。SQLite 的文件组织中,数据库中的每个表和索引都使用一个单独的 B+树。图 1 B+树的结点结构B+树的非叶子结点构成了叶子结点上的一个多级索引,其所有指针都指向树中的结点。 叶子结点跟非叶子结点具有相同的结构(如图 1),不同的是,叶子结点指针指向磁盘上的 文件。由于各叶结点按照所含的关键字值有一个线性顺序,所以就可以利用各个叶结点的指 针 Pn 将叶结点
7、按关键字顺序链接在一起。这种排序能够高效地对文件进行顺序处理,而 B+ 树索引的其他结构能够高效地对文件进行随机处理67。B+树的最大优点是效率高,同时能进行随机查找和顺序查找,并且保持动态平衡。 然而,B+树同样存在弊端,空间利用率低下是 B+树最大的缺点。据统计,B+树索引机制平均空间利用率仅为 50%45。大量的指针,以及为方便插入而预留的空间会占用许多的 存储空间而使的空间利用率大大下降,这对于嵌入式设备是致命的缺陷。而且,B+树中的 n 值对特定的树是固定的,在最坏的情况下,也就是每个非叶子结点的关键字数目都是最小(即n /2 1 )时,B+树的空间和时间效率将很差。(a)(b)图
8、2 B+树的空间利用对比图一颗 4 阶的 B+树,当所有的结点都仅满足 B+树的最低要求(如图 2(a)所示),其空 间利用率仅有约 50%;而当所有节点都是满的,其空间利用率就会大大提高(如图 2(b) 所示)。同时,从图 2 可以明显看出,(a)图中 B+树的层数是 4 层,而(b)图中层数是 两层。也就是说对这两个 B+树检索,(a)中的 B+树耗费时间将是(b)中的 B+树的 3 倍。 当数据量较大时,时间效率也会相应的有所影响。2.2 静态平衡树(S-B 树)本文在原有 B+树索引的机制上,对于无插入和删除操作的数据库,提出了一种新的索 引结构静态平衡树(S-B 树)。1.S-B 树
9、的结构S-B 树是一个高度为 l 的 m 叉树,所有结点的子树间两两深度差 d 1 。S-B 树中的结点包括两类:叶子结点和非叶子结点。叶子结点实际上是一个数组。为了平衡时间和空间效率,两类结点分别采用了两种数据结构。(1)非叶子结点S-B 树中的非叶子结点形成了叶子结点上的一个索引。除最后一层的最后一个非叶子节 点外,每个非叶子结点均有 m 颗子树。具体结构如图 3 所示:图 3 S-B 树非叶子结点结构非叶子结点包含 m 个关键字值 K1,K2,Km,以及 m 个指针 P1,P2,Pm,Pi 实际上存储了叶子结点的数组中 Ki 的下标( 1 i m )。每个结点中的关键字值按次序存放,即如
10、果ij,那么 KiKj.为了使得 S-B 树的查询效率达到最优,就要求 S-B 数即不能太高也不能太宽。一个具有 n 条记录的 m 叉的 S-B 树,其查询效率是跟其高度 l 成正比的,因此要使得 查询效率越高,高度 l 就要越小,也就是说 S-B 树越矮。因此,要使得 S-B 树的空间利用率和查询效率达到最高,m 与 l 的关系满足式(1),且使得式(2)中的查询时间 达到最小:(2)叶子结点l = log mn = l + m /2 (1)(2)B+树中叶子结点和非叶子结点采用了相同的结构,不同的是其 Pn 指针指向的是相邻结 点,这样可以方便顺序查询。用这种带有指针的结点的结构的优点是可
11、以方便添加和删除操 作。S-B 树中的叶子结点采用了数组的形式来节省空间,不再沿用 B+树中有大量的指针的 结点存储信息,提高了空间利用率。数组中每个单元由两个域组成:关键字域和指针域。其 中,关键字域中存储记录关键字,指针域指向具体记录。叶子结点数组中的关键字自小而大 顺序存储。具有 s 条记录的数据库表,其 S-B 树的叶子结点的结构如图 4 所示:2.S-B 树构造算法图 4 S-B 树叶子结点结构S-B 树是一棵自底向上构造的多叉静态平衡树。S-B 树的构造算法如图 5 所示:Algorithm: S-Btree(keyn)Input: the array of keys keyn i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 SB 树的嵌入式数据库查询优化技术 嵌入式 数据库 查询 优化 技术
链接地址:https://www.31ppt.com/p-5191808.html